主要内容

利用估计频率响应设计PID控制器

这个例子展示了如何使用Simulink模型估计的频率响应来设计PI控制器。金宝app当线性化的电厂模型对PID设计无效时(例如,电厂模型具有零增益时),这是一个替代的PID设计工作流。

打开模型

打开引擎控制模型,花一些时间来探索它。

mdl =“scdenginectrlpidblock”;open_system (mdl)

PID回路包括一个并行形式的PI控制器,操纵节气门角度来控制发动机转速。PI控制器具有默认增益,使得闭环系统振荡。我们想要使用从PID块对话框启动的PID调谐器来设计控制器。

open_system ([mdl' /发动机转速(rpm) ']) sim (mdl)

关闭范围。

close_system ([mdl' /发动机转速(rpm) '])

PID调谐器从线性化中获得零增益的植物模型

在这个例子中,PID块看到的植物是从油门角度到发动机转速。线性化输入和输出点已经分别定义在PID块输出和发动机转速测量处。初始工作点的线性化给出了一个增益为零的对象模型。

为了验证零线性化,首先从模型中得到线性化的输入和输出点。

io = getlinio (mdl);

然后,在初始操作点线性化工厂。

io linsys =线性化(mdl)
linsys = D =油门和发动机转速0静态增益。

获得零增益的原因是在线性化路径中有一个触发子系统(压缩),而分析的逐块线性化不支持基于事件的子系统。金宝app自PID调谐器用同样的方法得到一个线性植物模型,PID调谐器获得了一个零增益的工厂模型,并在发射过程中拒绝了它。

启动PID调谐器,打开PID块对话框,单击调优.一个信息对话框打开并表明在初始操作点线性化的对象模型具有零增益,不能用于设计PID控制器。

获得线性植物模型的另一种方法是直接从Simulink模型中估计频率响应数据,创建一个金宝app的朋友系统的MATLAB工作空间,并将其导入PID调谐器继续进行PID设计。

使用正弦流信号获取估计的频响数据

正弦流输入信号是最可靠的输入信号,用于估计Simulink模型的准确频率响应金宝appfrestimate函数。以获取更多关于如何使用的信息frestimate,请参阅基于仿真技术的频率响应估计

在这个例子中,创建一个正弦流,扫描频率从0.1到10 rad/sec,振幅为1e-3。您可以使用伯德图检查估计结果。

构造正弦流信号。

在=弗列斯特。Sinestream (“频率”logspace (1, 1, 50),“振幅”1 e - 3);

估计频率响应。这个过程可能需要几分钟。

sys = frestimate (mdl, io);

显示估计的频率响应。

波德(系统)

设计PI控制器

sys是一个的朋友表示工厂在初始工作点的频率响应的系统。用在PID调谐器,我们需要在之后导入它PID调谐器启动。点击植物,并选择进口.进口的采样率的朋友植物必须匹配PID控制器块的采样率。

点击导入LTI系统,并在列表中选择sys.然后,点击“确定”,导入的朋友系统进PID调谐器.自动设计返回稳定控制器。点击添加图,并选择开环波德图。图中显示了合理的增益和相位裕度。点击显示参数来查看增益和相位裕度值。时域响应图不可用的朋友工厂模型。

要更新PID块P和I增益,单击更新块

在Simulink模型中模拟闭环性能金宝app

在Simulink中的仿真表金宝app明,新的PI控制器在控制非线性模型时具有良好的性能。

关闭模式。

bdclose (mdl)

另请参阅

应用程序

功能

相关的话题