收藏 分享(赏)

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

上传人:weiwoduzun 文档编号:3288653 上传时间:2018-10-10 格式:PDF 页数:3 大小:169.95KB
下载 相关 举报
Matlab中的代数环问题及其消除方法.pdf_第1页
第1页 / 共3页
Matlab中的代数环问题及其消除方法.pdf_第2页
第2页 / 共3页
Matlab中的代数环问题及其消除方法.pdf_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、0 引言反馈是一种普遍存在的现象,在进行计算机仿真的时候 ,将经常会遇到反馈回路 。仿真时需要按照一定的时序执行相应的计算步骤 ,对于存在反馈回路的控制系统,输入和输出存在着计算时序 ,当输入直接取决于输出 ,同时输出也直接取决于输入时 ,仿真模型中会出现代数环 (Algebraic Loop)。如果在仿真模型中出现了代数环 ,将会严重影响仿真速度 ,某些情况下还会严重降低仿真的精度或得到错误的仿真结果 。为了保证精度 ,有效提高速度 ,必须高度重视解决代数环的问题 。在工程界,非常有名的仿真软件 Matlab 被工程人员广为应用1-2,其中的 SimuLink 更是其重要的组成部分 。利用S

2、imuLink ,可以方便 、高效地完成交互式图形建模 、仿真运行控制 、模型运行过程及仿真结果的观察和分析 、模型本身的分析等工作 。SimuLink 目前对于代数环问题还没有提出令人满意的解决方案 。为保证系统仿真的速度和精确度 ,有必要研究一种有效的代数环消除方法 。基于此,本文结合笔者在应用 SimuLink 的过程中解决代数环问题的经验 , 讨论和分析有关代数环的问题 。1 问题的提出PID 控制器由于线性 、简单 、可靠,在实际控制系统中得到了广泛应用 。在建模过程当中,常常会遇到非常复杂的模型,这些模型直接用 SimuLink 创建显得非常复杂或者是不可能的, S 函数却可以很容

3、易地解决这些问题 。但在进行信号输入时,有可能碰到代数环 。笔者在用 S 函数实现免疫模糊 PID 控制器的时候,就碰到了代数环问题 。SimuLink 在用 S 函数进行 PID 差分方程 SimuLink 仿真时,免疫 PID 控制器的输出为:u( k) =u( k-1) +Kpe( k) -e( k-1) +ki1e(k)+kd1e( k) -2e( k-1)+e( k-2) ( 1)可以看出,当前的 u(k)输出和上一次的输出 u(k-1)是有关系的,对其进行 S 函数的编写时,如果把输出作为输入(如图一所示),则此时就构成了一个代数环 。当代数环存在时,是不能启用加速仿真,导致系统的

4、仿真速度严重降低,而且在一定的精度要求下,仿真无法运行 。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 Ha

5、nzhong 723003)摘 要:本文以免疫 PID 的 SimuLink 模型及其 S 函数为例引出代数环问题 ,分析了代数环的基本概念,指出了代数环对控制系统仿真的巨大危害,最后结合实际提出了几种消除代数环的方法 。结果表明,代数环消除后提高了系统的仿真精度和运行速度 。关键词:代数环;仿真;免疫 PID中图分类号: TP273 文献标识码: A 文章编号: 1671-4792-(2010)7-0159-03Abstract: Algebraic loop is lead out through simulink model of immune PID and its S functio

6、n in this paper. Basic concept is ana-lyzed, and the great impacts are pointed out of which algebraic loop to system simulation. At last, several methods are proposed basedon practice. The results prove that the simulation precision and run speed of system is improved after the algebraic loop is eli

7、minated.Keywords: Algebraic Loop; Simulation; Immune PID.图一 S 函数模型Matlab中的代数环问题及其消除方法159科 技广场 2010.7号,同时输出信号也直接取决于输入信号时,由于数字计算的时序性,而出现的由于没有输入无法计算输出,没有输出也无法得到输入的 “ 死锁环 “,称之为代数环3。代数环的一个最简单的例子如图二所示,图二中实现的是一个简单的负反馈模型 。针对这个例子 ,因为输入中的一部分直接来自于输出 ,在没有得到输出数据的时候 ,输入是无法计算的,这是一个死锁 (deadlock)条件,也即是所谓的代数环 。简单的代数环

8、是可以通过变换来消除 。在图二中:y=u-y ( 2)即代数环是一种输入和输出有关的方程,这就是导致死锁的原因 。要解决死锁,只要把右边的输出移到左边,得出输出只和输入有关的方程即可 。所以,解决代数环其实就是解方程问题 。对式( 2)变换得:( 3)这时,输出只和输入有关,消除了代数环 。据式( 3)可得到相应的 SimuLink 模型如图三所示 。可以看出,回路中已没有了反馈 。2.2 产生代数环的条件代数环是一种特殊的反馈回路 ,它的特殊之处就在于除了输入直接决定于输出外 , 输出还直接决定于输入,在SimuLink 中,这种 “ 直接 “ 是由直通模块导致的 。在一个闭合路径中,只有各

9、模块都是直通(无延时)模块时才会形成代数环,这就是代数环产生的充分必要条件 。可知,并非所有的反馈回路都是代数环 。SimuLink 的模块库中提供的很多模块都是直通模块 。如,数学函数模块 、加减法模块 、乘积运算模块 、积分器模块等等,更多说明可以查阅 SimuLink 手册 。SimuLink 仿真模型中,产生代数环的条件一般有2:前馈通道中含有信号的 “直通 ”模块,如比例环节或者含有初值输出的积分器;系统中的大部分模型表现为非线性;前馈通道的传递函数的分子分母同阶;用状态空间描述系统时,输出方程中 D=0。3 代数环的解决3.1 SimuLink 对代数环的解决SimuLink 中,

10、参数对话框中的 Diagnostics 选项可以设置代数环显示出警告信息,以便能让系统诊断所设计的模型中是否有代数环 。为了解决存在代数环情况下的仿真问题 ,SimuLink 提供了计算代数环的方法,即方程求根的牛顿法 。牛顿法也称作牛顿 - 拉弗森法或切线法,是一种基于一阶泰勒级数展开的逐次迭代逼近法 。随着代数环变长 ,其中的模块功能越复杂,精度要求越高 ,则迭代计算量就越大,在仿真中对仿真速度的降低就越厉害 。另外,当不满足收敛条件时, SimuLink 对代数环就会得出错误的解 。3.2 利用变换法消除代数环对于一些简单的代数环,可采用数学变换法求解 。用变换法消除代数环的方法已经在

11、3.1 节讲过,这里不再赘述 。要说明的是,当模型变得很复杂时,这种方法几乎是不能实现的 。3.3 在直通模块前插入存储器模块这种方法是在直通模块前插入存储器模块切断代数环,如图四所示 。这种方法是在反馈通道上增加了存储器环节,使得输入只与上一步的输出有直接联系,消除了代数环 。由于该存储环节在系统中相当于一个纯延时环节,会影响系统的仿真精度,特别是当系统稳定裕度不大时,由于延时环节传递函数众多极点的影响,可能会导致系统不稳定 。3.4 在反馈通道中加入高频传递环节在反馈通道上增加一个延迟环节,可以切断输入输出的直接联系,如图五所示 。当该环节截止频率足够高时,它对系统精度几乎没有影响,然而此

12、环节增加的计算量会影响系统的仿真速度 。3.5 重构部分模型图二 一个简单的代数环图三 变换后的模型图四 插入存储器模块160图 五 加入高频环节从系统原理出发,重构部分模型,消除直接传输环节 。在式( 1)中可以看出,当前的输出和上一次的输出是有关系的,如果把上一次的输出进行一个延迟单元表示,则原模型就可变为两部分,分别为 u*( k)和 u( k-1),则有:u( k) =u( k-1) +u*( k) ( 4)其中, u*( k) =Kpe( k) -e( k-1) +ki1e( k) +kd1e( k) -2e( k-1)+e( k-2) ( 5)重构模型如图六所示,此时,实际上是把延

13、迟单元自己作为了一个单独反馈,而延迟单元不是直通模块,所以系统中将不再有代数环 。除以上几种方法外, SimuLink 还提供了一些专门手段来拆解代数环5,例如代数约束模块 (Algebraic Constraint)、积分模块 (以及离散积分模块 ) 的状态输出端等 。这些手段可以解决一些特定的代数环问题 。例如, SimuLink 专门为积分模块设计了一个状态端口 (state port) ,其输入与输出端口完全相同 ,仅在内部计算的时序上有细微区别 ,而无论是从积分模块的初始值输入端口还是从复位输入端口到状态端口都是非直通的 。因此 ,当有代数环问题时 ,可以从积分模块的状态端口引出信号

14、,这样 ,代数环就会被消除 。4 结束语本文结合笔者在免疫 PID 仿真工作的实践,对代数环问题进行了分析,介绍和分析了一些在应用 SimuLink 进行建模仿真时消除代数环的方法 。经过仿真测试,这些消除代数环后的仿真系统,其仿真精度和速度明显提高 。仿真中,代数环问题是普遍存在的,代数环的危害也是非常明显的,对复杂系统仿真 、实时仿真 、高精度仿真等的危害尤其大 。对代数环提高重视是一件很有意义的事 。参考文献1尹向雷 ,郑恩让 ,张玲 .抄纸过程水分定量的改进型模糊免疫 PID 控制 J.计算机测量与控制, 2010,18(2):354-356.2罗成汉 .基于 MATLAB 的控制系统计算机辅助分析J.计算机仿真, 2004,21(4): 38-39.3邱杰 ,原渭兰 .数字计算机仿真中消除代数环问题的研究 J.计算机仿真, 2003,20(7):33-35.4耿华 ,杨耕 .控制系统仿真的代数环问题及其消除方法J.电机与控制学报, 2006,10(6):632-635.5王家文 ,王皓 ,刘海 .MATLAB7.0 编程基础 M.北京 :机械工业出版社 ,2005.作者简介马晓虹( 1980),女,实验师,主要从事控制工程和应用电子的研究与实验教学 。图六 重构模型图Matlab中的代数环问题及其消除方法161

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报