取T=03为例:
s=tf('s');G=ss(1/s)-ss(tf(1,[1 0],'iodelay',T));
[mag,phase,w]=bode(G,{1e-5 42pi/T});
subplot 211; plot(w,mag(:))
subplot 212; plot(w,phase(:))
也可以借助于符号运算:
syms sG=(1-exp(-Ts))/s;
syms w positive
Gjw=subs(G,s,jw);
W=(0:01:4)2pi/T;
G1=subs(Gjw,w,W);
subplot 211; plot(W,abs(G1))
subplot 212; plot(W,angle(G1))
原因是,网上流传的R2012b版破解方法,很多都破解不充分,导致大名鼎鼎的Control System都不能装上,而bode正是控制系统工具箱的函数。
具体请参考我以前的回答:
>
做图时采用折线近似的方法画出的对数频率特性。
画波特图时,分三个频段进行,先画幅频特性,顺序是中频段、低频段和高频段。将三个频段的频率特性合起来就是全频段的幅频特性,然后再根据幅频特性画出相应的相频特性来。
刚做了 哈哈 等一下 发给你 有问题再追问我
%幅度
c1=[数据];
c=c1/c(1);
%相位
w=[数据,注意单位是度]/180pi;
%for语句的功能和下面那行H=cexp(iw');是一样的,将幅度和相位转化成复数点
%for k=1:length(c)
% a(k)=c(k)cos(w(k));
% b(k)=c(k)sin(w(k));
% y(k)=a(k)+b(k)i;
%end
%下面这行注意去掉(加上)点乘,和矩阵的运算有关
H=cexp(iw');
%频率
x1=[数据];
%换成单位是rad/s
x=2pix1;
%换成单位是dB
yy=20log10(c);
%拟合传函,你可以help invfreqs看看这个函数怎么用
%invfreqs里面的2,3分别是分子分母的阶数
%[]和12是使得拟合出的传函是稳定的
%12是迭代次数(尽量高,但高了也可能跑不出来)
[num,den]=invfreqs(H,x,2,3,[],12);
G=tf(num,den);
%[z,p,k]=tf2zp(num,den) ;
%num,den和z,p,k是传函的两种形式
figure(1)
%下面这行是画数据点图,可以不要
%plot(x1,yy)
%将横坐标画为对数坐标
%semilogx(x1,yy)
%hold on
%画bode图
bode(G)
以上就是关于如何用MATLAB准确画出零阶保持器的bode图,就是下图。全部的内容,包括:如何用MATLAB准确画出零阶保持器的bode图,就是下图。、用matlab 2012b画伯德图时为什么总有下面的错误求助!、伯德图怎么画等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)