Forum: Mikrocontroller und Digitale Elektronik Drehzahlregelung RC-Car


von Patrick J. (schneckal)


Lesenswert?

Guten Morgen,

Ich hab ein RC-Car mit Brushless DC, Allrad betrieben. Ansteuerung 
funktioniert per PWM-Signal an den Electronic Speed Control.

Ich bin gerade dabei eine Drehzahlregelung mit dem Raspberry Pi zu 
realisieren. Soweit funktioniert die Drehzahlerfassung, mittels 
Reedkontakt und Interrupt.

Im Prinzip soll man im vorhinein dem Auto eine Soll-Geschwindigkeit 
mitgeben und das Auto sollte dieses Tempo fahren.
Das Problem liegt jedoch darin, dass es nicht zu schnell wegfahren soll 
und sich dann diesem mitgegebenen Tempo nähren soll.

Den Endzustand würde ich so regeln
1
 
2
 if( ist < soll)
3
       //gas geben
4
 else if( ist > soll )
5
       //gas reduzieren

So nun stehe ich vor dem Problem, wie regelt man die Anfang bzw die 
Beschleunigung des Autos?

Danke.

lg patrick

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Patrick J. schrieb:
> So nun stehe ich vor dem Problem, wie regelt man die Anfang bzw die
> Beschleunigung des Autos?

Mit einem Regler. Dieser bekommt Soll- und Istwert und rechnet daraus 
die notwendige Stellgrösse.
Sowas kennt man unter P-, PI- und PID Regler. Erklärt wird das Ganze in 
Theorie und Praxis in der guten Application Note AVR221 von 
Microchip/Atmel.

http://www.atmel.com/Images/doc2558.pdf

von gasgeben (Gast)


Lesenswert?

Du brauchst irgendeine Zeitbasis im System, am besten einen 
Timerinterrupt.
Gasgeben wie beim Autofahren, über eine gewisse Zeit hinweg die 
Geschwindigkeit von der momentanen Ist-Geschwindigkeit (kann auch 0 
sein) auf die Soll-Geschwindigkeit anpassen.

von Der Andere (Gast)


Lesenswert?

Wenn das Auto nicht zu schnell beschleunigen soll, brauchst du eine 
Stellwertbegrenzung, oder ein übergeordneter Stromregler.

von Radler (Gast)


Lesenswert?

Ich hätte eine Frage, die aber nicht direkt zum Thema gehört.

In den App-Notes wird oft auf Softwarebeispiele und auf weitere 
Informationen verwiesen. Wo kann ich diese finden?

Gruß Johannes

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Radler schrieb:
> In den App-Notes wird oft auf Softwarebeispiele und auf weitere
> Informationen verwiesen. Wo kann ich diese finden?

Auf der Website des Herstellers. Im o.a. Fall könntest du also zu
http://www.atmel.com gehen und dann 'AVR221' in die Suche tippen.
In diesem Fall steht schon im ersten Suchergebnis ein 'Download 
Software' Link.

Ein andere Weg ist, einen nahzu beliebigen AVR Kontroller auszuwählen 
und dann mal unter Resources zu sehen, was es für diesen an Application 
Notes gibt.

von Radler (Gast)


Lesenswert?

Danke!

von Patrick J. (schneckal)


Lesenswert?

gasgeben schrieb:
> Du brauchst irgendeine Zeitbasis im System, am besten einen
> Timerinterrupt.
> Gasgeben wie beim Autofahren, über eine gewisse Zeit hinweg die
> Geschwindigkeit von der momentanen Ist-Geschwindigkeit (kann auch 0
> sein) auf die Soll-Geschwindigkeit anpassen.

danke aber jedoch weiß ich nicht, wie ich das realisieren soll.
Wie meinst du das genau?



Matthias S. schrieb:
> Mit einem Regler. Dieser bekommt Soll- und Istwert und rechnet daraus
> die notwendige Stellgrösse.
> Sowas kennt man unter P-, PI- und PID Regler. Erklärt wird das Ganze in
> Theorie und Praxis in der guten Application Note AVR221 von
> Microchip/Atmel.
>
> http://www.atmel.com/Images/doc2558.pdf

OK danke

PID-Regler ist nun implementiert.

von Steven M. (8023)


Lesenswert?

Bringen die einschlägigen speedregler nicht rampen mit? Mir war so...

von Marc (Gast)


Lesenswert?

Patrick J. schrieb:
> PWM-Signal an den Electronic Speed Control


Mal sehen ob ich das richtig verstanden habe:

Wenn du also in der Lage bist das "richtige" PWM Signal an den 
Geschwindigkeitsregler zu übermitteln sollte dies kein Problem sein:

Also:
Du kannst also mit dem PI "das selbe" PWM Signal an den Controller 
senden , wie der Empänger deiner Fernbedienung ?

Wenn Ja:

Unter umständen mmeinst du das was unter expotentialfunktio  gemeint 
ist,
im Grunde nix anderes wie eine Zeitbasis oder Rampe.

Sende deine Zielgeschwindigkeit einfach mittels einer Rampe mit der 
gewünschten Anstiegszeit.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.