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) ;
   572   573   574   575   576   577   578   579   580   581   582