我怎么得到一个代数循环错误,诊断时将警告?
我曾经遇到一个问题,仿真软件报道,“不能解决代数循环……”金宝app
代数循环可以通过模型来解决,但通常减缓仿真金宝app。出于这个原因,我们有代数循环诊断可以设置为错误,警告或没有一个。特殊的关于这个模型是代数循环诊断成立吗警告,但模型将报告一个错误,而不是模拟!使事情更困难,我不得不使用模型的屏幕截图,而不是模型的自我。
代数循环是什么?
代数循环存在一个变量出现在双方的方程。例如,
代数循环通常发生在仿真软件有降低延迟,例如,传感器,提要通过一个信号从金宝app输入到输出。
读取错误消息
调试这类问题的第一步是阅读和理解错误消息。代数循环发生错误的原因各不相同。理解错误的原因我不得不了解的信息。
不能解决代数循环涉及的模型/…/传感器系统”,因为它包含块不能分配代数变量,即。,blocks with discrete-valued outputs, blocks with non-double or complex outputs, Stateflow blocks, or nonvirtual subsystems.
要做的这个消息,我们得知仿真软件不能解决代数循环,除非它可以分配一个代数变量。金宝app不能分配块代数变量中列出的错误。
- Discrete-valued输出,如逻辑块(0或1)
- 块non-double输出
- 块输出复杂的值(3 + 2)
- Stateflow块
- Nonvirtual子系统
找出与模型的消息
接下来,我看着屏幕截图,看看我能找到这些块。这是大致相似的屏幕截图发送到技术支持:金宝app
我注意到的第一件事是所有类型uint8的信号。这些都是non-double类型,这可能是问题的一部分。我注意到的另一件事是沉重的线子系统。这意味着这些原子子系统。原子子系统nonvirtual,那些是在块的列表可能会导致这个问题。
可能的解决方案
因为这些都是原子子系统,我建议启用最小化代数循环出现优化。
子系统可以被认为一个函数的输入和状态
在一些系统中,输出信号的计算不直接依赖于输入。如果这是真的,你可以分开成两个方程组。
这个选项也可以通过配置参数模型参考块的模型引用条目。
这是怎么发生的?
这个模型是集成来自许多不同的组件团队的结果。原始模型包含虚拟子系统,用于升级和新组件模型原子子系统。切换回虚拟可能解决这个错误。
代数循环诊断没有控制这个错误,因为这是检查最小溶解度要求这种类型的问题。
现在轮到你了
有额外的信息技术支持解决方案金宝搏官方网站金宝app理解代数循环,仿真软件是如何解决金宝app这些问题呢。你遇到这个错误吗?你怎么解决它?留下一个这里的评论关于你的经历。
评论
留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。