omkeren formule

Wiskunde is niet alleen een vak op school. Kom je ergens in de praktijk (bijvoorbeeld tijdens je werk) een wiskundig probleem tegen dan kun je hier om hulp vragen.
Plaats reactie
mon
Nieuw lid
Nieuw lid
Berichten: 4
Lid geworden op: 15 jan 2015, 21:45

omkeren formule

Bericht door mon » 15 jan 2015, 22:01

beste forumleden,

ik ben cv installateur en ben bezig een eigen programma te schrijven om een cv installatie waterzijdig in te regelen, programeren lukt maar de wiskundige berekeningen gaan me soms het petje te boven... de onderstaande formule zou ik graag omdraaien zodat ik ta kan berekenen ( de andere variabelen zijn gekend ) dus ta = ..... .
kan iemand me hierbij op weg helpen?
Alvast Bedankt,
Mon.

de formule : P = P50 [ (ti - tr) / ln( (ti - ta) / (tr - ta) ) 1 / 49.32 ]n (1)


overige informatie (indien nodig):

P = the emitted heat (W, J/s) (4000w)

P50 = the emitted heat with an temperature difference 50oC (W). In general radiators are dimensioned1) for a middle temperature of 70oC and surrounding temperatures of 20oC (a difference of 50oC)

ti = water temperature inn (oC) (80c°)

tr = water temperature out (oC) (onbekend)

ta = surrounding air temperature (oC) (20)

n = constant describing the type of radiator (1.33 for standard panel radiators, 1.3 - 1.6 for convectors) (1.33)

arie
Moderator
Moderator
Berichten: 3916
Lid geworden op: 09 mei 2008, 09:19

Re: omkeren formule

Bericht door arie » 16 jan 2015, 12:11

We hebben



Als we bijvoorbeeld kiezen:
P50 = 4427
ti = 75
tr = 54
ta = 18
n = 1.33
levert deze formule P = 4000

Je wil nu niet P als onbekende, maar ta als onbekende, dus de formule herschrijven als
ta = ...

Stap voor stap (ga zelf alles na, het lijkt ingewikkelder dan het is):



deel door P50:



links en rechts tot de macht (1/n) :



vermenigvuldig met 49.32:



herschrijf dit als:



noem de laatste breuk voor het gemak x:



merk op dat we x uit ti, tr, P, P50 en n (die nu allemaal vooraf gegeven zijn) kunnen berekenen.
We krijgen dan:



verhef tot de macht e ( e = 2.718... = grondtal natuurlijke logaritmen)
noot: in programmeertalen is dit doorgaans de functie exp()



vermenigvuldig mat (tr - ta):



werk de haakjes weg:



breng termen met ta naar 1 kant (links):



haal ta buiten haakjes:



deel door (e^x - 1):



waarbij tr, x en ti bekend.


Voorbeeld:
Ter controle hetzelfde voorbeeld als hierboven:
P = 4000
P50 = 4427
ti = 75
tr = 54
n = 1.33
en nu willen we ta bepalen.
Bereken eerst x:



Vervolgens is



zoals we verwacht hadden.

mon
Nieuw lid
Nieuw lid
Berichten: 4
Lid geworden op: 15 jan 2015, 21:45

Re: omkeren formule

Bericht door mon » 16 jan 2015, 13:30

Fantastisch!
Voor jou blijkbaar een koud kunstje Arie, voor mij echt chinees.
Maar dankzij je heldere uitleg , voorbeeld en zelfs tips ivm programmatie
Ben ik zeker dat dit gaat lukken!
Ik zal vannacht een stukje rustiger slapen ;-)
Bedankt en fijn weekend!
Mon.

mon
Nieuw lid
Nieuw lid
Berichten: 4
Lid geworden op: 15 jan 2015, 21:45

Re: omkeren formule

Bericht door mon » 16 jan 2015, 17:28

Moet de formule veel aangepast om tr te berekenen als onbekende factor?

arie
Moderator
Moderator
Berichten: 3916
Lid geworden op: 09 mei 2008, 09:19

Re: omkeren formule

Bericht door arie » 17 jan 2015, 11:54

We kunnen tr niet vrijmaken in de vorm "tr = ..." omdat tr zowel binnen als buiten de ln() functie voorkomt.
We kunnen tr wel vinden met numerieke methoden, bijvoorbeeld via bisectie
(zie http://nl.wikipedia.org/wiki/Halveringsmethode).


Voorbeeld:

We hadden hierboven al gevonden:



en dit kunnen we ook schrijven als



Het linker lid kunnen we nu ook beschouwen als functie van tr (alle andere variabelen zijn constanten):



of als je liever met x werkt:



en dan zoeken we de x waarvoor f(x) = 0.
Daarvoor gebruiken we de bisectiemethode.

Eerst de beginwaarden:
We weten dat tr tussen ta en ti zal liggen.
- als tr = ta, dan gaat f(tr) naar plus oneindig, we kunnen links starten met ta, met positieve f
- als tr = ti, dan is f(tr) = nul, maar dat nulpunt zoeken we niet. Als tr iets kleiner is dan ti, dan is f(tr) negatief. We starten rechts met ti, met negatieve f.
Omdat dit interval tussen 0 en 100 ligt, en de halveringsmethode per 10 iteraties de nauwkeurigheid met 3 cijfers vergroot, hebben we voor ons probleem aan 20 iteraties ruim voldoende.

Het algoritme wordt dan:

Code: Selecteer alles

\\ constanten:
P = 4000;
P50 = 4427;
ti = 75;
ta = 18;
n = 1.33;
\\ bereken de noemer van de breuk, zodat we dat niet steeds opnieuw hoeven te doen:
K = 49.32*(P/P50)^(1/n);

\\ functie waarvan we een nulpunt zoeken:
f(x)={ log((ti-ta)/(x-ta)) - (ti-x)/K }

\\ main program:
{
xlinks  = ta;
xrechts = ti;
for(i=1,20,
    xmid = (xlinks + xrechts)/2;
    fmid = f(xmid);
    if(fmid > 0,
        xlinks = xmid,
        \\ else:
        xrechts = xmid;
        );
    print(xlinks, "  ", xrechts);
    );
print("tr = ", (xlinks+xrechts)/2);
}
De print() opdrachten heb ik toegevoegd om te zien wat er gebeurt, je uiteindelijke versie hoeft alleen het resultaat =
(xlinks + xrechts) / 2
terug te geven.

Output:

Code: Selecteer alles

46.5000000000  75.0000000000
46.5000000000  60.7500000000
53.6250000000  60.7500000000
53.6250000000  57.1875000000
53.6250000000  55.4062500000
53.6250000000  54.5156250000
53.6250000000  54.0703125000
53.8476562500  54.0703125000
53.9589843750  54.0703125000
53.9589843750  54.0146484375
53.9868164063  54.0146484375
53.9868164063  54.0007324219
53.9937744141  54.0007324219
53.9972534180  54.0007324219
53.9989929199  54.0007324219
53.9998626709  54.0007324219
53.9998626709  54.0002975464
53.9998626709  54.0000801086
53.9999713898  54.0000801086
53.9999713898  54.0000257492
tr = 53.9999985695
Kom je hiermee verder?

mon
Nieuw lid
Nieuw lid
Berichten: 4
Lid geworden op: 15 jan 2015, 21:45

Re: omkeren formule

Bericht door mon » 19 jan 2015, 18:29

zowel formula als script werken perfect!!
Hartelijk bedankt!
Mon.

arie
Moderator
Moderator
Berichten: 3916
Lid geworden op: 09 mei 2008, 09:19

Re: omkeren formule

Bericht door arie » 19 jan 2015, 18:59

Mooi dat het gelukt is!

Plaats reactie