主要内容

使用初始化、重置和终止函数

有些块维护它们在模拟过程中使用的状态信息。例如,单位延迟块使用块的当前状态来计算下一个仿真时间步长的输出信号值。

子系统块具有默认的初始化和终止例程。使用下面的方法可以将自定义例程添加到默认例程中初始化函数终止函数块来更改或读取块状态。这些功能块包括:

  • 事件监听器在接收到初始化或终止函数调用事件时执行组合例程的块。

  • 国家的作家块初始化块状态和国家的读者块读取状态。

用状态创建模型组件

您可以使用Simulink定义模型算法金宝app®块。在本例中,单个离散时间积分器块定义对输入信号积分的算法。

  1. 打开一个新的Simul金宝appink模型。使用名称保存该模型Model01

  2. 添加一个离散时间积分器块。验证默认参数值为1.0获得的价值0初始条件状态(最有效)初始条件设置,-1样品时间

  3. 连接一个常数块的输入离散时间积分器块来建模输入信号。连接一个范围块输出信号。

  4. 打开“配置参数”对话框。设置求解器的仿真参数类型固定步解算器汽车,固定的大小1

  5. 打开范围块,然后运行仿真。输出信号增加1在每个时间步骤。

初始化块状态

有些模型算法包含可以初始化的状态。例如,使用读取传感器值的算法,可以执行计算来设置传感器的初始状态。

在模拟开始时,使用国家的作家块。要控制何时进行初始化,请使用初始化函数块,其中包括国家的作家块。

  1. 添加一个初始化函数块。

    默认情况下,初始化函数块包含一个事件监听器块的事件类型参数设置为初始化.该块还包括一个国家的作家块,常数块作为初始状态值来源的占位符。

  2. 模型初始条件。在本例中,设置恒定值参数的常数4

  3. 将州作家与州所有者联系起来。打开State Writer对话框。展开状态所有者选择器树,选择离散时间积分器,然后单击应用

    国家的作家显示状态所有者块的名称。状态所有者块显示一个标记,指示到国家的作家块。如果单击标签上方的标签,将打开一个列表,其中包含导航到国家的作家块。

  4. 运行模拟以确认模型模拟无误。

    初始化函数块在模拟开始时执行。输出信号以,初始值为4然后增加1直到模拟结束。

重置块状态

在模拟过程中,您可以使用国家的作家块。要控制重置何时发生,请使用初始化函数块,你重新配置为重置功能块。

  1. 添加一个初始化函数块。

  2. 打开新初始化函数块。

  3. 配置块复位。的块参数对话框事件监听器块。从事件类型下拉列表中,选择重置.在事件名称框中,输入事件名称。例如,输入重置.关闭对话框。

  4. 模型重置条件。在本例中,设置恒定值参数的常数2

  5. 连接州作家与州所有者。打开State Writer对话框。展开状态所有者选择器树,选择离散时间积分器,然后单击应用

  6. 导航到的顶层Model01.将块重命名为初始化Function1重置功能

    事件的事件名在更新模型之后重置功能块显示在块的正面。

    如果单击标记上方,将打开一个列表,其中包含导航到国家的作家位于初始化函数块和重置功能块。

  7. 运行模拟以确认模型模拟无误。

    重置功能块在模拟期间不会执行。它需要一个函数调用事件信号。

    要为Reset Function块创建函数调用事件信号,请参见创建测试工具以生成函数调用

读取和保存块状态

在模拟的最后,您可以读取一个块的状态,并保存该状态。

  1. 添加一个终止函数块。

    默认情况下,终止函数块包含一个事件监听器带参数的块事件类型设置为终止.该块还包括一个国家的读者块,《终结者》块作为保存状态值的占位符。

  2. 将状态读取器与状态所有者连接。打开状态读取器对话框。从状态所有者选择器树中选择离散时间积分器,然后单击应用

  3. 运行模拟以确认模型模拟无误。的终止函数块在模拟的最后执行。

  4. 删除为测试添加的块。取代常数块一个轮廓尺寸块和范围块一个外港块。

为测试准备模型组件

在将组件模型放入导出函数模型进行模拟测试时,请进行以下更改,以避免模拟错误。

  1. 的块参数对话框离散时间积分器块。集积分器的方法积累:向前欧拉

  2. 打开模型配置参数对话框。确认解决类型被设置为固定步解算器被设置为汽车.改变固定的大小1汽车

    这种更改避免了在函数调用子系统中有多个示例时间所导致的模拟错误。

创建一个出口-功能模型

将模型组件放置在测试工具中,以测试初始化、重置和terminate函数,这要求模型遵循导出函数规则。看到导出功能模型概述创建测试工具以生成函数调用

要创建导出功能模型,请将模型组件放在函数调用子系统块使用模型块。将模型的输入输出端口连接到子系统的输入输出端口。

  1. 创建一个Simul金宝appink模型。使用名称保存该模型Model02

  2. 打开“配置参数”对话框。设置求解器的模拟参数类型固定步.确认解算器被设置为汽车固定的大小被设置为汽车

  3. 添加一个函数调用子系统块。通过双击块打开子系统。

  4. 添加一个模型阻塞到子系统并设置模型名称Model01.添加轮廓尺寸外港块。

  5. 导航到模型的顶层。

  6. 添加一个轮廓尺寸块。这个块是执行子系统的控制信号。将块名称更改为运行把它连接到函数()端口。

    打开轮廓尺寸块对话框,并在信号属性选项卡上,选择输出函数调用复选框。

  7. 添加第二个轮廓尺寸阻止并重命名为信号.把它连接到三机一体子系统的端口。这个块是积分算法的信号。

    添加一个外港块,重命名为信号,然后把它连接到着干活子系统的端口。这个块是集成信号。

  8. 打开“配置参数”对话框。在“模型引用”窗格中,设置每个top模型允许的实例总数一个

  9. 更新模型并按下确认没有错误ctrl - d

下一步是创建一个测试工具。看到创建测试工具以生成函数调用

另请参阅

相关的话题