Hello Forum,
For practice I made a PD loop which is supposed to control the acceleration of the spacecraft. My problem with the loop is, that the throttle stutters back and forth between no thrust and full thrust.
I'm not sure what the problem is, maybe someone can give a hint?
PD_loop.lua (put into 'Scripts' folder)
Test scenario
For practice I made a PD loop which is supposed to control the acceleration of the spacecraft. My problem with the loop is, that the throttle stutters back and forth between no thrust and full thrust.
I'm not sure what the problem is, maybe someone can give a hint?
PD_loop.lua (put into 'Scripts' folder)
PHP:
function PD_loop()
local v = vessel.get_interface('GL-01')
local hShip = oapi.get_objhandle('GL-01')
local htg = v:get_thrustergrouphandle(THGROUP.MAIN)
local noteTop = oapi.create_annotation()
local e0 = 0
local setPoint = 9.8
local kP = 0.01
local kD = 0.05
while true do
local dt = oapi.get_simstep()
local m = v:get_mass() --kg
local F = 0 -- N
local lvl = v:get_thrustergrouplevel(htg)
local count = (v:get_groupthrustercount(htg)) - 1
for i = 0,count do
local ht = v:get_groupthruster(htg,i)
max0 = v:get_thrustermax0(ht)
F = F + max0 * lvl
end
local a = F / m
local e = setPoint - a
local d = (e - e0) / dt
local output = kP * e + kD * d
local thrust = lvl + output
v:set_thrustergrouplevel(THGROUP.MAIN,thrust)
e0 = e
intro = "m = " .. m .. "\nF = " .. F .. "\na = " .. a .. "\nlevel: " .. lvl .. "\noutput = " .. output .. "\nthrust = " .. thrust
noteTop:set_text (intro)
proc.skip()
end
end
PD_loop()
Test scenario
Code:
BEGIN_DESC
END_DESC
BEGIN_ENVIRONMENT
System Sol
Date MJD 51982.5352432498
Script PD_loop
END_ENVIRONMENT
BEGIN_FOCUS
Ship GL-01
END_FOCUS
BEGIN_CAMERA
TARGET GL-01
MODE Cockpit
FOV 50.00
END_CAMERA
BEGIN_HUD
TYPE Docking
NAV 0
END_HUD
BEGIN_MFD Left
TYPE Surface
SPDMODE 1
END_MFD
BEGIN_MFD Right
TYPE User
MODE Terminal MFD
END_MFD
BEGIN_PANEL
END_PANEL
BEGIN_SHIPS
GL-01:DeltaGlider
STATUS Orbiting Earth
RPOS 6166867.18 1869615.93 -1439405.57
RVEL 2970.333 -5745.672 4440.711
AROT -83.35 -68.89 -74.50
AFCMODE 7
PRPLEVEL 0:0.552918 1:0.877893
NAVFREQ 0 0 0 0
XPDR 0
AAP 0:0 0:0 0:0
END
probe:ShuttleA
STATUS Orbiting Earth
RPOS 6166906.88 1869609.42 -1439407.18
RVEL 2970.534 -5745.704 4440.703
AROT 78.25 79.88 -123.30
AFCMODE 7
PRPLEVEL 0:1.000000 1:1.000000
NAVFREQ 0 0
XPDR 0
PODANGLE 0.0000 0.0000
DOCKSTATE 0 0.0000
AIRLOCK 0 0.0000
GEAR 0 0.0000
PAYLOAD MASS 0.0 0
END
END_SHIPS
BEGIN_ExtMFD
END
Last edited: