有些块维护它们在模拟过程中使用的状态信息。例如,单位延迟块使用块的当前状态来计算下一个仿真时间步长的输出信号值。
子系统块具有默认的初始化和终止例程。使用下面的方法可以将自定义例程添加到默认例程中初始化功能和终止函数块以更改或读取块状态。这些功能块包含:
活动侦听器在接收到初始化或终止函数调用事件时执行组合例程的块。
国家作家块初始化块状态和国家的读者块读取状态。
您可以使用simulink定义模型算法金宝app®块。在这个例子中,一个单一离散时间集成商块定义对输入信号积分的算法。
打开一个新的Simul金宝appink模型。使用名称保存此模型Model01
.
添加A.离散时间集成商块。验证默认参数值是否为1.0
为获得的价值,0
为初始条件,国家(最有效)
为初始条件设置, 和-1
为样品时间.
连接一个持续的块的输入离散时间集成商块模拟输入信号。连接一个范围块到输出信号。
打开“配置参数”对话框。设置求解器的仿真参数类型来固定步
,求解器来汽车
, 和固定的大小来1
.
打开范围块,然后运行模拟。输出信号增加1
每次步骤。
有些模型算法包含可以初始化的状态。例如,使用读取传感器值的算法,可以执行计算来设置传感器的初始状态。
在模拟开始时,使用a初始化块的状态国家作家块。要控制何时进行初始化,请使用初始化功能块,其中包括国家作家块。
添加一个初始化功能块。
默认情况下,初始化功能块包含一个活动侦听器块事件类型参数设置为初始化
.该街区还包括一个国家作家块,和一个持续的块作为初始状态值来源的占位符。
模型初始条件。在本例中,设置恒定值参数为持续的块4
.
将州作家与州所有者联系起来。打开State Writer对话框。展开状态所有者选择器树,选择离散时间集成商
,然后单击应用.
的国家作家显示状态所有者块的名称。状态所有者块显示一个标记,指示到国家作家块。如果单击标签上方的标签,将打开一个列表,其中包含导航到国家作家块。
运行模拟以确认模型模拟无误。
的初始化功能块在模拟开始时执行。输出信号从初始值开始4
然后增加1
直到模拟结束。
在模拟过程中,您可以使用国家作家块。要控制重置何时发生,请使用初始化功能块你重新配置到一个重置功能块。
添加一个初始化功能块。
打开新初始化功能块。
配置块复位。的块参数对话框活动侦听器块。来自事件类型下拉列表中,选择重启
.在事件名称框,输入事件名称。例如,输入重启
.关闭对话框。
模型重置条件。在本例中,设置恒定值参数为持续的块2
.
连接州作家与州所有者。打开State Writer对话框。展开状态所有者选择器树,选择离散时间集成商
,然后单击应用.
导航到的顶层Model01
.将块重命名为初始化Function1
来重置功能
.
更新模型后,事件名称重置功能块显示在块的面部。
如果单击标记上方,则将打开列表,其中包含用于导航到的链接国家作家块位于初始化功能街区和重置功能块。
运行模拟以确认模型模拟无误。
的重置功能块在模拟期间不会执行。它需要一个函数呼叫事件信号。
要为Reset Function块创建函数调用事件信号,请参见创建测试工具以生成函数调用.
在模拟结束时,您可以读取块的状态,并保存该状态。
添加A.终止函数块。
默认情况下,终止函数块包含一个活动侦听器块与参数事件类型设置为终止
.该街区还包括一个国家的读者块,和一个终结者块作为保存状态值的占位符。
将状态读者与状态所有者连接。打开状态读者对话框。从状态所有者选择树,选择离散时间集成商
,然后单击应用.
运行模拟以确认模型模拟无误。的终止函数块在模拟结束时执行。
删除为测试添加的块。取代持续的块与A.inport.街区和范围块与A.外港块。
在将组件模型放置在用于仿真测试的导出功能模型中时,请进行以下更改以避免模拟错误。
的块参数对话框离散时间集成商块。放积分方法来积累:向前欧拉
.
打开模型配置参数对话框。确认解决类型被设定为固定步
和求解器被设定为汽车
.改变固定的大小从1
来汽车
.
此更改避免了通过在功能呼叫子系统中具有多个采样时间引起的模拟错误。
将模型组件放置在测试工具中,以测试初始化、重置和terminate函数,这要求模型遵循导出函数规则。看到导出功能模型概述和创建测试工具以生成函数调用.
要创建导出功能模型,请将模型组件放在函数调用子系统块使用A.模型块。将输入和输出端口从模型连接到子系统输入和输出端口。
创建Simulin金宝appk模型。使用名称保存此模型Model02
.
打开“配置参数”对话框。设置求解器的模拟参数类型来固定步
.确认求解器被设定为汽车
和固定的大小被设定为汽车
.
添加A.函数调用子系统块。通过双击块打开子系统。
添加A.模型阻塞到子系统并设置型号名称来Model01
.添加inport.和外港块。
导航到模型的顶级。
添加一个inport.块。这个块是执行子系统的控制信号。将块名称更改为运行
并将其连接到函数()
港口。
打开inport.块对话框,并在信号属性选项卡上,选择输出函数调用复选框。
添加第二个inport.阻止并将其重命名为信号
.把它连接到In1.
子系统的端口。这个块是积分算法的信号。
添加一个外港块,将它重命名为信号
,然后将它连接到着干活
子系统的端口。这个块是集成信号。
打开“配置参数”对话框。在“模型”引用窗格中,设置每个top模型允许的实例总数来一个
.
更新模型并按下确认没有错误Ctrl-D..
下一步是创建测试线束。看到创建测试工具以生成函数调用.