DIY Riadiaca jednotka motora

Ak máte problém s elektronikou v aute a motorke, alebo proste chcete do auta a motorky niečo zapojiť

Moderátori: mirosne, Moderátori

Používateľov profilový obrázok
niki31
Stály člen
Stály člen
Príspevky: 172
Dátum registrácie: 05 Feb 2010, 00:00
Bydlisko: Žilinský kraj
Vek: 49

Re: DYI Riadiaca jednotka motora

Príspevok od používateľa niki31 » 19 Okt 2017, 12:01

Ja mám krok v tabuľke po 500 otáčok. Znížením počtu vzorkov sa akurát dosiahne že vo výstupnej hodnote prestanú kolísať jednotky a kolísanie sa posunie o rád vyššie, kolísať začnú aj stovky. Uvažujem či by nešlo nejak výsledok derivovať, ako tu už niekto spomenul, lenže neviem si dosť dobre predstaviť ako to aplikovať. Musím to premyslieť.
0
Niki31

Používateľov profilový obrázok
xmilos
Ultimate člen
Ultimate člen
Príspevky: 3671
Dátum registrácie: 04 Máj 2011, 00:00
Bydlisko: Povazie

Re: DYI Riadiaca jednotka motora

Príspevok od používateľa xmilos » 19 Okt 2017, 12:13

Mno priamo ECU pre auto nie.

Mno od kial si, bych sa ked tak stavil omrknut.
0

Používateľov profilový obrázok
niki31
Stály člen
Stály člen
Príspevky: 172
Dátum registrácie: 05 Feb 2010, 00:00
Bydlisko: Žilinský kraj
Vek: 49

Re: DYI Riadiaca jednotka motora

Príspevok od používateľa niki31 » 19 Okt 2017, 12:27

Ja nestaviam ECU pre auto, staviam elektrocentrály. Aj keď použijem sériovo vyrábaný motor nemôžem použiť sériovú riadiacu jednotku. To nefunguje. Ecu musí udržiavať otáčky generátora a riadiť ďalšie veci ktoré v aute niesú. Žijem v Olomouci ale s predvádzaním radšej ešte počkám neviem či by mi to moji spoločníci odobrili.
0
Niki31

Používateľov profilový obrázok
Drakoush
Ultimate člen
Ultimate člen
Príspevky: 10964
Dátum registrácie: 07 Feb 2012, 23:22
Bydlisko: Nitra
Vek: 28
Kontaktovať používateľa:

Re: DYI Riadiaca jednotka motora

Príspevok od používateľa Drakoush » 19 Okt 2017, 12:47

To sa robí tak, že sériovú ECU použiješ na funkcie motora a svoju vlastnú na ďalšie. Medzi sebou potom komunikujú cez CAN, alebo binárnymi vstupmi / výstupmi, prípade analóg na komunikáciu ako teplota, tlak oleja a pod.
Sériová ECU dostane tak teda povel k štartu, zastaveniu a voľbe otáčok - 1500 pre diesel, 3000 pre benzín - tomu sa prispôsobuje aj použitý generátor. ECU potom reguluje otáčky podľa záťaže - resp. dávku paliva, otáčky sú v ideálnom prípade nemenné. Druhá jednotka - napr. PLC potom ovláda ATS a dáva pokyn k štartu. Zároveň sleduje zaťaženia a robí opatrenia. Dobrým interfejsom medzi ECU a PLC je napr. ComAp, rrôzme série. Ako pre diesel, tak aj pre benzín, CNG, LPG, zemný plyn.
0
Odkupujem zaujímavé meracie prístroje. Ponuky mailom alebo SS.

Používateľov profilový obrázok
xmilos
Ultimate člen
Ultimate člen
Príspevky: 3671
Dátum registrácie: 04 Máj 2011, 00:00
Bydlisko: Povazie

Re: DYI Riadiaca jednotka motora

Príspevok od používateľa xmilos » 19 Okt 2017, 13:03

Mno tak s nakymi elektrocentralami som mal a vlastne mam do cinenia. Naposledy to bola 100kW, motor tusim od MAN. Mno a tam sa reguilovali nie len otacky, ale aj uhol natocenia generatora, za ucelom prifazovania. Tos a to vsetko len skrtiacou klapkou. Po hoodne dlhom nastavovani ( jedna sa o hotove riesenie ) som pochopil, ze to autor riadenia nak nezvladol. Riesenim dodavatela bola inovovana ECU klapky, hoc podla mna stacilo v nej opravit par chyb.

Kedze ECU pre klapku spolupracovala s dalsim riadiacim systemom (ComAp) a oba mali PID regulaciu. Nakoniec vysvitlo, ze cely navrh stal za prd, pretoze z principu to tak regulovat neslo - z jedneho ergulatora sa musel spravit regulator PD. Zohnal som projekranta a ten to tak nak medzi riadkami priznal.
Nastastie v tomto ide o velke hmoty a kolisanie otacok pre jednotlive vybuchy nie su podstatne.

A sme na zaciatku, ak to chces spravit na profesionalnej urovni, potrebujes matematicky model. Aspon priblizny.
0

Používateľov profilový obrázok
niki31
Stály člen
Stály člen
Príspevky: 172
Dátum registrácie: 05 Feb 2010, 00:00
Bydlisko: Žilinský kraj
Vek: 49

Re: DYI Riadiaca jednotka motora

Príspevok od používateľa niki31 » 19 Okt 2017, 13:08

No tak vidíte, už vieme ako sa to robiť nemá. :D
0
Niki31

Používateľov profilový obrázok
xmilos
Ultimate člen
Ultimate člen
Príspevky: 3671
Dátum registrácie: 04 Máj 2011, 00:00
Bydlisko: Povazie

Re: DYI Riadiaca jednotka motora

Príspevok od používateľa xmilos » 19 Okt 2017, 13:10

Podla poctu kusov bych sa priklonil k pouzitiu ECU od vyrobcu motora, alebo od neho ziadal onen model.
Tie otacky ti kolisu aj v zatazi?
Ta optika bol ci napad?
0
Naposledy upravil/-a xmilos v 19 Okt 2017, 14:00, upravené celkom 1 krát.

martin knocik
Ultimate člen
Ultimate člen
Príspevky: 1639
Dátum registrácie: 23 Jan 2008, 00:00
Bydlisko: Trenčianska Turná
Vek: 33
Kontaktovať používateľa:

Re: DYI Riadiaca jednotka motora

Príspevok od používateľa martin knocik » 19 Okt 2017, 13:48

Mne sa zdá palivová mapa 8x8 zdá moc hrubá, aspon tie mapy ktore som odmeral neboli uplne pploché, boli mierne zaoblené, strmo klesajuce k nizkym otačkam. Robil som simulatory benzívoého aj naftového motoru, ja som používal mapy s kmrokom po 25 otačkach. parametre motoru moji spolupracovníci odmerali s krokom po 200 otačok, ja som to v matlabe hodil do Curve fitting toolboxu a interpolaciou vytvoril si jemnu mapu s krokom 25 otačok. Zistenie otačok bolo jednoduché, senzor (asi indukčný) so 60 zubami (jeden vynechaný), frekvencia sinusovky zo senzora zodpovedala otačkam motora. Senzor bez vynechaneho zubu by bol ešte jednoduchší na spracovanie.
Prílohy
hruba mapa
hruba mapa
jemna mapa
jemna mapa
0
http://mkbci.com

FEL UNIZA 2015, Ing.

ľudstvo je vírus ktorý napadol Zem

nerobme si ťažkú hlavu z debilov čo nám ani po členky nesiahajú, buďme radi že my dačo dokážeme a smejme sa im akí sú sprostí

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: DYI Riadiaca jednotka motora

Príspevok od používateľa peterple » 19 Okt 2017, 17:37

niki31 napísal: Meranie prebieha tak že časovač beží a zvyšuje 24 bitové počítadlo. Po pootočení motora o 180° sa vyvolá prerušenie a uloží sa počet nameraných tikov časovača, časovač sa vynuluje a už počíta počet tikov do ďalšieho prerušenia. Prerušenie nastáva vždy v mieste základného predstihu 8° pred HÚ.

Na jednu polotačku teda pripadá 167772216 impulzov pri voľnobehu.
Prečo nuluješ stav čítača? Prídeš o dovtedy napočítané impulzy. Prerušenie má latenciu, za tú dobu už obsah čítača môže byť kludne posunutý. Lež to ty vyčítaš a vynuluješ tak už môže pripočítať ďalšie pulzy. Aký je tam preddelič. Ak nie 1 tak to je ďalší problém. Aby to bolo presné tak by si mal tým impulzom čo vyvolávaš prerušenie hw odchytiť stav čítača a ten odpočítať od posledného napočítaného stavu. Tak dostaneš presný rozdiel a nestratíš ani pulz. Volá sa to Input Capture Register.

S tým počtom pulzov na polotáčku to je pravda? To mi ale nič moc nehovorí lebo neviem koľko trvá. Keby sa radšej napísal aká je tam max frekvencia na vstupe toho čítača.

A vlastne na čo počítaš tie impulzy a nemeriaš čas medzi tými dvomi prerušeniami ako som ti písal? Dostaneš tak dobu trvania jednej otáčky a otáčky vypočítaš ako prevrátenú hodnotu. (samozrejme nad int nie float). Dobu otáčky môžeš kludne zmerať aj s presnosťou na 100 (50) ns. Záleží len na tom ako máš taktovaný procesor a ako máš presný oscilátor.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Používateľov profilový obrázok
niki31
Stály člen
Stály člen
Príspevky: 172
Dátum registrácie: 05 Feb 2010, 00:00
Bydlisko: Žilinský kraj
Vek: 49

Re: DYI Riadiaca jednotka motora

Príspevok od používateľa niki31 » 19 Okt 2017, 19:21

K tej palivovej mape. 8x8 je pre moju potrebu dosť, odstupňovaná je po 500 ot. iba do 4500 ot. Pôvodne som mal 12x12 ale bolo to príliš jemné tak som to zmenšil. Keby som točil viac otáčok hrozilo by poškodenie generátora tak som to takto obmädzil. Rozlíšenie je dostatočné, pretože sa používa štvorcová lineárna interpolácia zo štyroch okolitých buniek v tabuľke. Mám na to spravený taký indikátor, ukazuje kde presne sa nachádza bod z ktorého sa berie aktuálna hodnota. Pridám obrázok.

Peterple, reaguješ ale asi ani nečítaš čo píšem. V prerušení sa ihneď ukladá nameraná hodnota tak ako by som o ňu mohol prísť?
Réžia okolo prerušenia trvá asi 0,5uS, táto doba je absolútne zanedbateľná. Čítač stále beží pretože motor tiež beží a nepočká kým si ja niečo prepočítam. Obsluha prerušenia a časovača trvá stále rovnaký počet taktov procesora, preto nemôže mať nelineárny vplyv na nameranú hodnotu. Hodnota by bola väčšia alebo menšia ale v každom meraní rovnako. Strata taktov aj keď tu žiadna nieje by musela byť v tisícoch a viac aby sa nejako prejavila.
Prílohy
ecu.jpg
0
Niki31

Používateľov profilový obrázok
xmilos
Ultimate člen
Ultimate člen
Príspevky: 3671
Dátum registrácie: 04 Máj 2011, 00:00
Bydlisko: Povazie

Re: DYI Riadiaca jednotka motora

Príspevok od používateľa xmilos » 19 Okt 2017, 20:03

Este ma napada vyhodnocovat otacky az po 4 zazehoch. 1. valec by mal mat rovnake zrychlenie, resp. roznost zrychlenia by mala byt medzi valcami ( konstrukcia, vole...). Slus ako kolise trvanie 2 otacok a ako sa medzi sebou lisia, ci bys nedostal menej kolisavu hodnotu.
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: DYI Riadiaca jednotka motora

Príspevok od používateľa peterple » 19 Okt 2017, 20:57

Práveže čítam ale nechápem ani zamak.
Odkiaľ asi mám vedieť ako to máš urobené a že obsluha prerušenia trvá 0,5μs. To máš písané v asm a presne vieš kde sa ti kód uberá, alebo v C a kde a koľko je tam bloknuté prerušenie nevieš? Obsluha môže trvať konštantnú dobu, ale to za aký čas sa dostane na radu táto doba konštantná byť nemusí a záleží aj na hlavnom programe ako je napísaný. A to zase vieš len ty a samozrejme že v tom chyba asi nebude. Píšeš že v prerušení nuluješ čítač. Ako mám vedieť či si to stihol alebo nestihol než sa čítač posunul a o koľko. Doteraz neviem aká f je na vstupe čítača. Iba že na pol otáčku máš 167milionov pulzov na voľnobehu. No tak to mi príde že je niečo nereálne.

Jeden člen fóra má také pravidlo. Múdremu neraď. Tak sa toho budem držať. Lebo fakt netuším prečo počítaš nejaké impulzy a nemeriaš periódu toho prerušovacieho signálu keď chceš vedieť otáčky. Tých pulzov je snáď pri každej otáčke rovnaký počet nie? Počet prerušení je priamoúmerný otáčkam.

Ty si chcel poradiť, ale nedal si žiadny popis ako to máš urobené. A tvoje odpovede mi entrópiu zvyšujú a nie znižujú. Ale možno som nechápavý iba ja a poradia iný. Ja mám jen takú vedomosť ak teda otáčky nekolíšu, meranie je v poriadku tak nameraná hodnota kolíše maximálne o nejakú chybu merania, ktorú si viem na základe princípu merania odhadnúť. Ak kolíšu rádovo viacej tak, potom ako hovorieval učiteľ na strednej - voľačo voľakde nefunguje.

Pokiaľ je to naozaj principiálna nestabilita tak by som skúsil Kalmanov filter, ale to je vec o ktorej figu viem.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Používateľov profilový obrázok
niki31
Stály člen
Stály člen
Príspevky: 172
Dátum registrácie: 05 Feb 2010, 00:00
Bydlisko: Žilinský kraj
Vek: 49

Re: DYI Riadiaca jednotka motora

Príspevok od používateľa niki31 » 19 Okt 2017, 21:41

Tak ti to teda ešte vysvetlím. Keď vieme že impulz trvá 0,0000008 sekundy, tak súčet impulzov nám dá čas za ktorý sa otočí kľuka o 180°.

Otáčky motora sa teda vypočítajú podľa vzorca:
Otáčky = 37500000/hodnota času nameraná v TMR1
= (60*2/360*90/0.0000008)/TMR1
= (30*1250000)/TMR1

TMR1 je premenná ktorá obsahuje nameraný počet pulzov.

Na frekvencii procesora vôbec nezáleží. Program je samozrejme v assembleri.
0
Niki31

Používateľov profilový obrázok
misocko
Ultimate člen
Ultimate člen
Príspevky: 4319
Dátum registrácie: 14 Jún 2009, 00:00
Vek: 47

Re: DYI Riadiaca jednotka motora

Príspevok od používateľa misocko » 19 Okt 2017, 22:07

suhlasim s xmilosom, isiel by som do pocitania otacok z jednej celej otacky (urcite staci aj zapalovanie) , alebo dokonca z dvoch otacok (snimac na vacke) - tu by som uz mozno zapalovanie riesil dalsim vstupom (ten ktory pouzivas aj teraz)
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: DYI Riadiaca jednotka motora

Príspevok od používateľa peterple » 19 Okt 2017, 23:13

Posledná otázka ak máš so mnou ešte trpezlivosť. Impulzy ktoré počítaš majú vždy dĺžku 80ns bez ohľadu na to ako rýchle sa otáča motor. Asi to bude tým novom alebo čím, ale nerozumiem:
  1. optický snímač otáčania je na rozdeľovači.
  2. rozdeľovač sa otočí raz za otáčku motora.
  3. to vyprodukuje štyri impulzy ktoré sú privedené na prerušovací vstup reagujúci na hranu.
  4. na vstup čítača sú privedené impulzy s konštantnou dĺžkou 80ns a ich počet dáva dobu otočenia. Toto by bolo v celku jasné ak by tie pulzy išli z hodín procesora ale píšeš že na frekvencii procesora vôbec nezáleží
  5. tieto pulzy sa berú teda kde? Z nejakej presnej časovej základne?
  6. čítač počíta zrejme priamo tieto impulzy bez nejakého preddeliča.
Má tvoj procesor Input Capture Unit? Ak má nebolo by lepšie keby ten stav čítača odchytával priamo hw než to robiť pomocou sw aj keď v prerušení? V takomto prípade nemôžeš stratiť ani pulz.
Ale ak je pravda že tam máš vždy konštantnú latenciu a nevadí ti to lebo je to zanedbatelné tak OK.

V takom prípade by som si všetky tie štyri namerané hodnoty logoval cez seriový port. A potom už len analyzoval. Napríklad či pri konštantných otáčkach nie sú zhodné každá štvrtá. Aký je tam rozptyl pri každej štvrtej hodnote. Z toho by sa dalo odvodiť či má zmysel to čo tu píšu iný, že máš merať celú otáčku a nie po štvrtinách. Ale inde si zase písal že keď je to na motorčeku tak je to naozaj konštanta.
Potom z toho môžeš zistiť či je to náhodné a lebo je to deterministické. V prvom prípade Kalmanov filter, v druhom prípade matematický model.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Používateľov profilový obrázok
xmilos
Ultimate člen
Ultimate člen
Príspevky: 3671
Dátum registrácie: 04 Máj 2011, 00:00
Bydlisko: Povazie

Re: DYI Riadiaca jednotka motora

Príspevok od používateľa xmilos » 20 Okt 2017, 09:20

Mno este jedna vec ma napadla,
podla mna je prepocet otacok pre ucely vyberu z MAP zbytocne plytvanie vykonom, tu bych pouzil MAP, kde nefiguruju oracky, ale rovno priemerovany stav citaca, ktory vyhodnocuje otacky, resp v celom SW kde vstupuju otacky by stacil stav citaca.

Prepocet stacu citaca na otacky bych pouzil len tam kde ttreba - nake HMI a samo v inej periode.
0

Používateľov profilový obrázok
niki31
Stály člen
Stály člen
Príspevky: 172
Dátum registrácie: 05 Feb 2010, 00:00
Bydlisko: Žilinský kraj
Vek: 49

Re: DYI Riadiaca jednotka motora

Príspevok od používateľa niki31 » 20 Okt 2017, 14:00

Chlapi,chlapi. Neustále riešite niečo čo už mám dávno vyriešené. Ja som sa pýtal či sa niekto nestretol s tým ako vykompenzovať nerovnomerný pohyb kľuky v jednom meraní. Nikto sa nechytá tak to vyriešim po svojom, to je všetko.

Nakoniec aby diskusia nestála tak ešte toto:
Niekto sa pýtal prečo optika. Optika je ďaleko presnejšia než nejaké magnety a zuby. Japonci používali výhradne optické snímače, neviem ako je to teraz. Samozrejme kvalitnejšie riešenie býva dražšie a zrejme preto ho u nás nepoužívame.

Ďalej, Peterple rozdeľovač sa vždy točí polovičnými otáčkami než kľuka, preto 90°na roztdeľovači je to isté ako 180°na kľuke. Hore na obrázku je kotúč, pozri si. Keď príde okienko pod snímač vygeneruje sa nábežná hrana, tá vyvolá prerušenie a uloží stav merania času, po ktorý bolo pod snímačom predchádzajúce okienko + mezera medzi okienkami. Máme teda v bufferi čas po ktorý zodpovedá otočeniu kľuky o 180°. Uložením času sa okamžite vynuloval register čítača a už odmeriava čas po ktorý bude trvať ďalšia polotáčka motora.
Podľa čísla bufferi teda vieme koľko trvalo pol otáčky za sekundu a to ľahko prepočítame na otáčky za minutu. Takt časovača je odvodený z kryštálového oscilátora procesora, v mojom prípade 1.25Mhz. Na kmitočte absolútne nezáleží je na nás aký zvolíme. Ale aby bola dosiahnutá dostatočná presnosť treba radšej vyšší kmitočet. Pri 6500 ot./min trvá polotáčka okolo 5mS, aby sme dosiahli ešte akú takú presnosť merania treba mať dostatočný počet pulzov aj na túto krátku dobu. V mojom prípade 1250 pulzov na mS.
To minimalizuje aj chybu merania, napr. stratu pulzov v preddeličke kmitočtu časovej základne, na strate jednoho alebo aj 100 pulzov nezáleží pretože otáčku reprezentujú tisíce impulzov a samozrejme ani na strate jednej otáčky nezáleží.
Ale zeranie každej otáčky je dôležité, my musíme reagovať na každú otáčku a zdvih motora, nemôžem čakať niekoľko otáčok na spriemerovanie. Každý válec musí dostať palivo aj iskru ktorá sa vypočíta ešte pred kompresiou.
Niektorí si myslia že ECU motora je len nejaké riadenie predstihu ale tak to nieje, je tam hromada vecí ktoré treba riadiť a otáčky majú dopad na väčšinu z nich. Môj procesor má CCP moduly, ako sa niekto pýtal, celkovo 5, jeden časuje zapaľovanie a ďalšie 4 jednotlivé vstreky.

xmilos, takto vyberať hodnoty z tabulky nejde. Keby si motoru podstrkával len hodnoty z tabuľky tak by ti motor vyskočil z úchytov. Hodnota sa musí interpolovať horizontále aj vertikálne, podľa susedných okienok aby boli prechody z jednej hodnoty na druhú plynulé. Už som to písal hore.
0
Naposledy upravil/-a niki31 v 20 Okt 2017, 14:08, upravené celkom 1 krát.
Niki31

Používateľov profilový obrázok
xmilos
Ultimate člen
Ultimate člen
Príspevky: 3671
Dátum registrácie: 04 Máj 2011, 00:00
Bydlisko: Povazie

Re: DYI Riadiaca jednotka motora

Príspevok od používateľa xmilos » 20 Okt 2017, 14:06

niki31 napísal: ako vykompenzovať nerovnomerný pohyb kľuky
ako som pisal, meranim po 2 otackach.
0

Používateľov profilový obrázok
niki31
Stály člen
Stály člen
Príspevky: 172
Dátum registrácie: 05 Feb 2010, 00:00
Bydlisko: Žilinský kraj
Vek: 49

Re: DYI Riadiaca jednotka motora

Príspevok od používateľa niki31 » 20 Okt 2017, 14:14

To si písal, lenže chyba nameraná dvakrát po sebe je dvojnásobná. A ak si myslel merat raz za 2 otáčky tak to chybu nijak neovplyvní, to je to isté ako spriemerovanie.
0
Niki31

Používateľov profilový obrázok
xmilos
Ultimate člen
Ultimate člen
Príspevky: 3671
Dátum registrácie: 04 Máj 2011, 00:00
Bydlisko: Povazie

Re: DYI Riadiaca jednotka motora

Príspevok od používateľa xmilos » 20 Okt 2017, 14:29

Ked pocitas s tym, ze kazdy vybuch na valec ma +- rovnaku chybu, tak ich vyskyt eliminujes. Ale chcelo by to prakticke meranie.

Pre vyhodnocovanie otacok brat dve otacky. Neviem ci mas priamy vstrek a ci sa u benzinu robia korekcie vstreku na valec, tak ako to maju diessle. Tos tam meranie zrychlenia na valec ( meranie otacok za kazdym pulzom) vyuzijes.

Mno na optiku som sa pytal ja, neobavas sa zanasania prachom? Ale ked si to prevzal od japoncikov, asi je to odladene.
Rozdelovac je pouzity len na tento snimac, alebo ma aj inu funkciu?
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok