#自动控制原理大.docx

上传人:b****7 文档编号:10407164 上传时间:2023-02-11 格式:DOCX 页数:36 大小:407.13KB
下载 相关 举报
#自动控制原理大.docx_第1页
第1页 / 共36页
#自动控制原理大.docx_第2页
第2页 / 共36页
#自动控制原理大.docx_第3页
第3页 / 共36页
#自动控制原理大.docx_第4页
第4页 / 共36页
#自动控制原理大.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

#自动控制原理大.docx

《#自动控制原理大.docx》由会员分享,可在线阅读,更多相关《#自动控制原理大.docx(36页珍藏版)》请在冰豆网上搜索。

#自动控制原理大.docx

#自动控制原理大

第1章绪论

一、例题

[例1]线性系统的建模仿真:

①开环控制系统;②闭环控制系统。

解①开环控制系统

运行后可得下图:

②闭环控制系统

运行后得下图:

[例2]非线性系统的建模仿真:

①开环控制系统;②闭环控制系统。

解①开环控制系统

运行后得下图:

②闭环控制系统

运行后得下图:

二、仿真

下图为在Simulink工具里面的搭建的仿真模块,实现控制的稳定性。

图1.1控制系统结构模型图

对模型中的数据进行合理的设计,运行图形如下:

图1.2控制系统结构波形图

分析:

由图示结果看出较为稳定,超调量小,调节时间也很短。

在t=0.2s时基本达到稳定。

第2章自动控制系统的数学模型

一、例题

[例12]两个子系统为

将两个系统按并联方式连接,可输入:

num1=3。

den1=[1,4]。

num2=[2,4]。

den2=[1,2,3]。

[num,den]=parallel(num1,den1,num2,den2>

则得

num=

051825

den=

161112

因此

[例13]两个子系统为

将两个系统按反馈方式连接,可输入

numg=[251]。

deng=[123]。

numh=[510]。

denh=[110]。

[num,den]=feedback(numg,deng,numh,denh>

则得

num=

2255110

den=

11577840

因此闭环系统的传递函数为

二、仿真

系统1为:

,系统2为

求按串联、并联、正反馈、负反馈连接时的系统状态方程及系统1按单位负反馈连接时的状态方程。

编写程序如下:

clc

a1=[01。

-1-2]。

b1=[0。

1]。

c1=[13]。

d1=[1]。

a2=[01。

-1-3]。

b2=[0。

1]。

c2=[14]。

d2=[0]。

[a,b,c,d]=series(a1,b1,c1,d1,a2,b2,c2,d2>%串联连接

[a,b,c,d]=parallel(a1,b1,c1,d1,a2,b2,c2,d2>%并联连接

[a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2,+1>%正反馈连接

[a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2>%负反馈连接

[a,b,c,d]=cloop(a1,b1,c1,d1>%单位负反馈连接

运行结果如下<仅列出串联连接的结果):

串联连接

a=b=

01000

-1-3131

00010

00-1-21

c=

1400

d=

0

分析:

可见在MATLAB中,可以用程序建立各种数学模型,而且可以进行各类数学模型见的转换,因此利用MATLAB建立数学模型应用较为广泛。

第3章时域分析法

要判断系统的稳定性,只需要确定系统闭环极点在s平面上的分布。

利用MATLAB命令可以快速求出闭环系统零极点并绘制其零极点图,也可以方便绘出系统的时间响应曲线。

因此,利用MATLAB可以可以方便、快捷地对控制系统进行时域分析。

[例18]已知连续系统的传递函数为

要求:

①求出该系统的零、极点及增益。

②绘出起零、极点图,判断系统稳定性。

解可执行如下程序:

%Thisprogramcreatesatransferfunctionandthenfinds/displaysitspoles、zerosand%gain

num=[3,2,5,4,6]。

den=[1,3,4,2,7,2]。

[z,p,k]=tf2zp(num,den>。

pzmap(num,den>。

title('Polesandzerosmap'>

程序执行结果如下:

z=0.4019+101965ip=-1.7680+1.2673i

0.4019-101965i1.7680-1.2673i

-0.7352+0.8455i0.4176+1.1130i

-0.7352-0.8455i0.4176-1.1130i

-0.2991

K=3

同时屏幕上显示系统的零极点分布图<如图所示)

分析:

无论是从所求的系统零、极点,还是绘制出的零、极点图,都可以看到系统中有两个极点位于s的右半平面,因此,该系统不稳定。

[例19]已知典型二阶系统的传递函数为

式中

=6,绘图系统在

=0.1,0.2,……,1.0,2.0时的单位阶跃响应。

解可执行如下程序:

%Thisprogramplotsacurveofstepresponse

wn=6。

kosi=[0.1,0.2,1.0,2.0]。

figure(1>

holdon

forkos=kosi

num=wn.^2。

den=[1,2*kos*wn,wn.^2]。

step(num,den>

end

title('StepResponse'>

holdoff

从图中可以看出,在过阻尼和临界阻尼曲线中,临界阻尼的响应具有最短的上升时间,响应速度最快;在欠阻尼的的响应曲线中,阻尼系数越小,超调量越大,上升时间越短。

[例20]已知三阶系统的传递函数为

绘制系统的单位阶跃响应和单位脉冲响应曲线。

解可执行如下程序:

%Thisprogramplotsacurveofstepresponseandstepimpulseforthreeorder%system

clf

num=[100200]。

den=[11.4100.44100.04]。

h=tf(num,den>。

[y,t,x]=step(h>

[y1,t1,x1]=impulse(h>

subplot(211>,plot(t,y>

title('StepResponse'>

xlabel('time'>,ylabel('amplitude'>

subplot(212>,plot(t1,y1>

title('impulseresponse'>

xlabel('time'>,ylabel('amplitude'>

第4章根轨迹法

一、例题

[例9]已知单位反馈系统的开环传递函数为

试在系统的闭环的根轨迹图上选择一点,求出该点的增益K及其系统的闭环极点位置,并判定在该点系统的闭环稳定性。

解调用rlocfind(>函数,Matlab程序为:

num=[13]。

den=conv(conv(conv([10],[15]>,[16]>,[122]>。

sys=tf(num,den>。

rlocus(sys>

[k,poles]=rlocfind(sys>

title('根轨迹分析'>

xlabel('实轴'>

ylabel('虚轴'>

执行程序后用光标在根轨迹图上选一点,可得到相应的该点的系统的增益和其闭环极点:

k=

82.3756

poles=

-5.6903+1.2000i

-5.6903-1.2000i

-2.2680

0.3243+1.7654i

0.3243-1.7654i

二,仿真

例1.某开环系统传递函数如

,要求绘制系统的闭环根轨迹,分析其稳定性,并绘制出当k=55和k=56时系统的闭环冲激响应。

解:

可执行如下程序:

clc

numo=[12]。

den=[143]。

deno=conv(den,den>。

figure(1>

k=0:

0.1:

150。

rlocus(numo,deno,k>

title('rootlocus'>

[p,z]=pzmap(numo,deno>。

[k,p1]=rlocfind(numo,deno>。

%求出系统临界稳定增益

k

figure(2>%验证系统的稳定性

subplot(211>

k=55。

num2=k*[12]。

den=[143]。

den2=conv(den,den>。

[numc,denc]=cloop(num2,den2,-1>。

impulse(numc,denc>

title('impulseresponsek=55'>。

subplot(212>

k=56。

num3=k*[12]。

den=[143]。

den3=conv(den,den>。

[numcc,dencc]=cloop(num3,den3,-1>。

impulse(numcc,dencc>

title('impulseresponsek=56'>。

程序执行结果如下图所示:

运行后系统的闭环根轨迹如图4.1所示:

图4.1.闭环系统根轨迹图

执行程序后,用光标在根轨迹图上选一点,可得相应的该点的系统增益。

如:

selected_point=0.1789-3.4627ik=72.2648

selected_point=-0.1836+2.7795ik=39.5736

<注:

运行了两次,选取了两个不同的值。

K=72.2648时系统不稳定;k=39.5736时,系统稳定)

同时,通过绘制k=55和k=56系统的闭环冲激响应曲线,验证其稳定性。

所得图如下:

图4.2.系统的闭环冲激响应曲线

分析:

当k=55时,系统根轨迹处于s左半平面,即其所有闭环极点的实部均为负值,所以在该点处,闭环系统是稳定的,如图4.2上所示。

当k=56时,系统根轨迹处于s右半平面,其闭环极点的实部有正值,所以在该点处,闭环系统是不稳定的,如图4.2下所示。

第5章频域分析法

[例11]有一个二阶系统,其自然频率

=1,阻尼因子

=0.2,要绘制出系统的幅频和相频曲线,可输入:

[a,b,c,d]=ord(1,0.2>。

bode(a,b,c,d>。

title('BodePlot'>

执行后得到下图:

[例12]典型二阶系统:

绘制出

取不同值时的Bode图。

解取

=6,

取[0.1:

1.0]时二阶系统的Bode图可直接采用Bode得到。

MATLAB程序为

%Example5.1

%

wn=6。

kosi=[0.1:

1.0]。

w=logspace(-1,1,100>。

figure(1>

num=[wn.^2]。

forkos=kosi

den=[12*kos*wnwn.^2]。

[mag,pha,w1]=bode(num,den,w>。

subplot(2,1,1>。

holdon

semilogx(w1,mag>。

subplot(2,1,2>。

holdon

semilogx(w1,pha>。

end

subplot(2,1,1>。

gridon

title('BodePlot'>。

xlabel('Frequency(rad/sec>'>。

ylabel('GaindB'>。

subplot(2,1,2>。

gridon

xlabel('Frequency(rad/sec>'>。

ylabel('Phasedeg'>。

holdoff

执行后得下图:

[例13]有系统:

绘制出系统的Bode图。

解MATLAB程序为:

%Example5.2

%

k=100。

z=[-4]。

p=[0-0.5-50-50]。

[num,den]=zp2tf(z,p,k>。

bode(num,den>。

title('BodePlot'>

执行后得下图:

[例14]有二阶系统:

现要得到系统的Nyquist曲线,可输入:

num=[251]。

den=[123]。

nyquist(num,den>。

title('NyquistPlot'>

执行后可得到下图:

因为曲线没有包围-1+j0点且p=0,所以G(s>单位负反馈构成的闭环系统稳定。

[例15]开环系统:

解MATLAB程序为:

%Example5.3

%

k=50。

z=[]。

p=[-52]。

[num,den]=zp2tf(z,p,k>。

figure(1>

nyquist(num,den>

title('NyquistPlot'>。

figure(2>

[num1,den1]=cloop(num,den>。

impulse(num1,den1>。

title('ImpulseResponse'>

执行后得下图:

从图中可以看出,系统Nyquist曲线按逆时针方向包围(-1,j0>点1圈,而开环系统包含右半S平面上的1个极点,因此闭环系统稳定。

[例16]开环系统:

绘制系统的Nyquist曲线,判断闭环系统稳定性,绘制出闭环系统的单位冲激响应。

解MATLAB程序为:

%Example5.4

%

k=50。

z=[]。

p=[-1-52]。

[num,den]=zp2tf(z,p,k>。

figure(1>

nyquist(num,den>

title('NyquistPlot'>。

figure(2>

[num1,den1]=cloop(num,den>。

impulse(num1,den1>。

title('ImpulseResponse'>

执行后得下图:

第6章控制系统的综合与校正

[6.12]设单位反馈系统的开环传递函数为:

使用Bode设计法设计滞后超前校正装置,使校正后的系统能满足如下的性能指标:

1在单位斜坡信号作用下,系统的速度误差系数

2系统校正后的剪切频率

3系统校正后相角稳定裕度

4校正后系统时域性能指标:

MATLAB命令:

k0=30。

n1=1。

d1=conv(conv([10],[0.11]>,[0.21]>。

[mag,phase,w]=bode(k0*n1,d1>。

figure(1>。

margin(mag,phase,w>。

holdon

figure(2>。

s1=tf(k0*n1,d1>。

sys=feedback(s1,1>。

step(sys>

执行后得到:

(1>未校正系统的BODE图:

(2>未校正系统的阶跃响应曲线:

%求滞后校正器的传递函数:

MATLAB命令:

wc=1.5。

k0=40。

n1=1。

d1=conv(conv([10],[11]>,[14]>。

beta=9.5。

T=1/(0.1*wc>。

betat=beta*T。

Gc1=tf([T1],[betat1]>

执行后所得结果:

Transferfunction:

6.667s+1

63.33s+1

%求超前校正器的传递函数:

MATLAB命令:

n1=conv([040],[6.6671]>。

d1=conv(conv(conv([10],[11]>,[14]>,[63.331]>。

sope=tf(n1,d1>。

wc=1.5。

num=sope.num{1}。

den=sope.den{1}。

na=polyval(num,j*wc>。

da=polyval(den,j*wc>。

g=na/da。

g1=abs(g>。

h=20*log10(g1>。

a=10^(h/10>。

wm=wc。

T=1/(wm*(a>^(1/2>>。

alphat=a*T。

Gc=tf([T1],[alphat1]>

执行后所得结果:

Transferfunction:

1.82s+1

0.2442s+1

%校验:

MATLAB命令:

n1=40。

d1=conv(conv([10],[11]>,[14]>。

s1=tf(n1,d1>。

s2=tf([6.6671],[63.331]>。

s3=tf([1.821],[0.24421]>。

sope=s1*s2*s3。

[mag,phase,w]=bode(sope>。

margin(mag,phase,w>

执行后所得结果<校正后的系统Bode图)为:

%校验后性能指标及阶跃响应:

MATLAB命令:

globalyt。

k0=30。

n1=40。

d1=conv(conv([10],[11]>,[1,4]>。

s1=tf(n1,d1>。

s2=tf([6.6671],[63.331]>。

s3=tf([1.821],[0.24421]>。

sope=s1*s2*s3。

sys=feedback(sope,1>。

step(sys>

[y,t]=step(sys>。

运行后,得到校正后的单位阶跃响应曲线如图示:

第7章离散控制系统

一、例题

[例21]某二阶系统:

要求其阶跃响应,可输入:

num=[2-3.41.5]。

den=[1-1.60.8]。

dstep(num,den>

title('DiscreteStepResponse'>

执行后可得下图:

[例23]有系统:

可输入:

num=[2-3.41.5]。

den=[1-1.60.8]。

axis('square'>

zgrid('new'>

rlocus(num,den>。

title('RootLocus'>

执行后可得下图:

[例24]已知离散系统:

,绘制出系统的Nyquist曲线,判别闭环系统的稳定性,并绘制出闭环系统的单位冲激响应。

解MATLAB程序如下:

num=0.692。

den=[1,-1.758,0.375]。

[z,p,k]=tf2zp(num,den>。

p

figure(1>

dnyquist(num,den,0.1>

title('离散Nyquist曲线图'>。

xlabel('实数轴'>。

ylabel('虚数轴'>。

figure(2>

[num1,den1]=cloop(num,den>。

dimpulse(num1,den1>。

title('离散冲激响应'>。

xlabel('时间'>。

ylabel('振幅'>。

运行程序可得下图:

p=

1.5096

0.2484

由仿真图可知该离散系统是发散的。

二、仿真

例1.已知一个离散系统如图所示,其中采样周期TS=1s.,对象模型

,零阶保持器

,试求开环增益的稳定范围。

图7.1系统模型图

解:

执行如下程序:

num=1。

den=[110]。

sys=tf(num,den>。

%连续系统传递函数

c2d(sys,1>%离散系统传递函数

运行结果如下:

Transferfunction:

0.3679z+0.2642

--------------------------------

z^2-1.368z+0.3679

Samplingtime:

1

继续编写程序,求取该离散系统的根轨迹图:

num=[0.36790.2642]。

den=[1-1.3680.3679]。

G=tf(num,den,-1>。

rlocus(G>

[k,poles]=rlocfind(G>

运行结果如下:

用鼠标单击根轨迹与单位圆的交点,可以得到交点的极点坐标以及交点处的开环增益K值,如图7.2所示。

运行程序如下:

selected_point=1.0118-0.0047iselected_point=-0.7227+0.0047i

k=0.0127k=778.5564

poles=poles=

0.9873-284.3382

0.3761-0.7247

selected_point=0.2536-0.9643i

k=2.3513

poles=

0.2515+0.9622i

0.2515-0.9622i

图7.2离散系统的根轨迹图

分析:

在程序运行中选取了三个点,极点、零点以及根轨迹与单位园的交点,可得在整个根轨迹图中,k=0~778.5564。

在离散系统根轨迹图上,虚线表示的是单位元,由理论分析可知,系统闭环传递函数的所有极点位于z平面的单位圆内时,该离散系统是稳定的。

从根轨迹的分布图上可以看出,当0

令k=1,编写程序,还可以求得该离散系统的单位冲激响应曲线,进一步验证该离散系统是否稳定。

程序如下:

num=[0.36790.2642]。

den=[1-1.3680.3679]。

[num1,den1]=cloop(num,den>。

dimpulse(num1,den1>

运行程序,得到离散闭环系统的单位冲激响应如图7.3,可见该离散系统在k=1时是稳定的。

第8章控制系统状态空间分析与综合

[例19]已知线性定常系统如图所示:

试求系统的的状态方程,选择正定的实对称矩阵Q后计算李雅普诺

夫方程的解并利用李雅普诺夫函数确定系统的稳定性。

解选择正定的实对称矩阵

编写如下程序:

n1=5。

d1=[11]。

s1=tf(n1,d1>。

n2=1。

d2=[12]。

s2=tf(n2,d2>。

n3=1。

d3=[10]。

s3=tf(n3,d3>。

s123=s1*s2*s3。

sys=feedback(s123,1>。

[ABCD]=tf2ss(sys.num{1},sys,den{1}>。

[ABCD]=tf2ss(sys.num{1},sys.den{1}>。

q=[100。

010。

001]。

ifdet(A>~=0

p=lyap(A,q>

det1=det(p(1,1>>

det2=det(p(1:

2,1:

2>>

detp=det(p>

end

程序运行结果为:

p=

23.0000-0.5000-13.5000

-0.500013.5000-0.5000

-13.5000-0.50008.2000

det1=

23.0000

det2=

310.2500

detp=

71.1750

因为

故有:

是负定的。

从运行结果可以看出:

对各阶主子行列式

第9章非线性控制系统

[例19]试用描述函数法分析下图非线性系统的稳定性:

解程序如下:

k=input('k='>

num=[000k]。

den=[1650]。

w=0.1:

0.1:

100。

[re,im,w]=nyquist(num,den,w>。

v=[-44,-55]。

axis(v>。

plot(re,im>。

title('Curvesof-1/N(X>andG(jw>'>。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1