主要内容

代数循环建模的注意事项

使用人工代数循环管理大型模型

对于具有代数循环的大型模型,可以采用以下设计技术:

  • 避免创建包含不连续或非双精度数据类型的循环。的仿真软金宝app件®代数环求解器是基于梯度的,必须高精度地求解代数约束。

  • 开发一种方案,清楚地识别原子子系统是直接馈通还是非直接馈通。使用可视化方案,如为块着色或定义块命名约定。

  • 如果您计划为您的模型生成代码,请启用尽量减少代数循环的出现参数,用于所有原子子系统。如果可能的话,确保原子子系统的输入端口直接连接到非直馈模块。

  • 避免将非直馈路径和直馈路径结合使用总线的创造者Mux块。金宝appSimulink可能无法消除任何由此产生的人工代数循环。相反,考虑将非直馈对象和直馈对象聚类到单独的子系统中。

    使用总线选择器块只向原子子系统传递所需的信号。

模型块和直接馈通

当一个模型块是循环的一部分,而块是直接馈通块,可以产生代数循环。模型中的代数循环不一定是错误,但它可以给出意想不到的结果。看到的:

参考模型结构导致的直接模型块馈通

一个模型由于引用模型的结构,块可以是直接馈通块。如果直接通过子模型结构的结果,并导致不需要的代数循环,您可以:

模型配置导致的直接模型块馈通

通用实时()及嵌入式实时()的目标提供单输出/更新功能选项配置参数对话框。此选项控制生成的代码是否具有单独的输出和更新函数,还是具有组合的输出/更新函数。看到的:

单输出/更新功能(默认),则Model块具有组合输出/更新功能。该函数使该块成为所有导入的直接馈通块,而不管所引用模型的结构如何。在不需要的代数循环结果中,您可以:

  • 禁用单输出/更新功能.然后,Model块的代码具有单独的输出和更新函数,消除了直接输入,从而消除了代数循环。

  • 手动插入一个或多个单位延迟块需要打破代数循环。

当使用代数循环求解器时改变块优先级

在仿真的更新阶段,Simulink确定块方法的仿真执行顺序。金宝app这个块调用顺序是执行顺序

如果将优先级分配给非虚拟块以向Simulink指示它们相对于其他块的执行顺序,则代数循环求解器在尝试求解任何代数循环时不尊金宝app重这些优先级。

相关的话题