Add aircraft automation code, including flap control and stable autopilot flight.
This commit is contained in:
parent
a99912e3ae
commit
376629354b
9 changed files with 204 additions and 19 deletions
34
lib/stabilize_aircraft.ks
Normal file
34
lib/stabilize_aircraft.ks
Normal 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.
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue