1

I want to find a second order transfer function with a non minimum phase zero z=36.6 which has 2% overshooting and a 2% settling time of 0.2s. I created a tunable transfer function but I don’t know how to find the values for the tunable parameters w and xi that allows the performances I want.

Is there an automatic way to find them ? I tried to sample the variables and then choose the best function, but I think that this is not the best way to do.

w = realp('w',25);
xi = realp('xi',0.8);
z = 36.6; 
G = tf(w^2*[-1/z 1],[1 2*xi*w w^2]); 
jodag
  • 19,885
  • 5
  • 47
  • 66
ardayigit
  • 167
  • 2
  • 17

2 Answers2

0
w = realp('w',25);
xi = realp('xi',0.8);
z = 36.6; 
G = tf(w^2*[-1/z 1],[1 2*xi*w w^2]);

step(G);
val = stepinfo(G);
ts=val.SettlingTime;
Os=val.Overshoot;

Hopefully this works... the step response was a bit weird though.

I am feeling this is a analogous second order system, so you can directly calculate from w and zi.

Pranav Totala
  • 148
  • 2
  • 14
0

The overshoot is given by sigma = exp(-pi*zeta/sqrt(1-zeta^2)), so, for a given overshoot sigma in [0,1], the damping factor becomes zeta = -log(sigma)/sqrt(pi^2+(log(sigma))^2).

The settling time is approximated as ts = 4/(zeta*wn).

An example:

ts = 0.5;
sigma = 0.2;

zeta = -log(sigma)/sqrt(pi^2+(log(sigma))^2);
wn = 4/zeta/ts;

K = 1;

H = tf(K*wn^2,[1,2*zeta*wn,wn^2])

val = stepinfo(H)
ts_meas = val.SettlingTime
Os = val.Overshoot