Skip to content

Commit 54f4e68

Browse files
committed
autotune: simulate step and disturbance response
1 parent 9280bcb commit 54f4e68

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

autotune/autotune.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -604,7 +604,17 @@ def updateClosedLoop(self):
604604

605605
closed_loop = ctrl.interconnect([delays, sampler, sum_feedback, feedforward, sum_control, p_control, i_control, d_control, id_control, plant], inputs='r', outputs='y')
606606

607-
t_out,y_out = ctrl.step_response(closed_loop, T=np.arange(0,1,dt))
607+
t_out,y_out = ctrl.step_response(closed_loop, T=np.arange(0,2,dt))
608+
609+
# Add disturbance
610+
sum_feedback_no_ref = ctrl.summing_junction(inputs=['-y'], output='e')
611+
sum_control_with_disturbance = ctrl.summing_junction(inputs=['pid_out', 'disturbance'], output='u')
612+
disturbance_loop = ctrl.interconnect([sampler, sum_feedback_no_ref, sum_control_with_disturbance, p_control, i_control, d_control, id_control, plant], inputs='disturbance', outputs='y')
613+
d = np.zeros_like(t_out)
614+
d[t_out >= 1.0] = -0.05 #TODO: parameterize
615+
_, y_d = ctrl.forced_response(disturbance_loop, t_out, d)
616+
y_out += y_d
617+
608618
self.plotClosedLoop(t_out, y_out)
609619
w = np.logspace(-1, 3, 40).tolist()
610620
mag, phase, omega = ctrl.bode(plant, omega=np.asarray(w), plot=False)

0 commit comments

Comments
 (0)