Jak resite na MCU nasledujici problem ?
Malecek
zoodiskus@vol.cz
Středa Srpen 11 08:47:20 CEST 2004
Asi jsem se nepresne vyjadril, ale ono ani tak nejde o to ja zjednodusit uvadenou rovnici, ale o to jak co nejrychleji a predevsim nejpresneji
nastavit parametry zarizeni tak aby se prava strana rovnice co nejvice priblizila zadane hodnote Fx (do MCU ji zasila nadrizeny system nebo pripadne i obsluha)
Fx je 32bit integer a vyjadruje pozadovane nastaveni pristroje a pro to abych toho dosahl mam k dispozici tri ovladaci prvky:
- Cx coz je vyctovy typ typu integer dnes 16 bit v budoucnu 24bit pro predstavu muze nabyvat hodnot v radu 20,200,2000,20000,200000 v realu jde o logiku ovladajici ventily
- X + Y coz jsou 12 integer ( v pripade Y hodnota se znamenkem) v realu 12bit DA prevodniky ovladajici volaake cudo.
Z rovnice a vahy jednotlivych promenych je videt, ze nejvetsi vliv ma Cx nasleduje X a Y, kterym lze nejjemeji dostavit system.
Tak ze jde o to jak co neefektivneji urcit v MCU hodnoty Cx,X,Y,
Zatim to delam tak, ze pomoci pevne nastavenych podminek (podle velikosti Fx) urcim Cx
nasledne provedu vypocet X=Fx*Cx cimz urcim hodnotu a nastaveni prevodniku X
a v poslednim kroku kdy uz mam v rovnici jen jednu neznamou dopocitam Y.
Nicmene mi to nepripada prilis matematicky elegantni a z duvodu nejake certifikace musi byt k zarizeni prilozen podrobny popis pouziteho algoritmu a ja si nechci uriznout ostudu a tak se ptam, zda neni nejaky vice matematicky zpusob. :-)))
----- Original Message -----
From: Marek Pavlů
To: '[HWnews]'
Sent: Wednesday, August 11, 2004 2:42 AM
Subject: RE: Jak resite na MCU nasledujici problem ?
Zdravim,
Mozna, kdyz reknete, co ty promenne X,Y,Cx,Fx jsou, tak nekdo neco poradi.
Sice uvadite pocty bitu na jednotlive parametry, ale neuvadite, jestli realna/prirozena cisla.
Predpokladam tedy, ze X,Y,Cx jsou prirozena cisla.
Pak:
0.2489 nahradime cislem 1/4 s presnosti na jednu desetinu.
Fx=(X/Cx).(1-Y/4) = (X/Cx).(4-Y)/4 = -1 . (X/Cx) . (Y - 4) / 4
Deleni ctyrmi provedete jako bitovy posuv doprava, takze zustava jen jedno nasobeni a jedno deleni.
+,- nepocitam, tam je to jednoduche, ale pokud je neco z cisel realne, tak bude dalsi kod bastit prevod
prirozene >> realne
Vic se z toho vypotit neda J.
Nechcete se vice rozepsat o tom, co tyhle tajne konstanty znamenaji J... ???
Popripade, jak je to zapojeno ????
S pozdravem,
Marek Pavlu
-----Original Message-----
From: hw-list-bounces@mailman.nethouse.cz [mailto:hw-list-bounces@mailman.nethouse.cz] On Behalf Of Malecek
Sent: Tuesday, August 10, 2004 8:20 PM
To: [HWnews]
Subject: Jak resite na MCU nasledujici problem ?
Mam funkci Fx=(X/Cx).(1-0.2489.Y)
pricemz:
Cx je vyctovy typ, ktery muze nabyvat cca 10 hodnot typu integer 16bit
X a Y jsou 12bitova cisla nastavujici DA prevodniky
a Fx je hodnota (32bit), kterou do MCU zasle nadrizeny system a ukolem MCU je
vybrat Cx a nastavit X , Y tak aby se prava strana rovnice co nejvice priblizila pozadovane hodnote Fx.
A ted babo rad jak to narvat do maleho 8bit MCU a minima pameti ?
Me soucasne reseni:
nejdrive podle velikosti Fx a pevne danych podminek vybere hodnotu Cx (hodnota Cx je v rozsahu 4 radu),
nasledne provedu vypocet X=Fx.Cx a
nasledne provedu jemne doladeni pomoci hodnoty Y.
Nicmene mi to vubec nepripada matematicky sofistikovane a dostatecne in.
Je nejake lepsi reseni o kterem nevim ?
Dekuji za pripominky.
---
avast! Antivirus: Odchozi zprava cista.
Virova databaze (VPS): 0433-1, 09/08/2004
Testovano: 10.8.2004 21:44:35
avast! (c) copyright 2000-2003 ALWIL Software.
http://www.avast.com
------------------------------------------------------------------------------
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz
HW-list@mailman.nethouse.cz
http://nethouse.cz/mailman/listinfo/hw-list
------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://list.hw.cz/pipermail/hw-list/attachments/20040811/717a04ba/attachment-0001.htm
Další informace o konferenci Hw-list