matlab/simulink中代数环的问题及解决措施
2016-01-12 15:05
295 查看
转自 matlab/simulink中代数环的问题及解决措施_寻梦的鹰的天空_新浪博客
一、代数环的问题
在数字计算中,输入信号决定输出信号,同时输出信号也决定输入信号,由于数字计算的时序性,导致没有输出信号无法计算输入信号,没有输入信号又反过来无法计算输出信号,形成一个死锁(deadlock)或死循环,这就是代数环。如下图1所示,就是一个简单的代数环的例子。
图1、一个简单的代数环的例子
二、代数环产生的条件
简单地说,代数环其实就是一个输入信号包含输出信号,同时输出信号也包含输入信号的特殊反馈回路。在simulink中,这是由于直通模块(无延时的模块)的原因造成的,simulink中大部分的模块都是直通模块,因此很容易形成代数环。在整个回路中,只包含直通模块就会形成代数环,反馈回路有延时模块就会消除代数环。
三、代数环的解决措施
1、用工具栏中的“simulink”中的“diagnostics”对代数环进行消除
将simulink中diagnostics的对代数环的处理信息进行选择,将对代数环的处理信息选择为“none”,即忽略代数环的信息。
2、在反馈回路中添加延时模块进行消除
由于代数环的产生是由于整个模型中所有模块均为直通模块,因此只需在反馈回路中添加延时模块即可消除代数环。延时模块有delay模块、memory模块,如图2所示,用memory来消除代数环。
图2、用memory模块来消除代数环的例子
3、用变换法消除代数环
对于简单的代数环问题,可以通过人为地采用数字变换法来求解消除代数环,但这只针对简单的代数环有限,对于复杂的代数环基本不可能实现。
4、在反馈回路中添加入高频传递环节
在反馈回路中添加入高频传递函数,打断反馈回路中的直通模块,消除输入信号与输出信号的关联关系。如图3所示。
图3、在反馈回路中添加入高频传递环境来消除代数环的例子
5、重构部分模型
对形成代数环中的某些模块进行重构,以此来消除代数环。
一、代数环的问题
在数字计算中,输入信号决定输出信号,同时输出信号也决定输入信号,由于数字计算的时序性,导致没有输出信号无法计算输入信号,没有输入信号又反过来无法计算输出信号,形成一个死锁(deadlock)或死循环,这就是代数环。如下图1所示,就是一个简单的代数环的例子。
图1、一个简单的代数环的例子
二、代数环产生的条件
简单地说,代数环其实就是一个输入信号包含输出信号,同时输出信号也包含输入信号的特殊反馈回路。在simulink中,这是由于直通模块(无延时的模块)的原因造成的,simulink中大部分的模块都是直通模块,因此很容易形成代数环。在整个回路中,只包含直通模块就会形成代数环,反馈回路有延时模块就会消除代数环。
三、代数环的解决措施
1、用工具栏中的“simulink”中的“diagnostics”对代数环进行消除
将simulink中diagnostics的对代数环的处理信息进行选择,将对代数环的处理信息选择为“none”,即忽略代数环的信息。
2、在反馈回路中添加延时模块进行消除
由于代数环的产生是由于整个模型中所有模块均为直通模块,因此只需在反馈回路中添加延时模块即可消除代数环。延时模块有delay模块、memory模块,如图2所示,用memory来消除代数环。
图2、用memory模块来消除代数环的例子
3、用变换法消除代数环
对于简单的代数环问题,可以通过人为地采用数字变换法来求解消除代数环,但这只针对简单的代数环有限,对于复杂的代数环基本不可能实现。
4、在反馈回路中添加入高频传递环节
在反馈回路中添加入高频传递函数,打断反馈回路中的直通模块,消除输入信号与输出信号的关联关系。如图3所示。
图3、在反馈回路中添加入高频传递环境来消除代数环的例子
5、重构部分模型
对形成代数环中的某些模块进行重构,以此来消除代数环。
相关文章推荐
- C++和MATLAB混合编程-DLL篇
- LaTex文章中插入Visio及Matlab矢量图
- 【MATLAB工程人员的福音】MATLAB R2015b的Coder工具使用实例(二)
- MATLAB矩阵分块函数mat2cell及cellfun函数
- MATLAB加快程序运行的方法:逻辑数组与向量化
- matlab 批量提取CNN特征
- Matlab 01~label矩阵和1-k~label向量的快速转换
- [Matlab]简单的人脸祛痘
- MATLAB中文件的读写和数据的导入导出
- Matlab小技巧
- asp.net与Matlab类型转换(待补全)
- asp.net下调用Matlab生成动态链接库
- matlab连接sql数据库
- matlab和C/C++混合编程--调用opencv
- matlab和C/C++混合编程--Mex
- matlab注释
- C++ 2010 与MATLAB2014a混合编程教程(1)
- 怎样在matlab中添加外部软件包
- Matlab——通信原理小程序
- matlab 工具之各种降维方法工具包,下载及使用教程,有PCA, LDA, 等等。。。