Forum: Mikrocontroller und Digitale Elektronik Verhältnis Reglerausgang und Stellgröße


von Carsten M. (ccp1con)


Lesenswert?

Hallo Leute,

Ich “bastle“ gerade einen Quattrokopter und habe eine Frage (neben 
tausend anderen :-).

Die zu regelende Größe ist  zum Beispiel mein X-Achsenwinkel, dessen 
Wertebereich in der Praxis zwischen -50 und +50 Grad liegt.
Der Regler soll die Motordrehzahlen regeln um den Winkel möglichst um 0 
Grad zu halten (falls keine andere Sollgröße vorliegt).
Die Stellgröße die der Regler so im allgemeinen errechnet liegt im 
Bereich -200 bis +200 (ja nach Parametrisierung).
Aber die zu stellenden Drehzahlen liegen im Bereich 0 bis 8000 U/min.

Wie und wo soll ich das am besten anpassen?

von Matthias L. (Gast)


Lesenswert?

>liegt im Bereich -200 bis +200

Warum? Hast du den Regler schon fertig, ohne dir Gedanken über den 
Regelkreis gemacht zu haben?

von Karl H. (kbuchegg)


Lesenswert?

> Bereich -200 bis +200 (ja nach Parametrisierung).
> Aber die zu stellenden Drehzahlen liegen im Bereich 0 bis 8000 U/min.
>
> Wie und wo soll ich das am besten anpassen?

Mit einer lineare Gleichung umrechnen geht nicht?
(Ausserdem bezweifle ich, dass du konkret die Drehzahl stellst. Du gibst 
einfach Gas und was dann auch immer sich für eine Drehzahl einstellt, 
die stellt sich eben ein).

Lineare Gleichung:

   y = k*x + d

x ist dein Wert der aus dem PID Regler rauskommt, y ist die 
'Gaskorrektur' die du haben willst. k und d musst du so finden, dass 
dann eben (nehme ich mal an) die Gaskorrektur rauskommt, die du am 
Gaswert jedes Motors anbringen musst.
Jeder Motor hat seine eigene Gleichung! (ok, der rechte und der linke 
können wahrscheinlich zusammengefasst werden, wenn der eine etwas mehr 
Gas gibt, gibt der andere etwas weniger. Du willst ja haben, dass der 
Regler das Gefährt wieder in die waagrechte zurückbringt. Ich weiß aber 
nicht, ob dir das Ganze dann nicht anfängt abzusacken oder wegzusteigen. 
Schlimmstenfalls müsste man für positive und negative Werte dann eben 2 
verschiedene Gleichungen nehmen)

von Carsten M. (ccp1con)


Lesenswert?

Danke

@Lippy
Es ist ein Softwarregler. So "Regler schon fertig" hat eigentlich keine 
Bedeutung. Welche Gedanken macht man sich üblicherweise vorher?

@Karl-Heinz
>Mit einer lineare Gleichung umrechnen geht nicht?
Geht sicher aber ist es auch der richtige Weg?
Es ist ja eine Art Skalierung hat das Einfluss auf die Reglung?

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


Lesenswert?

Carsten M. schrieb:
> Es ist ja eine Art Skalierung hat das Einfluss auf die Reglung?

Nicht auf das Regelverhalten, aber der Regler muss natürlich 'wissen', 
welche Steuerwerte als Maximum erlaubt sind. Schau dir mal die 
Application Note AVR221 an, da wird ein PID Regler beschrieben, der 
recht einfach ist und vermutlich alles hat, was du brauchst. Die 
optimalen Werte für P,I und D musst du natürlich über das Einbringen von 
Störgrössen ermitteln.

von Matthias L. (Gast)


Lesenswert?

>Welche Gedanken macht man sich üblicherweise vorher?

Was man programmieren will. Oder hast du einfach losprogrammiert?


In deinem Fall würde ich erstmal den Regelkreis zeichnen, 
übertragungsfunktionen ermitteln und den Regler bestimmen. Prüfen, 
welche Werte wo zu erwarten sind... usw..

Dann weiss man, welchen Algorithmus man braucht, wie gross die Variablen 
sein müssen/werden, etc...


> Es ist ja eine Art Skalierung hat das Einfluss auf die Reglung?

Natürlich. Es ist ja, wie du sagtest, eine SKalierung, auch P-Verhalten 
genannt...

von Carsten M. (ccp1con)


Lesenswert?

>Ausserdem bezweifle ich, dass du konkret die Drehzahl stellst. Du gibst
>einfach Gas und was dann auch immer sich für eine Drehzahl einstellt,
>die stellt sich eben ein

Da ich den Motorregler selber programmieren kann, ist mein momentaner 
Ansatz schon die angeforderte Drehzahl zu übertragen. Im Motorregler 
werkelt dann noch ein PID Algorithmus um die Drehzahl einzustellen und 
zu halten. Ich glaube dass macht die ganze Reglestrecke komplizierter 
als nötig.

Also wieder zurückgerudert und ich werde nun nur "Gas oder Gasweg" 
übergeben. Praktisch also den MDC (master duty cycle) im Wertebereich 
von 1200 (low RPM) bis 18000 (bei mir 80% DC).

Mal sehen, ob ich die Strecke dann stabil bekomme.

Frage: was erwarten käufliche Motorregler als Eingangsgröße?

von Karl H. (kbuchegg)


Lesenswert?

Carsten M. schrieb:
>>Ausserdem bezweifle ich, dass du konkret die Drehzahl stellst. Du gibst
>>einfach Gas und was dann auch immer sich für eine Drehzahl einstellt,
>>die stellt sich eben ein
>
> Da ich den Motorregler selber programmieren kann, ist mein momentaner
> Ansatz schon die angeforderte Drehzahl zu übertragen. Im Motorregler
> werkelt dann noch ein PID Algorithmus um die Drehzahl einzustellen und
> zu halten.

Also doch ein Regler und kein Steller.

> Ich glaube dass macht die ganze Reglestrecke komplizierter
> als nötig.

Wieso? Ist doch gut so.

von Karl H. (kbuchegg)


Lesenswert?

Carsten M. schrieb:

>>Mit einer lineare Gleichung umrechnen geht nicht?
> Geht sicher aber ist es auch der richtige Weg?
> Es ist ja eine Art Skalierung hat das Einfluss auf die Reglung?

Sicher ist das sowas wie eine Skalierung.
Aber du musst dir im klaren sein, dass du im Grunde immer noch denselben 
Wert hast. Nur eben in einem anderen Zahlensystem.

Ob du eine Regelung auf Meter oder auf Millimeter auslegst, ist im 
Prinzip auch eine Skalierung. Und trotzdem ist es derselbe Wert, nur 
eben mal 1000.

Und bei dir ist es dann eben die Umrechnung deiner Stellgröße in eine 
Drehzahl.

> Mal sehen, ob ich die Strecke dann stabil bekomme.

Einen PID Regler kriegt man mit seinen P-Konstanten stabil.

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.