资源描述:
《matlab中的代数环问题及其消除方法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Matlab中的Matlab中的代数环问题及其消除方法代数环AlgebraicLoopinSimulationofMatlabanditsEliminationMethod问题及马晓虹其消MAXiaohong除方(陕西理工学院电工电子实验中心,陕西汉中723003)法(ElectricalandElectronicExperimentTeachingCenter,ShaanxiUniversityofTechnology,ShaanxiHanzhong723003)摘要:本文以免疫PID的SimuLink模型及其S函数为例引出代数环问题,分析了代数环的基本概念,指出了代数环对控制系统仿真
2、的巨大危害,最后结合实际提出了几种消除代数环的方法。结果表明,代数环消除后提高了系统的仿真精度和运行速度。关键词:代数环;仿真;免疫PID中图分类号:TP273文献标识码:A文章编号:1671-4792-(2010)7-0159-03Abstract:AlgebraicloopisleadoutthroughsimulinkmodelofimmunePIDanditsSfunctioninthispaper.Basicconceptisana-lyzed,andthegreatimpactsarepointedoutofwhichalgebraiclooptosystemsimulati
3、on.Atlast,severalmethodsareproposedbasedonpractice.Theresultsprovethatthesimulationprecisionandrunspeedofsystemisimprovedafterthealgebraicloopiseliminated.Keywords:AlgebraicLoop;Simulation;ImmunePID.0引言型,这些模型直接用SimuLink创建显得非常复杂或者是不反馈是一种普遍存在的现象,在进行计算机仿真的时可能的,S函数却可以很容易地解决这些问题。但在进行信候,将经常会遇到反馈回路。仿真时需
4、要按照一定的时序执号输入时,有可能碰到代数环。笔者在用S函数实现免疫模行相应的计算步骤,对于存在反馈回路的控制系统,输入和糊PID控制器的时候,就碰到了代数环问题。输出存在着计算时序,当输入直接取决于输出,同时输出也直SimuLink在用S函数进行PID差分方程SimuLink仿接取决于输入时,仿真模型中会出现代数环(AlgebraicLoop)。真时,免疫PID控制器的输出为:如果在仿真模型中出现了代数环,将会严重影响仿真速度,某u(k)=u(k-1)+Kp{[e(k)-e(k-1)]+ki1e(k)+kd1[e(k)-2e(k-1)些情况下还会严重降低仿真的精度或得到错误的仿真结果。
5、+e(k-2)]}(1)为了保证精度,有效提高速度,必须高度重视解决代数环的问可以看出,当前的u(k)输出和上一次的输出u(k-1)是有题。关系的,对其进行S函数的编写时,如果把输出作为输入(如在工程界,非常有名的仿真软件Matlab被工程人员广图一所示),则此时就构成了一个代数环。当代数环存在时,为应用[1-2],其中的SimuLink更是其重要的组成部分。利用是不能启用加速仿真,导致系统的仿真速度严重降低,而且SimuLink,可以方便、高效地完成交互式图形建模、仿真运行在一定的精度要求下,仿真无法运行。控制、模型运行过程及仿真结果的观察和分析、模型本身的分析等工作。SimuLink
6、目前对于代数环问题还没有提出令人满意的解决方案。为保证系统仿真的速度和精确度,有必要研究一种有效的代数环消除方法。基于此,本文结合笔者在应用SimuLink的过程中解决代数环问题的经验,讨论和分析有关代数环的问题。图一S函数模型1问题的提出2代数环的概念及其产生PID控制器由于线性、简单、可靠,在实际控制系统中得2.1代数环概念到了广泛应用。在建模过程当中,常常会遇到非常复杂的模在数字计算机仿真中,当输入信号直接取决于输出信159科技广场2010.7号,同时输出信号也直接取决于输入信号时,由于数字计算①前馈通道中含有信号的“直通”模块,如比例环节或的时序性,而出现的由于没有输入无法计算输
7、出,没有输出者含有初值输出的积分器;也无法得到输入的"死锁环",称之为代数环[3]。②系统中的大部分模型表现为非线性;代数环的一个最简单的例子如图二所示,图二中实现的③前馈通道的传递函数的分子分母同阶;是一个简单的负反馈模型。针对这个例子,因为输入中的一④用状态空间描述系统时,输出方程中D=0。部分直接来自于输出,在没有得到输出数据的时候,输入是无3代数环的解决法计算的,这是一个死锁(deadlock)条件,也即是所谓的代数3.1S