3.Closed-Loop Transfer Functions 3.1 Block Diagram Algebra (Interconnection rules) DEU-MEE 5017 Advanced Automatic Control
From the block diagram: 3.2 Closed-Loop Transfer Function with Unity Feedback a) Block diagram From the block diagram:
Forward paths: Gc(s)Gp(s) Mason formula : 3.3 Closed-Loop Transfer Function with Unity Feedback b) Mason formula R(s) : Reference N(s): Disturbance ) s ( R Forward paths Loops Forward paths: Gc(s)Gp(s) Mason formula : Loops: Gc(s)Gp(s)(-1) Closed loop transfer function from R(s) to C(s) : Closed loop transfer function from N(s) to C(s) : When N(s)0, the Laplace transform of output C(s) :
R(s) : Reference N(s): Disturbance ) s ( R 3.4 Closed-Loop Transfer Function with Sensor Dynamics R(s) : Reference N(s): Disturbance ) s ( R indicated output actual output Frequently, the sensor has its own dynamics and might be modeled as a first–order system.
PID control: Fd=0 Fd=-mgsin Example 3.1: Study the control of cruise control (Example1.1) a) Without disturbance (Fd=0) : Fp: Pushing force (from engine), Fd: Distrubance Fd=0 Fd=-mgsin PID control: Ks Gc(s) Ka G1(s) + - Ke
MATLAB code for closed-loop response : Fd=0 clc,clear,%close all kp=12;ki=0;kd=0; % kp=1,4,12 v0=72; % km/h m=1000;b=60;ke=55.56;ka=5;kkm=3.6;ks=0.1; vref=v0/kkm*ks nc=[kd,kp,ki];dc=[1,0]; n1=[1];d1=[m,b]; nh=ka*ke*ks*kkm*conv(nc,n1); dh=polyadd(conv(dc,d1),nh); h=tf(nh,dh); p=roots(dh),%return p0=p(2);cksi_v2;%return t=0:dt:ts; vs=vref*step(h,t); hold on;plot(t,vs,'k'); return vsan=13.4172*exp(-0.33*t).*cos(0.3018*t-2.4118)+10; plot(t,vsan,'or') Settling time decreases Steady-sate error decreases
Steady-sate error increases b) Effect of disturbance : MATLAB code for closed-loop response: clc,clear;%close all kp=12;ki=0;kd=0; % kp=1,4,12 fi=5;g=9.81;v0=72; % km/h m=1000;b=60;ke=55.56;ka=5;kkm=3.6;ks=0.1; vref=v0/kkm*ks nc=[kd,kp,ki];dc=[1,0]; n1=[1];d1=[m b]; nh=ka*ke*ks*conv(nc,n1); dh=polyadd(conv(dc,d1),nh); nhn=ks*conv(dc,n1); fd=-m*g*sind(fi); p=roots(dh),%return p0=p(2);cksi_v2 t=0:dt:ts; h=tf(nh,dh);hn=tf(nhn,dh) vs=vref*step(h,t);vsn=fd*step(hn,t); hold on;plot(t,vs,'b');plot(t,vsn,'g') plot(t,vs+vsn, 'k') Steady-sate error increases
Control action: PID control Example 3.2 : Find the closed-loop response of 2-DOF mechanical system (Example2.2) Control action: PID control Closed loop transfer functions: When F2(s)0, the Laplace transform of output X2(s) :
a) Without disturbance (F2=0) : kp=45 a) Without disturbance (F2=0) : Steady-sate error MATLAB code for closed-loop response: clc,clear all kp=45;ki=0;kd=0; %kp=45;ki=150;kd=0; %kp=45;ki=150;kd=2; m1=1.2;m2=1;k1=350;k2=300;c1=4;c2=3; nc=[kd,kp,ki];dc=[1,0]; n21=15*[1 100];d21=[6 53 5110 11250 525000]; n22=[6 35 3250];d22=d21; nh=conv(nc,n21);dh=polyadd(conv(dc,d21),nh); p =roots(dh)%,p0=p(2);cksi_v2;return dt=0.001;ts=25; t=0:dt:ts; h=tf(nh,dh);x2r=0.1*step(h,t); hold on;plot(t,x2r,'b','LineWidth',1.5) kp=45,ki=150 Eliminates steady-sate error kp=45,ki=150, kd=2 Decrease settling time
Study effect of disturbance, develop MATLAB program, find x2(t) b) With disturbance (F2 unit step input) : Study effect of disturbance, develop MATLAB program, find x2(t) MATLAB code for closed-loop response:
c) Simulation with Simulink (F2 unit step input) : Comparison of Matlab code and Simulink results