控制器设计
大约 5 分钟
控制器设计
信号线性化
使用 Simulink 中的线性化管理器, 可以标记模型的输入与输出信号, 并将复杂模型转化为线性时不变系统 (LTI 系统)
系统线性化
在对动态系统完成建模后, 模型通常为高阶, 时变且非线性的系统, 一般使用以下步骤对模型进行线性化
- 线性化模型前首先要标记模型的输入与输出信号
- 首先选择
APP
选项卡, 打开线性化管理器, 进入线性化管理器
选项卡 - 选中模型的输入信号线, 并点击线性化管理器中
输入扰动
按钮 (如果不存在可下拉寻找), 将其标记为模型的输入信号 - 选中模型的输出信号线, 并点击线性化管理器中
输出测量
按钮, 将其标记为模型的输出信号
- 首先选择
- 完成标记后即可对模型进行线性化
- 首先选择
APP
选项卡, 打开模型线性化器 - 在模型线性化器上方的设置分区中, 可设置线性化的工作点, 选择模型初始条件或特定时间的工作点 (输入数组将创建多个线性化模型) 作为线性化点
- 在模型线性化器上方的线性化分区中, 可对模型进行线性化并生成线性化模型对象以及模型的各种特性图像如 Nyquist 图, Bode 图等
- 生成的特征图像与线性化结果无关 (各种图像对应相同的结果)
- 对于生成的特征图像, 可右键选择特征菜单, 现实图像中的特征值, 如阶跃图的上升时间, 峰值相应等
- 生成的线性化模型将存放在左侧的线性分析工作区中, 右键生成的模型, 选择导出到 Matlab 工作区, 即可在 Matlab 工作区中使用这些线性化的模型对象
- 对于线性化模型对象, 可使用有关的模型仿真函数, 获取模型更多信息
- 首先选择
在 Simulink 中创建线性系统
对于系统线性化的模型以及 Matlab 中创建的线性模型可以重新导入 Simulink 中, 作为系统的传递函数, 或可直接在 Simulink 中创建线性模型
- 选择模块库
Control System Toolbox
下的LTI System
模块, 在模块属性中, 设置 LTI 系统变量属性, 输入 Matlab 工作区或中的线性模型对象的变量名, 即可将模型对象作为一个传递函数使用 (状态空间可能需要信号集散模块)- 推荐将线性模型对象保存为
.mat
文件, 并在下次打开模型时重新导入 Matlab 工作区
- 推荐将线性模型对象保存为
- 选择
Continuous
分类下的State-Space
,Transfer fcn
,Zero-Pole
模块, 可在 Simulink 中创建不同的线性系统
寻找稳态工作点
对于部分系统, 其在 时并不处于稳态, 不利于模型的线性化, 因此可通过稳态管理器寻找模型的稳态工作点
即寻找模型在稳定状态下的输出, 并以此平衡状态作为系统的初态分析系统
- 选择
APP
选项卡, 打开稳态管理器 - 在
添加
部分点击配平设定
, 如果在系统线性化已标记了系统的输入与输出即可自动识别需要配平的状态变量 - 在
设定
选显卡内点击配平
自动寻找系统在稳态下的状态变量 - 对于得到的稳态状态变量值, 可在左侧的
报告
列表选择稳态报告对象并导出到 Matlab 工作区- 在系统线性化时, 设置线性化工作点时, 可选择
现有工作点
下导出的稳态报告, 得到基于稳态的线性化系统 - 在
模型设置
中 (位于建模
选项卡下), 选择数据导入/导出
设置, 在从工作区加载
部分, 勾选初始状态
并输入getstatestruct(<变量名>)
可将之前导出的稳态工作点作为模型的初始状态 - 推荐将导出的稳态报告对象以
.mat
保存为文件, 并在加载模型前将该对象导入到 Matlab 工作区内
- 在系统线性化时, 设置线性化工作点时, 可选择
PID 控制器
通过 Continuous
分类下的 PID Controller
模块即封装的 PID 控制器
将误差信号 (输入信号与反馈信号之差) 输入控制器, 并输出控制信号, 实现对系统的控制
通过模块属性即可调节 P, I, D 三个参数
自动调节 PID 参数
- 打开 PID 控制器模块属性, 在
主要
的自动调节
部分内点击调节
按钮启动 PID 参数调节器 - 在 PID 参数调节器中, 可通过拖动
调整工具
部分的两个滑动条, 根据目标系统阶跃特性自动调节 PID 参数- 推荐调解时可先将
响应时间
拖动到最快, 再在中间与稳健之间调节瞬态响应
以得到一个性能较好的系统 - 点击拖动条两侧的按钮可增大调节范围, 但不推荐增大范围, 特别是控制信号的范围有限制的系统 (即具有输出饱和的 PID 控制器)
- 推荐调解时可先将
- 在
调整工具
部分内点击显示参数
可用于查看与比较控制器在旧 PID 参数与调节后 PID 参数下的性能 - 在
被控对象
部分内点击Plant
可导入 Matlab 工作区内特定的线性系统对象 (如系统线性化得到的线性系统) 用于评估系统的性能 - 在
设计
部分内点击添加绘图
的下拉菜单可以绘制系统各个环节在新旧 PID 参数下的信号- 例如
控制器代价
即 PID 控制器输出的控制信号, 可观察该信号确保信号不会过饱和 (保证控制信号的最大值乘以最大输入信号小于饱和值)
- 例如
- 对于自动调节的结果可在
结果
部分内点击更新模型
将新的 PID 参数更新到 PID 控制器中再进行下一步调节或退出
自动调节一般基于线性化的系统, 因此还需要再原始系统上检验 PID 控制器的效果