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

0 引言 反馈是一种普遍存在的现象,在进行计算机仿真的时候,将经常会遇到反馈回路。仿真时需要按照一定的时序执行相应的计算步骤,对于存在反馈回路的控制系统,输入和输出存在着计算时序,当输入直接取决于输出,同时输出也直接取决于输入时,仿真模型中会出现代数环(Algebraic Loop)。如果在仿真模型中出现了代数环,将会严重影响仿真速度,某些情况下还会严重降低仿真的精度或得到错误的仿真结果。为了保证精度,有效提高速度,必须高度重视解决代数环的问题。 在工程界,非常有名的仿真软件 Matlab 被工程人员广为应用[1-2],其中的 SimuLink 更是其重要的组成部分。利用SimuLink ,可以方便、高效地完成交互式图形建模、仿真运行控制、模型运行过程及仿真结果的观察和分析、模型本身的分析等工作。SimuLink 目前对于代数环问题还没有提出令人满意的解决方案。为保证系统仿真的速度和精确度,有必要研究一种有效的代数环消除方法。基于此,本文结合笔者在应用 SimuLink 的过程中解决代数环问题的经验, 讨论和分析有关代数环的问题。 1 问题的提出 PID 控制器由于线性、简单、可靠,在实际控制系统中得到了广泛应用。在建模过程当中,常常会遇到非常复杂的模 型,这些模型直接用 SimuLink 创建显得非常复杂或者是不可能的, S 函数却可以很容易地解决这些问题。但在进行信号输入时,有可能碰到代数环。笔者在用 S 函数实现免疫模糊 PID 控制器的时候,就碰到了代数环问题。 SimuLink 在用 S 函数进行 PID 差分方程 SimuLink 仿真时,免疫 PID 控制器的输出为:u (k)=u(k-1)+Kp{[e(k)-e(k-1)]+ki1e(k)+kd1[e(k)-2e(k-1)+e(k-2)]} (1)可以看出,当前的 u(k)输出和上一次的输出 u(k-1)是有关系的,对其进行 S 函数的编写时,如果把输出作为输入(如图一所示),则此时就构成了一个代数环。当代数环存在时,是不能启用加速仿真,导致系统的仿真速度严重降低,而且在一定的精度要求下,仿真无法运行。 2 代数环的概念及其产生 2.1 代数环概念 在数字计算机仿真中,当输入信号直接取决于输出信 Matlab 中的代数环问题及其消除方法 Algebraic Loop in Simulation of Matlab and its Elimination Method 马晓虹 MA Xiaohong (陕西理工学院电工电子实验中心,陕西 汉中 723003) (Electrical and Electronic Experiment Teaching Center, Shaanxi University of Technology, Shaanxi Hanzhong 723003) 摘 要:本文以免疫 PID 的 SimuLink 模型及其 S 函数为例引出代数环问题,分析了代数环的基本概念,指出了代数环对控制系统仿真的巨大危害,最后结合实际提出了几种消除代数环的方法。结果表明,代数环消除后提高了系统的仿真精度和运行速度。 关键词:代数环;仿真;免疫 PID 中图分类号:TP273 文献标识码: A 文章编号:1671-4792-(2010)7-0159-03 Abstract: Algebraic loop is lead out through simulink model of immune PID and its S function in this paper. Basic

matlabsimulink代数问题的讲解及解决方法1-解决代数方法.doc 本帖最后由 小小2008鸟 于 2012-11-30 11:26 编辑 什么是代数?发生在两个或多个模块在输入端口具有信号直接传递而形成反馈的情况时,直接传递的模块在不知输入端口的值的情况下无法计算出输出端的值,也就是现在时刻的输出是依赖现在时刻的输入值来计算的。当这种情况出现时simulink会在每一次迭代言算完成时,去决定它是否会有解。代数回路会减缓方真执行的速度并可能会没有解。     当方程两边都出现同一个变量时,即产生了代数。如:3y 4=y 当Simulink存在非模型延迟时,通常会产生代数。比如,传感器将输出信号反馈到输入端。解决代数      连续模型,在构成代数的反馈节加入memory模块;      离散模型就加入单位延迟1/Z,不过加入memory后仿真会慢些,但用了加速后,这个牺牲还是值得的。另还有拆解法等,具体见下面第9行论文内容。Simulink提供了一些专门手段来拆解代数,例如代数约束模块,积分模块的状态输出端等。这些手段可以解决一些特定的代数问题。下面举一个利用积分模块的状态输出端的例子。    从积分模块的输人端口到输出端口是非直通的,但从积分模块的初始值输人端口到输出端口,以及从复位输人端口到输出端口却都是直通的。因此,如果从积分模块的输出端口引出的信号再经过一些直通模块后又反馈到积分模块的初始值输人端口或者复位输人端口,则构成一个代数。    为了解决这个问题,Simulink专门为积分模块设计了一个状态端口,其输出与输出端口完全相同,仅在内部计算的时序上有细微区别,而无论是从积分模块的初始值输人端口还是从复位输人端口到状态端口都是非直通的。因此,当出现上述的代数问题时,可 以从积分模块的状态端口引出信号。这样,代数就被拆解了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值