文档

MDLEMOROSSING

更新零交叉向量

必需的

语言

C,C ++

句法

#define mdl_zero_crossingsvoid mdlzeroprossings(SimStruct *s)

参数

s

代表S功能块的SIMSTRUCT。

描述

仅当S函数进行零交叉检测时,才需要提供此可选方法。实施零交叉检测通常需要使用零交叉和模式工作向量来确定何时发生零交叉以及S函数的输出应如何响应此事件。这MDLEMOROSSING方法应使用S-功能的零交叉向量来更新SSGETNONSMPLEDZC

您可以使用可选的MDLEMOROSSING当您的S功能已注册时连续_sample_time并没有零采样(零)(ssgetnumnonsampledzcs(s)> 0)。这MDLEMOROSSING常规用于提供Simulink金宝app®带有信号的发动机将用于零交叉点。这些通常是

  • 连续进入S功能的信号

  • 内部生成的信号通常在不连续性中发生零的信号mdlOutputs

因此,使用零交叉信号来定位不连续性,并在零交叉点处结束当前时间步长。为了向发动机提供零交叉信号,MDLEMOROSSING更新ssgetnonsampleszcs(S)向量。

例子

例如,请参阅sfun_zc_sat.c。可以在此中找到此示例的详细说明零交叉

也可以看看

mdlinitialsizes,,,,SSGETNONSMPLEDZC

在R2006a之前引入