这个例子展示了如何使用Simulink模型估计的频率响应来设计PI控制器。万博1manbetx当线性化的电厂模型对PID设计无效时(例如,电厂模型具有零增益时),这是一个替代的PID设计工作流。
打开发动机控制模型,花几分钟时间探索它。
mdl =“scdenginectrlpidblock”; 开放式系统(mdl)
PID回路包括一个并行形式的PI控制器,操纵节气门角度来控制发动机转速。PI控制器具有默认增益,使得闭环系统振荡。我们想要使用从PID块对话框启动的PID调谐器来设计控制器。
open_system ([mdl' /发动机转速(rpm) ']) sim (mdl)
关闭范围。
close_system ([mdl' /发动机转速(rpm) '])
在这个例子中,PID块看到的植物是从油门角度到发动机转速。线性化输入和输出点已经分别定义在PID块输出和发动机转速测量处。初始工作点的线性化给出了一个增益为零的对象模型。
为了验证零线性化,首先从模型中获得线性化输入和输出点。
io = getlinio (mdl);
然后,在初始操作点线性化工厂。
io linsys =线性化(mdl)
linsys = D =油门和发动机转速0静态增益。
获得零增益的原因是,在线性化路径中有一个触发子系统(压缩),并且逐块分析线性化不支持基于事件的子系统。因为万博1manbetxPID调谐器使用相同的方法获得线性工厂模型,PID调谐器获得了一个零增益的工厂模型,并在发射过程中拒绝了它。
启动PID调谐器,打开PID块对话框,单击调优.一个信息对话框打开并表明在初始操作点线性化的对象模型具有零增益,不能用于设计PID控制器。
获得线性植物模型的另一种方法是直接从Simulink模型中估计频率响应数据,创建一个万博1manbetx的朋友
系统,并将其导入到PID调谐器继续PID设计。
正弦流输入信号是最可靠的输入信号,用于估计Simulink模型的准确频率响应万博1manbetxfrestimate
函数。有关如何使用frestimate
,请参阅基于仿真技术的频率响应估计.
在本例中,创建一个正弦流,其扫频范围为0.1至10 rad/sec,振幅为1e-3。您可以使用bode图检查估计结果。
构造正弦流信号。
在=弗列斯特。Sinestream (“频率”,日志空间(-1,1,50),“振幅”1 e - 3);
估计频率响应。此过程可能需要几分钟。
sys=frestimate(mdl、io、in);
显示估计的频率响应。
博德(系统)
sys
是一个的朋友
表示工厂在初始工作点的频率响应的系统。用在PID调谐器,我们需要在PID调谐器启动。点击植物,并选择进口.进口产品的抽样率的朋友
植物必须匹配PID控制器块的采样率。
点击导入LTI系统,并在列表中选择sys.然后,点击“确定”,导入的朋友
系统进PID调谐器.自动设计返回稳定控制器。单击添加绘图,并选择开环波德图。图中显示了合理的增益和相位裕度。点击显示参数来查看增益和相位裕度值。时域响应图不可用的朋友
工厂模型。
要更新PID块P和I增益,单击更新块.
在Simulink中的仿真表万博1manbetx明,新的PI控制器在控制非线性模型时具有良好的性能。
关闭模式。
bdclose (mdl)