主要内容

在仿真期间执行在线频率响应估计

R2026b

此示例说明在 Simulink® 中对模型进行仿真期间,如何使用 Frequency Response Estimator 模块执行在线频率响应估计。当您计划部署该模块以对物理被控对象进行在线估计时,这种方法可能很有用。在部署之前针对被控对象的 Simulink 模型测试估计算法和试验参数,有助于确保在线估计过程对被控对象是安全的。

控制系统模型

此示例使用的模型已包含配置好用于估计的 Frequency Response Estimator 模块。打开模型。

mdl = "OnlineFreqRespEstimEx.slx";
open_system(mdl)

该模型包含一个采用闭环配置并带有 PI 控制器的被控对象。Frequency Response Estimator 模块接受控制信号作为输入 u。它将控制信号加上扰动信号一起馈入被控对象输入。您可以使用该模块的参数来指定扰动信号的属性。

试验参数

Frequency Response Estimator 模块配置为在正弦流模式下运行试验,这意味着它会在每个频率下注入单独的扰动信号。该模块还配置为对扰动信号中的每个频率使用相同的振幅 1。

该模块进一步配置为在频率 w = logspace(0,2,20) 处估计频率响应。为了确保试验采样率足够快,能够适应最高频率,建议将采样时间设置为约 0.6/wmax 或更小的值,其中 wmax 为最高频率,以弧度/秒为单位。对于此示例,试验采样时间为 0.005 秒,对于 100 弧度/秒的 wmax 而言已足够快。

开始/停止信号

连接到 start/stop 输入端口的阶跃模块会在 t = 5 时通过上升信号开启试验,此时模型处于稳态。模块给出的建议试验时长约为 174 秒。此值基于指定的频率 w、每个频率下等待的稳定周期数以及用于估计的周期数。为确保试验运行时长足以获得良好结果,start/stop 信号会在 t = 180 时停止试验。有关建议试验时长的详细信息,请参阅 Frequency Response Estimator。

估计结果

仿真模型。您可以使用示波器来可视化控制信号、扰动信号和被控对象输出。由于选中了显示波特图模块参数,模块会自动生成指定基线模型图,并使用估计的频率响应定期更新该图。

sim(mdl)

frd 端口处的信号是一个向量,其中包含 w 中每个频率下估计响应的当前值。连接到该端口的 To Workspace 模块将信号写入 MATLAB® 工作区变量 frdata。在 To Workspace 模块中,将数据点限制为最后参数设置为 1,因此 frdata 仅包含每个频率下的最终估计响应。将 frdata 转换为 frd 模型对象。

sys_estim = frd(frdata,w);
size(sys_estim)
FRD model with 1 outputs, 1 inputs, and 20 frequency points.

您现在可以将 sys_estim 与接受 frd 模型作为输入的 Control System Toolbox™ 分析和控制设计命令(例如 bode 和 pidtune)结合使用。此外,如果您拥有 System Identification Toolbox™ 软件,则可以使用频率响应数据来估计系统的参数化模型。

记录的试验数据

模型还配置为在模块输出端口记录估计数据(有关数据记录的信息,请参阅使用信号记录保存信号数据)。数据以 Simulink.SimulationData.Dataset 对象 logsout 的形式存储在 MATLAB 工作区中。有关如何使用此数据的信息,请参阅Collect Frequency Response Experiment Data for Offline Estimation。

另请参阅

主题