我想找到具有非最小相位零z = 36.6的二阶传递函数,其具有2%的过冲和2%的0.2s的建立时间。我创建了一个可调参数传递函数,但我不知道如何找到可调参数w和xi的值,它们允许我想要的性能。
有自动方式找到它们吗?我尝试对变量进行采样,然后选择最佳函数,但我认为这不是最好的方法。
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]);
答案 0 :(得分: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;
希望这有效......虽然步骤响应有点奇怪。
我觉得这是一个类似的二阶系统,因此您可以直接从w
和zi
进行计算。
答案 1 :(得分:0)
过冲由sigma = exp(-pi * zeta / sqrt(1-zeta ^ 2))给出,因此,对于[0,1]中给定的过冲sigma,阻尼因子变为zeta = -log( sigma)/ sqrt(pi ^ 2 +(log(sigma))^ 2)。
由于ts = 4 /(zeta * wn),建立时间约为。
一个例子:
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