✅ 操作成功!

代数环

发布时间:2023-06-04 作者:admin 来源:文学

代数环

代数环

变压器损耗-出线机

2023年2月15日发(作者:陈苑淇)

第3章连续系统仿真的方法

3.1数值积分法

连续系统数值积分法,就是利用数值积分方法对广微分方程建立离散化

形式的数学模型——差分方程,并求其数值解。可以想象在数学计算机上构

造若干个数字积分器,利用这些数字积分器进行积分运算。在数字计算机上

构造数字积分器的方法就是数值积分法,因而数字机的硬件特点决定了这种

积分运算必须是离散和串行的。

把被仿真系统表示成一阶微分方程组或状态方程的形式。一阶向量微

分方程及初值为



,

00

tY

YtY











Y=F

=

(3-1)

其中,Y为n维状态向量,F(t,Y)为n维向量函数。

设方程(3-1)在

011

,,,,

nn

ttttt

…处的形式上的连续解为

n+1n+1

00

tt

n+10

tt

t=Yt+,(),

n

YFtYdtYtFtYdt

(3-2)

n

=()

n

YYt,令

1nnn

YYQ



(3-3)

则有:



1n+1

t

n

YY

也就是说,

1(,)n

n

t

n

t

QFtYdt

(3-4)

如果

n

Y准确解()

n

Yt为近似值,

n

Q是准确积分值的近似值,则式(3-4)

就是式(3-2)的近似公式。换句话说,连续系统的数值解就转化为相邻两个

时间点上的数值积分问题。

因此,所谓数值解法,就是寻求初值问题(3-1)的真解在一系列离散

12n

ttt<…<…上的近似解

12

,,,

n

YYY……,相邻两个时间离散点的间隔

1nnn

tt

h,称为计算步距或步长,通常取

n

hh

为定值。可见,数值积分

法的主要问题归结为对函数

(,)Fty

的数值积分问题,即如何求出该函数定积

分的近似解。为此,首先要把连续变量问题用数值积分方法转化成离散的差

分方程的初值问题,然后根据已知的初值条件

0

y,逐步地递推计算后续时刻

的数值解(1,2,)

i

yi…。所以,解初值问题的数值方法的共同特点是步进式的,

采用不同的递推算法,就出现各种不同的数值积分方法。

3.2替换法

基于数值积分的连续系统仿真方法具有成熟、计算精度比较高的优点,

但算法公式比较复杂、计算量比较大,通常只有在对速度要求不高的纯数字

仿真时使用。当进行实时仿真或在计算机控制系统中实现数字控制器的算法

时,要求计算速度快,以便能在一个采样周期内完成全部计算任务,这就需

要一些快速计算方法。

用数值积分方法在数字机上对一个连续系统进行仿真时,实际上已经进

行了离散化处理,只不过在离散化过程中每一步都用到连续系统的模型,离

散一步计算一步。那么,能否先对连续的模型进行离散化处理,得到一个“等

效”的离散化模型,以后的每一步计算都直接在这个离散化模型基础上进行,

而原来的连续数学模型不再参与计算呢?回答是肯定的。这些结构上比较简

单的离散化模型,便于在计算机上求解,不仅用于连续系统数字仿真,而且

也可用于数字控制器在计算机上实现。

替换法的基本思想是:对于给定的函数G(s),设法找到s域到z域的

的某种映射关系,它将S域的变量s映射到z平面上,由此得到与连续系统

传递函数G(s)相对应的离散传函G(z)。进而再根据G(z)由z反变换

求的系统的时域离散模型——差分方程,据此便可以进行快速求解。

根据z变换理论,s域到z域的最基本的映射关系是TsZe

1

lnsz

T

果按这一映射关系直接代入G(s),得到的G(z)是相当复杂的,不便于算

法实现,所以往往借助于Z变换的基本映射关系TsZe

1

lnsz

T

作一些简

化和近似处理。

3.3离散相似法

“离散相似法”——将一个连续系统进行离散化处理,然后求得与它等价的

离散模型(差分方程)的方法。

获取离散相似模型的两个途径:

(1)对传递函数作离散化处理得离散传递函数——称为“频域离散相似

模型”;

(2)基于状态方程离散化——称为“时域离散相似模型[3]”;

对连续系统进行数字仿真可以先在系统加入虚拟的采样器和保持器,如图

3-1所示,

保持器G(s)

uy

TT

图3-1连续系统离散化结构图

附注:图3-1所示系统的采样开关和保持器实际上是不存在的,而是为

了将(3-5)式离散化而虚构的。

然后利用Z变换的方法求出系统的脉冲传递函数,再从脉冲传递函数求

出对应于系统G(s)的差分方程。

根据图3-1,有脉冲传递函数:

()

()()()

()

Yz

GzZGsGs

h

Uz







(3-5)

其中Gh(s)是保持器的传递函数。若选择不同的保持器,则可得不同的

G(z),见表3-1。

表3-1不同保持器的G(z)

假设连续系统的状态方程为:

xAxBu

(3-5)

若人为地在系统的输入端及输出端加上采样开关,同时为了使输入信号

复原为原来的信号,在输入端还要加一个保持器,如图3-2所示。

零阶保持器x=Ax+Bu

uy

TT

图3-2采样控制系统结构图

若对方程(3-5)式两边进行拉普拉斯变换,得:

即:()()(0)(sIAXsXBUs

以1()sIA左乘上式的两边可得:

11

()()(0)()()XssIAXsIABUs





(3-6)

保持器的传递函数Gh(s)脉冲传递函数G(z)

零阶:

1

Ts

e

s

1()zGs

Z

zs







一阶:

1

Ts

e

s

1()(1)

2

()

2

zGsTs

Z

z

Ts









三角形:

2

(1)

2

TsTs

ee

Ts

2

(1)()

2

zGs

Z

z

Ts







)()()()(sBUsAXXssX0

考虑到状态转移矩阵:

11

()

At

teLsIA











(3-7)

故对(3-6)式反变换可得:

()

()(0)()

0

At

At

t

XtexeBUd





(3-8)

此为(3-5)式的连续解,由此可推导出系统的离散解。

根据上式,n及n+1两个相连的采样瞬间,有:

()

()(0)()

0

AkT

AkT

kT

XkTexeBUd





(3-9)



(1)

(1)

(1)

(1)(0)()

0

AkT

AkT

kT

XkTexeBUd







(3-10)

将(3-10)式减去(3-9)式后乘以ATe,得:

将(3-11)式右边积分进行变量代换,即令:

kTt

(3-12)

则得:

()

(1)()()

0

ATt

AT

T

XkTeXkTeBUkTtdt



(3-13)

但由图3-2可知:若系统采用零阶保持器时,则两个采样点之间输入量

可看做常数,即u(nT+t)=u(nT),这样(3-13)式可写为:



(1)

(1)

(1)()()

AkT

kT

AT

XkTeXkTeBUd

kT







(3-11)

()

0

(1)()()

()()()()

T

ATATtXkTeXkTeBdtUkT

GTXkTHTUkT











式中:

()

()

()

0

AT

GTe

ATt

T

HTeBdt

第6章计算机仿真实例

6.1连续系统仿真的离散相似法

在研究对象的数学模型时,通过模拟研究可以预测这一对象在不同的输

入向量的作用下的行为,可为模型的简化提供数据。通常通过计算机仿真技

术可以估计各种不同的控制系统,在各种干扰作用下的过渡过程,进行方案

的分析比较,为选择最好的方案提供依据[7]。例如,对于一个复杂组分的控制

系统,采用数字计算机进行模拟,可以得到各种工况下的控制系统仿真分布

曲线,为正确选择仿真方法及路线提供可靠依据,并可以预测控制系统的动

态响应效果,所以在自动控制系统的设计、分析和研究中,计算机仿真技术是

一有效的手段。

控制系统方框图如图6-1所示,分析k=1,2时的系统的动态响应,(饱和

非线性环节斜率为1),

)(1.25)(ttR

图6-1控制系统方框图

用离散相似法分析计算如下:

第一步引入采样开关的零阶保持器,变成离散控制系统,如图6-2所示。

图6-2控制系统方框图

第二步求对象和调节器的状态方程,传递函数为

)1(

)(

ss

n

sG

由控制系统方框图中的传递函数,给出状态方程

1s1syx2nx1

-1

u

图6-3系统状态图

取:n=1,

101

11

100

22

xx

u

xx

















2

yx

即:

10

10

A







1

0

B







由图中比例限幅调节器的特性可列出:

10[()()]10

()[()()],10[()()]10

10[()()]10

Rkyk

ukRkykRkyk

Rkyk

















其中y(k)=[01]x(k)

第三步,离散状态方程

)()()()()1(kUTHKXTGkx

第四步,求取

)(TG

和)(TH,

111

1

0

1

()()

11

(1)

AT

s

GTeLsIAL

sss































=

0

11

T

T

e

e







000

1

0

()

0

111

TTT

TT

At

TT

ee

HTeBdtdtdt

ee























=

1

1

T

T

e

Te









()s=1()sIA称为预解矩阵。

det(sI-A):为其的行列式,adj(sI-A):为其的伴随矩阵,

预解矩阵:

()

()

det()

adjsIA

s

sIA

若取

45.0T

则:

0.637630

()

0.362371

GT







0.36237

()

0.08763

HT







第五步,由图6-1构成的离散系统,用递推法求解,

已知:0k时,

1.25)0(R

0)0(y

0)0(u

0)0(x

1.25)0()0()0(yRE

由调节器方程可知:

10)0(u

可求出

1,k

0.63763000.362373.6237

()10

0.36237100.087630.8763

xk









2k,时

0.6376303.62370.36235.9336

()10

0.3623710.87630.087633.0657

xk









这样一直运算下去,通过编程,计算机仿真,应用离散相似法控制系

统计算机仿真如图6-4示,图(a)1k,图(b)2k

354045

0

10

20

30

(a)

k=1

354045

0

10

20

30

40

(b)

k=2

图6-4仿真结果图

小结:

1.由于各个环节的输入量U(I)及输出量Y(I)每一步的数值都可求

出,所以这个程序很容易被推广到包含有非线性环节的系统仿真中去。

2.各个环节的离散状态方程的系数可以一次求出,不必象龙格——库

塔法那样,算一步就要计算一次龙格——库塔系数,因而计算工作量可适当

减少。

3.控制系统的分析是进行控制系统设计的基础,同时也是工程实际当中解

决问题的主要办法,因而对控制系统的分析在控制系统仿真中具有举足轻重的作

用。

离散相似法仿真程序:

clear

a=[0.63763,0;0.36237,1];

h=[0.36237;0.08763];

x0=[0;0];

u0=10;

y0=[0;0];

r=25.1;

forn=1:45

ifn==1

x(:,n)=a*x0+h*u0;

else

e=r-y(1,n-1);

ife>=10

u=10;

x(:,n)=a*x(:,n-1)+h*u;

else

u=e;

x(:,n)=a*x(:,n-1)+h*u;

end

end

y(1,n)=x(2,n);

end

subplot(2,1,1)

plot(y)

xlabel('(a)','fontweight','bold','fontname','宋体','fontsize',16);

gtext('k=1','fontsize',16)

a=[0.63763,0;0.36237,1];

h=2*[0.36237;0.08763];

x0=[0;0];

u0=10;

y0=[0;0];

r=25.1;

forn=1:45

ifn==1

x(:,n)=a*x0+h*u0;

else

e=r-yy(1,n-1);

ife>=10

u=10;

x(:,n)=a*x(:,n-1)+h*u;

else

u=e;

x(:,n)=a*x(:,n-1)+h*u;

end

end

yy(1,n)=x(2,n);

end

subplot(2,1,2)

plot(yy)

xlabel('(b)','fontweight','bold','fontname','宋体','fontsize',16);

gtext('k=2','fontsize',16)

6.2Simulink仿真中的代数环问题

无论是采用Fortran、C还是Matlab和Simulink语言,在编写计算程序

时,都会遇到代数环问题,代数环会给计算程序带来很大的麻烦,需要特别

注意。所谓代数环就是同一个模块中输出信号再重新送入到输入端口中。

首先介绍simulink的意义:

Simulink是一种以MATLAB为基础的实现动态系统建模、仿真与分析的软

件包,具有以下的主要功能:

(1)可以实现交互式建立系统的动态模型。

(2)良好的交互式仿真环境。

(3)扩充和定制功能。

(4)与MATLAB和工具箱的集成。

(5)专用模型库

Simulink还有专用程序包,可对系统模型进行代码生成。Simulink的开放式

结构允许用户扩展仿真环境,如生成自定义模块库等。由于Simulink可直接利

用MATLAB的诸多资源与功能,因而用户可在Simulink下完成诸如数据分析、

过程自动化、参数优化等工作。

本节将对Simulink的代数环问题进行讨论。

1

122

1

2314

xaxau

xaxax





例:利用Simulink求解方程组。

此题中直接利用Simulink求解此方程组时,会遇到代数环问题[8]。

(1)用Simulink建立方程组模型,保存为,如图(1)所

示。

2

Out2

1

Out1

x2

x1

sum2

sum1

a4

a4

a3

a3

a2

a2

a1

a1

SineWave

1

s

Integrator

图7-1具有代数环的系统模型

Simulink模型中存在一个代数环,由模块sum1、a4、sum2、和a1组成

一个代数环路。代数环中的每一个模块都具有一个相同的特征,就是模块的

输入和输出之间只有代数关系。这种代数关系,在时间上讲就是没有延迟,

在物理模型上讲就是无惯性。

(2)对方程进行处理

将方程组第二个方程代入第一个方程,可以得到:

13114211

xaaxaaxau





(7-1)

注意:

1.方程两边都出现状态导数,这就是代数环的方程表现形式之一。

2.本例所提出的方程组比较简单,所以非常容易看出代数环的问

题。但对于稍微复杂的系统,就很难直接判断是否含有代数环。

(3)代数环的处理方法

对于上面的方程或方程组,计算机并不会自动将方程进行整理,而把方

程两边进行合并。虽然Simulink在处理代数环的解算程序采用比较鲁棒的

Newton-Raphson方法,但仍不能够保证结果是收敛的。

通常处理代数环的方法:

1.人工排除代数环。

通过手工整理方程,得到如下方程组:

13

2

1

1414

1

11

aa

a

xxu

aaaa





(7-2)

3

24

21

1414

11

a

aa

xxu

aaaa





(7-3)

简化得

1121

xkxku



(7-4)

2314

xkxku

(7-5)

其中

133

224

1234

14141414

,,,

1111

aaa

aaa

kkkk

aaaaaaaa





说明:如果代数环对计算速度的影响不大,那就不必理会;如果代数

环对计算速度的影响很大,通常可以加入记忆模块或者代数约束模块,消除

模块的代数环。

2.利用Memory模块消除代数环。

(4)建立Simulink模型

i.首先对手工整理的方程进行建模。

对方程(2)和(3)建立Simulink模型,保存为,如图7-2所

2

Out2

1

Out1

x2

x1

a2*a4/(1+a1*a4)

k4

a3/(1+a1*a4)*u

k3

a2/(1+a1*a4)

k2

a1*a3/(1+a1*a4)

k1

Subtract

SineWave

1

s

Integrator

Add

图7-2整理方程组消除代数环后的Simulink模型

ii.利用Memory模块消除代数环。

在图7-1所示Simulink模型的基础上,添加一个记忆环Memory模块,

保存为,如图7-3所示。

2

Out2

1

Out1

x2

x1

sum2

sum1

a4

a4

a3

a3

a2

a2

a1

a1

SineWave

Memory

1

s

Integrator

图7-3添加记忆模块的Simulink模型

👁️ 阅读量:0