主要内容

在仿真期间可视化 Simulink 模型的波特响应

此示例说明如何在仿真期间可视化非线性 Simulink® 模型的线性系统特性,这些特性是在模型工作点处(仿真快照时间为 0)计算的。

  1. 打开 Simulink 模型。

    例如:

    openExample("watertank")
  2. 打开 Simulink 库浏览器。在 Simulink 编辑器的仿真选项卡上,点击库浏览器

  3. 向 Simulink 模型添加一个绘图模块。

    1. Simulink Control Design 库中,选择 Linear Analysis Plots

    2. 将模块(例如 Bode Plot 模块)拖放到模型窗口中。

      该模型现在类似于下图所示。

  4. 双击模块以打开“模块参数”对话框。

    要了解有关模块参数的详细信息,请参阅模块参考页。

  5. 指定线性化 I/O 点。

    线性系统是针对 Water-Tank System 计算的。

    提示

    如果您的模型已包含 I/O 点,则该模块会自动检测并显示这些点。可随时点击 以使用模型中的 I/O 更新线性化输入/输出表。

    1. 要指定输入,请执行以下操作:

      1. 点击线性化输入/输出表旁边的

        “模块参数”对话框会展开以显示点击模型中的一个信号以选择它区域。

        提示

        您可以在 Simulink 模型中一次选择多个信号。所有选择的信号都会显示在点击模型中的一个信号以选择它区域中。

      2. 在 Simulink 模型中,点击 PID Controller 模块的输出信号以选择该信号。

        点击模型中的一个信号以选择它区域将更新以显示所选信号。

      3. 点击 以将信号添加到线性化输入/输出表中。

    2. 要指定输出,请执行以下操作:

      1. 在 Simulink 模型中,点击 Water-Tank System 模块的输出信号以选择该信号。

        点击模型中的一个信号以选择它区域将更新以显示所选信号。

      2. 点击 以将信号添加到线性化输入/输出表中。

      3. 线性化输入/输出表的配置下拉列表中,为以下模块选择开环输出watertank/Water-Tank System:1

      线性化输入/输出表现在类似于下图所示。

    3. 点击 以折叠点击模型中的一个信号以选择它区域。

    提示

    或者,在您添加 Linear Analysis Plots 模块之前,右键点击 Simulink 模型中的信号,然后选择线性分析点 > 输入扰动线性分析点 > 开环输出。线性化 I/O 注解会出现在模型中,所选信号会出现在线性化输入/输出表中。

  6. 保存线性系统。

    1. 选择记录选项卡。

    2. 选择将数据保存到工作区选项,并在变量名称字段中指定变量名称。

      记录选项卡现在类似于下图所示。

  7. 点击显示图以打开一个空绘图。

  8. 通过点击绘图窗口中的 来绘制线性系统特性。

    您也可以从模型窗口对模型进行仿真。

    软件会在默认仿真时间 0(在“模块参数”对话框的快照时间参数中指定)时对模型中线性化输入与输出之间的部分进行线性化,并绘制波特幅值和相位图。

    仿真完成后,绘图窗口类似于下图所示。

计算出的线性系统在 MATLAB® 工作区中保存为 syssys 是具有 timevalues 字段的结构体。要查看该结构体,请键入:

sys

该命令返回以下结果:

sys = 

         time: 0
       values: [1x1 ss]
    blockName: 'watertank/Bode Plot'
  • time 字段包含计算线性系统的默认仿真时间。

  • values 字段是一个状态空间对象,用于存储在仿真时间为 0 时计算的线性系统。要了解有关状态空间对象属性的详细信息,请参阅 ss

(如果 Simulink 模型配置为将仿真输出保存为单个对象,则数据结构体 sysSimulink.SimulationOutput 对象中的一个字段,其中包含记录的仿真数据。有关 Simulink 中数据记录的详细信息,请参阅保存仿真数据Simulink.SimulationOutput 参考页。)

另请参阅

主题