Automatic Control Systems By Benjamin C Kuo 8th Edition Solution Manual 28 Today
% 4. Compute state‑feedback gain K K = place(A,B,desiredPoles); % or: K = acker(A,B,desiredPoles);
% 5. (Optional) Design observer gain L % Desired observer poles are usually 5–10× faster: obsPoles = 5*desiredPoles; L = place(A',C',obsPoles)'; % dual problem Simulate step response sys_cl = ss(Acl,B, C, D);
% 7. Simulate step response sys_cl = ss(Acl,B, C, D); figure; step(sys_cl); title('Closed‑loop step response (state‑feedback)'); for 2% overshoot wn = 4/(zeta*0
% 2. Check controllability & observability Co = ctrb(A,B); % controllability matrix Ob = obsv(A,C); % observability matrix assert(rank(Co)==size(A,1), 'System not controllable'); assert(rank(Ob)==size(A,1), 'System not observable'); for 2% overshoot wn = 4/(zeta*0.5)
% 3. Desired poles (example: 2% overshoot, 0.5 s Ts) zeta = 0.78; % approx. for 2% overshoot wn = 4/(zeta*0.5); % natural frequency p1 = -zeta*wn + 1i*wn*sqrt(1-zeta^2); p2 = conj(p1); extraPoles = -10*wn*ones(1,size(A,1)-2); % fast poles desiredPoles = [p1 p2 extraPoles];