Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 11. 02. 2022 23:10 — Editoval Aleš13 (11. 02. 2022 23:12)

Aleš13
Příspěvky: 357
Reputace:   
 

Konvergence numerického řešení

Mám nádrž s teplou vodou, která se chladí dvěma cestami současně - chladičem a přirozeně svým povrchem.
Naměřené hodnoty teploty v čase bych chtěl proložit křivkou danou funkcí

[mathjax]T = T_0 + A e^{-\alpha t} + B e^{-\beta t}[/mathjax]

kde [mathjax]t[/mathjax] je čas, [mathjax]T[/mathjax] teplota a [mathjax]T_0[/mathjax], [mathjax]A[/mathjax], [mathjax]\alpha[/mathjax], [mathjax]B[/mathjax], [mathjax]\beta[/mathjax] jsou hledané parametry funkce. Slibuju si od toho, že najdu časové konstanty obou chladičů a budu moci predikovat další průběh teploty v čase.

Už jsem si ověřil, že řešení lze jednoznačně nalézt metodou Monte Carlo, ale abych dosáhl přijatelné přesnosti, potřebuju udělat tak miliardu pokusů, což trvá hodiny a to je moc dlouho.

Napadlo mě zkusit gradientní metodu. Vymyslím nějaký počáteční odhad, zkusím všechny parametry postupně trochu změnit a tu změnu, která vede ke zmenšení součtu čtverců odchylek funkce od naměřených dat použiju pro další iteraci. Tahle metoda konverguje celkem rychle, ale bohužel většinou k nesprávnému výsledku :-) Vypadá to, jako kdybych při výpočtu uvíznul v nějakém lokálním minimu nebo stacionárním bodě, ale tady bohužel moje znalosti končí a neumím zjistit, jestli tam nějaké lokální minimum je, nebo jestli je ta metoda tak nestabilní, nebo jestli tam mám prostě programátorskou chybu. Velmi pravděpodobně řeším už vyřešené a stačilo by to někde najít, ale ani s tím jsem neměl úspěch. Prosím o nějaké navedení nebo zmínku co bych asi tak mohl dělat blbě. Případně jestli ta celá úvaha není úplně blbě a vycházelo mi to jen náhodou. Díky.

Offline

 

#2 11. 02. 2022 23:38

laszky
Příspěvky: 2377
Škola: MFF UK, FJFI CVUT
Reputace:   197 
 

Re: Konvergence numerického řešení

↑ Aleš13:


Takze jestli to chapu dobre, ty mas nejaka namerena data [mathjax] [t_i,T_i], i=1,2,\dots,n, [/mathjax] a ty koeficienty [mathjax] T_0,A,\alpha,B,\beta [/mathjax] nahodne tipujes tak, aby napr. [mathjax] \max\left|T_0 + A e^{-\alpha t_i} + B e^{-\beta t_i}-T_i\right|[/mathjax] bylo co mozna nejmensi?  Taky mi neni prilis jasne, co znamena spojeni  "řešení lze jednoznačně nalézt metodou Monte Carlo" ?

Offline

 

#3 11. 02. 2022 23:49

Aleš13
Příspěvky: 357
Reputace:   
 

Re: Konvergence numerického řešení

Přesně tak, náhodně to zkouším, jenom jako kritérium jsem použil součet čtverců odchylek, ale to asi není podstatné.

Že lze nalézt řešení "jednoznačně" je pouze můj dojem vyšlý z experimentů, žádný lepší důkaz na to nemám. Chtěl jsem tím říct jenom, že metodou Monte Carlo řešení najdu a gradientní metodou ne.

Offline

 

#4 12. 02. 2022 03:36 — Editoval Brano (12. 02. 2022 03:40)

Brano
Příspěvky: 2655
Reputace:   231 
 

Re: Konvergence numerického řešení

↑ Aleš13:
skusal si simulovane zihanie alebo nieco podobne - v pythone je podobna metoda implementovana ako
Basin hopping
dalo by sa povedat ze taketo metody su "typu monte carlo" ale mali by konvergovat rychlo

ja mam skor problem s modelom, mas za nim aj nejaku fyziku?

Offline

 

#5 12. 02. 2022 16:11 — Editoval Aleš13 (12. 02. 2022 16:11)

Aleš13
Příspěvky: 357
Reputace:   
 

Re: Konvergence numerického řešení

Simulované žíhání jsem nezkoušel, dík za připomenutí, hraju si s tím a dívám se i na ten basin hopping.

Co se týká modelu, nějak moc fyzikální teorie za tím taky nestojí. Spíš je to tak, že jsem zkoušel aproximaci exponenciálou a vyšlo mi to "divně". Exponenciála ve tvaru [mathjax]T_0 + Ae^{-\alpha t}[/mathjax] třikrát protíná křivku naměřených hodnot, což se mi zdálo divné. Pro ilustraci to vypadá asi takhle (ve WolframAlpha)

plot 24+35 e^(-0.019 t)+21.5 e^(-0.076 t)  plot 26.8+50.6 e^(-0.031 t) from 0 to 150

Proto jsem zkusil ten tvar aproximační funkce [mathjax]T_0 + Ae^{-\alpha t}+ Be^{-\beta t}[/mathjax] a naměřená data a aproximace se mi na grafu prakticky překryly (až na šum), suma čtverců odchylek (pro [mathjax]t_i, i = 0,1,2,...,150[/mathjax]) byla menší než 10, tak mi přišlo, že jsem našel co hledám a dál to moc neřešil. Ale jestli je nějaké správnější vysvětlení toho co jsem naměřil, bylo by to skvělé.

Offline

 

#6 13. 02. 2022 15:11

pietro
Příspěvky: 4766
Reputace:   187 
 

Re: Konvergence numerického řešení

↑ Aleš13:

y(x) =a+b*exp(c*x) +d*exp(f*x)

A nedalo by sa pátrať po pôvodnej linearnej diferencialnej rovnici?

y"+By'+C=0

derivácie nahradiť diferenciami a riešiť metódou najmenších štvorcov.

Offline

 

#7 13. 02. 2022 16:25

Aleš13
Příspěvky: 357
Reputace:   
 

Re: Konvergence numerického řešení

Díky, jenže já bohužel s diferenciálními rovnicemi moc neumím. Ani si teď nedovedu představit jak popsat ten fyzikální děj diferenciální rovnicí, resp. jaká je mezi tím vazba. Ale dík za naznačení směru, podívám se na to a třeba si vzpomenu :-)

Offline

 

#8 14. 02. 2022 06:26

pietro
Příspěvky: 4766
Reputace:   187 
 

Re: Konvergence numerického řešení

↑ Aleš13: niečo pripravim, trochu neskôr.

Offline

 

#9 14. 02. 2022 14:14

MichalAld
Moderátor
Příspěvky: 5071
Reputace:   126 
 

Re: Konvergence numerického řešení

Pokud se to chladí vedením i chladičem do stejné okolní teploty, neměly by to být dvě časové konstanty, protože tepelný tok je obou případech úměrný rozdílu teplot (který je stejný). Aspoň teda v prvním přiblížení...takže bych zkusil nejprve aproximaci systémem prvního řádu, tedy

[mathjax]\Delta T=\Delta T_0(1-e^{-\alpha t})[/mathjax]


Ty "delty" jsou rozdíly od okolní teploty (oteplení). A časovou konstantu odhadneš pro začátek tak, že zjistíš, kdy kleslo oteplení na poloviční hodnotu.

Taky můžeš teda použít nějakou tu interpolaci, a v tomhle případě dokonce lineární, protože když rovnici upravíš na tvar

[mathjax]1-\frac{\Delta T}{\Delta T_0}=e^{-\alpha t}[/mathjax]

a pak zlogaritmuješ, tedy

[mathjax]\ln(1-\frac{\Delta T}{\Delta T_0})={-\alpha t}[/mathjax]

tak máš (vzhledem k "alfa") lineární rovnici. Ta se interpoluje snadno, je na to vztah.

Offline

 

#10 14. 02. 2022 14:22

MichalAld
Moderátor
Příspěvky: 5071
Reputace:   126 
 

Re: Konvergence numerického řešení

A jinak bych doporučoval si chladič vypnout a změřit si chladnutí samostatně ... a pak už budeš řešit jen ten chladič...dále je možné, že to nějak závisí na proudění okolního vzduchu v závislosti na teplotě - a pak to nebude lineární, a zvyšování řádu ti nepomůže.

Pokud ti to zchladne na polovinu z teploty T1 za jiný čas než z teploty T2, tak to lineární není ...

Zvyšování řádu znamená, že se prodlužuje doba, než to začne chladnout...což podle mě není ten případ. Dávalo by to smysl, když by voda byla v nějaké tlustostěné nádobě, jejíž tepelná kapacita by se na tom projevovala taky. Ale pokud je jediná (nebo převažující) tepelná kapacita ta voda, měl by to být první řád (ať už lineární nebo nelineární). Chladič přece nepotřebuje nějakou dodatečnou dobu na to, aby začal chladit...

Offline

 

#11 14. 02. 2022 14:47

Aleš13
Příspěvky: 357
Reputace:   
 

Re: Konvergence numerického řešení

Díky, s tou tepelnou kapacitou mě to nenapadlo, při tom ji asi nebudu moct úplně zanedbat. Já jsem původně myslel, že to bude jasná exponenciála a že není co řešit, ale zarazil mě tam ten "hrbolatý" průběh a hledal jsem, kde se tam bere ta nelinearita. K té rovnici jsem se dostal zkusmo a teď vidím, že jsem si ji vysvětloval špatně :-)

Zkusím to udělat jak píšeš nahoře, díky.

Offline

 

#12 14. 02. 2022 14:54

Aleš13
Příspěvky: 357
Reputace:   
 

Re: Konvergence numerického řešení

Jinak jsem mezitím pokročil s tím simulovaným žíháním (díky za navedení), zkusil jsem úplně jednoduché provedení a výpočet se zrychlil řádově. Plus jsem to ještě rozložil na víc jader procesoru současně a to je další řád k dobru :-) Takže teď už to začalo být spočítatelné v reálném čase, což by z praktického hlediska stačilo, ale samozřejmě mnohem raději bych pochopil proč se ten systém chová zrovna takhle, tak se teď vrhnu na tu další matiku :-)

Offline

 

#13 15. 02. 2022 09:10

MichalAld
Moderátor
Příspěvky: 5071
Reputace:   126 
 

Re: Konvergence numerického řešení

Jo, ten vztah mám blbě, má to být [mathjax]\Delta T=\Delta T_0e^{-\alpha t}[/mathjax], ten první platí, když by se to ohřívalo na nějakou teplotu. Když to chladne na nulu, tak je to takto.

Offline

 

#14 15. 02. 2022 21:40

Aleš13
Příspěvky: 357
Reputace:   
 

Re: Konvergence numerického řešení

↑ Brano:, ↑ MichalAld: máte pravdu, ten fyzikální model jsem neměl úplně chytře vymyšlený. Začínám chápat, že za tu ne úplně přesnou exponenciálu opravdu může tepelná kapacita v sérii, ne paralelní chlazení povrchem a chladičem. A v simulaci mi to taky vychází.

Offline

 

#15 15. 02. 2022 23:01

pietro
Příspěvky: 4766
Reputace:   187 
 

Re: Konvergence numerického řešení

↑ Aleš13:

Ahoj, zatiaľ do tvojej pozornosti aj túto Strejcovu metódu
identifikácie sústav.

https://adoc.pub/queue/automatizace-ulo … trejc.html

Offline

 

#16 15. 02. 2022 23:18

Aleš13
Příspěvky: 357
Reputace:   
 

Re: Konvergence numerického řešení

Díky, už na to koukám.

Offline

 

#17 16. 02. 2022 10:14 — Editoval pietro (17. 02. 2022 23:11)

pietro
Příspěvky: 4766
Reputace:   187 
 

Re: Konvergence numerického řešení

↑ Aleš13: ešte doplním

Obrázok 37, detailnejší návod
metódy prof. Strejca.

Skriptá ti nájde google pod frázou.... vsb identifikace strejc pdf

Offline

 

#18 16. 02. 2022 11:21

Aleš13
Příspěvky: 357
Reputace:   
 

Re: Konvergence numerického řešení

Díky, už jsem si je našel a je tam jako řešený příklad prakticky přesně ten můj problém :-)

Offline

 

#19 17. 02. 2022 20:09 — Editoval MichalAld (17. 02. 2022 20:13)

MichalAld
Moderátor
Příspěvky: 5071
Reputace:   126 
 

Re: Konvergence numerického řešení

Jo jo, taky jsme to tak dělali...akorát tenkrát ještě na milimetrovém papíře s pravítkem v ruce. A řekl bych, že je to snad i jednodušší (najít ten inflexní bod a určit směrnici tečny), a výsledek je stejně dobrý.

Nejlépe se model získává z frekvenční charakteristiky, ale u topných soustav je to docela těžké ji změřit, protože to trvá hrozně dlouho. Třeba u motorů to jde hezky...


Ale nezapomeň, že ta zmíněná metoda potřebuje, aby jsi změřil odezvu na jednotkový skok ... nemusí být nutně kladný, může být i směrem dolů ... ale důležité je, aby mu předcházel zcela ustálený stav (na nějaké teplotě). Aby se ti tam projevil ten náběh přechodového děje...

Offline

 

#20 18. 02. 2022 17:25

Aleš13
Příspěvky: 357
Reputace:   
 

Re: Konvergence numerického řešení

Jj, jasně. Tu přechodovou funkci mám už naměřenou, z krásně ustáleného stavu, jenom mi z toho pořád vychází ta dvojitá exponenciála co se nechtěla nechat numericky řešit (teď už je to mnohem lepší).

Offline

 

#21 18. 02. 2022 23:37

MichalAld
Moderátor
Příspěvky: 5071
Reputace:   126 
 

Re: Konvergence numerického řešení

Pokud má ten přechodový děj ten náběh - že to nějaký čas trvá, než ta teplota začne narůstat, tak tam musí být minimálně dvojitá exponenciála. Z jednoduché tohle nedostaneš, jednoduchá exponenciála má největší strmost (nejrychlejší nárust) hned na počátku.

Ještě mi vysvětli, jak jsi dokázal skokově změnit teplotu vody, když - jak říkáš, jsi začínal z ustáleného stavu...

Offline

 

#22 19. 02. 2022 21:57 — Editoval Aleš13 (19. 02. 2022 22:14)

Aleš13
Příspěvky: 357
Reputace:   
 

Re: Konvergence numerického řešení

On to není nárůst teploty, ale pokles různou rychlostí, ta modrá křivka (červeně je pro srovnání aproximace jednoduchou exponenciálou)
https://www.wolframalpha.com/input?i=pl … m+0+to+150

Z ustáleného stavu to vyvedu tak, že odstraním tepelnou izolaci + současně zapnu čerpadlo chladiče. Ale zrovna dneska jsem si vyzkoušel, že ten chladič má vliv jen na rychlost chladnutí, ale když ho nepoužiju (viz tvé doporučení výše), tak to pořád chladne po té "dvojité" exponenciále, takže o tom chladiči jako bych nic neříkal :-) to byla jen moje blbá interpretace. Asi to budou ty tepelné kapacity v sérii.

Offline

 

#23 20. 02. 2022 14:30

MichalAld
Moderátor
Příspěvky: 5071
Reputace:   126 
 

Re: Konvergence numerického řešení

Aleš13 napsal(a):

Asi to budou ty tepelné kapacity v sérii.

Nebudou. To by se tam objevil ten náběh. Ale ty na křivkách žádný náběh nemáš...

Důvodem je spíš, že tvůj systém není lineární ... že rychlost chladnutí neklesá s teplotou lineárně, ale rychleji. To při chlazení vzduchem celkem běžně nastává ... protože se kolem vytváří proudění vzduchu. A rychlost tohoto proudění závisí na teplotním rozdílu také. Ovšem komplikovaným způsobem, který neumíme jednoduš předpovídat, a lepší je to změřit.

Nevím ovšem, jakou funkcí to aproximovat, lepší by bylo hledat spíš vhodnou diferenciální rovnici.

[mathjax]y' + f(y) = 0[/mathjax]

Pokud je f(y) = k*y, bude to ta exponenciála. Já bych zkusil nějakou mocninnou závislost,  [mathjax]f(y) = ky^n[/mathjax], kde n nemusí být nutně celé číslo, a bude někde v rozsahu 1...4. Možná to jde i vyřešit analyticky,

Offline

 

#24 20. 02. 2022 16:08 — Editoval Aleš13 (20. 02. 2022 16:09)

Aleš13
Příspěvky: 357
Reputace:   
 

Re: Konvergence numerického řešení

Hm, v diferenciálních rovnicích si pořád nejsem moc jistý, ale vydoloval jsem stará skripta a trošku jsem si zavzpomínal :-) tak se do toho vrhnu takhle, třeba se zadaří, díky. Zatím jsem předpokládal, že to nemůže být nic jiného než exponenciála, na nelinearitu způsobenou prouděním vzduchu jsem nepomyslel, resp. jsem ji úplně zanedbával.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson