首页 > 编程知识 正文

利用matlab绘制根轨迹,MATLAB画根轨迹

时间:2023-05-05 03:05:58 阅读:259728 作者:4774

求G(s)=K/s(s+1)(s+3)的根轨迹图形

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

num=[1,];%分子上的各项系数

%K=[1:10];

den=conv([1,0],conv([1,1],[1,3]));%三个括号的函数

%den=conv([1,0,0],[1,2 ]);%两个括号的函数

sys=tf(num,den);

rlocus(sys);%画出根轨迹图

%rlocus(sys,K)%通过指定开环增益k的变化范围来绘制系统的根轨迹图。

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

% [z,p,k]=tf2zp(num,den)%转化为零极点形式

% G=zpk(z,p,k)

%[k,p]=rlocfind(num,den);%求系统开环增益

1.png

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

k=1:10

6.png

bode图

num=[18];

den=conv([1,0],[1 4 6])

sys=tf(num,den)

bode(sys)

image.png

zpk函数

image.png

image.png

附:

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的格线

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。