Matlab在离散控制系统中起着重要作用。无论将连续系统离散化、离散控制系统的离散输出响应、连续输出响应、离散控制系统设计等方面,都可以用Matlab研究,得出形象化结果,有利于加深对离散控制系统分析和设计方法的理解。下面,举若干实例,介绍Matlab方法在离散控制系统中的应用。连续系统离散化,在Matlab中应用c2dm函数。它的一般格式为
例7-34 已知开环离散控制系统结构如图7-53所示,求开环脉冲传递函数。采样周期T=1s。
图7-53 开环离散控制系统
解 先用解析求G(z)
用Matlab可以很方便求得上述结果。Matlab程序如下
%This script converts the transfer function
%G(s)=1/s(s+1)to a discrete-time system
% with a sampling period of T=1 sec
%
num=[1];den=[1,1,0];
T=1
[numZ,denZ]=c2dm(num,den,T‘,zoh’);
printsys(numZ,denZ,‘Z’)
打印结果
用Matlab亦很方便求系统的输出响应,只不过此时需运用dstep函数、climpulse函数。
假定离散系统如图7-54所示。输入为单位阶跃,可用dstep函数求输出响应。
图7-54 开环离散系统
例7-35 已知离散系统结构如图7-55所示,采样系统的输入为单位阶跃,采样周期T=1s,求输出响应。
图7-55 闭环离散控制系统
解 由
可绘制输出响应如图7-56所示。
图7-56 闭环离散控制系统单位阶跃响应
如果用Matlab的dstep函数,可很快得到离散输出y*(t)和连续输出结果y(t),如图7-57和图7-58所示。
%This script gene rather the unit step response,y(kt),
% for the sampled data system given in example
%
num=[00.3680.264];den=[1-10.632];
dstep(num,den)
% This script computes the continuous-time unit
%step response for the system in example
%
numg=[1];deng=[110];
[nd,dd]=pade(1,2)
numd=dd-nd;
dend=conv([10],dd);
[numdm,dendm]=minreal(numd,dend);
图7-57 离散输出结果(www.xing528.com)
%
[n1,d1]=series(numdm,dendm,numg,deng);
[num,den]=cloop(nl,dl);
t=[0∶0.1∶20];
step(num,den,t)
图7-58 连续输出
例7-36 已知
希望绘制连续系统的脉冲响应,以及T=1,0.1,0.01s时离散控制系统脉冲响应。
解 由于系统过渡过程是在时间趋于∞后才结束,为此,绘制脉冲响应的横坐标,终端时间Tf=13。Matlab程序如下
%Samplingex
%The effect of sampling time on the discrete-time
%impulse response resulting from discretizing a
%continuous-time system
num=10* [10.22]
den=conv([10.51],[110]);
clf
subplot(2,2,1)
Tf=13;
t=[0∶0.1∶Tf];
impulse(num,den,t)
M =1;
whilem<=3,
Ts=1/10(m-1);
subplot(2,2,1+m)
[numd,dend]=c2dm(num,den,Ts);
[y,x]=dimpulse(numd,dend,Tf/Ts);
t1=[0∶Ts∶Tf-Ts];
stairs(tl,y/Ts)
xlabel(‘Timelsre(s)’)
ylabel(‘Amplitude’)
图7-59 连续系统和离散控制系统的脉冲响应
m=m+1;
end
subplot(1,1,1)
图7-59绘制了该系统的脉冲响应。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。