Moin moin,
Ich hatte eine Wippe gebaut (siehe Bild), um damit Lageregelungen testen zu koennen. Es ist gewissermassen ein Querschnitt eines Quattrocopters (also nur die eine Achse) und sollte dazu dienen, die Lageregelung zu testen.
Dummerweise habe ich aber noch keine Bezugsquelle (mit zivilen Preisen) fuer die ADXRS150EB, die ich eigentlich verwenden wollte. Den ADXL202 hatte ich aber rumliegen, also hab ich trotzdem schon mal losgebastelt. Hab halt gerade Urlaub Statt des geplanten Kaskadenreglers mit der Lage (Winkel) als Regelgroesse und der Drehrate als unterlagerte Regelgroesse habe ich also einen ganz normalen PID-Regler programmiert. Dieser verwendet jetzt erstmal nur den ADXL, also die Lage.
Mit diesen Parametern
Code:
#define F 0.3 // PWM-Verhaeltnis fuer den Schub, "1" waere 100%
#define KP 0.05 // Proportionalverstaerkung
#define TN 5 // Nachstellzeit (I-Anteil)
#define TV 1.5 // Vorhaltzeit (D-Anteil)
#define TA 0.02 // Abtastzeit in Sekunden
regelt er jetzt endlich stabil, allerdings viel zu langsam fuer einen Quattrocopter. Bei groesserem KP faengt er tierisch an zu schwingen. Die Zeitkonstante dieser Schwingung ist ungefaehr 2 sec, aber wenn ich damit und nach den Einstellregeln von Takahashi (fuer die Regelungstechniker...) die Parameter einstelle, schwingt er trotzdem noch. Ich vermute, es liegt daran, dass der Motor auf der einen Seite nicht so schnell beschleunigen kann wie der auf der anderen Seite abbremst. Man muesste also einen Maximalgradienten fuer den Reglerausgang festlegen, der dem Beschleunigen entspricht.
Oder hat sonst jemand Ideen dazu?
Nils
Lesezeichen