美文网首页
利用matlab画出根轨迹图|伯德图bode

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

作者: 五长生 | 来源:发表于2017-10-06 16:58 被阅读3453次

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

    相关文章

      网友评论

          本文标题: 利用matlab画出根轨迹图|伯德图bode

          本文链接:https://www.haomeiwen.com/subject/lnkryxtx.html