Page 577 - Mechatronics with Experiments
P. 577
October 9, 2014 8:41 254mm×178mm
Printer: Yet to Come
JWST499-Cetinkunt
JWST499-c07
ELECTROHYDRAULIC MOTION CONTROL SYSTEMS 563
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Filename: EH_Servo_PID_Controller.m
function i_cmd = EH_Servo_PID_Controller(t)
global y_d ydot_d y ydot K_fb K_p K_i K_d u_i
% Desired cylinder position command to PID controller
if t<1.0
y_d = 0.2 ;
ydot_d = 0.0 ;
elseif (t>= 1.0 && t<=2.0)
y_d= 0.2 + 0.5 ∗(t-1.0) ;
ydot_d = 0.5 ;
elseif (t> 2.0 && t<=3.0)
y_d = 0.5 ;
ydot_d = 0.0 ;
elseif (t> 3.0 && t<=4)
y_d = 0.7 - 0.5 ∗ (t - 3.0) ;
ydot_d = - 0.5 ;
else
y_d = 0.2 ;
ydot_d = 0.0 ;
end
% Cylinder position sensor reading; feedback signal.
y_fb = K_fb ∗ y;
ydot_fb = K_fb ∗ ydot ;
% PID control algorithm
u_i = u_i + (y_d - y_fb) ;
i_cmd = K_p ∗(y_d - y_fb) + K_i ∗ u_i + K_d ∗ (ydot_d - ydot_fb) ;
return ;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Filename: EH_Servo_Dynamics.m
function zdot = EH_Servo_Dynamics(t,z)
global D_p w_shaft p_max
global Q_rv x_vmax p_r c_v w_n tau_a K_a K_t i_v x_v
global beta V_hose_pv V_hose_va V_hose_vb A_a A_b l_cyl m_p c_p m_l
F_load
global Q_p Q_v Q_r
global p_p p_a p_b p_t
global y_d ydot_d y ydot K_fb K_p K_i K_d u_i i_cmd
p_p = z(1) ;
i_v = z(2) ;