
不知道为什么我的电脑里面的matlab好像不能认出stepinfo这个函数,几次都这样了== 50
大神帮我看看这段代码哪里不对,最后把那个stepinfo的各个数据给我看看,谢谢了*^.^*clc;num0=[1];den0=[0.5,1.5,1,0];%建立模型(5...
大神帮我看看这段代码哪里不对,最后把那个stepinfo的各个数据给我看看,谢谢了*^.^*
clc;
num0=[1];den0=[0.5,1.5,1,0]; %建立模型(5还是1?)
bode(num0,den0);%绘制原系统bode图。
[Gm1,Pm1,Wcg1,Wcp1]=margin(num0,den0); %求取[幅值裕度,相位裕度,相位穿越频率,幅值穿越频率]
r=40; %期望相位裕度
h=10; %期望幅值裕度
w=logspace(-1,3); %产生50个10^-1 到 10^3之间的对数间隔角频率向量;
[mag1,phase1]=bode(num0,den0,w);%求取G0在w上各点的幅度和相位频率响应值(是绝对幅值,不是对数幅值)
for epsilon=5:45
phim=(r-180+epsilon)*pi/180;%phim:由超前网络需要提供的校正相位φm,epsilon为补偿相角
alpha=(1+sin(phim))/(1-sin(phim));%超前网络的系数α
[il,ii]=min(abs(mag1-1/sqrt(alpha))); %寻找新的截止频率点,在此点,|G0|*|Gc|=1,log|G0|+log|Gc|=0
wc=w(ii);%新截止频率点
alpha=mag1(ii);
T=1/(0.2*wc);%滞后校正的时间常数Gc=(1+alpha*Ts)/(1+Ts)
numc=[T,1];denc=[alpha*T,1];%构造校正环节的传递函数
[num,den]=series(num0,den0,numc,denc);%串联Gc与G0
[Gm,Pm,Wcg,Wcp]=margin(num,den);%求取校正后的裕量
if((Pm>=r)&&(Gm>=h));break;end %如果相位裕量高于预期r,结束循环
end
printsys(numc,denc);
printsys(num,den);
bode(num,den);
sys=tf(num,den);
step(sys);
[y,t]=step(sys);
S=stepinfo(y,t); 展开
clc;
num0=[1];den0=[0.5,1.5,1,0]; %建立模型(5还是1?)
bode(num0,den0);%绘制原系统bode图。
[Gm1,Pm1,Wcg1,Wcp1]=margin(num0,den0); %求取[幅值裕度,相位裕度,相位穿越频率,幅值穿越频率]
r=40; %期望相位裕度
h=10; %期望幅值裕度
w=logspace(-1,3); %产生50个10^-1 到 10^3之间的对数间隔角频率向量;
[mag1,phase1]=bode(num0,den0,w);%求取G0在w上各点的幅度和相位频率响应值(是绝对幅值,不是对数幅值)
for epsilon=5:45
phim=(r-180+epsilon)*pi/180;%phim:由超前网络需要提供的校正相位φm,epsilon为补偿相角
alpha=(1+sin(phim))/(1-sin(phim));%超前网络的系数α
[il,ii]=min(abs(mag1-1/sqrt(alpha))); %寻找新的截止频率点,在此点,|G0|*|Gc|=1,log|G0|+log|Gc|=0
wc=w(ii);%新截止频率点
alpha=mag1(ii);
T=1/(0.2*wc);%滞后校正的时间常数Gc=(1+alpha*Ts)/(1+Ts)
numc=[T,1];denc=[alpha*T,1];%构造校正环节的传递函数
[num,den]=series(num0,den0,numc,denc);%串联Gc与G0
[Gm,Pm,Wcg,Wcp]=margin(num,den);%求取校正后的裕量
if((Pm>=r)&&(Gm>=h));break;end %如果相位裕量高于预期r,结束循环
end
printsys(numc,denc);
printsys(num,den);
bode(num,den);
sys=tf(num,den);
step(sys);
[y,t]=step(sys);
S=stepinfo(y,t); 展开
1个回答
2014-12-30
展开全部
是不是你自己写了hamming的重名函数
追问
我就这样输进去的,没有其他的操作,
下面这一段是为了求阶跃相应曲线和它的各个参数(上面的是用matlab设计的迟后校正装置)
sys=tf(num,den);
step(sys);
[y,t]=step(sys);
S=stepinfo(y,t);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询