Hallo,
Ich weiß nicht genau ob ich hier das richtige Forum für mein Problem getroffen habe aber hier mal meine Frage:
Die meisten Multicopter FlightController verwenden ja 2 hintereinander geschaltete PID Regler für die Regelung. Der erste dient im „Stabi-Mode“ der Lageregelung und der zweite dient der „Axendrehgeschwindigkeitsregelung“. Der erste Regler gibt quasi einen Winkelsollwert und vergleicht mit dem Gyro-Istwert und füttert dann den Ratecontroller mit dem Drehsollwert welche dann mit dem Beschleunigungssensor die Stellwertkorrektur für die ESCs ergeben.
Ich habe mir selbst einen FlightController auf Linux-Basis gebastelt und geflogen wird bei mir über einen Joystick. Damit gebe ich den Drehwinkel (Pitch- & Rollwinkel) vor (daher kein Rate-Mode).
Am Ende werden die Ausgänge des zweiten (rate PID) controllers auf die Motorsollwerte addiert:
Nun meine Frage:
Kann man nicht auf den RatePID für pitch und roll verzichten? Die Axenausregelung sollte wird auch so funktionieren. Der einzige Nachteil ist ja nur, dass dann die Regelung nur mit dem Gyro erfolgt und der Accl. nicht mehr benötigt wird?
Hat hier schon jemand Erfahrungen gesammelt mit & ohne rate PID für pitch & roll?
Gruß
Ich weiß nicht genau ob ich hier das richtige Forum für mein Problem getroffen habe aber hier mal meine Frage:
Die meisten Multicopter FlightController verwenden ja 2 hintereinander geschaltete PID Regler für die Regelung. Der erste dient im „Stabi-Mode“ der Lageregelung und der zweite dient der „Axendrehgeschwindigkeitsregelung“. Der erste Regler gibt quasi einen Winkelsollwert und vergleicht mit dem Gyro-Istwert und füttert dann den Ratecontroller mit dem Drehsollwert welche dann mit dem Beschleunigungssensor die Stellwertkorrektur für die ESCs ergeben.
Ich habe mir selbst einen FlightController auf Linux-Basis gebastelt und geflogen wird bei mir über einen Joystick. Damit gebe ich den Drehwinkel (Pitch- & Rollwinkel) vor (daher kein Rate-Mode).
Am Ende werden die Ausgänge des zweiten (rate PID) controllers auf die Motorsollwerte addiert:
ESCInterface.setMotor.frontleft = *throttle - *pitchPID.output + *rollPID.output - *yawPID.output + altPID.output;
ESCInterface.setMotor.frontright = *throttle - *pitchPID.output - *rollPID.output + *yawPID.output + altPID.output;
ESCInterface.setMotor.rearright = *throttle + *pitchPID.output - *rollPID.output - *yawPID.output + altPID.output;
ESCInterface.setMotor.rearleft = *throttle + *pitchPID.output + *rollPID.output + *yawPID.output + altPID.output;
ESCInterface.setMotor.frontright = *throttle - *pitchPID.output - *rollPID.output + *yawPID.output + altPID.output;
ESCInterface.setMotor.rearright = *throttle + *pitchPID.output - *rollPID.output - *yawPID.output + altPID.output;
ESCInterface.setMotor.rearleft = *throttle + *pitchPID.output + *rollPID.output + *yawPID.output + altPID.output;
Kann man nicht auf den RatePID für pitch und roll verzichten? Die Axenausregelung sollte wird auch so funktionieren. Der einzige Nachteil ist ja nur, dass dann die Regelung nur mit dem Gyro erfolgt und der Accl. nicht mehr benötigt wird?
Hat hier schon jemand Erfahrungen gesammelt mit & ohne rate PID für pitch & roll?
Gruß