为什么我的“功能”块跑四次步伐?

1视图(30天)
我的“功能”块没有输入,只有输出。一个输出是一个计数器,代表我的次数的功能块。块似乎被称为4次步伐当我遍历模型。
我的模型使用一个固定步ODE4求解器进行求解。我认为这是一个代数循环导致这个错误,但是添加一个单位延迟没有解决我的问题。
预计这种行为?我怎样才能使功能块每运行一次步伐?

接受的答案

MathWorks支万博1manbetx持团队
原因' s函数块叫做四次每一步是因为ODE4解算器调用输出四次每一步计算的积分(每四阶龙格-库塔方法)。这四个步骤被称为小步骤。这个解算器被描述在以下文档:
如果你只想计数的主要步骤(步骤你看到当步进通过仿真软件)然后你就可以修改你的s函数生成器在以下方式:万博1manbetx
1。在s函数构建器接口,确保选中“启用访问SimStruct”右边的设置面板。
2。改变你的功能稍微更新计数器只主要步骤:
无效countmein_Outputs_wrapper (uint8_T * y0,
real_T *日元
SimStruct *年代)
{
/ * Output_BEGIN * /
如果(ssIsMajorTimeStep (S)) {
mycounter + +;
sprintf (y0,“数% d”,mycounter);
*日元= mycounter;
}
/ * Output_END * /
}
这里的关键是使用功能“ssIsMajorTimestep”功能。有关更多信息,请参考以下文档在这个函数:

更多的答案(0)

标签

s manbetx 845


释放

R2022a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!