aprsc7

Feedback control

Nov 3rd, 2020 (edited)
1,874
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 0.78 KB | None | 0 0
  1. % Feedback control
  2. % Input from example 2-3
  3. sympref('FloatingPointOutput',true)
  4. clear
  5. clc
  6. %% Input:
  7.  
  8. A = [0 1 0; 0 0 1; 0 -36 -15]       % A matrix
  9. B = [0; 0; 1]                       % B matrix
  10. Ts = 0;                             % Time settling
  11. Tp = 0.3;                           % Time peak
  12. Os = 0.05;                          % Overshoot (100%=1.0)
  13. zero = -10;                         % Open loop zero
  14.  
  15. %% Process:
  16.  
  17. syms s k1 k2 k3;
  18. zeta = -(log(Os)/log(exp(1)))/sqrt(pi^2+(log(Os)/log(exp(1)))^2);
  19. if(Tp==0) Wn = 4/(zeta*Ts);
  20. else Wn =  pi/(Tp*sqrt(1-zeta^2));
  21. end
  22.  
  23. Anew = A-(B*[k1 k2 k3])
  24.  
  25. Ds = expand((s^2 + 2*zeta*Wn*s + Wn^2)*(s-zero))
  26. Ts = det(s*eye(3)-Anew)
  27.  
  28. % Solve
  29. Dsm = coeffs(Ds,s);
  30. Tsm = coeffs(Ts,s);
  31. k = vpa(struct2cell((solve(Dsm==Tsm))))
  32.  
  33.  
  34.    
Add Comment
Please, Sign In to add comment