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