Main Content

本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

以交互方式对模型进行仿真

仿真基础知识

您可以使用工具条中的 Run 按钮 在 Simulink® Editor 中仿真模型。Run 按钮还出现在 Simulink Editor 内的工具中。您可以从包含此按钮的任何工具(如 Scope 查看器)中进行仿真。

开始仿真之前,您可以指定各种选项,如仿真开始时间、停止时间以及用来解算模型的求解器。(请参阅求解器选择标准)您可以在 Configuration Parameters 对话框中指定这些选项,该对话框可通过点击 Modeling 选项卡上的 Model Settings 打开。这些设置与模型一起保存在配置集中。您可以为每个模型创建多个配置集,并通过在配置集之间切换来查看不同设置的效果。请参阅模型配置集

默认情况下,仿真在 0.0 秒时开始,在 10.0 秒时结束。

注意

在 Simulink 软件中,时间和所有相关参数(如采样时间)都隐式以秒为单位。如果您选择使用不同的时间单位,请相应地缩放参数。

您可以在 Solver 配置窗格中为当前所选的仿真配置指定其他开始时间和停止时间。有关详细信息,请参阅 Solver 窗格

注意

仿真时间和实际的时钟时间并不相同。例如,运行仿真 10 秒通常不等于时钟上测得的 10 秒。运行仿真实际需要的时间取决于多种因素,包括模型的复杂程度、步长大小和计算机的速度等。

设置模型配置参数后,即可开始仿真。您可以使用工具条控件暂停、继续和停止仿真。您还可以一次仿真多个模型,所以,当一个仿真运行时可以启动另一个仿真。

在仿真过程中,您不能更改模型的结构,例如添加或删除信号线或模块。但是,您可以在仿真运行时进行以下更改:

  • 修改某些配置参数,包括停止时间和最大步长大小。

  • 修改模块的参数,只要您不会改变以下内容:

    • 状态、输入或输出的数量

    • Sample time

    • 过零点的数量

    • 任何模块参数的向量长度

    • 内部模块工作向量的长度

    • 任何信号的维度

您还可以在仿真运行时直观地检查模型。例如,您可以在 Floating Scope 或 Display 模块上点击某条信号线,查看该信号线携带的信号。在模型的仿真过程中,您还可以显示端口值。请参阅显示端口值以进行调试

运行、暂停和停止仿真

要开始对模型进行仿真,请点击 Run 按钮 。您可以使用工具条上的相应控制项来暂停、继续或停止仿真。

模型在指定的开始时间开始仿真,一直运行到指定的结束时间为止。当仿真运行时,编辑器底部的信息会显示仿真完成的百分比和当前仿真时间。

  • 如果发生错误,将停止仿真并显示一条消息。如果发生警告状况,将完成仿真。在这两种情况下,都可以点击编辑器底部的诊断链接查看相应的消息,帮助您定位错误。

  • 暂停操作将在执行完当前时间步之后生效。恢复暂停的仿真将在下一个时间步发生。

  • 如果您停止仿真,将完成当前时间步,然后停止仿真。

  • 如果模型输出到文件或工作区,停止或暂停仿真将会写入数据。

使用模块来停止或暂停仿真

使用 Stop Simulation 模块来停止仿真

当模块的输入非零时,您可以使用 Stop Simulation 模块来停止仿真。如果模块的输入为向量,则任何非零的元素都会导致仿真停止。

  1. 为您的模型添加一个 Stop Simulation 模块。

  2. Stop Simulation 模块连接到在指定的停止时间变成非零值的信号。

例如,当仿真时间达到 10 时,下面的模型将停止仿真。

使用 Assertion 模块暂停仿真

当模块的输入信号为零时,您可以使用 Assertion 模块暂停仿真。Assertion 模块使用 set_param 命令暂停仿真。有关使用 set_param 命令控制 Simulink 模型执行的详细信息,请参阅以编程方式运行仿真

  1. 在您的模型中添加一个 Assertion 模块。

  2. Assertion 模块连接到在所需的暂停时间变成零值的信号。

  3. Assertion 模块对话框中,清除 Stop simulation when assertion fails 复选框。输入以下命令作为 Simulation callback when assertion fails 的值:

    set_param(bdroot,'SimulationCommand','pause'),
    disp(sprintf('\nSimulation paused.'))

当仿真时间达到 5 时,下面的模型使用具有这些设置的 Assertion 模块暂停仿真。

当仿真暂停时,将显示一条消息,显示模块暂停仿真的时间。

您可以使用 Continue 继续执行仿真,就像对待任何暂停的仿真一样。

另请参阅

| |

相关示例

详细信息