利用matlab画出根轨迹图|伯德图bode

利用matlab画出根轨迹图|伯德图bode,第1张

若开环传递函数不是多项式乘积形式,则不需用conv函数,conv函数可用于多项式乘法以及卷积。

通过指定开环增益k的变化范围来绘制系统的根轨迹

k=1:10

matlab中根轨迹分析函数

pzmap:绘制线性系统的零极点

rlocus:求系统根轨迹。

rlocfind:计算给定一组根的根轨迹增益。

sgrid:在连续系统根轨迹图和零极袭手点图中绘制出阻尼系数和自然频率栅格。

[p,z]=pzmap(a,b,c,d):返回状态空间描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。

[p,z]=pzmap(num,den):返回传递函数描述系统的极点矢量和零点矢量,而不在屏幕上绘制出零极点图。

pzmap(a,b,c,d)或pzmap(num,den):不带输出参数项,则直接在s复平面上绘制出系统对应的零极点位置,极点用×表示,零点用o表示。

pzmap(p,z):根据系统已知的零极点列向量或行向量直接在s复平面上绘制出对应的零极点位置,极点用×表示,零点用o表示。

rlocus(a,b,c,d)或者rlocus(num,den):根据SISO开环系统的状态空间描述模型和传递函数模型,直接在屏幕上绘制出系统的根轨迹图。开环增益的值从零到无穷大变化。

rlocus(a,b,c,d,k)或rlocus(num,den,k):通过指定开环增益k的变化范围来绘制系统的根轨迹图。

r=rlocus(num,den,k) 或者[r,k]=rlocus(num,den) :不在屏幕上直接绘出系统的根轨迹图,而根据开环增益变化矢量k ,返回闭环系统特征方程烂埋1+k*num(s)/den(s)=0的根r,它有length(k)行,length(den)-1列,每行对应某个k值时的所有闭环极点。或者同时返回k与r。

若给出传饥禅蚂递函数描述系统的分子项num为负,则利用rlocus函数绘制的是系统的零度根轨迹。(正反馈系统或非最小相位系统)

[k,p]=rlocfind(a,b,c,d)或者[k,p]=rlocfind(num,den)

它要求在屏幕上先已经绘制好有关的根轨迹图。然后,此命令将产生一个光标以用来选择希望的闭环极点。命令执行结果:k为对应选择点处根轨迹开环增益;p为此点处的系统闭环特征根。

不带输出参数项[k,p]时,同样可以执行,只是此时只将k的值返回到缺省变量ans中。

sgrid:在现存的屏幕根轨迹或零极点图上绘制出自然振荡频率wn、阻尼比矢量z对应的格线。

sgrid(‘new’):是先清屏,再画格线。

sgrid(z,wn):则绘制由用户指定的阻尼比矢量z、自然振荡频率wn的格线

for H = 1:1:3

for Dp = 1:1:100

num = 50*1.4593*H

den = [1 1/H*Dp 50*1.4593*H]

rlocus(num,den)

hold on

end

end

这是一段变参数MATLAB的程序唤镇磨和实现图。利用嵌套循环实现多个参数变化时的根轨迹。然后根据自己旅粗需和斗要改和加程序就可以了

画出根轨迹后,用sgrid命令可以画出等阻尼比和等wn的栅格线。

用sgrid(z,wn)的形式可以绘制任何你想要的值的栅格线。(z和wn需事先分别定义,向量的形式,为你想绘制的阻尼销迅比和wn的值。

判断稳定的K值范围,最基本的方法是首先求出闭环传递函数,然后根据Routh判据即可判断。Routh判据具亏中此体内容比较复杂,这里不详述,你随便一搜就很容易知道,也不难。

如果要用根轨迹判断的话,可能比较复杂,需要准确的画出根轨培衡迹及其变化趋势,求其与虚轴的交点,工作量不比Routh判据少。

对离散系统,使用rlocus画根轨迹,然后用grid on即可得到类似的根轨迹图。

示例: z=tf('z')

G=(z^2-1.8*z+1)/(z*(z-1)*(z^2-1.7*z+1))

rlocus(G)

grid on

set(gca,'DataAspectRatio',[1 1 1])

ylim([-1 1])


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12492369.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存