MATLAB控制系统校正工具sisotool的使用

前言

对于单输入单输出的控制系统矫正,性能指标的分析,使用MATLAB自带的sisotool GUI工具非常方便,他的主要功能如下:

  • 时域、频域性能指标可视化
  • 绘制根轨迹,零极点配置
  • PID的自动矫正等

最大的方便的地方是,当你在校正的参数改变后,系统的根轨迹,bode图,相应曲线能够同步更新。

注:本文使用的 MATLAB 版本是 2014a

目录

1 使用步骤

  • 编写M文件,建立各环节的传递函数
  • 命令行输如sisotool回车,打开GUI界面
  • 将workspace中的模型导入sisotool
  • 进行分析或设计

2 工作界面介绍

2.1 architecture界面

该界面用于选择合适的模型结构,导入模型data。点击control architecture选择模型的结构,点击system data导入模型各环节数据。

这里写图片描述

2.2 compensator editor界面

该界面是校正器编辑界面,用于选择校正的参数,调整参数,同步参数的变化.比如,在graphic tuning的root locus图中使用鼠标在图中增加了开环零极点或改变了闭环极点的未知,响应的变化会在该界面同步更新,显示增益,所增加的开环零极点的具体数值.当然,如果当前打开analysis plot,其中的响应曲线也会响应的变化。

这里写图片描述

2.3 graphic tuning界面

用于控制要显示的图像,根轨迹校正肯定要选择根轨迹,频域校正选择开环bode图。可以在一个窗口中显示多种类型的图形。
设计工作就是在所显示的图形上完成的。

这里写图片描述

2.4 analysis plot界面

参数调整后效果好不好,需要看相应曲线图,该界面控制要显示那些用于分析系统性能的图形。

这里写图片描述

2.5 automated tuning

提供了PID自动整定的功能,实际上PID校正是开环零极点配置,PI控制增加了一个位于原点的开环极点,减小稳态误差,同时,也增加了位于左半平面的开环零点,使相应迅速。

这里写图片描述

3 实例:单闭环直流调速系统PID校正

3.1 建立模型

编写M脚本

clc
% clear all
Kp=[];
Ti=[];
Ks=44;
Ts=.00167;
Tl=.017;
Tm=.075;
Ce=.192;
a=.01;
Un_=10;
Il=0;
R=1;
Kcr=(Tm*(Tl+Ts)+Ts^2)/(Tl*Ts);
Kp_cr=Kcr*Ce/(Ks*a)
save('单闭环直流调速.mat');
Gupe=tf([Ks],[Ts 1])
G1=tf([1/R],[Tl,1])
G2=tf([R],[Tm 0])
G3=G1*G2
G4=feedback(G3,1)
G5=G4*(1/Ce)*Gupe*a  %广义被控对象的传递函数

3.2 打开sisotool导入模型

如下图将G5赋值给G
这里写图片描述

进入compensator editor界面,开始时默认采用纯比例校正,且C=1。
这里写图片描述

3.3 显示图形

在graphic tuning界面选择要显示的用于设计的图形,如下选择了root locus ,open-loop bode, closed-loop bode,
这里写图片描述

点击show design 打开设计窗口,
这里写图片描述

在analysis plots中将plot1选择为阶跃响应,
这里写图片描述

并show analysis plots,
这里写图片描述

3.4 PI自动校正

默认的参数肯定不是很好,我们采用automated tuning进行自整定一下,选择PID tuning,type为 PI,
这里写图片描述

点击update compensator后,看看阶跃响应是否效果更好了,
这里写图片描述

查看一下PI校正的参数
这里写图片描述

K p ( 1 + 1 T i s ) = 11.757 ∗ 1 + 0.067 s s ) K_p(1+\frac{1}{T_{i}s})=11.757*\frac{1+0.067s}{s}) Kp(1+Tis1)=11.757s1+0.067s)

通过上式不难求出 K p K_p Kp T i T_i Ti.

以下是一个简单的 MATLAB 控制系统动态性能分析例题: 考虑一个控制系统,其开环传递函数为 $G(s) = \frac{10}{s(s+2)(s+5)}$,闭环控制器采用比例控制器,即 $C(s) = K$。现在我们想要分析该控制系统的动态性能。 首先,我们可以使用 MATLAB 中的 Control System Toolbox 来绘制系统的根轨迹。根轨迹可以帮助我们直观地了解系统在不同控制器增益下的稳定性和动态响应。 ```matlab % 定义系统传递函数 G = tf([10], [1, 7, 10, 0]); % 绘制根轨迹 rlocus(G) ``` 运行以上代码,我们可以得到如下根轨迹: ![Root Locus](https://i.imgur.com/aWYF1tD.png) 从根轨迹可以看出,系统的稳定性取决于比例增益 $K$ 的大小。当 $K$ 很小时,系统是稳定的,但响应速度较慢;当 $K$ 增大时,响应速度提高,但系统会变得不稳定。因此,我们需要找到一个合适的控制器增益来平衡响应速度和稳定性。 接下来,我们可以使用 MATLAB 中的 step 函数来绘制系统在不同控制器增益下的单位阶跃响应。 ```matlab % 定义不同的比例增益 K_values = [0.1, 1, 10]; % 绘制单位阶跃响应 figure; hold on; for i = 1:length(K_values) K = K_values(i); sys = feedback(K*G, 1); step(sys); end legend('K = 0.1', 'K = 1', 'K = 10'); hold off; ``` 运行以上代码,我们可以得到如下图像: ![Step Response](https://i.imgur.com/HpMfF7V.png) 从图像可以看出,当控制器增益 $K$ 增大时,系统的响应速度加快,但存在超调和振荡等问题。因此,我们需要在响应速度和稳定性之间找到一个平衡点,选择一个合适的控制器增益。 最后,我们可以使用 MATLAB 中的 sisotool 工具箱来进行系统参数调节和性能优化。通过 sisotool 工具箱,我们可以快速地进行系统性能分析和调整,以达到我们想要的控制效果。 ```matlab % 打开 sisotool 工具箱 sisotool(K*G) ``` 运行以上代码,系统会自动打开 sisotool 工具箱界面,我们可以在该界面上进行系统参数调节和性能优化。 ![Sisotool](https://i.imgur.com/qy1e8c1.png)
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值