计控实验二-连续系统变换为离散系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二 连续系统变换为离散系统
一、实验目的
在对连续系统进行实时计算机控制时,往往需要把连续系统转换成离散系统。
二、实验指导
为了得到连续系统的离散化数学模型,Matlab 提供了c2d()函数。c2d()函数的调用格式为:
sysd=c2d(sys,Ts) 或 sysd=c2d(sys,Ts,method)
式中,输入参量sys 为连续时间模型对象;Ts 为采样周期;sysd 为带采样时间Ts 的离散时间模型。Method 用来指定离散化采用的方法: ‘zoh ’——采用零阶保持器法;
‘foh ’——采用一阶保持器法;
‘tustin ’——采用双线性变换法;
‘prewarp ’——采用改进的双线性变换法;
‘matched ’——采用零极点匹配法;缺省时,为‘zoh ’
三、实验内容
1.已知连续系统的零极点增益模型为:
试采用零阶保持器与零极点匹配法求其离散传递函数。设采样周期。 程序及结果:
>> k=10,z=-5,p=[-1 -3 -8];
sys = zpk ( z,p,k )
sys =
10 (s+5)
-----------------
(s+1) (s+3) (s+8)
Continuous -time zero/pole/gain model.
>> Ts=0.1
Ts =
0.1000
>> sysd=c2d(sys,Ts,'zoh') )
8)(3)(1()5(10)(++++=
s s s s s G s T 1.0=
sysd =
0.040105 (z -0.6065) (z+0.7932)
--------------------------------
(z -0.9048) (z -0.7408) (z -0.4493)
Sample time: 0.1 seconds
Discrete -time zero/pole/gain model.
>> sysd=c2d(sys,Ts,'matched')
sysd =
0.035957 (z -0.6065) (z+1)
--------------------------------
(z -0.9048) (z -0.7408) (z -0.4493)
Sample time: 0.1 seconds
Discrete -time zero/pole/gain model.
2、已知系统如图1所示,被控对象 G h (s)为零阶保持器,
图1
(1) 若其控制器按模拟化设计方法设计,其系统框图如图2,得到的传递函数
为
)110(1)()()(+==s s s U s s G a θ1
110)(++=s s s D
试分别采用零阶保持器、双线性变换法、零极点匹配法进行控制器离散化,求系统的阶跃响应曲线和误差曲线,并与连续系统的阶跃响应曲线进行比较。采样周期为1秒。
(2)选择采样周期T=0.2s ,试采用零极点匹配法进行控制器离散化,求其系统的阶跃响应曲线和误差曲线,并与连续系统的阶跃响应进行比较。
(3)若在图2 中的D (s )后加一数字补偿器(该环节是一相位超前环节) 求系统的阶跃响应曲线和误差曲线,并与连续系统的阶跃响应进行比较。 要求:运用Matlab 编写命令语句或应用程序,并实现。
(1)
num=[10,1],den=[1 1];
Ds=tf(num,den);
Ts=1;
Dz=c2d(Ds,Ts,'zoh');
num=1,den=[10 1 0],Gs=tf(num,den);
Gz=c2d(Gs,Ts,'zoh');
G=feedback(Dz*Gz,1);
Dz1=c2d(Ds,Ts,'tustin');
G1=feedback(Dz1*Gz,1);
Dz2=c2d(Ds,Ts,'matched');
G2=feedback(Dz2*Gz,1);
G3=feedback(Ds*Gs,1);
figure (1)
subplot(2,2,1);step(G3);
title('连续系统单位阶跃响应');grid on;
subplot(2,2,2);step(G);
title('离散系统单位阶跃响应(零阶保持器)');grid on;
subplot(2,2,3);step(G1);
title('离散系统单位阶跃响应(双线性变化法)');grid on;
subplot(2,2,4);step(G2);
title('离散系统单位阶跃响应(零极点匹配)');grid on;
figure (2)
[y,t,x]=step(G3);
E3=1-y;subplot(2,2,1);plot(E3);title('连续系统误差曲线');grid on;
[y,t,x]=step(G);
E=1-y;subplot(2,2,2);plot(E);title('离散系统误差曲线(零阶保持器)');grid on;
1
8.05.1)(-∧-=z z D
[y,t,x]=step(G1);
E1=1-y;subplot(2,2,3);plot(E1);title('离散系统误差曲线(双线性变化法)');grid on; [y,t,x]=step(G2);
E2=1-y;subplot(2,2,4);plot(E2);title('离散系统误差曲线(零极点匹配)');grid on;
(2)
num=[10,1],den=[1 1];
Ds=tf(num,den);
Ts=0.2;
Dz=c2d(Ds,Ts,'zoh');