0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

标准二阶系统的Matlab代码示例分析

牛牛牛 来源:模拟小笨蛋 作者:模拟小笨蛋 2023-11-30 12:27 次阅读

当我们已知一个系统的闭环传递函数时候,我们通常有两种方法来判断系统的稳定性。第一种是时域分析方法,可以观察闭环传递函数的阶跃响应;第二种是频域分析法,可以观察闭环传递函数的频率响应。频域分析方法中,伯德图一般被广泛使用。这两种分析方法都可以借助Matlab工具得到直观的曲线,非常有助于我们对问题的分析。

Note1:时域分析时,除了常用的阶跃信号作为输入激励外,还常使用脉冲信号和斜坡信号作为激励。Note2:频域分析法,我们既可以选择环路增益的伯德图,也可以选择闭环传递函数的伯德图。

以一个非常有代表性的标准二阶系统为例,可以通过Matlab研究该系统的特性。其闭环传递函数如下(公号不支持公式编辑也真是个亮点,直接上图吧):图片下面针对公式2进行分析。01 时域

当ζ取不同的值时,该系统的阶跃响应会是怎样的呢?设计如下所示的Matlab代码。仿真波形如图1所示,三维波形如图2所示。

% G(s)=ωn^2/(s^2+2ζωn s+ωn^2 ).whenωn=1,research unit-step response

% with different ζvalues.

%------------------------------------------------------------------------

t=0:0.2:10;

zt=[0.1 0.2 0.4 0.6 0.8 1.0];

for n=1:6

num=[1];

den=[1 2*zt(n) 1];

[y(1:51,n),x,t]=step(num,den,t);

[y(1:51,n),x,t]=impulse(num,den,t);

end

plot(t,y)

grid

title(‘plot of unit_step response curves with omega_n=1 and zeta=0.1,0.2,0.4,0.6.0.8,1.0’)

xlabel(‘t secs’)

ylabel(‘response’)

text(3.7,1.7,‘zeta=0.1’)

text(3.5,0.8,‘zeta=1.0’)

% to plot a three-dimensional diagram,enter the command mesh(t,zeta,y‘)

figure(2)

mesh(t,zt,y’)

title(‘three-dimensional plot of unit-step response curves’)

xlabel(‘t secs’)

ylabel(‘zeta’)

zlabel(‘response’)

图片

图 1 ζ取不同值时的闭环阶跃响应曲线

图片

图 2 ζ取不同值时的三维图形

当ζ从0不断增大时,系统将逐渐从欠阻尼状态(0<ζ<1)过渡到临界阻尼状态(ζ=1)再过渡到过阻尼状态(ζ>1)。

观察闭环阶跃响应曲线,当ζ<0.6时,系统表现出很大的减幅振荡;当ζ≥0.6时,系统趋于稳定,可以看到ζ=1.0时已非常稳定。也可以发现,当系统的稳定性有保障之后,响应速度随着ζ越大而越来越慢。在工程控制中,为了平衡系统稳定性和响应速度,ζ一般取0.707。

02 频域

其实也可以在频域上观察系统的稳定性,设计如下的Matlab代码,仿真结果如图3所示。

% G(s)=ωn^2/(s^2+2ζωn s+ωn^2 ).whenωn=1,the plot of bode digram

% with different ζvalues.

%------------------------------------------------------------------------

zt=[0.1 0.2 0.4 0.6 0.8 1];

%zt=[0.1:0.1:1];

for n=1:6;

num=[1];

den=[1 2*zt(n) 1];

G=tf(num,den);

hold on;

bode(G)

end

grid

title(‘plot of bode diagram with omega_n=1 and zeta=0.1,0.2,0.4,0.6.0.8,1.0’)

图片

图 3 ζ取不同值时的闭环频率响应曲线

观察闭环频率响应曲线,因为ωn=1,发现1rad/s附近有好几条曲线具有正的增益,这其实是系统不稳定的表现。重点观察ζ=0.1时的曲线,因为ωn=1时,所以曲线在大约1rad/s处出现尖峰(意味着极大增益),实际会表现为振荡。同理,如果ωn=2,ζ=0.1时曲线会在2rad/s附近出现尖峰。(注:如果ζ=0,会发现在ωn处有无穷大增益)。工程控制中一般取ζ=0.707是非常有道理的,此时系统在稳定性和响应速度方面可以说达到了最好平衡。此时,闭环系统的频响平坦区范围基本上是0~ωn。

03 总结

ζ=0.707时,系统的稳定性和响应速度之间达到最好的折衷,此时闭环频率响应的平坦区范围可到ωn;

ζ=0.707不一定是所有二阶系统的最优选择 ,在稳定性得到保障之后,ζ具体取多大还要看实际系统的具体需求;

一个不稳定的二阶系统,很可能会在ωn附近出现振荡行为;

使用Matlab可以对任意已知传递函数的系统进行阶跃响应、脉冲响应、斜坡响应的分析。脉冲响应可直接使用impulse(num,den,t)命令。斜坡响应较为复杂,没有直接的命令可用。这时就需要进行公式转换,斜坡响应的拉普拉斯表示为1/s2,将其乘以G(s)得到G(s)/s2,因此G(s)的斜坡响应可通过G(s)/s的阶跃响应得到。

参考:

[1] 现代控制工程,Katsuhiko Ogata,P123~P149

[2] 控制系统计算机辅助设计,薛定宇,P170~P190

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • matlab
    +关注

    关注

    175

    文章

    2922

    浏览量

    228441
  • 函数
    +关注

    关注

    3

    文章

    3868

    浏览量

    61309
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66768
  • 时域分析
    +关注

    关注

    0

    文章

    33

    浏览量

    11008
  • 闭环系统
    +关注

    关注

    0

    文章

    14

    浏览量

    9371
收藏 人收藏

    评论

    相关推荐

    labview虚拟仪器技术实验教程-二阶开环系统的仿真实现

    实验目的  学习Labview中微分方程组的解法  二阶开环系统的仿真原理  高阶微分方程描述物理系统 ,如一个二阶系统 :  用Labvi
    发表于 12-31 15:23

    二阶锁相环

    采用后向Euler数值积分法实现二阶锁相环的一个仿真模型,对二阶锁相环进行仿真,那位大侠做过?可以参考下原代码不?
    发表于 05-28 17:21

    基于MATLAB二阶系统分析

    基于MATLAB二阶系统分析
    发表于 05-29 19:35

    LabVIEW实验5_二阶开环系统

    LabVIEW实验5_二阶开环系统
    发表于 08-13 09:11

    二阶有源RC低通滤波器的分析

    二阶有源RC低通滤波器的分析
    发表于 08-18 15:57

    二阶系统的时域响应

    二阶系统的时域响应
    发表于 04-10 20:56

    请问用matlab对图像进行无方向性的二阶微分如何调用函数

    请问用matlab对图像进行无方向性的二阶微分该怎么调用函数呀?我现在在做散焦图像复原,遇到matlab调用函数的问题,希望哪位可以给我一些指导!
    发表于 05-18 21:30

    二阶系统问题

    设计一个二阶系统,输入脉冲要求脉冲的宽度占空比等值能改变,然后得到响应曲线,该怎么设计啊?毕设问题急求啊
    发表于 05-29 12:02

    二阶系统的单位阶跃响应

    本帖最后由 MEKER 于 2014-3-26 23:27 编辑 二阶系统的单位阶跃响应
    发表于 03-26 23:25

    求助LabVIEW自动控制原理实现一系统二阶系统实验

    本科论文题目基于LabVIEW的自动控制原理实验平台设计,只要实现一系统二阶系统仿真。求高手帮忙,重谢!有意着联系QQ:895420475
    发表于 05-14 17:04

    有没有哪位大神做过一二阶测试系统的,求赐教

    有没有哪位大神做过一二阶测试系统的,求赐教
    发表于 06-11 17:08

    二阶滤波电路

    二阶滤波电路的电阻怎么选择,是Rf||R1=R||R吗?
    发表于 03-27 21:04

    如何实现一惯性滤波器和二阶滤波器的算法?

    MATLAB怎么进行软件滤波仿真一二阶电路滤波器的软件方式实现
    发表于 04-06 08:11

    如何保证二阶系统的稳定性?

    如何保证二阶系统的稳定性?
    发表于 06-24 06:59

    嵌入式平台C语言实现二阶滤波器的方法

    最近想从嵌入式平台上用C语言实现二阶滤波器,于是先从Matlab上验证二阶滤波器公式,再编写C语言来验证。算法移植(实现过程)①先用Matlab自带公式的
    发表于 12-15 09:12