Motorstyr med arduino?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
FormerMazda
Inlägg: 6446
Blev medlem: 27 februari 2006, 14:59:36
Ort: Asby (Östergötland)

Motorstyr med arduino?

Inlägg av FormerMazda »

Usch, det börjar gro idéer i huvudet igen..

Men jag kör en fyrhjuling, en CF-MOTO X5. Detta är en förgasad 1-cylindrig maskin på 500cc.
Visst har den elektronisk tändning och visst fungerar den rätt bra ändå. Men man har läst lite trådar om folk som optimerat både förgasarinställningar och hängt på andra tändmoduler med lite bättre kurvor i. Detta gör mycket på motorkaraktären! Visst går effekten upp en del, men största vinsten är att de går svalare och snålare.

Nu är det dessutom en tok som byggt om till insprut och överladdning, det satte förstås igång en del tankar i huvudet på mig..

Ponera att man skulle vilja bygga ett eget styrsystem till detta, arduino säger jag då det är det jag behärskar nåt om nåt.
Men hurvida den är snabb nog eller inte har jag svårt att avgöra.

Det man minst vill ha är position på veven in, tändpuls och spridarpuls ut. Sen skulle det vara fin lyx att ha återkoppling via lambda och övertryck om man överladdar.

Tankar:
Motorn varvar väl 7000rpm max. Så det skulle ge (7000*360) * 60 = 151 200 000 pulser per sekund.. Eller 151,2MHz
Det är nog mer än vad som låter rimligt för en arduino att hinna med. Eller tänker jag fel?

Sen ska man ha en kurva som ger en tändpuls vid rätt vinkel och en kurva för spridarn, både vid vinkel men också rätt öppningstid.

Sen vill man ha återkopplingen via lambda och tryck och efter detta reglera tändning och bränsle. och en knacksensor, det vore fint.

Spontana tankar om hastigheten på mikroprocessorn?
Ja, det finns att köpa färdiga produkter. Men det var inte det jag frågade efter. Heller inte om det var lätt eller svårt. :wink:
Användarvisningsbild
Andax
Inlägg: 4379
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Re: Motorstyr med arduino?

Inlägg av Andax »

Du ska dela med 60 för att få pulser per sekund.
Användarvisningsbild
FormerMazda
Inlägg: 6446
Blev medlem: 27 februari 2006, 14:59:36
Ort: Asby (Östergötland)

Re: Motorstyr med arduino?

Inlägg av FormerMazda »

Ah! Helt klart så!
Faktum är att gjorde det först men tyckte det blev fel. :?

Så, (7000*360) / 60 = 42 000 pulser per sekund eller då 42kHz. Rimligare.

Läser lite om megasquirt, de baserar en DIY kontroller på 68HC908. Och denna snurrar i 8MHz?
Arduino mega 2560 snurrar i 16MHz. Ja, arduinon blir sämre programmerad. Men tillräckligt dåligt för att inte klara biffen blir frågan då?
Användarvisningsbild
Krille Krokodil
Inlägg: 4062
Blev medlem: 9 december 2005, 22:33:11
Ort: Helsingborg

Re: Motorstyr med arduino?

Inlägg av Krille Krokodil »

A piece of cake om du inte skriver programmet helt korkat...
Johanb
Inlägg: 3406
Blev medlem: 26 mars 2006, 22:26:12
Ort: Smedjebacken

Re: Motorstyr med arduino?

Inlägg av Johanb »

Du kan ju ladda ner asm-filen för megasquirt och titta på, även om man inte är insatt i assembler så finns det gott om kommentarer som förklarar lite av funktionen.
Jämförelsen av processorerna blir komplex då megasquirt är skriven i asm men jag tror att processorn behöver flera klockcykler för varje instruktion. Atmega å ena sidan gör de flesta instruktioner på en klockcykel men å andra sidan baseras arduino på C och har en del egna libbar som ger overhead.
Om det handlade om "vanlig C" skulle jag nog sätta mina slantar på atmega (dubbla klockfrekvensen, encykelsinstruktioner och helt ok optimering vid kompilering).
Du vet om det fungerar när du har provat ;)
Megasquirt baserar sina event runt en interuptrutin som exekveras med 100uS intervall, fixar du det med arduino är det en bra början, sen vill du ha lite tid över för beräkningar mm.
Användarvisningsbild
Krille Krokodil
Inlägg: 4062
Blev medlem: 9 december 2005, 22:33:11
Ort: Helsingborg

Re: Motorstyr med arduino?

Inlägg av Krille Krokodil »

http://playground.arduino.cc/code/timer1

Hur många pulser/varv ger vinkelsensorn?
Användarvisningsbild
Klas-Kenny
Inlägg: 11842
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: Motorstyr med arduino?

Inlägg av Klas-Kenny »

FormerMazda skrev:Så, (7000*360) / 60 = 42 000 pulser per sekund eller då 42kHz. Rimligare.
Vad får du *360 ifrån? :?
Användarvisningsbild
FormerMazda
Inlägg: 6446
Blev medlem: 27 februari 2006, 14:59:36
Ort: Asby (Östergötland)

Re: Motorstyr med arduino?

Inlägg av FormerMazda »

Ett ett hjul på veven upplöst med 1°.

Saken är att man vill veta var motorn är för att tända rätt och så.

Men saken är görbar alltså. Då är det bara tid som behövs då! :?
Användarvisningsbild
Krille Krokodil
Inlägg: 4062
Blev medlem: 9 december 2005, 22:33:11
Ort: Helsingborg

Re: Motorstyr med arduino?

Inlägg av Krille Krokodil »

Behövs inte så många pulser per varv, om tex har en givare med 36 pulser/varv och ska tända på 76 grader så räknar du bara pulserna fram till 60 grader, där slår du igång timern och stoppar vid 70 graders-pulsen, på med timern igen, vid 6/10 av den uppmätta tiden tänder du.
Användarvisningsbild
FormerMazda
Inlägg: 6446
Blev medlem: 27 februari 2006, 14:59:36
Ort: Asby (Östergötland)

Re: Motorstyr med arduino?

Inlägg av FormerMazda »

Fast borde det inte bli noggrannare med 360 pulser?
Och mindre krävande än timers?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Motorstyr med arduino?

Inlägg av sodjan »

Enda problemet med Krilles modell är om varvtalet ändras markant mellan 60-70
grader och 70-76 grader eftersom man använder "död räkning" under den tiden.
Man utgår alltså från att varvalet är samma under båda perioderna. Om man
räknar med att den skillnaden är försumbar så blir det inte mindre noggrant
än att ha pulser hela vägen. Det blir dock lite mer för programmet att hålla
redan på än om man bara räknar pulser rakt av...
Användarvisningsbild
Krille Krokodil
Inlägg: 4062
Blev medlem: 9 december 2005, 22:33:11
Ort: Helsingborg

Re: Motorstyr med arduino?

Inlägg av Krille Krokodil »

Om man kan uppskatta motorns maximala acceleration varv/s^2 så kan man uppskatta det maximala felet och avgöra vad som är rimligt, detta kan man göra med en sensor som ger 1 puls/varv och en liten programslinga som mäter varvtiderna och sparar den största skillnaden mellan två varv.

Vill man förfina min metod kan man tex mät tiden för två följande 10 graders avsnitt och räkna ut aktuell acceleration och kompensera för det.

Man får skissa och räkna lite för att avgöra i vilken härad felet kan tänkas bli med en viss metod, är det 0.1, 1 eller 10 grader?
Användarvisningsbild
FormerMazda
Inlägg: 6446
Blev medlem: 27 februari 2006, 14:59:36
Ort: Asby (Östergötland)

Re: Motorstyr med arduino?

Inlägg av FormerMazda »

Men fortfarande, borde inte en massa uträknande, tidtagande, timerande och annat kräva mer än att helt enkelt räkna pulserna där 1 puls = 1 grad?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Motorstyr med arduino?

Inlägg av sodjan »

Jo, det är självklart att det gör, det är ju det du har Arduinon till... :-)

Men visst, men får göra lite uppskattningar av hur Arduinons egen "runtime"
miljö eventuellt påverkar. Det hela blir ju lite av "realtid" så att säga, och det
är en typisk applikation som kräver lite "hantverksmässighet" för att
få ihop det.

Sen så är det sannaolikt enklare rent mekaniskt med en skiva med färre taggar.
Inte lika lätt för att sätta igen sig o.s.v. Du får bedöma hela paketar och
se vad du tror på mest. En del uppskattar programmeringsutmaningar, andra
gör det inte... :-)
Användarvisningsbild
FormerMazda
Inlägg: 6446
Blev medlem: 27 februari 2006, 14:59:36
Ort: Asby (Östergötland)

Re: Motorstyr med arduino?

Inlägg av FormerMazda »

Det jag tror mest på är en triggerskiva på vevaxeln, plocka signalen med hallgivare. Hela grejen får sitta kapslat där snörstarten idag sitter.
Snörstarten är rätt onödig eftersom man ändå ha elstart, och att snörstarta enstånk 500cc gör man helst inte ändå. :wink:

Men visst blir det en utmaning att skriva ett program till detta, så här på rak arm vet jag faktiskt inte hur jag skulle gå tillväga. Det är sånt man funderar på när man sitter på tänkartronen. (toa)
Skriv svar