系统仿真技术
第 3章 时域离散相似法
剡昌锋 刘军
兰州理工大学机电工程学院
“离散相似法”
? ―― 对传递函数作离散化处理得离散传递
函数,称为频域离散相似模型 ―― 频域离
散相似法
? ―― 对状态方程离散化得时域离散相似模
型 ―― 时域离散相似法
3.1 时域离散相似法基本原理
? 3.1.1基本方法
? 系统状态方程,
(1)
? 解析解,
(2)
? 离散化处理,
BuAxx ???
??? dBuexetx t tAAt )()0()( 0 )(? ???
信号重构
T
T
图 3.1连续系统的离散化处理
)(tu { ( )}u k ~()ut
~( )x t
x k( )
BuAxx ???
基本方法 (续 )
? 输入端:加上虚拟采样开关和虚拟信号重构器;
输出端:加一个虚拟采样开关
? 虚拟采样周期,T,两者同步。
? 对离散化处理后的系统,设 kT及 (k+1)T为两个依
次相连的采样瞬时,则有,
? (3)
? (4)
??? duBexekTx kT kTAA k T )(~)0()( 0 )(? ???
??? duBexeTkx Tk TkATkA )(~)0(])1[( )1(0 ])1[()1( ? ? ??? ???
基本方法 (续 )
? 将 (4)式- (3)式乘以 eAT,可得,
? (5)
? (5)式右端的积分与 k无关,故可令 k=0。
? 若信号重构器使 kT与 (k+1)T之间的 不变,
积分式中的 保持常数,那么,(5)
式可改写为,
? (6)
??? duBekTxeTkx TkkT TkAAT )(~)(])1[( )1( ])1[(? ? ?????
??? duBekTxeTkx T TAAT )(~)(])1[( 0 )(? ????
~()ut
~( )u? ~ ( ) ( )u u kT? ?
???
???
duBTkTxT
duBekTxeTkx
T
T TAAT
)(~)()()(
)(~)(])1[(
0
0
)(
?
?
?????
??? ?
基本方法 (续 )
若令,则有,
(7)
信号重构器使 为一斜坡函数(梯形近似),则在
原基础上增加
(8)
对应,对 引起的变化量为,
(9)

则,(10)
)()(0 TBdT mT ????? ??
)()()()(])1[( kTuTkTxTTkx m?????
~( )u ?
?uk ( )?
??? )(][])1[()( kTuT kTuTkuu k ??????
?uk ( )? ])1[( Tkx ?
?? ?? ????? T TAT kTA kTuBdeduBeTkx 0 )(0 )( )()(])1[( ????? ??
? ???T mTA TBde0 )( )(??? ?
)()(?)()()()(])1[( kTuTkTuTkTxTTkx mm ????????
基本方法 (续 )
? (状态转移矩阵 )
? (输入信号采用零阶重构器
引入的系数矩阵 )
? (输入信号采用一阶重构器
后叠加的系数矩阵 )
? 比较:离散相似法,方程系数
可以一次求出,每做一步积分只要计算一次右端
函数,无须迭代,速度快,
? 数值积分方法:每做一步积分要多次计算右端
函数,迭代,速度慢
?? BdTT Tm ? ???? 0 )()(
ATeT ?? )(
? ??? T TAm BdeT 0 )()(? ?? ?
? ? ?( ) ( ) ? ( )T T Tm m、,
3.1.2 状态转移矩阵的计算
? 1.泰勒级数展开法
? 由 Lion提出 (12)
? 若级数在 i=L处截断
? (13)
? 要求,
? 或 ( 14)
? 其中 ri j和 mi j对应为 R与 M的元素,rmax为 ri j中最
大元素。
IAiTAe
i
iiAT ?? ??
?
0
0
,!
RMiTAiTAe
Li
iiL
i
iiAT ???? ?? ?
??? 10 !!
r E mij ij? 为正整数dE d,10 ??
r E mmax m in?
状态转移矩阵的计算(续)
? (13)式中 mmin是容易求出的,但 rmax却无法
求出,因为 R仍是一个无穷项的和。估计 rmax,
? 令 为矩阵 R的范数,根据矩阵范数的定义,

? 由
? (15)
R
??? nji ijrR 1,Rr ?max
?? ?
??
?
??
??
11 !! Li
ii
Li
ii
i
TA
i
TAR
))2)(3(21()!1(
22!1
?????????
??
LL
TA
L
TA
L
TA LL
))2(21()!1( 2
2211
?????????
??
L
TA
L
TA
L
TA LL
状态转移矩阵的计算(续)
? 令 (16)
? 则有
? 如果,则
? 因此,若 ( 17)
? 则满足 (14)式,eAT可以按照以下迭代过程
来计算,
?=+ 2L TA
)1()!1( 2
11
???????
??
??L TAR
LL
1?? )
1
1(
)!1(
11
???
?? ??
L
TAR LL
m i n
11
1
1
)!1( mL
TA LL ??
???
? ??
?
状态转移矩阵的计算(续)
? (1) 选择初始 L;
? (2) 计算矩阵 M及 │mmin│;
? (3) 用式 (16)求 ε;
? (4)用式 (17)判别是否满足精度的要求。若满足,
则用 M来代替 eAT,否则 L= L+ 1,并重新计算。
? 系数 的计算:因为 令
)(Tm? ?? BdTT Tm ? ???? 0 )()( '????T
? m AT ATT e Bd e Bd( ) ( )? ? ? ? ?? ?? ?? ?? ?0 0
? ? ??? ?? ???? 0 0 0 1 !)1(!i T i iiii Bii TABdiA ??
Bi TAT
i
ii )
)!1(( 0?
?
? ?
?
2,eAT加速收敛算法
? eAT计算:在有些情况下,泰勒级数展开法
收敛性较差,即需要取很多项才能达到精度
要求。然而项数增加,大量矩阵乘法计算,
矩阵计算引入的舍入误差大大增加,影响计
算精度。
? 以一阶系统为例,,分别令 aT等于
0.1,0.5,1.0,2.0,泰勒展开式取前 m项所达到
的计算精度用 10- b表示,
)( 0aayy ????
eAT加速收敛算法(续)
b
aT 1 2 3 4 5 6 7 8 9 10
0.1 2 3 5 7 8 10 12 14 16 18
0.5 1 1 2 3 4 5 7 8 9 11
1.0 1 1 2 3 4 5 6 7 8
2.0 1 1 2 2 3 4 5
可以看到,-aT<1才有较好的收敛性。然而,在某些情
况下,全部满足该条件比较困难(比如病态系统),如
何加速收敛就成为状态转移矩阵计算中一个必须解决的
关键问题。
3.等效转移法
? 若,步长 T<1,取时间比例尺,
即原时间 t,经等效转移后的时间为 τ,则
? 由相似定理
? 若
? 则
? 令
? 并略加整理,可得,
1??Taij T/1??
Tt /1/ ??
)()()( 11* sFsFsF TT?? ??
nn
nnn
nn
nn
asasasasa
bsbsbsbsF
?????
?????
?
??
?
??
1
2
2
1
10
1
2
2
1
1)(
?
?
? ? ? ? ? ?
? ? ? ? ? ? ? ? nTnnnTnnTnnT nTn
nn
T
nn
T
asasasasa
bsbsbsb
TsF ?????
?????
?
????
?
????
112212111110
1122121111* 1)(
?
?
),,2,1,0(,*1* niTbbTaa iiiiii ???? ?
**
1
2*
2
1*
1
*
0
**
1
2*
2
1*
1* )(
nn
nnn
nn
nn
asasasasa
bsbsbsbsF
?????
??????
?
??
?
??
?
?
等效转移法 (续)
? 得到新的状态方程,
? A*,B*阵的各元素 ai*,bi*与原来的 ai,bi
相比较,分别乘以 Ti+1,T i,时间常数加大,
状态矩阵计算的收敛性则大大加快。需要
注意的是,仿真结果的时间比例尺也放大
了 1/T倍。
??
???
?
??
***
*****
XCY
uBXAX?
缩方与乘方
? 根据 eAT的特性,若设 ?T= T× 2- m,m为大于零
的整数,则有
? 先利用台劳级数法来计算 eA?T,那么可以取较少
的级数项而能获得较高的精度;然后再将它进行
2m次方相乘,即可计算出 eAT。
? 需要指出的是,m也不能太大,一般 m应小于
4~ 8,否则计算 eAT时会产生很大的舍入误差。
? ?mTATAAT eee m 22 )()( ??? ??
3.2 增广矩阵法
? 对线性定常系统,离散模型,
? ( 1)
? 这种方法的误差来源于,
? (1) eAT的计算误差;
? (2) u(t)误差
? 尽管 可归结为 eAT的计算,而且
eAT的计算误差可以通过缩方与乘方的方法
减少,然而,虚拟采样后的信号带来的误
差却无法消除。
? ? ? ? ? ? ? ? ? ?x k T x k T u km? ? ?1 ? ?
)()( TT m??,
增广矩阵法(续)
? 将输入信号也能作为系统的状态对待,那
么只需要着眼于提高 eAT的计算精度就能达
到仿真精度的提高 ―― 增广矩阵法。
? 广矩阵法将 转化为 齐次常
微分方程组,
? ( 2)
? 等价的离散模型就变成 ( 3)
?x Ax Bu? ? XAX ~~~ ?
? ? ? ?
? ? ? ?
? ? ? ????
??
?
?
?
?
?
0
~~
~~
~~~
0 XtX
tXCtY
tXAtX
? ? ? ? ? ?kXtkX ~~1~ ???
增广矩阵法(续)
? 其中,( 4)
? 仿真只有一项误差 ―― 计算 的误差。
? 例如,阶跃输入时,,定义第 n+1
个状态变量为,
? 增广状态方程及输出方程为,
? 初始条件,
? ? TAeT ~~ ??
TAe~
? ? ? ?tUtu 10?
? ? ? ? ? ?tUtutx n 101 ??? ? ? 01 ?? tx n?
? ?
? ? ??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
? 001 ?
???
?
?
??
? BA
tx
tx
n
? ?
? ???
?
?
?
?
?
?
?
?
? tx
tx
n 1
?? ? ? ? ?0?Cty ?
? ?
? ??
?
?
?
?
?
?
?
?
?
? tx
tx
n 1
??
? ?
? ? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
? 0
0
1 0
0
U
x
x
x
n
????
增广矩阵法(续)
? 考虑一般情形,设作用函数 u(t)可以表示成
如下形式,
? ( 5)
? 视 u(t)为上述 m阶系统的自由响应。设该 m
阶系统的状态变量为 xu,
? ( 6)
? ( 7)
0)( 1
21
1
21 ??
????
?????
?
?
lmssqsqq sspsppdsU mm
m
ll
l
?
?
uuu XAX ??
uuu XCtuty ?? )()(
增广矩阵法(续)
? 其中
? ( 8)
? ( 9)
? 将该 m阶系统增广到原 n阶系统,增广状态方程如下,
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?????
?
?
?
?
?
?
?
?
?
?
?
?
?
?
? mm
uu
qqqqq
AtX
1321
0
1
00100
00010
1
0
0
)(
?
?
??
?
?
?
)0,,0,,,,,( 21 ??? ?? ??? ??? ?? ?
lml
lu ddpdpdpC
?
?
? ?
? ? ?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
???
??
??
??
1
0
)0(
)0(
~
0
~
~
)()(
1)(
?
?? ??? ??
?
???
?
???
?
X
X
A
BCA
A
X
X
X
nmnm
mm
u
nm
mn
u
nn
nm
u
( 10)
增广矩阵法(续)
Au A
X Xu
增广状态系统结构图
uX?
? uC
)(tu
B
X?
?
3.3面向结构图的非线性系统仿真
? 非线性典型环节位于线性环节之间,不可能统一
计算整个系统的 及,而只能计算出各个
线性部分的 及 (i= 1,2,…, N,N表
示该系统共有 N个线性部分 )。
? 定义仿真模型时,选择如图( 3.6)所示的环节
作为基本环节。该环节是在典型线性环节的前面
与后面均附属了一个非线性环节,
一个完整的动态环节
非线性 1
BSA
DSC
?
?
非线性 2
)(T? ? ?Tm?
? ?Ti? ? ?Tim?
面向结构图的非线性系统仿真(续)
? 以被仿真的系统中的线性典型环节为基础确定系统的环节个
数、参数,连接矩阵等;
? 确定非线性环节的归属,对每类非线性环节给出其特征参数
和类型参数,以及它位于某一环节孰前孰后的描述参数。
? 计算过程分四步,
? ① 不考虑非线性,根据连接矩阵计算出各环节的输入;
? ②根据各环节前的非线性计算出各环节中线性动态部分的输
入;
? ③根据线性部分的离散状态方程计算各环节线性部分之输出;
? ④根据各环节后的非线性计算出各环节中线性动态部分的输
出;
? 然后重复上述四步,直到仿真结束。
3.3.1典型线性动态环节,, 的计算
? 典型线性动态环节有:积分、比例积分、
惯性、超前-迟后、比例五种。均以
(Ci+Dis)/(Ai+Bis)形式描述。根据每种情况
的 Ai,Bi,Ci,Di取值,确定分别所对应的
线性环节类型,进而计算出该环节的状态
转移矩阵的值,包括下面几个。
)(T? ? ?Tm? ? ?Tm??