文档

与S-功能合规SIMSTATE

SIMSTATE遵守规范Level-2的MATLAB S-功能

对于默认SIMSTATE规范设定,Simulink中保存并恢复了块以下数据:万博1manbetx

  • 连续状态值

  • 存储在非刮DWork矢量值(这包括IWORK,RWork和模式DWORKS)

  • 过零信号的值

为了一个Level-2 MATLAB®S-功能与工作SIMSTATE功能,你必须指定simStateCompliance使用该方法的块的,

block.simStateCompliance =设置

其中允许的设置值是:

设置 结果
'UnknownSimState' 此默认设置指示的Simulink万博1manbetx®使用DefaultSimState保存和恢复SIMSTATE并发出警告。
'DefaultSimState' 此设置指示Simulink的治疗S-功能就像一万博1manbetx个保存和恢复时,内置块SIMSTATE
'HasNoSimState'

此设置通知Simulink中的S-功能没有万博1manbetx任何仿真状态。使用此设置,没有状态信息保存为块。此设置是“汇”块(即,块,没有输出端口)的在使用中很有用PWorks要么DWORKS存储句柄文件或图形窗口。

注意

如果S-功能寄存器任何离散或连续的状态或零个交叉信号,此设置是不允许的。

'CustomSimState' 此设置通知Simulink中的S-功能定制万博1manbetxGetSimStateSetSimState方法。
'DisallowSimState' 此设置通知Simulink中的S-功能不允万博1manbetx许保存或恢复其模拟状态。万博1manbetxSimulink的,如果你保存和恢复报告错误的SIMSTATE包含这个S函数模型。

用于与自定义方法的S-功能('CustomSimState'),你可以使用下面的语句来分别获取和设置SIMSTATE

功能outSS = GetSimState()函数SetSimState(,INSS)

对于如何实现这些自定义的方法的例子,见msfcn_varpulse.m

SIMSTATE遵守规范C-MEX S-功能

由于与MATLAB S-功能,您的C-MEX S函数代码必须告知Simulink中S函数遵守的万博1manbetxSIMSTATE特征。您可以通过使用S函数API完成这个任务,ssSetSimStateCompliance

在大多数情况下,指定合规是默认足以保存和恢复必要的状态数据。要指定默认的合规性,加入这一行:

ssSetSimStateCompliance(S,USE_DEFAULT_SIM_STATE)。

选项如下:

设置 结果
SIM_STATE_COMPLIANCE_UNKNOWN 这是所有S-功能的默认设置。对于不使用S-功能PWorks,S万博1manbetximulink的保存和恢复默认仿真状态(参见下一个选项),并发出警告,告知这一假设的用户。在另一方面,Simulink的过程中报万博1manbetx告错误保存和恢复,如果它遇到一个S-功能用途PWorks
USE_DEFAULT_SIM_STATE 此设置指示Simulink的治疗S-功能就像一万博1manbetx个保存和恢复时,内置块SIMSTATE
HAS_NO_SIM_STATE

此设置通知Simulink中的S-功能没有万博1manbetx任何仿真状态。使用此设置,没有状态信息将保存此块。此设置是“汇”块(即,块,没有输出端口)的在使用中很有用PWorks要么DWORKS存储句柄文件或图形窗口。

注意

如果S-功能寄存器任何离散或连续的状态或零个交叉信号,此设置是不允许的。

DISALLOW_SIM_STATE 此设置通知Simulink中的S-功能不允万博1manbetx许保存或它的模拟状态的恢复。万博1manbetxSimulink的,如果你保存和恢复报告错误的SIMSTATE包含这个S函数模型。
USE_CUSTOM_SIM_STATE 此设置通知Simulink中的S-函数万博1manbetxmdlGetSimStatemdlSetSimState方法。

对于S-函数使用PWork载体或静态变量来保存数据的Simulink仿真的更新过程中,S-功能必须使用自定义万博1manbetxmdlGetSimStatemdlSetSimState方法。下面的语句演示了正确的格式。

mxArray * mdlGetSimState(SimStruct * S)空隙mdlSetSimState(SimStruct * S,常量mxArray * INSS)

对于如何实现这些方法的例子,见sfun_simstate.c

是这个主题有帮助吗?