# Influence of a RHP zero/pole in the frequency response

I am studying loop shaping, and I am looking at loop shaping design with unstable poles and zeros. I have seen that noth unstable poles and zeros introduce limitations in the bandwidth. I have also seen that a non- minimum phase zero introduces an undershoot in the step response.

But are there other implications of these unstable ploes and unstable zeros in the frequency response?

sometimes I get some weird looking frequency responses, such as:

in this case I have a non-minimum phase zero. Is this behaviour due to the unstable zero, or there are other reasons?

or also something like:

I have these doubts because usually I see complementary sensitivity functions that roll-off smoothly, and in this case this does not happen.

[EDIT]The equations are the following:

the plant is:

$$G(s)=\frac{10(s-1)}{(s+10)(s+5)^{2}}$$

and the controller is:

$$K=\frac{-8}{s}$$

and this is the code if it can be useful:

s = tf('s');
G = (10*(s-1))/((s+10)*((s+5)^2));
K1 = -8/s;

S1 = 1/(1+K1*G);
T1 = K1*G/(1+K1*G);

bodemag(S1),grid

%first weight
%W_bt1 = 0.5;
W_bs1 = 0.03; %same cross over frequency as the previuos point
M = 2;           %peak of the sensitivity
A = 0.001;      %attenuation
Ws1 = (s/M + W_bs1)/(s+W_bs1*A);   %sensitivity weight
%Wt1 = (s/M + W_bt1)/(s+W_bt1*1);
%bodemag(1/Ws),grid;
Wu=tf(8)
[K2,CL,GAM1] = mixsyn(G,Ws1,Wu,[]);  %define the controller with the mixed
sensitivity
display(GAM1);
K2 = minreal(K2);  %define a minimal order controller
T1_W = K2*G/(1+K2*G);
S1_W = 1/(1+K2*G);

%second weight
%W_bt3 = 0.0125;
W_bs1 = 0.3; %same cross over frequency as the previuos point
M = 2; %peak of the sensitivity
A = 0.001;      %attenuation
%Wt3 = (s/M + W_bt3)/(s+W_bt3*1);
Ws1 = (s/M + W_bs1)/(s+W_bs1*A);   %sensitivity weight
%bodemag(1/Ws),grid;
Wu=tf(8)
[K3,CL,GAM2] = mixsyn(G,Ws1,Wu,[]);  %define the controller with the mixed
sensitivity
display(GAM2);
K3 = minreal(K3);  %define a minimal order controller
T3_W = K3*G/(1+K3*G);
S3_W = 1/(1+K3*G);

%third weight
%W_bt4 = 0.00625;
W_bs1 = 1; %same cross over frequency as the previuos point
M = 2;           %peak of the sensitivity
A = 0.001;      %attenuation
%Wt4 = (s/M + W_bt4)/(s+W_bt4*1);
Ws1 = (s/M + W_bs1)/(s+W_bs1*A);   %sensitivity weight
%bodemag(1/Ws),grid;
Wu=tf(8)
[K4,CL,GAM3] = mixsyn(G,Ws1,Wu,[]);  %define the controller with the mixed
sensitivity
display(GAM3);
K4 = minreal(K4);  %define a minimal order controller
T4_W = K4*G/(1+K4*G);
S4_W = 1/(1+K4*G);

dcgain(T4_W)

figure;
bodemag(S1_W,'r',S3_W,'y',S4_W,'g'),grid
legend('weight 1','weight 2','weight 3');
title('sensitivity function')

figure;
bodemag(T1_W,'r',T3_W,'y',T4_W,'g'),grid
legend('weight 1','weight 2','weight 3');
title('complementary sensitivity function')

• Don't have time to comment, but have you checked this ? cds.caltech.edu/~murray/books/AM08/pdf/fbs-limits_18Aug2019.pdf – Ben Jan 7 at 13:09
• Thanks for answering, this will help me for sure to clarify the concept. But, what I don't understand is if this behaviour is normal, or if there is something wrong in what I am doing. Thanks agai. – J.D. Jan 13 at 14:11
• Section 14.4 will give you the answer. As to whether it is normal, unless you give us the equations, we cannot know... – Ben Jan 13 at 14:33
• Thank you again for answering, I have edited my question with the equations and with the code. – J.D. Jan 17 at 18:26