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任何仿真状态。使用此设置,没有状态信息保存为块。此设置是“汇”块(即,块,没有输出端口)的在使用中很有用 注意如果S-功能寄存器任何离散或连续的状态或零个交叉信号,此设置是不允许的。 |
'CustomSimState' |
此设置通知Simulink中的S-功能定制万博1manbetxGetSimState 和SetSimState 方法。 |
'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任何仿真状态。使用此设置,没有状态信息将保存此块。此设置是“汇”块(即,块,没有输出端口)的在使用中很有用 注意如果S-功能寄存器任何离散或连续的状态或零个交叉信号,此设置是不允许的。 |
DISALLOW_SIM_STATE |
此设置通知Simulink中的S-功能不允万博1manbetx许保存或它的模拟状态的恢复。万博1manbetxSimulink的,如果你保存和恢复报告错误的SIMSTATE 包含这个S函数模型。 |
USE_CUSTOM_SIM_STATE |
此设置通知Simulink中的S-函数万博1manbetxmdlGetSimState 和mdlSetSimState 方法。 |
对于S-函数使用PWork
载体或静态变量来保存数据的Simulink仿真的更新过程中,S-功能必须使用自定义万博1manbetxmdlGetSimState
和mdlSetSimState
方法。下面的语句演示了正确的格式。
mxArray * mdlGetSimState(SimStruct * S)空隙mdlSetSimState(SimStruct * S,常量mxArray * INSS)
对于如何实现这些方法的例子,见sfun_simstate.c
。