面向结构图的离散相似法仿真

合集下载

离散相似法

离散相似法

3.1时域离散相似法的基本原理
仿真计算过程:

原连续系统 离散后系统
输入信号 u(t) uh(kT)
2012-12-17
3-0 离散控制系统基本原理

3-0 离散控制系统基本原理

4 离散控制系统:

5 x(t) 和 x(kT) 的数学描述

系统中既含有连续信号[x(t), e(t), u(t)],又含有采样 信号[x*(t)]或者数字信号[x(kT), u(kT)]的系统。 离散控制系统是由连续的控制对象、离散的控制器、 采样器和保持器等几个环节所组成。
控制系统建模与仿真 rjliu@ 19
1.连续系统的离散化:微分方程-》差分方程
Ax Bu, x y Cx Du x (0) x0 , t 0
2012-12-17
2012-12-17
控制系统建模与仿真 rjliu@
20
对系统进行离散化:(T为采样周期)
控制系统建模与仿真 rjliu@ 5 2012-12-17 控制系统建模与仿真 rjliu@ 6

2 采样信号 x*(t)


3 数字信号 x(kT)

2012-12-17
北京交通大学
1
控制系统建模与仿真 rjliu@
3-0 离散控制系统基本原理




数值积分的计算,是根据计算步长h,一步一步的逐步计 算,得到t1,t2, …,tk (采样点)的数值x1, x2,…, xk 。 对原连续的系统进行了离散化处理。求解时,用一个等价 离散模型,代替原连续系统。 在自动控制领域,随着计算机的引入和广泛应用,形成了 一套系统的理论——计算机控制(离散控制,数字控制)。 我们可以从连续系统离散化的角度出发,用控制理论中采 样和信号重构的理论,建立离散模型,并用计算机控制的 理论分析计算。 离散后的系统和原来的连续系统是相似的(输入输出信号 在采样点上是近似相等的),所以叫做离散相似法。

计算机仿真技术课件 第四章 面向结构图的数学仿真方法

计算机仿真技术课件 第四章  面向结构图的数学仿真方法
(1)对每个环节要增设一个参数Z(I),它表示第I个环节的入口有 哪种类型非线性环节。
(2)对每个环节要增设一个参数C(I),它表示第I个环节入口的那 个非线性环节的参数,当第I个环节入口没有非线性环节,C(I)=0。
(3)一个完整的面向结构图的离散相似法仿真程序框图如图4-17 所示:
输入环节数 n,步长,输入函数 y0,等 输入各环节系数,以及 初值xi (0), yi (0)
G(s)
a0 s 2
b a1s a2

u
1 s

d
sc
y
图 4-5 二阶环节等效结构图
4.2 面向结构图离散相似法仿真
y0
u1

-
y1 u2
1 +-
y4
y2 u3
2
u4 4
y3
3
图 4-6 系统结构图
如果由一个系统如图4-6所示,如果已知各环节的传递函数, 侧很容易将其离散化,而各环节的输入-输出关系为
其中
a0 c / b a1 a / b
(4-7)
u
a0
x
1 s
x
y
-
a1
图 4-3 惯性环节结构图
惯性环节的状态方程和输出方程为
x a1x a0u yx
离散状态方程为
x(n 1) (T )x(n) m (T )u(n) ˆmT 2u(n)
y(n 1) x(n 1)
x(0) y(0)
步 骤
运行程序根据提示输入数据
结果分析
确定系统各个环节号
根据图4-19所示,写出连接矩阵
u1 1
u2
0
uu43
0 0
0 1 0 0

自动控制系统仿真实验三离散相似法数字仿真

自动控制系统仿真实验三离散相似法数字仿真

实验三 离散相似法数字仿真一、实验目的1、掌握离散相似法仿真方法二、实验内容用离散相似法仿真程序(参考课本sp4-4m )重现实验三输出Y1的数据和曲线,并与四阶龙格一库塔法比较精度。

在下图中,若各环节传递函数已知为;01s .010044.0)s (G9 ;01s .011.0)s (G8 ;s 130)s (G7;15s .0121.0)s (G6 ;0067s .0170)s (G5 ;051s .015s .01G4(s);01s .011G3(s) ;085s .017s .01)s (2G ;s 01.011)s (1G +=+==+=+=+=+=+=+=但G10(s)=0.212;重新列写联接矩阵W,W0和非零元素阵Wij ,编写程序,求出y7响应曲线。

三、实验步骤1、整理状态空间矩阵:1098765432110987654321*0000000001*000100000000010000000000100000000010000010000100000000001000001000010000000000100100000001000000000y y y y y y y y y y y u u u u u u u u u u ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡+⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡---=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡2、重新列写联接矩阵W,W0和非零元素阵Wij1y 2y 3y 4y 5y 6y 8y 9y 10y⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡---=0001000000000100000000001000000000100000100001000000000010000010000100000000001001000000010000000000W ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=00000000010W 10121129132143148154165161017618619711071IJ W ⎡⎤⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦ 3、实验仿真程序(1)离散相似法仿真 P=[1 0.01 1 0; 0 0.085 1 0.17; 1 0.01 1 0;0 0.051 1 0.15; 1 0.0067 70 0; 1 0.15 0.21 0; 0 1 130 0;1 0.01 0.1 0;1 0.01 0.0044 0]; WIJ=[1 0 1;2 1 1;2 9 -1;3 2 1;4 3 1; 4 8 -1;5 4 1;6 5 1;6 7 -0.212; 7 6 1; 8 6 1; 9 7 1]; n=9; Y0=1;Yt0=[0 0 0 0 0 0 0 0 0]; h=0.001; T=0; T0=0; Tf=5;Nout=7; A=P(:,1); B=P(:,2);C=P(:,3); D=P(:,4);m=length(WIJ(:,1)); W0=zeros(n,1); W=zeros(n,n); for k=1:mif(WIJ(k,2)==0);W0(WIJ(k,1))=WIJ(k,3); else W(WIJ(k,1),WIJ(k,2))=WIJ(k,3); end; end;for i=1:nif(A(i)==0); FI(i)=1;FIM(i)=h*C(i)/B(i); FIJ(i)=h*h*C(i)/B(i)/2; FIC(i)=1;FID(i)=0; if(D(i)~=0); FID(i)=D(i)/B(i); elseend;elseFI(i)=exp(-h*A(i)/B(i));FIM(i)=(1-FI(i))*C(i)/A(i); FIJ(i)=h*C(i)/A(i)-FIM(i)*B(i)/A(i); FIC(i)=1;FID(i)=0; if(D(i)~=0); FIM(i)=(1-FI(i))*D(i)/A(i); FIJ(i)=h*D(i)/A(i)-FIM(i)*B(i)/A(i); FIC(i)=C(i)/D(i)-A(i)/B(i); FID(i)=D(i)/B(i); else end; end; end; Y=zeros(n,1); X=Y;y=0;Uk=zeros(n,1);Ub=Uk; t=T0:h:Tf; N=length(t); for k=1:N-1 Ub=Uk;Uk=W*Y+W0*Y0; Udot=(Uk-Ub)/h; Uf=2*Uk-Ub;X=FI'.*X+FIM'.*Uk+FIJ'.*Udot; Y=FIC'.*X+FID'.*Uf; y=[y,Y(Nout)]; end;plot(t,y)(2)四阶龙格一库塔法: p=[1 0.01 1 0;0 0.085 1 0.17; 1 0.01 1 0; 0 0.051 1 0.15; 1 0.0067 70 0; 1 0.15 0.21 0; 0 1 130 0; 1 0.01 0.1 0;1 0.01 0.0044 0]; WIJ=[1 0 1;2 1 1; 2 9 -1;3 2 1;4 3 1; 4 8 -1;5 4 1;6 5 1;6 7 -0.212; 7 6 1; 8 6 1; 9 7 1]; n=9; y0=1;yt0=[0 0 0 0 0 0 0 0 0]; h=0.01; T=0; T0=0; Tf=10;nout=7;A=diag(p(:,1)); B=diag(p(:,2)); C=diag(p(:,3)); D=diag(p(:,4)); m=length(WIJ(:,1)); w0=zeros(n,1); w=zeros(n,n); for k=1:mif (WIJ(k,2))==0;w0(WIJ(k,1))=WIJ(k,3); elsew(WIJ(k,1),WIJ(k,2))=WIJ(k,3); end; end;Q=B-D*w; Qn=inv(Q); R=C*w-A; V1=C*w0; Ab=Qn*R; b1=Qn*V1; Y=yt0'; y=Y(nout);t=T0;N=round((Tf-T0)/h);for i=1:Nk1=Ab*Y+b1*y0;k2=Ab*(Y+h*k1/2)+b1*y0;k3=Ab*(Y+h*k2/2)+b1*y0; k4=Ab*(Y+h*k3)+b1*y0;Y=Y+h*(k1+2*k2+2*k3+k4)/6; y=[y,Y(nout)]; T=[T,t+h]; t=t+h; end;[T',y']; plot(T,y)4、仿真结果 (1)离散相似法:(2)四阶龙格一库塔法:。

实验一面向微分方程的数值积分法仿真

实验一面向微分方程的数值积分法仿真

实验一面向微分方程的数值积分法仿真一、实验目的1•掌握数值积分法的基本概念、原理及应用;2•用龙格-库塔法解算微分方程,增加编写仿真程序的能力;3•分析数值积分算法的计算步长与计算精度、速度、稳定性的关系; 4.对数值算法中的“病态问题”进行研究。

二、实验内容1、已知系统微分方程及初值条件y =t y, y(0) =1取步长h .0.1 ,试分别用欧拉方程法和RK4法求t =2h时的y值,y(t) =2& -t -1比较(将三个解绘于同一坐标中,且用数值进行比较因。

(①编程完成;②选用MATLAB ode函数完成。

)程序代码如下:t0=0;tf=2;h=0.1;y1=1;y2=1;y3=1;t1=0;t2=0;t3=0n=rou nd(tf-t0)/h;for i=1: ny1(i+1)=y1(i)+h*(2*h+y1(i)); t1=[t1,t1(i)+h];endfor i=1: nk1=y2(i)+t2(i);k2=y2(i)+h*k1/2+t2(i)+h/2;k3=y2(i)+h*k2/2+t2(i)+h/2; k4=y2(i)+h*k3+t2(i)+h;y2(i+1)=y2(i)+h*(k1+2*k2+2*k3+k4)/6;t2=[t2,t2(i)+h];endfor i=1: ny3(i+1)=2*exp(t3(i))-t3(i)-1;t3=[t3,t3(i)+h];endplot(t1,y1, 'r' ,t2,y2, 'g' ,t3,y3, 'k')实验结果如下;并将求得的值与解析解),说明造成差异的原1210「 ' -8 ■ / . -6 - / -4「-2 - -0 1 1 1 10 0.5 1 1.5 2 2.5分析:红线为用欧拉法得到的结果,绿线为用四阶龙格一库塔法得到的结果,蓝线为根据解析方程得到的结果。

其差异原因主要有两个:1、二者的方法不同,欧拉法是根据一阶微分方程计算得到的,龙格一库塔法是根据四阶微分方程得到的;2、由于步长取为0.1,所以得到的图像与解析解之间存在差异,若将步长取小,则得到的解将更靠近解析解。

计算机与CAD仿真第4章连续系统按环节离散化的数字仿真

计算机与CAD仿真第4章连续系统按环节离散化的数字仿真

xk 1 Gxk Hu k uk yk 1 c x d uk 1
a T b Ge T a a (T ) c T c d (1 e b ) H e b b a 0 T a a (T ) c T c d 2 (aT b be b ) e b b a 0 ad c 1 cb d d b
表4-2 非线性环节标志
标 志 FZ=0
FZ=1 FZ=2
说 明 典型环节前后均无非线性环节
典型环节前有饱和非线性环节,应修正其输入u 典型环节前有死区非线性环节,应修正其输入u
FZ=3
FZ=4 FZ=5
典型环节前有滞环非线性环节,应修正其输入u 典型环节前有继电器非线性环节,应修正其输 入u 典型环节后有饱和非线性环节,应修正其输出x 典型环节后有死区非线性环节,应修正其输出x
sX(s) X(0) AX(s) BU(s)
或者:
( sI A) X( s) X(0) BU( s)
sI A1
1
上式两边左乘
,可得
1
X(s) (sI A) X(0) (sI A) BU(s)
令: L1[(sI A) 1 ] Φ(t ) ,称为系统状态转移矩阵。
x[(k 1)T ] Gx(kT ) Hu (kT ) u(kT )
G e AT
T
式中:
H
e A(T t ) Bdt
0
T
te A(T t ) Bdt
0
2. 关于离散相似法的几点说明及结论
1. 它是一个递推算法(但不是数值积分法)。
2.G, H ,

控制系统仿真实验报告(20200717013819)

控制系统仿真实验报告(20200717013819)

控制系统仿真实验报告班级:测控 1402 班姓名:王玮学号: 14050402072018 年 01 月实验一经典的连续系统仿真建模方法一实验目的 :1了解和掌握利用仿真技术对控制系统进行分析的原理和步骤。

2掌握机理分析建模方法。

3深入理解阶常微分方程组数值积分解法的原理和程序结构,学习用Matlab 编写数值积分法仿真程序。

4掌握和理解四阶 Runge-Kutta法,加深理解仿真步长与算法稳定性的关系。

二实验内容 :1.编写四阶 Runge_Kutta 公式的计算程序,对非线性模型(3)式进行仿真。

(1)将阀位u增大 10%和减小 10%,观察响应曲线的形状;(2)研究仿真步长对稳定性的影响,仿真步长取多大时RK4 算法变得不稳定?(3)利用 MATLAB 中的 ode45() 函数进行求解,比较与(1)中的仿真结果有何区别。

2.编写四阶 Runge_Kutta 公式的计算程序,对线性状态方程(18)式进行仿真(1)将阀位增大 10%和减小 10%,观察响应曲线的形状;(2)研究仿真步长对稳定性的影响,仿真步长取多大时RK4 算法变得不稳定?(4)阀位增大 10%和减小 10%,利用 MATLAB中的 ode45() 函数进行求解阶跃响应,比较与( 1)中的仿真结果有何区别。

三程序代码 :龙格库塔 :%RK4文件clccloseH=[1.2,1.4]';u=0.55; h=1;TT=[];XX=[];for i=1:h:200k1=f(H,u);k2=f(H+h*k1/2,u);k3=f(H+h*k2/2,u);k4=f(H+h*k3,u);H=H+h*(k1+2*k2+2*k3+k4)/6;TT=[TT i];XX=[XX H];end;hold onplot(TT,XX(1,:),'--',TT,XX(2,:));xlabel('time')ylabel('H')gtext('H1')gtext('H2')hold on水箱模型 :function dH=f(H,u)k=0.2;u=0.5;Qd=0.15;A=2;a1=0.20412;a2=0.21129;dH=zeros(2,1);dH(1)=1/A*(k*u+Qd-a1*sqrt(H(1)));dH(2)=1/A*(a1*sqrt(H(1))-a2*sqrt(H(2)));2 编写四阶Runge_Kutta公式的计算程序,对线性状态方程(18)式进行仿真:1阀值 u 对仿真结果的影响U=0.45;h=1;U=0.5;h=1;U=0.55;h=1;2 步长 h 对仿真结果的影响:U=0.5;h=5;U=0.5;h=20;U=0.5;h=39U=0.5;h=50由以上结果知 , 仿真步长越大 , 仿真结果越不稳定。

离散相似法

离散相似法

第五章 连续系统离散相似法数字仿真上一章讲的数值积分法,其结果得到的是递推公式。

其出发点不是建立一个与被仿真的连续系统等价(某种误差意义下)的离散模型,而是建立在数值计算的基础上,即对积分进行数值计算(某种求和计算)。

或从另一角度说,对微分算子s(以一阶微分方程为对象) 找更好的替代方法。

所得的公式,只是这种思路的结果。

也就是说,人们为了计算方便,将其设法整理成了递推公式,递推公式在固定步长的情况下,就变成了通常所用的常系数的差分方程,可用z变换与频域联系起来(也正因为这点,使其结果从形式上与离散相似累积法类似)。

对这种方法精度的分析,是从截断、舍入误差累积角度进行的。

其改进思路,是减小这两种误差。

时域看失真。

可为线性系统,也可为非线性系统。

离散相似法的出发点与数值积分法不同。

它的出发点在于:采样系统可用差分方程 和z变换来描述,而用计算机求解差分方程式很方便的(差分方程可看作多步法递推公式)。

所以,设法找到一个采样系统,使其输入—输出值与被仿真的连续系统在采样时刻的值近似相等。

这个采样系统称为连续系统的离散等价模型(二次模型、仿真模型)。

从此模型,可得出原系统的一系列值。

“等价”程度的高低,就是此法的精度问题。

所以精度分析从保持器引入的幅度与相位失真进行。

频域看失真。

只有线性时,才可列出整个系统的差分方程。

上述二法从结果(即所得递推公式)看有某种相似性。

所以精度稳定性等的解释可互换借鉴。

改进思路的不同,可看作看问题的角度不同(或出发点不同)而已。

因角度等价手段不同,各自能达到的“等价”程度也就有差别。

小结:1.数值积分法:出发点: 对积分进行数值计算,对微分算子s找更好的替代方法。

结果: 递推公式。

定步长时,为差分方程。

精度分析: 从截断、舍入误差累积角度进行。

时域看失真。

2.离散相似法:出发点:出发点与数值积分法不同。

用计算机解差分很方便,找一个采样系统,使其I-O值与被仿真连续系统(在采样时刻)近似相等。

第四章(43 离散相似法 )

第四章(43 离散相似法 )
4.3 离散相似法
4.3.1 离散相似概念
离散相似法是将连续系统模型处理成与 之等效的离散模型的一种方法。
设计一个离散系统模型,使其中的信息流与给 定的连续系统中信息流相似。
设有一个连续系统,其输入为u(t),输出为y(t)。
4.4(a)
4.4(b)
X ( j )
max 0 2 max
所以线性部分的离散状态方程为
x(m 1) (T ) x(m) G(T )u(m)
差分方程组为
x1 (m 1) x1 (m) kTu m 1 k aT aT aT x2 (m 1) a (1 e ) x1 (m) e x2 (m) a 2 (Ta 1 e )u (m)
进行拉氏反变换得:
易求得 则
(T ) e AT L1[( SI A) 1 ]
e
AT
1 0 1 aT aT (1 e ) e a
G(T )

T
0
1 0 k A (T t ) e Bdt 1 a (T t ) a (T t ) dt ) e 0 (1 e 0 a
u(t )
T
{u( k )}
信号重构
~ u (t )
T
x( k )
x Ax Bu
~ x (t )
2 离散公式推导
x A X B u 系统状态方程: Y CX D u
离散状态 X [ (K+1)T]=(T) X (KT) + G(T) u(KT) Y(KT)=C X(KT)+D u(KT)
4.3.2 Z域离散相似方法

控制系统仿真实验报告

控制系统仿真实验报告

控制系统仿真实验报告班级:测控1402班姓名:王玮学号:072018年01月实验一经典的连续系统仿真建模方法一实验目的:1 了解和掌握利用仿真技术对控制系统进行分析的原理和步骤。

2 掌握机理分析建模方法。

3 深入理解阶常微分方程组数值积分解法的原理和程序结构,学习用Matlab编写数值积分法仿真程序。

4 掌握和理解四阶Runge-Kutta法,加深理解仿真步长与算法稳定性的关系。

二实验内容:1. 编写四阶 Runge_Kutta 公式的计算程序,对非线性模型(3)式进行仿真。

(1)将阀位u 增大10%和减小10%,观察响应曲线的形状;(2)研究仿真步长对稳定性的影响,仿真步长取多大时RK4 算法变得不稳定(3)利用 MATLAB 中的ode45()函数进行求解,比较与(1)中的仿真结果有何区别。

2. 编写四阶 Runge_Kutta 公式的计算程序,对线性状态方程(18)式进行仿真(1)将阀位增大10%和减小10%,观察响应曲线的形状;(2)研究仿真步长对稳定性的影响,仿真步长取多大时RK4 算法变得不稳定(4)阀位增大10%和减小10%,利用MATLAB 中的ode45()函数进行求解阶跃响应,比较与(1)中的仿真结果有何区别。

三程序代码:龙格库塔:%RK4文件clccloseH=[,]';u=; h=1;TT=[];XX=[];for i=1:h:200k1=f(H,u);k2=f(H+h*k1/2,u);k3=f(H+h*k2/2,u);k4=f(H+h*k3,u);H=H+h*(k1+2*k2+2*k3+k4)/6;TT=[TT i];XX=[XX H];end;hold onplot(TT,XX(1,:),'--',TT,XX(2,:)); xlabel('time')ylabel('H')gtext('H1')gtext('H2')hold on水箱模型:function dH=f(H,u)k=;u=;Qd=;A=2;a1=;a2=;dH=zeros(2,1);dH(1)=1/A*(k*u+Qd-a1*sqrt(H(1)));dH(2)=1/A*(a1*sqrt(H(1))-a2*sqrt(H(2)));2编写四阶 Runge_Kutta 公式的计算程序,对线性状态方程(18)式进行仿真:1 阀值u对仿真结果的影响U=;h=1; U=;h=1;U=;h=1;2 步长h对仿真结果的影响:U=;h=5; U=;h=20;U=;h=39 U=;h=50由以上结果知,仿真步长越大,仿真结果越不稳定。

钱雪军-第4章 连续系统仿真——离散相似法2

钱雪军-第4章 连续系统仿真——离散相似法2

◆本章将从连续系统离散化的角度出发,建立连续系统模型的等价离散化
模型,并用采样系统的理论和方法介绍另一种常用的仿真算法。这种算法 使得连续系统在进行(虚拟的)离散化处理后仍保持与原系统“相似”,故 称之为离散相似算法。
◆与数值积分算法相比,离散相似算法的每步计算量要小得多,允许采
用较大的计算步长。然而,它通常只适合线性定常系统的仿真,具有一 定的局限性。
U(s) s
系统微分方程为 dy(t) = u(t)
dt
将一阶导数用一阶前向差分近似 dy(t) = y[(k +1)T ] − y(kT ) = u(kT )
dt t=kT
T
或写成 y(k +1) − y(k) = Tu(k)
∫ 用积分:
(k +1)T
y[(k +1)T ] − y(kT ) =
u(t)dt ≈ Tu(kT )
T z = 1+ sT = 1+ σT + jωT , z 2 = (1+ σT )2 + (ωT )2
对于z平面上的单位圆(及稳定域)有 z 2 = 1 ,故
(1+ σT )2 + (ωT )2 = 1 jω [s]
(σ + 1 )2 + ω 2 = ( 1 )2
T
T

[z]
−2
−1

T
T
−1
(4 + 0.4T + T 2 ) y(k + 2) + (2T 2 − 8) y(k +1) + (4 − 0.4 + T 2T ) y(k) = T 2u(k + 2) + 2T 2u(k +1) + T 2u(k)

离散相似法仿真

离散相似法仿真

实验名称:将传递函数为s s 2612 的环节与单位反馈组成系统,将其离散化1.实验原理1 )离散相似法 所谓离散相似法,就是将一个连续系统进行离散化处理,从而得到等价的系统离散模型,此种方法按系统的动态结构图建立仿真模型。

在计算过程中,按各典型环节离散相似模型,根据环节的输入来计算环节的输出。

2) 环节的离散化模型将连续系统按下图所示对其进行离散化处理,在系统的输入、输出端加上虚拟采样开关,T 为采样周期。

为保证输入信号复现原信号,在输入端加上一个保持器。

使用零阶保持器,可得到离散化状态方程的解:3) 仿真算法实现过程当给定连续系统的动态结构图后,将其等效为各典型环节的组合,按前面讨论的典型环节离散系数 表达式,经程序处理,事先将各环节的类型、参数、初始条件、各环节连接关系矩阵、输入输出连接矩阵等参量送入程序中,既可通过离散相似的模型求出在特定信号作用下,系统中各环节输出变量的变化情况,从而得到系统的仿真结果。

3.实验方案1)连续系统的结构图这是一个单位反馈的二阶系统。

2)引入采样开关将其离散Zero-Order (零阶保持器)及采样开关对系统进行离散化,采用状态转移法进行离散化3)将传递函数转化成状态方程并对其进行离散化传递函数 1261)()()(2++==s s s U s Y s G 变形得)()()(2)(62s U s Y s sY s Y s =++假设其为零状态响应取Laplace 反变换得u y y y =+''+''26将其转变成状态方程有u x x ⎥⎦⎤⎢⎣⎡+⎥⎥⎦⎤⎢⎢⎣⎡--=10016131x y ]01[=通过求矩阵指数及相关变化将状态方程离散化得)(]01[)()()()1(k u k y k Bu k x A k x =+=+由于矩阵A ,B 过于复杂,这里简写,详细表达式见后面程序4.实验程序1)由传递函数求状态方程建立传递函数并转化为状态方程clearclcA = tf2ss([1],[6 2 1]) %建立传递函数模型%并转化为状态方程运行结果:2)将状态方程离散化对应脚本程序:A =[-1/3 -1/6;1 0] %syms s tB= [s 0;0 s] % SID = inv(B-A) %求逆矩阵AI = ilaplace(D,s,t)%laplace 变换 求A 阵BI = AI*[0 ;1]BI =int(BI,'0','t') %积分求B 阵pretty(AI) %A 转化陈易读形式。

自动控制系统仿真离散相似法算法的改进

自动控制系统仿真离散相似法算法的改进

自动控制系统仿真离散相似法算法的改进自动控制的发展已经成为现代工程工作的一个必要部分,系统仿真也成为了许多项目的重要环节。

然而,仿真的准确性和效率却成为了人们关注和追求的目标。

离散相似法是目前仿真中常用的一种方法,而其算法的改进也一直是研究的焦点。

本文介绍离散相似法算法改进的相关信息,包括原理、目的、方法和效果等方面。

1. 原理离散相似法是一种将实际工程中的连续系统仿真成离散系统的一种方法,是工程仿真中最常用的方法之一。

离散相似法的基本原理是利用与实际系统的定义特性相同的代理模型以及在系统状态变化点上的数据来重构系统。

其原理如下:(1) 基于实际系统定义特性的代理模型代理模型是实际系统的模拟模型,在仿真中被用来模拟实际系统的动态行为。

它的定义特性应与实际系统的定义特性相同,且其输入输出特性应能仿真实际系统的输入输出行为。

通常,这种输入输出特性可能包括时间延迟、频率响应、非线性特性以及各种噪声特性等内容。

(2)基于系统状态变化点上的数据的重构操作系统状态变化点是指仿真过程中离散系统状态向连续系统状态的转化点。

在这些状态变化点处,数据被采样并分析,被用来确定仿真过程中的离散系统参数,包括时延、频率响应等内容。

这些参数被用来重构仿真过程中的连续系统,并最终用于评价仿真结果。

这种操作可以保证仿真结果与实际系统间的相似性并提高仿真的准确度和效率。

2. 目的离散相似法算法的改进,主要是为了提高其仿真效率和准确性,是一个基于最优控制方法的研究方向。

主要目的包括:(1) 改进仿真精度离散相似法算法需要保证仿真精度,在模型参数的测定以及模型拟合方面采用多种优化控制方法,从而实现最优参数测定和最优模型拟合,减少误差的产生,达到最佳仿真效果。

(2) 优化计算过程随着计算技术的发展,优化计算过程成为了提高仿真速度的重要手段。

离散相似法算法的改进直接关系到仿真计算的速度和效率。

因此,在研究离散相似法的改进时,优化计算过程也成为了关注的焦点。

实验3-连续系统离散相似法数字仿真实验

实验3-连续系统离散相似法数字仿真实验

实验3 连续系统离散相似法的数字仿真实验(1) 掌握以系统结构图形式描述的连续系时域离散相似法的数字仿真方法和步骤。

(2) 学会利用时域离散相似法分析线性和非线性控制系统的动态性能以及典型非线性环节对控制系统动态性能的影响。

【实验内容】含死区环节的非线性控制系统的结构图如图A.2所示(1)按实验目的、要求和已知条件,建立系统的Simulink模型,并且用RK4法,求出c=0,0.1,0.5,1.0情况下(c=0相当于IV环节为1,即没有加入死去环节)系统的单位阶跃响应作为标准解。

(2)求出图A.2中传递函数对应的状态空间模型,并在该模型前加入虚拟的采样开关和零阶保持器,得到离散化状态空间模型。

(3)在c=0,0.1,0.5,1.0情况下,利用时域离散相似法编程完成对该系统的仿真研究。

(1)搭建simulink模型编写脚本文件:c=0;h1=plot(tout,y,'k'); set(h1,'LineWidth',1) hold on ;sim('lab3');c=0.1;h2=plot(tout,y,'r'); set(h2,'LineWidth',1) hold on ;sim('lab3');c=0.5;h3=plot(tout,y,'b'); set(h3,'LineWidth',1) hold on ;sim('lab3')c=1;h4=plot(tout,y,'m'); set(h4,'LineWidth',1) hold on;sim('lab3');grid绘制出单位阶跃相应图像:(2)输入程序求出状态空间模型(3)编程实现离散相似算法clc;clear;G=tf([8 10],[0.1 1 0 0]);G1=ss(G);T=0.01;sysd=c2d(G1,T);Ad=sysd.a;Bd=sysd.b;Cd=sysd.c;Dd=sysd.d;X=[0;0;0];yt=0;tt=0;R=1;c=0;M=10/T;for k=1:ME=R-yt(end);X=Ad*X+Bd*E;Y=Cd*X+Dd*E; if Y<=cY=Y+c;elseif Y>=cY=Y-c;elseY=0;endyt=[yt,Y];tt=[tt,k*T]; endplot(tt,yt,'k')1.c=02.C=0.13.C=0.54.C=1。

仿真技术实验程序及思考题解答(仅供参考)

仿真技术实验程序及思考题解答(仅供参考)

实验一 连续系统的数字仿真一、实验目的1. 熟悉Matlab 中m 文件的编写;2. 掌握龙格-库塔法的基本原理。

二、实验设备计算机、MATLAB 软件三、实验内容假设单变量系统如图所示。

试根据四阶龙格-库塔法,求系统输出y 的动态响应。

1.首先把原系统转化为状态空间表达式:⎪⎩⎪⎨⎧=+=•CXy bu AX X ,根据四阶龙格-库塔公式,可得到: ⎪⎩⎪⎨⎧=++++=+++1143211)22(6k k k k CX y K K K K h X X (1) 其中: ⎪⎪⎪⎩⎪⎪⎪⎨⎧+++=+++=+++=+=)()()2()2()2()2()(3423121h t bu hK X A K h t bu K h X A K h t bu K h X A K t bu AX K k k k k k k k k (2) 根据(1)、(2)式编写仿真程序。

2.在Simulink 环境下重新对上述系统进行仿真,并和1中结果进行比较。

四、实验结果及分析要求给出系统输出响应曲线,并分析计算步长对龙格-库塔法的影响。

计算步长对龙格-库塔法的影响:单从每一步看,步长越小,截断误差就越小,但随着步长的缩小,在一定求解范围内所要完成的步数就增加,不但引起计算量的增大,而且可能导致舍入误差严重积累,因此同积分的数值计算一样,微分方程的解法也有选择步长的问题。

源程序:r=5;numo=[1];deno=[1 4 8 5];numh=1;denh=1;[num,den]=feedback(numo,deno,numh,denh);[A,b,C,d]=tf2ss(num,den);Tf=input('仿真时间 Tf= ');h=input('计算步长 h=');x=[zeros(length(A),1)];y=0;t=0;for i=1:Tf/h;K2=A*(x+h*K1/2)+b*r;K3=A*(x+h*K2/2)+b*r;K4=A*(x+h*K3)+b*r;x=x+h*(K1+2*K2+2*K3+K4)/6;y=[y;C*x];t=[t;t(i)+h];endplot(t,y)Tf=5 h=0.02五、思考题1.试说明四阶龙格-库塔法与计算步长关系,它与欧拉法有何区别。

MATLAB求解传递函数

MATLAB求解传递函数

系统仿真课时作业学院名称:机械与汽车工程学院专业班级:机械设计制造及其自动化11 -5班姓名:陈飞学号:20110538教师:翟华一、离散相似法1、设计思想是将系统的连续时间状态方程化为离散时间状态方程进行数值计算,它的优点是状态转移矩阵可一次求出,因而计算量较小。

2、在实际系统中,通常由多环节多回路组成,若还用类似上述简单系统的处理方法,只对系统整体进行一次离散化处理,则存在下列问题:①需要给出复杂系统的整体传递函数,高阶微分方程或状态空间表达式,非常烦琐;②系统环节数目越多,系统阶次越高,其状态方程A,B矩阵维数越大,其的计算更加复杂。

③不易分析系统中某个环节的参数变化对系统动态响应的影响,也不能观察系统内部变量的变化情况。

4、为克服系统整体一次离散化给复杂系统仿真带来的问题,可以采取这样一种方法,即对构成系统所有典型环节分别进行一次离散化处理,并用离散状态空间表达式表示出来。

所以,只要预先一次计算出各典型环节的离散状态方程系数矩阵,并用描述各环节间和各环节与控制作用间连接关系的连接矩阵求得各环节的输入量,就可将系统所有环节的动态响应都一一求出,这就是面向结构图的离散相似法数字仿真的基本思想。

5、离散相似法是按环节离散化的,每计算一个步长、每个环节都独立的依次输入计算出输出结果,因而非线性环节很容易包含进去,故此种方法可用来对带有非线性环节的连续系统进行仿真。

6、离散相似法的主要思想:离散相似法是指将一个连续系统进行离散化处理,然后求得与它等价的离散模型(差分方程)的方法。

主要应用于连续系统建模与仿真领域中。

从连续系统离散化的角度出发,建立连续系统模型的等价离散化模型,并用采样系统的理论和方法介绍另一种常用的仿真算法。

这种算法使得连续系统在进行(虚拟的)离散化处理后仍保持与原系统“相似”,故称之为离散相似算法。

二、用MATLAB 中的simulink 工具求解以下传递函数,并画出相关时域图形。

钱雪军-第4章 连续系统仿真——离散相似法2

钱雪军-第4章 连续系统仿真——离散相似法2

4.2.2 保持器
系统辨识与仿真
通过保持器对采样后输入信号的重构,通常可采用三种类型的保持器。
◨ 零阶保持器
◨ 一阶保持器
◨ 三角保持器
▶三种保持器比较:零阶保持器最简单,但重构信号的误差较大; 三角保持器最复杂,恢复信号的失真最小。
▶常用的还是零阶或一阶保持器,特别是零阶。
零阶保持器
u(t)
t0
u(t)
u*(t)
保持器
T
uk(t) x(t) = Ax(t) + Bu(t) x(t)
x*(t)
T
图4.2 状态空间模型离散化原理结构图
4.2.1 采样定理
系统辨识与仿真
采样频率ωs大于或等于两倍的采样器输入连续信号e(t)频谱 中的最高频率ωmax。即ωs>=2ωmax,这就是香农采样定理。
抽样频率小于模拟信号最好频率的2倍会造成频谱混叠 。
比较G(z)与G(s),可以得到置换关系 s ≈ 2 ( z −1) T (z +1)
映射关系
系统辨识与仿真
1+ Ts
考虑到
z

1

2 Ts
将 s = σ + jω 代入上式,可得
2
1+ Ts 1+ T (σ + jω) 1+ T σ + j T ω
(1+ T σ )2 + (T ω)2
z

2 1− Ts
◆为了使输入信号u(t)离散化后仍能保持原来的变化规律, 在输入采样开关后设置信号保持器(亦称为信号重构器), 复现原输入信号u(t),其结构如图4.1。
u(t)
u*(t) 保持器

面向结构图的离散相似法仿真

面向结构图的离散相似法仿真

实验2 面向结构图的离散相似法仿真一、实验目的培养编写仿真程序的能力,学习并了解仿真程序的结构及特点。

通过实验,加深理解面相结构图的离散相似法的原理。

二、实验内容线性系统如下图所示2.5s Transfer Fcn320.02s+1Transfer Fcn250.004s+1Transfer Fcn10.4s+50.4s+1Transfer FcnStepScope1(1)用simulink 仿真,输入为u(t)=10*1(t),输出响应曲线为00.51 1.52 2.53 3.54 4.5551015图1 连续模型的simulink 仿真(2)将模型离散化,步长为T=0.1,用simulink 仿真,输入为u(t)=10*1(t)。

可以使用下列语句对模型进行离散化,其他环节以此类推: num=5*[0.08,1]; den=[0.4,1]; sys=tf(num,den); T=0.1;sysd=c2d(sys,T,’zoh ’)StepScope2.5(z-1)Discrete Zero-Pole45(z-1.389e-11)Discrete Zero-Pole21.987(z-0.006738)Discrete Zero-Pole1(z+0.106)(z-0.7788)Discrete Zero-Pole02468101214161820-0.50.511.522.533.5x 1010图2 离散模型的simulink仿真(T=0.1)由图2可知,当离散步长T=0.1时,系统是发散的,不稳定。

(3)采用离散化步长T=0.1,写出系统完整的按环节离 散化模型。

环节分为数4个环节,按从左至右依次编号为①②③④I 环节之间的连接方程II 环节内部离散模型①超前滞后环节②惯性环节)()(10)()()1(4.0)()1(11115.215.21k u k x k y k u e k x e k x T T +=-+=+--)()()()1(2)()1(222502502k x k y k u e k x e k x T T =-+=+--③惯性环节④积分环节)()()()1(5)()1(33325032503k x k y k u e k x e k x T T =-+=+--)()()(T 5.2)()1(44444k x k y k u k x k x =+=+)()()()()()()()()(34231241k y k u k y k u k y k u k y k r k u ===-=)(0001)(010*******011-000)()()(0k r k y k r W k y W k u ⎪⎪⎪⎪⎪⎭⎫⎝⎛+⎪⎪⎪⎪⎪⎭⎫⎝⎛=⋅+⋅=得到环节内部动态方程环节输出方程系统输出方程(4)仿真程序为分别采用步长T=0.001,0.01,0.1,0.5,进行仿真,得出下列图形)(0001)(11110)()()(k u k x k u D k x C k y ⎪⎪⎪⎪⎪⎭⎫⎝⎛+⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⋅+⋅=())(1000)()(k y k y Q k p =⋅=)(T 5.2)1(5)1(2)1(4.0)(1)()()1(250505.2250505.2k u e e e k x e e e k Hu k Gx k x T TT T T T ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛---+⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=+=+------function[t,p]=w_DisNodesSimu(tstart,tstop,h,x0,y0,r0,W,W0,G,H,C,D,Q)t=[tstart:h:tstop];%t 数一个行序列 cntnodes=size(W,1);%得到环节的个数 cntt=size(t,2);%返回列数cnty=size(Q,1);%返回y 的维数 p=zeros(cnty,cntt);%构造一个空矩阵,用来存储结果 p(:,1)=Q*y0; % for i=1:1:cntt-1for j=1:1:cntnodes u(j)=W(j,:)*y0+W0(j,:)*r0; x0(j)=G(j,j)*x0(j)+H(j,j)*u(j); y0(j)=C(j,j)*x0(j)+D(j,j)*u(j); end ; p(:,i+1)=Q*y0 ;%将y0作为输出的第1列endfunction simutstart=0;tstop=20;x0=[0;0;0;0];u0=[10];h =0.1;%面向环节离散化仿真W=[0,0,0,-1;1,0,0,0;0,1,0,0;0,0,1,0]; W0=[1,0,0,0]';C=diag([10,1,1,1]); D=[1,0,0,0;0,0,0,0;0,0,0,0;0,0,0,0]; Q=[0,0,0,1];G=diag([exp(-2.5*h),exp(-50*h),exp(-250*h),1]);H=diag([(1-exp(-2.5*h))/2.5,2*(1-exp(-50*h)),5*(1-exp(-250*h)),2.5*h]); y0=x0;[t,y1]=w_DisNodesSimu(tstart,tstop,h,x0,y0,u0,W,W0,G,H,C,D,Q);stairs(t,y1,'-b*');xlabel('x');ylabel('y');title('图3 逐个环节刷新(T=0.1)');2468101214161820-2.5-2-1.5-1-0.50.51x 10103xy图3 逐个环节刷新(T=0.1)246810121416182002468101214xy图4 逐个环节刷新(h=0.01)246810121416182002468101214xy图5 逐个环节刷新(T=0.001)02468101214161820-8-7-6-5-4-3-2-11x 1067xy图6 逐个环节刷新(T=0.5)分析上面的曲线可知,当逐个环节刷新,离散步长为T=0.1时,与simulink仿真的结果一致,系统均不稳定;当离散步长为T=0.01,0.001时,曲线表现为收敛,及系统稳定;当离散步长为T=0.5时,曲线发散,系统不稳定。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验2 面向结构图的离散相似法仿真
一、实验目的
培养编写仿真程序的能力,学习并了解仿真程序的结构及特点。

通过实验,加深理解面相结构图的离散相似法的原理。

二、实验内容
线性系统如下图所示
2.5s Transfer Fcn3
20.02s+1Transfer Fcn2
50.004s+1Transfer Fcn1
0.4s+50.4s+1
Transfer Fcn
Step
Scope1
(1)用simulink 仿真,输入为u(t)=10*1(t),输出响应曲线为
00.51 1.52 2.53 3.54 4.55
5
10
15
图1 连续模型的simulink 仿真
(2)将模型离散化,步长为T=0.1,用simulink 仿真,输入为u(t)=10*1(t)。

可以使用下列语句对模型进行离散化,其他环节以此类推: num=5*[0.08,1]; den=[0.4,1]; sys=tf(num,den); T=0.1;
sysd=c2d(sys,T,’zoh ’)
Step
Scope
2.5(z-1)Discrete Zero-Pole4
5(z-1.389e-11)Discrete Zero-Pole2
1.987(z-0.006738)Discrete Zero-Pole1
(z+0.106)(z-0.7788)
Discrete Zero-Pole
02468101214161820
-0.5
0.5
1
1.5
2
2.5
3
3.5
x 10
10
图2 离散模型的simulink仿真(T=0.1)
由图2可知,当离散步长T=0.1时,系统是发散的,不稳定。

(3)采用离散化步长T=0.1,写出系统完整的按环节离 散化模型。

环节分为数4个环节,按从左至右依次编号为①②③④
I 环节之间的连接方程
II 环节内部离散模型
①超前滞后环节
②惯性环节
)
()(10)()()1(4.0)()1(11115.215.21k u k x k y k u e k x e k x T T +=-+=+--
)
()()
()1(2)()1(222502502k x k y k u e k x e k x T T =-+=+--
③惯性环节
④积分环节
)
()()()1(5)()1(33325032503k x k y k u e k x e k x T T =-+=+--
)
()()(T 5.2)()1(44444k x k y k u k x k x =+=+
)()()()()()()()()(34
231241k y k u k y k u k y k u k y k r k u ===-=)(0001)(010*******
01
1-000)()()(0k r k y k r W k y W k u ⎪⎪
⎪⎪



⎝⎛+⎪⎪⎪⎪⎪⎭⎫

⎛=⋅+⋅=
得到环节内部动态方程
环节输出方程
系统输出方程
(4)仿真程序为
分别采用步长T=0.001,0.01,0.1,0.5,进行仿真,得出下列图形
)(0001)(11110)()()(k u k x k u D k x C k y ⎪⎪
⎪⎪
⎪⎭

⎝⎛+⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⋅+⋅=()
)
(1000)()(k y k y Q k p =⋅=)(T 5.2)1(5)1(2)1(4.0)(1)()()1(250505.2250505.2k u e e e k x e e e k Hu k Gx k x T T
T T T T ⎪⎪
⎪⎪⎪⎭⎫ ⎝⎛---+⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=+=+------function
[t,p]=w_DisNodesSimu(tstart,tstop,h,x0,y0,r0,W,W0,G,H,C,D,Q)
t=[tstart:h:tstop];%t 数一个行序列 cntnodes=size(W,1);%得到环节的个数 cntt=size(t,2);%返回列数
cnty=size(Q,1);%返回y 的维数 p=zeros(cnty,cntt);%构造一个空矩阵,用来存储结果 p(:,1)=Q*y0; % for i=1:1:cntt-1
for j=1:1:cntnodes u(j)=W(j,:)*y0+W0(j,:)*r0; x0(j)=G(j,j)*x0(j)+H(j,j)*u(j); y0(j)=C(j,j)*x0(j)+D(j,j)*u(j); end ; p(:,i+1)=Q*y0 ;%将y0作为输出的第1列
end
function simu
tstart=0;tstop=20;x0=[0;0;0;0];u0=[10];h =0.1;
%面向环节离散化仿真
W=[0,0,0,-1;1,0,0,0;0,1,0,0;0,0,1,0]; W0=[1,0,0,0]';C=diag([10,1,1,1]); D=[1,0,0,0;0,0,0,0;0,0,0,0;0,0,0,0]; Q=[0,0,0,1];
G=diag([exp(-2.5*h),exp(-50*h),exp(-250*h),1]);
H=diag([(1-exp(-2.5*h))/2.5,2*(1-exp(-50*h)),5*(1-exp(-250*h)),2.5*h]); y0=x0;
[t,y1]=w_DisNodesSimu(tstart,tstop,h,x0,y0,u0,W,W0,G,H,C,D,Q);
stairs(t,y1,'-b*');
xlabel('x');ylabel('y');
title('图3 逐个环节刷新(T=0.1)');
2468
101214161820
-2.5
-2-1.5-1-0.5
0.5
1
x 10
103
x
y
图3 逐个环节刷新(T=0.1)
2468
101214161820
02468
10
12
14x
y
图4 逐个环节刷新(h=0.01)
2468
101214161820
02468
10
12
14x
y
图5 逐个环节刷新(T=0.001)
02468
101214161820
-8
-7
-6
-5
-4
-3-2
-1
1
x 10
67
x
y
图6 逐个环节刷新(T=0.5)
分析上面的曲线可知,当逐个环节刷新,离散步长为T=0.1时,与simulink仿真的结果一致,系统均不稳定;当离散步长为T=0.01,0.001时,曲线表现为收敛,及系统稳定;当离散步长为T=0.5时,曲线发散,系统不稳定。

三、实验总结
本次实验主要是通过改变离散步长,对结构图的各个环节逐个刷新进行仿真,得到仿真曲线与simulink的相对比,分析系统的稳定性,了解离散相似法的原理,熟悉仿真程序的结构。

实验过程中,遇到的最大困难是对matlab的使用问题,自己上网搜索解决了全部问题,如多项式相乘函数,示波器背景颜色变为白色,将曲线导出到文档中等。

仿真程序由两部分构成,分别是仿真调用函数simu和逐个环节刷新的仿仿真程序w_DisNodesSimu。

编程序的关键是理解离散相似法的原理,首先将各个矩阵求出来,然后将各个变量矩阵放进仿真调用函数即可。

相关文档
最新文档