数字计算机仿真中消除代数环问题的研究_邱杰
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期:2002-05-24
第20卷 第7期
计 算 机 仿 真
2003年7月
文章编号:1006-9348(2003)07-0033-03
数字计算机仿真中消除代数环问题的研究
邱杰,原渭兰
(海军航空工程学院,山东烟台264001)
摘要:阐述了数字计算机仿真中代数环问题的基本概念,指出了存在代数环的普遍可能性;介绍了SimuLink 对代数环的迭代算法;分析和说明了产生代数环的条件以及代数环降低仿真速度和仿真精度的危害;着重介绍和分析了在应用Si muLink 进行仿真建模时消除代数环的多种实用方法。
关键词:计算机仿真;仿真模型;仿真速度;仿真精度中图分类号:TP301.6 文献标识码:B
1 引言
现实世界中,反馈是一个普遍存在的现象。
在各种技术系统中经常可以看到反馈的存在和应用。
例如,雷达对目标的自动距离跟踪和自动角度跟踪都要利用反馈;自动控制中,为了使系统稳定等,也需要引入负反馈。
由于反馈的普遍存在,在进行数字计算机仿真的时候,将经常会遇到反馈回路。
数字计算机仿真(以下简称仿真)时需要按照一定的时序执行相应的计算步骤,因此,对于反馈回路就有一个输入和输出的计算顺序的问题。
这会使得在相当普遍的条件下,将反馈回路变成所谓的代数环。
如果在仿真模型中出现了代数环,将会严重影响仿真速度,某些情况下还会严重降低仿真的精度。
为了保证精度,有效提高速度,必须高度重视解决代数环的问题。
Si muLink 是一个集成仿真环境,是美国Math Works 公司的MATLAB 软件包中的一个重要组成部分,也是其中最有价值的产品之一。
利用SimuLink ,可以方便、高效地完成交互式图形建模、仿真运行控制、模型运行过程及仿真结果的观察和分析、模型本身的分析等等工作。
在一项开发反导电子对抗仿真软件的工作中,笔者成功地应用了SimuLink ,极大地提高了工作效率和仿真软件的水平。
Si muLink 虽然是一个高水平的集成仿真环境,但对代数环问题却并没有提供令人满意的解决方案。
本文拟结合笔者在应用SimuLink 的过程中解决代数环问题的经验,讨论和分析有关代数环的问题,包括代数环的概念、影响及如何消除仿真模型中的代数环,重点放在代数环的消除上。
代数环问题在数字计算机仿真领域中普遍存在,
因此,本文所讨论的问题和所提供的方法对于其它仿真软件和仿真环境也是有普遍意义的。
2 代数环及其影响
2.1 由最简单的例子引出的代数环概念
图1 最简单的代数环的例子
代数环的一个最简单的例子如图1所示。
图1中实现的是一个减法
器模块,其输出反馈回来作为一个输入。
这个看似简单的例
子却反映了一个复杂的问题:在进行仿真时,按正常的计算顺序,应该先计算模块的输入,然后再计算由输入驱动的输出,而在图1所示的情况下,因为输入中的一部分直接来自于输出,在没有得到输出数据的时候,输入是无法计算的;同时,因为输出中的一部分直接来自于输入,在没有得到输入数据的时候,输出也是无法计算的。
这是一个死锁(deadlock )条件。
这就是所谓的代数环。
输出中的一部分反馈到输入,或者说,输入直接决定于输出,这是反馈回路的共同特点。
代数环是一种特殊的反馈回路,它的特殊之处就在于除了输入直接决定于输出外,输出还直接决定于输入,在这里,“直接”二字很重要,它体现了代数环的实质,仿真计算中的死锁就是由此产生的。
当然,通过变换拆环,容易解决图1所示问题。
事实上,图1中实现的功能可以表示为:
z =u -z
(1)
它可以变换为:
z =u /2
(2)
显然,这时候代数环不存在了,仿真计算不存在问题。
但实际问题中的代数环的表现形式千差万别,有的是非常复杂的,不可能仅用这样的简单办法来解决。
2.2 产生代数环的条件
如前所述,代数环是一种反馈回路,但并非所有的反馈回路都是代数环。
代数环存在的充分必要条件是:存在一个闭合路径,该闭合路径中的每一个模块都是直通模块。
所谓直通,指的是模块输入中的一部分直接到达输出。
SimuLink 的模块库中提供的很多模块都是直通模块。
如果一个反馈回路的正向通道和反向通道都由直通模块组成,则此反馈回路一定构成代数环。
对于复杂反馈回路
—
33—
来说,只要能够找到由直通模块构成的闭合路径,则也一定构成代数环。
在应用SimuLink进行图形化建模的时候,应该对其模块库中哪些模块以及在什么条件下有直通特性有所了解,从而可以预见到代数环的存在,也可以为消除代数环以及避免产生新的代数环提供帮助。
表1列出了Simulink模块库中的一些典型直通模块。
有关情况可以进一步查阅SimuLink用户手册。
表1 S imu lin k模块库中的典型直通模块
模块名所属模块子库说明
数学函数模块Si mulink/M ath
积分器模块Simulink/Continuous 从初始条件输入端到输出的直通
乘积运算模块Si mulink/M ath
状态空间模块Simulink/Continuous当D矩阵非0时加法/减法模块Si mulink/M ath
传递函数模块Simulink/Continuous 当传递函数的分子与分母阶数相同时
离散
传递函数模块Simulink/Discrete
当离散传递函数的分子与
分母阶数相同时
零-极点模块Simulink/Continuous当极点数目与零点数目相同时
2.3 SimuLink对代数环的处理
如果用z表示反馈回路的输出,则代数环的问题在数学上可以简捷地表示为对于方程或方程组:
F(z)=0(3)求根的问题。
为了解决存在代数环情况下的仿真问题,SimuLink提供了计算代数环的方法,即方程求根的牛顿法。
牛顿法也称作牛顿-拉弗森法或切线法,是一种基于一阶台劳级数展开的逐次迭代逼近法。
应用牛顿法时,在代数环中最小步长的每一个时间步上都需要进行多次迭代。
如果上面的(3)式是一个方程,则每一次迭代都要进行一次导数计算;如果(3)式是一个方程组,则每一次迭代都要进行一次雅可比矩阵(偏导数矩阵)计算,还要对雅可比矩阵求逆矩阵。
代数环越长,其中的模块功能越复杂,精度要求越高,则迭代计算量就越大,在仿真中对仿真速度的降低就越厉害。
另外,虽然具有一定的鲁棒性,牛顿法的收敛也是有一定条件的,这些条件中包含了对(3)式中的F(z)的要求,因而不是完全能够通过主观努力加以控制的。
当不满足收敛条件时,SimuLink对代数环提供的解不能用。
我们在利用SimuLink为反导电子对抗仿真系统建模、仿真的过程中,就有因代数环问题使整体仿真速度数十倍下降以及得到错误结果的体验。
3 在仿真模型中发现代数环
在应用SimuLink的过程中,我们不可能改进其对代数环的迭代算法(这对用户是不可见的)。
有实际意义的,是尽可能消除自己的仿真模型中的代数环。
要消除代数环,首先要能够发现代数环。
在SimuLink环境下发现代数环是比较容易的。
在SimuLink环境下,可以通过Simulation菜单中的Si mu-lation Parameters菜单项来弹出Simulation Parameters对话页面框。
在这个页面框中,有一个Diagnostics页面,如果在该页面的Configuration options区域中,点选algebraic loop项,然后再在Configuration options区域的右边的Action区域中,点选Warnin g项,就可使得Si muLink把代数环作为告警对象。
完成这些设置后,就可以借助SimuLink来发现自己的仿真模型中的代数环。
这时,只需要运行仿真,如果仿真模型中有代数环,SimuLink就会在MATLAB的命令窗口发出警告,并同时详细列出代数环中每个模块的模块路径和模块名。
4 代数环的消除
代数环的表现形式是多种多样的,消除代数环的方法也不尽相同。
从基本出发点看,消除代数环的方法可以分为两大类,我们把其中一类称之为变换法,另一类称为拆解法。
4.1 利用变换法消除代数环
代数环在形式上是一种数字仿真模型,而仿真模型对应的是数学模型,数学模型通常表现为一个方程或方程组。
当方程的右边中包含有方程的左边项时,如果用SimuLink去直接实现该方程,则将产生代数环。
如果先将原始数学模型进行变换,使得方程的右边不包含有方程的左边项,
然后再用Si muLink去实现,则可以消除代数环。
这就是所谓的变换法消除代数环的含义。
上面由(1)式到(2)式的变换,就是用变换法消除代数环。
下面再举一例。
设有一个由以下方程组描述的系统:
﹒x=u-0.5y
y=4x+2﹒x
(4)式中,u、x、y分别是系统的输入、状态变量和输出
该系统可以用Simulink模块直接实现,如图2所示。
图2 方程组(4)的SimuLink模块直接实现
图2中,Gain是增益模块,Sum是加法器模块,Integrator 是积分器模块。
—
34
—
将原方程组中的第二个方程代入第一个方程,可以得到:
﹒
x =u -﹒x -2x (4.1)
状态变量x 的导数﹒x 出现在方程的两边,因此必然存在代数
环。
事实上,由图2中可见,Sum1、Gain2、Sum2和Gain3构成了一个闭合回路,而这四个模块都是直通模块,因此这个闭合回路就是一个代数环。
要消除这个代数环,可以做以下的变换:首先,整理式(4.1),得到:
﹒x =0.5u -x
(4.1)′再将此式代入方程组(4)中的第二个方程,得到:
y =2x +u
(4.2)这两个方程联立,得:
﹒x =0.5u -x y =2x +u
(4)′显而易见,方程组(4)′与方程组(4)是等价的。
但用SimuLink 模块来实现方程组(4
)′时,得到的仿真模型是不相同的,如图3所示。
图3 方程组(4)/的SimuL ink 模块直接实现
图3中,仍然存在反馈回路(由Sum1模块和Integrator 模块构成),但其中的Integrator 模块不是直通模块,该反馈回路不构成代数环。
图3中也有信号的直通(由输入u 到输出y 是直通的),但并不构成回路,当然也不构成代数环。
这个例子进一步说明:代数环对应于一定的数学模型的形式(即隐函数的形式),如果能够将原始的数学模型进行等价变换,得到显函数形式,则按显函数实现仿真模型,就可以消除代数环。
实际的仿真运算表明,虽然完成的功能完全相同,但消除了代数环的图3模型所用的运行时间仅为有代数环的图2模型所用的运行时间的1/28,同时,图3模型的运行精度更高。
这也说明了的确有必要消除代数环。
用变换法消除代数环存在两个方面的限制。
首先,并不是所有的隐函数都可以解出得到显函数。
其次,原始的数学模型往往反映了仿真对象的物理结构,按照物理结构构造仿真模型可以实现所谓的同构仿真;按照变换后得到的数学模型构造的仿真模型则只能实现同态仿真。
而同构仿真比同态仿真具有更好的可信度,也具有更大的灵活性。
4.2 利用拆解法消除代数环
用拆解法消除代数环基于这样一个认识:代数环是一个闭合回路,而且回路中的每一个模块都必须是直通模块,在保持功能不变的同时,如果能够在回路中产生一个非直通模
块,则该代数环就被拆解了。
代数环的拆解有多种方法,由于篇幅所限,在这里仅介绍其中的三种。
4.2.1 插入存储器模块拆解代数环
存储器模块是Simulink 库中的一个模块,其功能是将当前的输入采样保持一个时间步,然后再输出。
存储器模块在每一个时间步的输出都是其在上一个时间步的输入,因此存储器模块是一个非直通模块。
将存储器模块插入代数环中可以拆解代数环。
当然,引入存储器模块肯定对原系统的精度有影响。
特别是对相位稳定裕量不大的系统,有可能产生振荡,因为存储器模块实际上是一个延迟环节。
4.2.2 用非直通模块同功能替代直通模块
在一定的条件下,一些直通模块可以用具有相同功能的非直通模块替代。
在代数环中,如果能够做这样的替代,则代数环就被拆解了。
我们在研制反导电子对抗仿真系统的过程中,在构建反舰导弹末制导雷达的距离信息分系统的仿真模型的时候,遇到了一个大的代数环。
这个代数环跨越好几个子系统,包含三十多个模块,用一般的方法无法拆解。
由于它的存在,整个末制导雷达的仿真模型无法正常运行。
经过仔细分析,我们发现该代数环中的一个计数器模块可以用一个一阶离散传递函数来代替,从而可以拆解该代数环。
计数器模块用于对输入脉冲计数,是一个直通模块。
我们用以取代计数器模块的离散传递函数如下:
Y (z )
X (z )=1z -1
(5)
式中,Y (z )、X (z )分别是模块输出的z 变换和模块输入
的z 变换
(5)式可以变化为:
zY (z )-Y (z )=X (z )
(5)′
对(5)′式进行逆z 变换并整理可得:
y (n +1)=y (n )+x (n )
(6) 式中,y (n )、x (n )分别是模块的输出序列和模块的输
入序列由(6)式可见,如果将该离散传递函数模块的输入信号的幅度量化为单位值,同时适当设置该模块的采样时间,则该模块可以准确实现计数器模块的功能。
而该模块是一个非直通模块,用以代替计数器模块后,上述的代数环就拆掉了。
4.2.3 用SimuLink 提供的专门手段拆解代数环
SimuLink 提供了一些专门手段来拆解代数环,例如代数约束模块(Algebraic Constraint ),积分模块(以及离散积分模块)的状态输出端等。
这些手段可以解决一些特定的代数环问题。
下面举一个利用积分模块的状态输出端的例子。
从积分模块的输入端口到输出端口是非直通的,但从积分模块的初始值输入端口到输出端口,以及从复位输入端口到输出端口却都是直通的。
因此,如果从积分模块的输出端口引出的信号再经过一些直通模块后又
(下转第40页)—
35—
击响应谱值修正。
仿真结果表明本文介绍的方法是有效的。
该工作对冲击控制仪的研制具有一定的指导作用。
参考文献:
[1] 王浚等.环境模拟技术[M].北京:国防工业出版社,1996:755~
758.
[2] 陈塑寰.结构振动分析的数值方法[M].吉林:吉林科学技术出
版社,1996:62~65.
作者简介
刘洪英(1965.10-),女(汉族),辽宁省大连市人,
工程师,研究方向为航天振动、冲击环境模拟及试验
技术研究。
马爱军(1969.11-),男(汉族),河北省玉田县人,
副研究员,研究方向为航天振动、冲击环境模拟及试验技术研究。
冯雪梅(1974.12-),女(汉族),吉林省吉林市人,工程师,研究方向为航天振动、冲击环境模拟及试验技术研究。
Computer simulation of shock response spectrum(S RS)control system
LIU Hong-ying,MA Ai-jun,FENG Xue-mei
(Institute of Space Medico-Engineering,Beijing100094,China)
ABSTRACT:Using computer simulation to study SRS control method while using electrod ynamic shaker to simulate pyrotechnic en vironment.
A time-history waveform is synthesized according to the shock test specification.Several low level drive signals are outputted to shaker sys-tem.The acceleration response and its SRS of shaker system are calculated.Applying the waveform amplitude equalization method to modify the SRS and achieve SRS'control.
KEY WORDS:Shock response spectrum;Control system;Computer simulation
(上接第35页)
反馈到积分模块的初始值输入端口或者复位输入端口,则构成一个代数环。
为了解决这个问题,SimuLink专门为积分模块设计了一个状态端口(state port),其输出与输出端口完全相同,仅在内部计算的时序上有细微区别,而无论是从积分模块的初始值输入端口还是从复位输入端口到状态端口都是非直通的。
因此,当出现上述的代数环问题时,可以从积分模块的状态端口引出信号。
这样,代数环就被拆解了。
5 结束语
本文结合仿真工作的实践,对代数环问题进行了阐述。
主要是从实用的角度,介绍和分析了一些在应用SimuLink进行建模仿真时消除代数环的方法。
在数字计算机仿真中,代数环问题是普遍存在的,代数环的危害也是非常明显的,对复杂系统仿真、实时仿真、高精度仿真等的危害尤其大。
因此,对代数环的问题有一个清晰的认识,能够有意识地消除代数环,是非常有意义。
希望大家都来重视这个方面的工作。
参考文献:
[1] 郭云芳等.计算机仿真技术[M].北京:北京航空航天大学出版
社,1991-5.
[2] 张志涌等.精通MATLAB5.3版[M].北京:北京航空航天大学出
版社,2000-8.
作者简介
邱 杰(1957.7-),男(汉族),重庆市人,副教授,
1981年12月于国防科技大学电子对抗专业毕业,获
学士学位;1996年3月于南京航空航天大学通讯与
电子系统专业研究生毕业,获硕士学位。
1982年至
今任教于海军航空工程学院。
主要研究方向:电子战、反舰导弹及其末制导雷达、导弹制导、系统仿真。
原渭兰(1956.9-),女(汉族),辽宁宽甸人,副教授,1981年12月于国防科技大学火箭发动机专业毕业,获学士学位;1986年1月于国防科技大学火箭发动机研究生毕业,获硕士学位,1982年至今任教于海军航空工程学院,主要研究方向:火箭发动机,系统仿真。
Research on Removing Algebraic Loop in Digital Computer Simulation
QIU Jie,YUAN Wei-lan
(Naval Aeronautical Engineering College,Yantai Shandong264001,China)
ABSTRACT:In this paper,the basic concept of algebraic loop in digital computer simulation is expatiated on;the universal possibility of ex-isting algebraic loop is pointed out;the iterative algorithm used in s imulink for algebraic loop is introducted briefly;the condition of productin g algebraic loop and the harm from algebraic loop in simulation speed and precision are analysed.Emphatically,several methods for removing al-gebraic loop in applying s imulink are presented and analysed.
KEY WORDS:Comp uter si mulation;Simulation model;Si mulation speed;Simulation precision
—
40
—。