在Simulink中使用PID Tuner进行PID调参
有问题的朋友请加QQ 1785631570 详谈,备注:PID
1.PID调参器( PID Tuner)概述
1.1 简介
使用PID Tuner可以对Simulink模型中的PID控制器,离散PID控制器,两自由度PID控制器,两自由度离散PID控制器进行调参,实现控制性能和健壮性的良好平衡。在使用PID Tuner的时候,它会自动做一些工作:
- 自动计算被控装置的线性模型。PID Tuner会将PID控制块输入和输出之间所有Simulink块的组合看作为一个被控装置,因此被控装置将会包括控制环中所有块体,不仅仅是控制器本身。
- 自动给出一个经过控制性能和鲁棒性(健壮性)平衡的初始PID控制设计。这个过程基于经过线性化的被控装置模型的开环频率响应特性。
- 提供交互性工具和响应曲线来帮助设计满足要求的PID控制系统。
1.2 PID Tuner 使用场景
-
自动地、交互性地对位于单环、单位反馈的系统前向通路中的单输入单输出(SISO)PID控制器进行调参。
-
自动地、交互性地调整如下例子中位于环形结构中的两自由度PID控制器参数:
-
交互性地使用SISO系统的响应数据来拟合一个控制原型并自动进行调参从而得到最终的控制模型。 (需要System Identification Toolbox工具)
1.3 应用 PID Tuner 的典型设计流程:
(1)启动 PID Tuner 。在启动的时候,这个软件将会从Simulink模型自动计算得到一个被控装置的线性近似模型并生成一个初始的PID控制器。
(2)通过在两个设计模型(上述的线性近似模型和原始控制器模型)中手动调节设计准则(设计偏好)来调整PID Tuner的参数,PID Tuner会计算出使系统稳定的PID参数。
(3)从设计好的控制模型中导出参数到原始被控装置的PID控制器中,在Simulink中验证PID控制器表现是否符合要求。
1.4 PID Tuner对被控装置的近似
PID Tuner会将PID控制块输入和输出之间所有块的组合看作为一个被控装置。在被控装置中使用的Simulink块可以是非线性的,但是因为自动调参需要使用一个线性模型,PID Tuner会给出一个被控装置的线性化近似模型来代替原来包含非线性部分的装置模型。这个线性化的模型是对非线性系统的近似,并且在原系统给定工作点的邻域内有效。
默认情况下,PID Tuner对装置进行线性化的时候,将使用在Simulink模型中配置的初始条件作为近似装置的工作点,然后根据近似装置设计一个初始PID控制器。
但是有时需要为一个工作点不是模型初始条件的装置设计PID控制器,比如:
- Simulink模型在初始条件下工作没有达到稳态,而PID控制器是针对稳态设计的。
- 在增益调节应用中需要设计多个控制器,且要求每个控制器的工作点不相同。
在这些情况下,需要在PID Tuner中改变近似装置的工作点。限于篇幅,这里暂不做讨论。
1.5 PID调参算法简介
典型PID调参目标包括:
-
闭环稳定性。即闭环系统对于有界输入保持输出有界。
-
足够的性能。闭环系统跟踪参考信号变化和对干扰的抑制要尽可能快,拥有更大的环路带宽(单位开环增益)以及对参考信号变化和干扰有更快的响应速度。
默认情况下,PID Tuner内置的PID调参算法将基于装置的动力学模型选择穿越频率(环路带宽)并且设计目标相位裕度为60°。每次在PID Tuner中改变PID控制器的响应时间、带宽、过渡特性(超调等)以及相位裕度时,调参算法都会重新计算PID增益。
如果给定健壮性指标(最小相位裕度),调参算法将会给出一个经过参考信号跟踪性能和干扰抑制性能平衡的控制器设计。如果需要更改设计偏好(design focus),可以在PID Tuner的Options 选项中进行设置。
当调整设计偏好的时候,调参算法将会尝试调整增益来满足跟踪性能或者干扰抑制性能中的一项(取决于设计偏好),同时实现与之前相同的最小相位裕度。系统中的可调参数越多,越有可能在不牺牲鲁棒性的情况下得到期望的 PID控制算法。例如,对PID控制器设置设计偏好比对P控制器或者PI控制器设置更有效。在任何时候,调整控制系统性能很大程度上依赖于被控装置的特性,对于一些装置,调整设计偏好是没有用的。
第二部分 PID Tuner 自动调参实践
2.1 打开一个示例模型
在MATLAB命令行中打开一个引擎速度控制器模型来进行操作:
open_system('scdspeedctrlpidblock')
打开如图所示系统:
2.2 设计概要
设计一个PI控制器完成引擎速度控制。设计目标是跟踪一个来自Simulink step block的参考信号scdspeedctrlpidblock/Speed Reference。设计要求如下:
- 过渡时间小于5秒。
- 稳态误差为0。
在这个例子中,通过在 PID Tuner中设计PI控制器 scdspeedctrl/PID 来稳定反馈回路并实现对参考信号的良好跟踪。
2.3 打开PID Tuner
双击PID控制块来打开一个对话框。在Main这个选项中点击Tune。
2.4 初始化PID设计
当PID Tuner启动时,它会自动识别出被控装置的输入和输出,计算得出装置的线性近似模型。原始被控装置可以有任意的阶数和延时。PID Tuner将计算出一个控制性能和健壮性经过合理折中的初始PI控制器。默认情况下,阶跃参考信号跟踪性能将会用曲线展示出来。下图展示 了PID Tuner给出的初始PI控制模型:
2.5 显示PID参数
点击 Show parameters 来显示控制参数P和I以及一系列控制性能和健壮性的度量指标。
在这个例子中,初始PI控制器的过渡时间为2秒,满足设计要求。
2.6 在 PID Tuner中调整PID 设计
参考信号跟踪响应的超调大概为2.5%。因为在满足过渡时间要求的前提下还有一些余量,我们可以通过增加响应时间来减小超调。向左移动响应时间滑块来增加闭环系统的响应时间。注意在调整响应时间的时候,响应曲线和控制器参数以及性能指标也在不断更新。下图展示了调整后的PID设计,此时超调为零,过渡时间为3.6秒。这个设计好的控制器已经满足设计要求。
2.7 进行性能折中
为了在过渡时间小于2秒的情况下实现零超调,需要同时调节响应时间和瞬态特性滑块。我们需要控制器的响应更快以缩短过渡时间,增加控制器的健壮性来减小超调。例如,将响应时间从3.4秒减小到1.5秒同时将健壮性从0.6增加到0.72。下图展示了进行上述设置后的闭环响应。
2.8 将调整好的的参数写入原始装置的PID控制块中
在经过线性近似的装置模型上得到性能满意的控制器之后,还需要在原来的非线性装置上进行检验。在PID Tuner中点击Update Block按钮,把调好的参数写入Simulink模型中的PID控制器。
更新后的PID控制器参数如图:
注意:在PID Tuner中调好的PID参数必须写入原控制模型的PID控制器才能生效。
2.9 验证设计
因为PID Tuner中使用的控制模型是原控制模型的线性化近似,所以必须在原控制模型中对PID Tuner得到的参数做验证。
设计好的闭环系统响应如图所示:
设计好的系统满足设计要求:
- 过渡时间小于5秒。
- 稳态误差为0