matlab 两组不同步长数据
发布网友
发布时间:2023-11-02 02:01
我来回答
共2个回答
热心网友
时间:2024-11-18 23:29
用interp1函数是没有错得,你之所以经常跳出
我想是因为X1和X2不单是步长不一样,而且数据的范围也不同
X1的数据可能超过了X2的最小值或者最大值,那么就会出现问题
现在不是要用什么函数的问题,而是你要确切的说明白你想要怎样的结果
热心网友
时间:2024-11-18 23:30
num=1;
den=conv([0.1,1,0],[0.05,1]);
G=tf(num,den);
Kc=50;
Wc=10;
ypm=40+10;
[mag1,pha1,w1]=bode(G*Kc);
phi1=spline(w1,pha1,Wc);
phi2=((ypm-(phi1-(-180))))*pi/180;
alpha=(1+sin(phi2))/(1-sin(phi2));
T=1/Wc/sqrt(alpha);
Tz=alpha*T;
Gc1=tf([Tz,1],[T,1]);
s=tf('s');
[mag2,pha2,w2]=bode(G*Kc*Gc1);
mag2=spline(w2,mag2,Wc);
mag2dB=20*log10(mag2);
beta=10^(mag2dB/20)
t=1/(Wc/beta);
Gc2=(1+t*s)/(1+beta*t*s);
G=G*Kc;
GGc=G*Gc1*Gc2;
Gy=feedback(G,1);
Gx=feedback(GGc,1);
figure(1);step(Gx,'b');hold on
figure(2);bode(G,'r');hold on
bode(GGc,'b')
grid
[gm,pm,wcg,wcp]=margin(GGc)