## How to display bode plot graph?

### Quixotic (view profile)

on 21 Dec 2012

i'm doing my assignment project which is to display Glag lead compensator bode plot. i've already done the program. but somehow it does not show the output that i expected. it display the value of Glag compensator and Glead compensator, however, the value of Glag lead compensator is zero. can you please tell me what is wrong with my program...

``` '( LAG-LEAD COMPENSATOR BODE PLOT)'                      %Display label
pos=0.63; '(Type %OS)'                                      %input desired percent overshoot
Tp=0.9222; '(Type peak time)'                         %input desired peak time
Kv=10; '(Type value of K)'                         %input desired Kv
numg=[1];                                           %define numerator of G(s)
deng=poly([0,-5,-11]);                              %define denominator of G(s)
G=tf(numg,deng);                                    %create G(s) without K
s=tf([10],1);                                       %create transfer function, 's'
sG=s*G;                                             %cancel common factors
K=dcgain(Kv/sG);                                    %solve for K
'G(s)'                                              %display label
G=tf(K*numg,deng);                                  %put K into G(s)
G=zpk(G)                                            %convert G(s) to factored form and display
z=(-log(pos/100))/(sqrt(pi^2+log(pos/100)^2));      %calculate required damping ratio
Pmreq=atan(2*z/(sqrt(-2*z^2+sqrt(1+4*z^4))))*(180/pi);  %calculate required phase margin
wn=pi/(Tp*sqrt(1-z^2));                                 %calculate required natural frequency
wBW=wn*sqrt((1-2*z^2)+sqrt(4*z^4-4*z^2+2));             %determine require bandwidth
wpm=0.8*wBW;                                            %choose new phase margin frequency
[M,P]=bode(G,wpm);                                      %get bode data
Pmreqc=Pmreq-(180+P)+5;                                 %find phase contribution required
beta=(1-sin(Pmreqc*pi/180))/(1+sin(Pmreqc*pi/180));     %find beta
%design lag compensator
%zero, pole and gain
zclag=wpm/10;                                       %calculate zero of lag compensator.
pclag=zclag*beta;                                   %calculate pole of lag compensator.
Kclag=beta;                                         %calculate gain of lag compensator.
'Lag compensator, Glag(s)'                          %display label
Glag=tf(Kclag*[1 zclag],[1 pclag]);                 %Create lag compensator.
Glag=zpk(Glag)                                      %Convert Glag(s) to factored form
%and display.
%compensator zero,pole
%and gain.
sGe=s*Ge;                                          %Create sGe(s).
sGe=minreal(sGe);                                  %Cancel common factors.
Kv=dcgain(sGe)                                     %Calculate Kv
T=feedback(Ge,1);                                  %find T(s).
step(T)                                            %Generate closed-loop, lag-lead-compensated step response.
% This displays a Bode plot. %Add title to
pause                                                 %step response.```

and this is the result that i get...

ns =

ans =

(Type %OS)

ans =

(Type peak time)

ans =

(Type value of K)

ans =

G(s)

Zero/pole/gain: 0

ans =

Lag compensator, Glag(s)

Zero/pole/gain: 74.6983 (s+0.4169) ------------------ (s+31.14)

ans =

Zero/pole/gain: 0.013387 (s+36.03) ------------------ (s+0.4824)

ans =

Zero/pole/gain: 0

Kv =

`     0`

thank you for helping me..

Ryan G

### Ryan G (view profile)

on 21 Dec 2012

At what part of the code do you see the problem? You should try to narrow down the code to a few lines and try again, or post those few lines. You'll have trouble getting help dumping your code here.

## Products

No products are associated with this question.