什么是代数环?

发生在两个或多个模块在输入端口具有信号直接传递而形成反馈的情况时,直接传递的模块在不知输入端口的值的情况下无法计算出输出端的值,也就是现在时刻的输出是依赖现在时刻的输入值来计算的。当这种情况出现时simulink会在每一次迭代言算完成时,去决定它是否会有解。代数回路会减缓方真执行的速度并可能会没有解。

当方程两边都出现同一个变量时,即产生了代数环。如:3y+4=y

当Simulink中存在非模型延迟时,通常会产生代数环。比如,传感器将输出信号反馈到输入端。

解决代数环:连续模型,在构成代数环的反馈环节加入memory模块;离散模型就加入单位延迟1/Z,不过加入memory后仿真会慢些,但用了加速后,这个牺牲还是值得的。另还有拆解法等,具体见下面第9行论文内容。

Simulink提供了一些专门手段来拆解代数环,例如代数约束模块(Algebraic Constraint),积分模块(以及离散积分模块)的状态输出端等。这些手段可以解决一些特定的代数环问题。下面举一个利用积分模块的状态输出端的例子。

从积分模块的输人端口到输出端口是非直通的,但从积分模块的初始值输人端口到输出端口,以及从复位输人端口到输出端口却都是直通的。因此,如果从积分模块的输出端口引出的信号再经过一些直通模块后又反馈到积分模块的初始值输人端口或者复位输人端口,则构成一个代数环。

为了解决这个问题,Simulink专门为积分模块设计了一个状态端口(state port),其输出与输出端口完全相同,仅在内部计算的时序上有细微区别,而无论是从积分模块的初始值输人端口还是从复位输人端口到状态端口都是非直通的。因此,当出现上述的代数环问题时,可以从积分模块的状态端口引出信号。这样,代数环就被拆解了。

参考论文:<>     <>

更多代数环的知识:

1 代数环的基本概念

代数环的一个最简单的例子如图1 所示。图1 中实现的是一个减法器模块,其输出反馈回来作为一个输入。这个看似简单的例子却反映了一个复杂的问题:在进行仿真时,按正常的计算顺序,应该先计算模块的输入,然后再计算由输入驱动的输出,而在图1 所示的情况下,因为输入中的一部分直接来自于输出,在没有得到输出数据的时候,输入是无法计算的;同时,因为输出中的一部分直接来自于输入,在没有得到输入数据的时候,输出也是无法计算的。这是一个死锁(deadlock)条件。这就是所谓的代数环。

输出中的一部分反馈到输入,或者说,输入直接决定于输出,这是反馈回路的共同特点。代数环是一种特殊的反馈回路,它的特殊之处就在于除了输入直接决定于输出外,输出还直接决定于输入,在这里, “直接”二字很重要,它体现了代数环的实质,仿真计算中的死锁就是由此产生的。

当然,通过变换拆环,容易解决图1 所示问题。事实上,图1 中实现的功能可以表示为:

z = u ? z

它可以变换为:

z = u/ 2

显然,这时候代数环不存在了,仿真计算不存在问题。但实际问题中的代数环的表现形式千差万别,有的是非常复杂的,不可能仅用这样的简单办法来解决。

2 产生代数环的条件

如前所述,代数环是一种反馈回路,但并非所有的反馈回路都是代数环。代数环存在的充分必要条件是:存在一个闭合路径,该闭合路径中的每一个模块都是直通模块。

所谓直通,指的是模块输入中的一部分直接到达输出。SimuLink的模块库中提供的很多模块都是直通模块。

3 一般动力学模型仿真过程中避免代数环的方法

代数环对应于一定的数学模型的形式(即隐函数的形式) ,如果能够将原始的数学模型进行等价变换,得到显函数形式,则按显函数实现仿真模型,就可以消除代数环。

matlab 细化 去环,Matlab的memory模块消除代数环相关推荐

  1. matlab中memory模块初始值,Matlab的memory模块消除代数环

    什么是代数环? 发生在两个或多个模块在输入端口具有信号直接传递而形成反馈的情况时,直接传递的模块在不知输入端口的值的情况下无法计算出输出端的值,也就是现在时刻的输出是依赖现在时刻的输入值来计算的.当这 ...

  2. matlab memory 代数环,matlab/simulink中代数环的问题及解决措施

    一.代数环的问题 在数字计算中,输入信号决定输出信号,同时输出信号也决定输入信号,由于数字计算的时序性,导致没有输出信号无法计算输入信号,没有输入信号又反过来无法计算输出信号,形成一个死锁(deadl ...

  3. matlab/simulink中代数环的问题及解决措施

    一.代数环的问题 在数字计算中,输入信号决定输出信号,同时输出信号也决定输入信号,由于数字计算的时序性,导致没有输出信号无法计算输入信号,没有输入信号又反过来无法计算输出信号,形成一个死锁(deadl ...

  4. matlab memory 代数环,[2018年最新整理]simulink代数环解决方法.doc

    [2018年最新整理]simulink代数环解决方法 一,代数环 在simulink中,直接馈通定义为系统的输出直接依赖输入,也就是说,模块的输出方程中包含输入则此模块具备直接馈通特性将带有直接馈通特 ...

  5. Matlab Simulink 代数环相关问题

    >> Simulink.BlockDiagram.getAlgebraicLoops(bdroot) 该命令可以检测代数环,在matlab命令窗口直接输入就好,人为代数环显示为虚线,实际代 ...

  6. matlab中的代数环问题及其消除方法,Matlab中代数环问题和其消除方法.PDF

    M a t l a b 中 的 Matlab 中的代数环问题及其消除方法 代 数 环 Algebraic Loop in Simulation of Matlab and its Eliminatio ...

  7. matlab中的代数环问题及其消除方法,Matlab中的代数环问题及其消除方法.pdf

    互 擎译 咛 棼 i 斡 磐 i 叮 j l 由 M atIa b 中的代数环问题及其消除方法 的 代 l i 一 数 环 A 1 9 e b r a i CL o o pi nS i m u l a ...

  8. matlab中的代数环问题及其消除方法,Matlab中的代数环问题及其消除方法

    0 引言 反馈是一种普遍存在的现象,在进行计算机仿真的时候,将经常会遇到反馈回路.仿真时需要按照一定的时序执行相应的计算步骤,对于存在反馈回路的控制系统,输入和输出存在着计算时序,当输入直接取决于输出 ...

  9. MATLAB图像去雾自适应增强

    MATLAB图像去雾自适应增强 摘要:传统的单幅图像去雾方法中大气光强度仅设定为与图像最亮象素有关的经验值,容易造成去雾后的图像亮度偏暗,且某些区域色彩还原失真等问题.本文提出一种大气光强度自适应恢复 ...

最新文章

  1. [转载]关于Android ProGuard混淆学习记录
  2. springboot中下面哪一个作为jpa默认实现_天天在用SpringBoot,手撸一个的Starter试试!...
  3. 导出对象_从代数几何到导出代数几何:形变与逼近
  4. Caffe + windows + python3.5安装
  5. JESD204B的AXI4-Lite时序分析(对比SRIO的AXI4-Lite时序分析)
  6. php直接的模块接口,api(接口)模块
  7. Process Explorer 15.2:微软增强型任务管理器
  8. 更便捷的画决策分支图的工具_做出更好决策的3个要素
  9. 参考平面及其高度_施工现场平面布置关键点分析
  10. 如何在macOS下调整磁盘分区大小
  11. vant:修改van-nav-bar__title颜色——vant中nav-bar组件标题颜色
  12. 知识融合(实体对齐)笔记
  13. R语言数据清理:视频游戏数据案例研究
  14. Julia: bug? = split ,isnumber
  15. 鸿蒙电脑操作系统下载,电脑操作系统下载,鸿蒙电脑操作系统下载
  16. 人教版五年级计算机教案,人教版信息技术五年级下册教案
  17. 计算机论文研究思路怎么写,论文的研究思路怎么写
  18. 通用技术金工工艺高考必考必看的知识点含攻丝与套丝讲解
  19. CISCO路由器、交换机设备破解密码
  20. 网络安全岗位介绍——等级保护测评师

热门文章

  1. STM32 Keil问题解决:Invalid ROM Table
  2. Dota2技能系统设计分析
  3. iOS 圆盘旋转 ~demo
  4. MKS SERVO57C 闭环步进电机V1.0 使用说明
  5. html listview遍历,list-view.html
  6. 每天一道大厂SQL题【Day17】腾讯外包(微信相关)真题实战(二)
  7. 三相逆变器离网控制——PR控制
  8. 实验2.1:交换机VLAN配置
  9. 剖析特洛伊木马(转)
  10. Java的对象关系映射