利用Matlab设计控制系统

在本篇中,将使用Matlab中控制系统设计和分析工具箱(Control  System  Toolbox)进行控制系统的设计。

了解APP

打开控制系统设计器(Control  System  Designer)。这个APP是专门用于控制系统设计和校正,可以为反馈控制系统模型设计SISO控制器。它采用交互式的Bode图编辑器、Nichols图编辑
器、根轨迹编辑器等,可以调节各环节的零极点和增益,采用时域或者频域方法分析控制系统的阶
跃响应和零极点图,实现多个控制器的分析比较等。
打开APP之后的界面如下所示。

这个APP默认使用的模型如下所示(可以通过点击上方的Edit Architecture打开)

在默认情况下,四个环节的传递函数取值均为1。控制系统设计器的作用是根据整个系统的性能指标要求,当被控对象(G)给定后,正确设计传感器(H)、补偿器(F)或者控制器(C)以及预滤波器(F)环节的数学模型。

设计示例

具体要求

这里假设有一个单位负反馈系统,已知被控对象(G)的传递函数如下:

G(s)=\dfrac{1}{s+1}

要求设计一个控制器(C),使得整个控制系统满足已下要求: 

  1. 单位阶跃响应的稳态误差e_{ss}为0;
  2. 单位阶跃响应达到80%稳态值的上升时间T_{rise}小于1s ;
  3. 调节时间T_{s}小于2s ;
  4. 超调量\sigma不超过20 %;
  5. 开环增益交界频率(截止频率)\omega_{0}在5rad/ s左右。

可见,前四个要求是时域指标要求,第五个要求是频域指标要求。

开始步骤

在Matlab的命令行中,先写入被控对象的传递函数。

sys=tf([1],[1 1]);

随后打开控制系统设计器APP,进入Edit Architecture,在G的最右边点击导入按钮,选择刚才写入的sys变量,即被控对象的传递函数,点击Import。随后点击Edit Architecture的OK。回到主界面。

导入之后,就可以在主界面看到系统的图像:伯德图、根轨迹图和阶跃响应图。

添加设计指标

可见原始的系统完全不符合要求,不论是时域指标还是频域指标。

添加时域指标

在右下角的阶跃响应图,右击鼠标,点击进入Design Requirements下的New。弹出了New Design Requirements的界面。

可以按照要求设置这些的参数。下图为设置完成后的界面。随后OK关闭。

此时的主界面,阶跃响应图像将会发生变化,可见将刚才设计的指标全部画在了图上。

添加频域指标

在左边的伯德图,鼠标右击,点击进入Design Requirements下的New。弹出了New Design Requirements的界面。

可以按照要求设置这些的参数。Edge Start为边界的起点,设置频率为5,而Edge End为边界的终点,默认设置频率为10。这样就设置了截止频率的限制区间。

设计控制器

消除稳态误差

根据自动控制理论学过的知识,想要消除稳态误差,可以采用积分器。目前的系统为0型系统,如果将系统设置为I型系统,将消除阶跃响应的稳态误差。

在右上角的根轨迹图像上,右击鼠标,点击进入Add Pole or Zero(添加零点或者极点)下的Integrator,随后,控制器中被添加进入一个积分环节。此时的根轨迹图和阶跃响应图如下所示。

虽然此时的阶跃响应已有所好转,稳态的输出值已经到达了1,稳态误差已经降为0,其他方面但仍然不满足要求的指标,例如上升时间和调节时间。

添加零点

根据自动控制理论的知识。极点会影响系统的稳定性,也就是系统的稳态响应。而零点会影响系统的暂态响应,也就是影响上升时间和调节时间这些指标。在这个系统中,只要实数零点小于-1,系统的单位阶跃响应就一定是振荡变化的波形。实数零点越远离纵轴,振荡速度越快,但超调量也会增大。基于上述考虑,这里引入的实数零点近似为-2。

在右上角的根轨迹图像上,右击鼠标,点击进入Add Pole or Zero(添加零点或者极点)下的Real Zero,然后在实轴上左击鼠标放置零点。如果根轨迹坐标最小只到-1,可以随便先放置,然后再拖动到需要的点。

拖动得到的点位置并不精确,如果想获得精确的位置,可以在左侧栏里的Controllers And Fixed Blocks,选择C(控制器),双击点开Compensator Editor,在Real Zero的Location中,编辑横坐标值,输入-2。

在这个界面,还可以看到控制器的传递函数。可见此时控制器(C)包含一个积分环节,一个比例微分环节,而且稳态增益为1。

观察此时的波德图和阶跃响应图,可见仍然不符合要求,需要进一步的调整。

调整稳态增益

根据自动控制理论的知识,稳态增益上升时,响应的速度会增加,但是稳态增益增加到一定值之后,系统就会不稳定。

调节稳态增益值,可以在波德图中进行操作。在幅度频率伯德图中,用鼠标向上拖动幅频特性曲线,也就是增加了稳态的增益,同时也可以让截止频率后移,以达到目标。

如果想要精确的调节稳态增益,可以在刚才提到的Compensator Editor界面中更改。

这里将稳态增益更改为10。所得的控制器(C)的传递函数如下图所示。

此时的伯德图如下所示。

可见截止频率为5.26rad/s,相角裕量为79.9度。

此时的阶跃响应图如下所示。

可见系统的超调量、上升时间和稳定时间均符合要求。

系统的验证

经过上面的设计,可得到控制器(C)的传递函数为:

G_{C}(s)=10\times\frac{1+0.5s}s=\frac{5(s+2)}s

设计过程中没有使用到传感器(H)、补偿器(F),所以他们都被当做了1.再有被控对象(G)的传递函数,就可以对系统进行时域和频域的分析。这里使用线性系统分析仪进行分析。

首先在Matlab的命令行中写入系统的开环传递函数。然后再创建单位负反馈的闭环传递函数。

s1=tf([1],[1 1])*tf([5 10],[1 0]);
s2=feedback(s1,1);

随后打开线性系统分析仪。导入闭环传递函数s2,使用的是Step Response图像模式。

然后在图像界面右击鼠标,选择进入Characteristics,这里面包含了多个时域的指标,选择后就可以在图像上显示出来。

可见都符合要求。

然后重新打开线性系统分析仪,导入的是s1开环传递函数,并且右击选择图像为bode伯德图、(因为伯德图需要使用开环传递函数绘制,所以不是导入s2而是s1)。同样可以右击进入Characteristics,选择All  Stability  Margins,然后会出现截止频率和相角裕量。

可见符合要求。

  • 34
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
MATLAB是一种功能强大的数学计算软件,它也提供了丰富的工具和函数来进行控制系统仿真设计控制系统仿真设计是指使用计算机模拟和分析控制系统的行为,以评估和优化系统的性能。 在MATLAB中,控制系统仿真设计通常涉及以下几个步骤: 1. 建立系统模型:首先,需要建立控制系统的数学模型。可以使用传递函数、状态空间模型或者差分方程等形式来描述系统的动态行为。 2. 设计控制:根据系统的需求和性能指标,设计合适的控制。常见的控制设计方法包括PID控制、根轨迹设计、频域设计等。 3. 仿真系统响应:使用MATLAB提供的仿真工具,如Simulink,对控制系统进行仿真。可以输入不同的信号作为系统的输入,观察系统的输出响应,并评估系统的性能。 4. 优化系统性能:根据仿真结果,对系统进行调整和优化。可以通过调整控制参数、改变系统结构等方式来改善系统的性能。 5. 分析结果:通过分析仿真结果,评估系统的稳定性、鲁棒性、响应速度等性能指标。可以使用MATLAB提供的绘图和分析工具来进行结果的可视化和分析。 MATLAB还提供了丰富的工具箱和函数,用于控制系统仿真设计。例如,Control System Toolbox提供了各种控制系统设计和分析工具,Simulink提供了直观的图形化建模和仿真环境,Simscape可以进行物理系统建模和仿真等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值