我是靠谱客的博主 炙热月饼,最近开发中收集的这篇文章主要介绍Debug运行报错345,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

运行报错

1

在这里插入图片描述
是信号没有初值的原因,信号系线会出现问号。
解决办法:右击 explore
在这里插入图片描述
在这里插入图片描述
解决办法:
在这里插入图片描述
在这里插入图片描述

2

在这里插入图片描述

3

诊断器报错:
Simulink cannot solve the algebraic loop containing ’ … ’ at time
解决方法:
一、代数环的问题
在数字计算中,输入信号决定输出信号,同时输出信号也决定输入信号,由于数字计算的时序性,导致没有输出信号无法计算输入信号,没有输入信号又反过来无法计算输出信号,形成一个死锁(deadlock)或死循环,这就是代数环。如下图1所示,就是一个简单的代数环的例子。
二、代数环产生的条件
简单地说,代数环其实就是一个输入信号包含输出信号,同时输出信号也包含输入信号的特殊反馈回路。在simulink中,这是由于直通模块(无延时的模块)的原因造成的,simulink中大部分的模块都是直通模块,因此很容易形成代数环。在整个回路中,只包含直通模块就会形成代数环,反馈回路有延时模块就会消除代数环。
三、代数环的解决措施
1、用工具栏中的“simulink”中的“diagnostics”对代数环进行消除
将simulink中diagnostics的对代数环的处理信息进行选择,将对代数环的处理信息选择为“none”,即忽略代数环的信息。
2、在反馈回路中添加延时模块进行消除
由于代数环的产生是由于整个模型中所有模块均为直通模块,因此只需在反馈回路中添加延时模块即可消除代数环。延时模块有delay模块、memory模块,如图2所示,用memory来消除代数环。
3、用变换法消除代数环
对于简单的代数环问题,可以通过人为地采用数字变换法来求解消除代数环,但这只针对简单的代数环有限,对于复杂的代数环基本不可能实现。
4、在反馈回路中添加入高频传递环节
在反馈回路中添加入高频传递函数,打断反馈回路中的直通模块,消除输入信号与输出信号的关联关系

4

Function ‘quadprog’ not supported for code generation.
解决方法:
simulink代码生成的过程中,有些函数是不支持内部代码生成的,需要将其定义为外部函数,使用coder.extrinsic声明一下即可,详细的你可以参考一下matlab的帮助文档doc coder.extrinsic
coder.extrinsic(‘quadprog’);

5

When input “beq” is empty, it must be a 0-by-1 empty double array.
在这里插入图片描述
解决办法: beq = zeros(0,1); 而非 beq = [];

最后

以上就是炙热月饼为你收集整理的Debug运行报错345的全部内容,希望文章能够帮你解决Debug运行报错345所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部