Fórum témák

» Több friss téma
Fórum » Folyamatábrás mikrokontroller programozás Flowcode-dal
Lapozás: OK   106 / 360
(#) pjg válasza watt hozzászólására (») Dec 2, 2012 /
 
Nem nem! Periódus idő -> fordulatszám.
(#) pjg válasza kokozo hozzászólására (») Dec 2, 2012 /
 
120 elágazás kicsit sok lenne, bár lehet, hogy legegyszerűbb egy 120 elemű tömb lesz. Ha tudja a Flow.
(#) pjg válasza watt hozzászólására (») Dec 2, 2012 /
 
Értem.
(#) watt válasza pjg hozzászólására (») Dec 2, 2012 /
 
Ez viszont fordított négyzetes összefüggés. Ezt a képletet is ki lehet számoltatni a graph-al, csak kicsit off itt, bár már magam sem tudom hogyan lehet egy flow programot úgy végigbeszélni, hogy ne érintsük a "perifáriális dolgokat".
(#) watt válasza pjg hozzászólására (») Dec 2, 2012 /
 
Itt a képlet:
5938.12780659*x^-0.99810403
Próbáld ki excelben!
(#) pjg válasza watt hozzászólására (») Dec 2, 2012 /
 
Ez: f(x) = 5938.12780659*x^-0.99810403 lefedi.

Hogyan tovább?
(#) watt válasza watt hozzászólására (») Dec 2, 2012 /
 
De ha csak a két szélső párt veszem fel hatvány függvénynek, akkor sokkal egyszerűbb lesz a képlet:
6000*x^-1
(#) pjg válasza watt hozzászólására (») Dec 2, 2012 /
 
Ezt tettem bele:

ford = 5938.12780659 * Latch ^ -0.99810403

ford változó float típusú.
(#) watt válasza pjg hozzászólására (») Dec 2, 2012 /
 
Beteszed egy számítás blokkba. Gondolom van egy periódusidőt tartalmazó változód, az lesz az X helyén. Az eredményt a fordulatszám változóba teszed, kijelzed.
(#) watt válasza pjg hozzászólására (») Dec 2, 2012 /
 
Na, rájöttél, szuper! Használd a másik képletet, mert ez azért lett ilyen értékekkel, mert a táblázatodban nem minden értékpár pontos. Általában elég a két szélső értékhez számolni a függvényt, ha tudjuk, hogy hatványos.
A hozzászólás módosítva: Dec 2, 2012
(#) pjg válasza watt hozzászólására (») Dec 2, 2012 /
 
A hosszú képlettel 1787 szó = 87,3% a foglalás, míg a röviddel 1670 szó 81,6%. (16F628A-ban)
(#) watt válasza pjg hozzászólására (») Dec 2, 2012 /
 
Majd nézd meg, mekkora kódot fordít ezzel, és mekkorát a törtek nélküli függvénnyel.
(#) watt válasza pjg hozzászólására (») Dec 2, 2012 /
 
Kitalálod a gondolataimat!
A másikkal is ekkora kódot fordít? Nem szabadna! Biztosan nem lebegőpontos változókat használsz. Ránézek én is...
(#) pjg válasza watt hozzászólására (») Dec 2, 2012 /
 
Nem ekkorát. Már van benne 930 szó 45,5%.
(#) watt válasza pjg hozzászólására (») Dec 2, 2012 /
 
Akkor is túl sok! Mi van a változókkal? int vagy uint-et használj!
(#) kkrisz75 válasza Sanyessz hozzászólására (») Dec 2, 2012 /
 
A pic megoldja simán, de a főgond nem flowban lesz így a kérdés nem ide való.

Bejövő jelek száma egységnyi idő alatt nem mindegy mennyi.
Az 1sec mérési idő nagyon sok. Az alatt nem kis sebesség különbségek változnak és neked nem fog csak tartós sebességnél reálisat mutatni. 100ms ami már értékelhető és reális. Jó kerékpárral 2-3sec alatt meg tudsz állni, de ha 1 sec a mérési időd a 2-3. secnél még sebességet mutat mikor te már régen állsz egy helyben.
Ha megvan az időalapod akkor meg csak az úttal kell variálni.


itt az én programom.
KMH változót és a hozzá tartozó makrókat, kerék átmérőt keresd benne.
igaz ez autóhoz van de az alapja ugyan az. Annyi, hogy a hajtómű áttételekkel is számol, de ott van egy leírás is a makrón belül. (A százalékos eltérést ki kell hagyni de jól látszik az is, nekem a spirál és a hajtás kerék benyomódás miatt kellett ami kerékpáron nincs, meg difi sincs)
Ott vannak a kerék kerületek, és ha jól megnézed a megtett utat és a sebességet teljesen máshogyan kell számolni.
(#) pjg válasza watt hozzászólására (») Dec 2, 2012 /
 
Ez igen. A ford változó volt float. Áttettem uintbe így csak 975 szó 47,7%.
(#) mrobi válasza kkrisz75 hozzászólására (») Dec 2, 2012 /
 
És mi van hogy ha úgy csináljuk ahogy Ő mondta? Futtatsz egy timer megszakítást. Abban folyamatosan növelsz egy változót. Ha kap egy megszakítást RB0-án akkor megnézi hogy annak a változónak mennyi az értéke. Az egy fordulatra eső utat elosztja ezzel az értékkel. (Még nem próbáltam, ez csak egy felvetés!)
A hozzászólás módosítva: Dec 2, 2012
(#) watt válasza pjg hozzászólására (») Dec 2, 2012 /
 
Ezt vártam. Akkor megvan a megoldás.
(#) pjg válasza watt hozzászólására (») Dec 2, 2012 /
 
Köszi a segítséget.
(#) watt válasza mrobi hozzászólására (») Dec 2, 2012 /
 
Pontatlan és sok erőforrást foglal. De lehet, hogy ide elég.
A hozzászólás módosítva: Dec 2, 2012
(#) kkrisz75 válasza mrobi hozzászólására (») Dec 2, 2012 /
 
nem mondom, hogy rossz, csak ez kész, és tud belőle okulni.

Amúgy én is így használom. Fut egy számláló TMR0 vagy 2 makróban. Ami frissíti az LCD kiírást. közben pedig RB1 es porton a sebesség mérő jeleit kapja. Szintén számláló a makróban.(RB0 a fordulatszámé)

Amikor a főprogram kimegy kiírni mindent, előbb kiszámolja az értékeket a bejövő jelek, és a egyéb makrókban elhelyezett számítások (kerék átmérő, difi áttétel, dinamikos kerék méret, százalékos eltérések a gumi méretek) alapján, és a végén kiírja LCD-re (már ha az LCD azon a lapon áll, hogy kiírja(menüs elrendezés)) és kivezérli ledre, majd kinullázza a tmr változóját.

mivel innen indul újra a számlálás, ezért marad pontos. vagyis mikor kiírt mindent, az után nulláz és számol mindent. Vagyis ha jó az elméletem a bejövő jelek RB0 és RB1 és a TMR megszakítások futnak addig míg nem kerül kiírásra az LCD-re.

Így az LCD frissítés ideje 100ms az időalap a méréshez is.

Bár a pic nem teljesen ennyire egyszerű de egyszerűsítve így működik a program.
A hozzászólás módosítva: Dec 2, 2012
(#) pjg válasza watt hozzászólására (») Dec 2, 2012 /
 
A képlet jó, de a Flowban nem számol jól. Excellben OK!
(#) watt válasza pjg hozzászólására (») Dec 2, 2012 /
 
Én is ezzel szenvedek! Nem találom, mivel lehetne hatványozni flowban! A pow(x,y) nem működik csak AVR-nél. Te mivel számolod?
(#) kkrisz75 válasza watt hozzászólására (») Dec 2, 2012 /
 
Lednél próbáltam hatvány számlálót.
Annyiszor szorzom ciklusban össze magával amennyiedik hatványra akarom tenni.

Tudom van erre utasítás C-ben, de folyamat ábrában csak ezt találtam működni.
(#) kkrisz75 válasza mrobi hozzászólására (») Dec 2, 2012 /
 
Amúgy az első próbám nekem is ez volt. De ez a része csak matek és megint off.

Számold ki, hogy ha 10et fordul a kerék(legyen 2m /fordulat) és a TMR makróban meg a másodperceket méri.
Majd ugyan ezzel az idővel ha 11et fordul a kerék akkor mennyi jön ki.
Számold át Km/órára és azt lesz a léptéked a sebesség mérőn.

Minél rövidebb ideig számol vagy minél több a bejövő jel annál kisebb lesz a lépték. Az időalap minél kisebb annál pontosabb, de ha az időalap kicsi sok bejövő jel kell, nehogy ne véletlen ne jöjjön be jel a kicsi időalap közt.

Nálam 20 jel jön be 1spirál fordulat alatt. 1000 spirál fordulat 1km papíron
2.5km/ órás a lépték a végén. 100ms-os mérési idővel.
(#) watt válasza pjg hozzászólására (») Dec 2, 2012 /
 
A flowban így számold:
fordulat=6000*(1/x)
De még a zárójel sem kell itt...
A hozzászólás módosítva: Dec 2, 2012
(#) mrobi válasza kkrisz75 hozzászólására (») Dec 2, 2012 /
 
Én nem azt mondtam hogy megnézem hogy 1 másodperc alatt mennyi jel jön. Hanem azt hogy 2 jel közt mennyi idő telt el!
(#) pjg válasza watt hozzászólására (») Dec 2, 2012 /
 
Hogy erre nem jöttem rá. Bonyolultabb megoldást kerestem, miközben az egyszerű kézenfekvő lett volna.
(#) kkrisz75 válasza mrobi hozzászólására (») Dec 2, 2012 /
 
Értem mire gondolsz, csak lehet rosszul fogalmaztam a válaszban..

Megpróbálom máshogy.
Az megint csak bejövő jelek számától függ.. illetve a jeladó kerék fog számától(mindegy hogy ez most küllő, vagy mágnes,vagy opto kapu..)
Ha 1db van a keréken vagyis és 1 fordulat alatt 1 jel jön be, vagy 5-10-20 jel jön be 1 fordulat alatt nem mindegy.

Ezt ki kell számolni. Valamit fixnek kell venni.. pl 10et fordul és kiszámolod több egymás utáni idővel a sebességet. Ugyan oda jutsz, hogy több jel kell, hogy rövidebb lehessen a mérési vagyis a frissítési idő.
(nézd meg a mágneses kerékpár mérő órák milyen lassan változnak. Lassú a frissítésük. 1 jel / fordulat)

Tmr makróban számoltatsz és mikor RBport megszakít kiértékelsz, majd külön kell frissíteni az LCD-t. Esetleg figyelteted, hogy történt-e változás és csak akkor frissítesz.

Én kihagytam a külön frissítést, egybe tettem a mérési idővel így a jeleket számolom fix idő alatt.

nem rossz a megoldás, abból sok van, a tervezett kivitelezés esetén a végeredményt kell kiszámolni előre, lés úgy kiderül mivel jársz jobban.

A matematikája cserélhető oda vissza.
Következő: »»   106 / 360
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem