Add aircraft automation code, including flap control and stable autopilot flight.

This commit is contained in:
Anna Rose Wiggins 2021-08-24 06:10:21 -04:00
parent a99912e3ae
commit 376629354b
9 changed files with 204 additions and 19 deletions

34
lib/stabilize_aircraft.ks Normal file
View file

@ -0,0 +1,34 @@
RunOncePath("lib/navball").
// Fly level toward the current compass heading.
function HoldHorizon {
parameter Kp is 0.02.
parameter Ki is 0.04.
parameter Kd is 0.0066.
SAS off.
local pitchPID is PidLoop(Kp, Ki, Kd).
// local rollPID is PidLoop(Kp, Ki, Kd).
// lock rollVec to VXCL(SHIP:FACING:FOREVECTOR, SHIP:FACING:TOPVECTOR).
// lock upVec to VXCL(SHIP:FACING:FOREVECTOR, SHIP:UP:FOREVECTOR).
local h is GetHeading().
local p is 0.
lock p to pitchPID:Update(TIME:SECONDS, SHIP:VERTICALSPEED).
lock STEERING to Heading(h, p, 0).
// until done {
// set SHIP:CONTROL:PITCH to pitchPID:Update(TIME:SECONDS, GetPitch(SHIP:SRFPROGRADE:FOREVECTOR)).
// set SHIP:CONTROL:ROLL to rollPID:Update(TIME:SECONDS, VAng(rollVec, upVec)).
// }
wait until done.
set done to false.
unlock STEERING.
SAS on.
// set SHIP:CONTROL:PITCH to 0.
// set SHIP:CONTROL:ROLL to 0.
}