自动控制MATLAB.docx

上传人:b****2 文档编号:1253992 上传时间:2022-10-19 格式:DOCX 页数:34 大小:278.52KB
下载 相关 举报
自动控制MATLAB.docx_第1页
第1页 / 共34页
自动控制MATLAB.docx_第2页
第2页 / 共34页
自动控制MATLAB.docx_第3页
第3页 / 共34页
自动控制MATLAB.docx_第4页
第4页 / 共34页
自动控制MATLAB.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

自动控制MATLAB.docx

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

自动控制MATLAB.docx

自动控制MATLAB

 

《自动控制原理》MATLAB分析与设计

仿真实验报告

 

1、

控制系统数学模型在Matlab中的表示

2、一、实验目的

3、1.熟悉Matlab的基本操作;

4、2.掌握线性系统模型在Matlab中的描述方法;

5、3.掌握在Matlab中线性系统模型之间的转换方法;

6、4.初步熟悉Simulink仿真的基本方法。

7、二、实验内容

8、1、已知闭环系统的传递函数为:

要求:

利用Matlab软件中的函数,

(1)把G(s)写成零、极点形式;

(2)把G(s)写成部分分式的形式;(3)当采样周期为1s时,求出离散后的模型。

程序清单:

clear;

clc;

num=[121];

den=[16116];

Gs=tf(num,den);

[zpk]=tf2zp(num,den);

Gp=zpk(z,p,k)

fprintf('residue:

');

[r1p1k1]=residue(num,den)

Gc=c2d(Gs,1)

显示结果:

Zero/pole/gain:

(s+1)^2

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

(s+3)(s+2)(s+1)

residue:

r1=

2.0000

-1.0000

0

p1=

-3.0000

-2.0000

-1.0000

k1=

[]

Transferfunction:

0.2011z^2-0.1382z+0.02362

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

z^3-0.553z^2+0.07484z-0.002479

Samplingtime:

1

2、已知系统结构图如图所示,①用Matlab软件编程求出闭环系统的传递函数C(s)/R(s);②用Simulink建立仿真图,并用示波器观察系统在单位阶跃输入时的响应。

程序清单:

Clear

Clc

y1=tf([1],[11]);

y2=tf([1],[12]);

y3=tf([12],[145]);

y4=tf([1],[13]);

Gs=feedback(series(y1,parallel(y2,y3)),y4)

显示结果:

Transferfunction:

2s^3+14s^2+33s+27

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

s^5+10s^4+40s^3+82s^2+87s+39

Siumlink仿真图:

结果:

实验二线性系统的时域分析

2014-12-22

一、实验目的

1.熟悉Matlab的基本操作;

2.掌握利用Matlab对系统进行时域分析和设计的方法;

3.熟悉利用Simulink仿真对系统进行时域分析的方法;

4.能够根据所得结果对系统进行性能分析。

二、实验内容

1、已知二阶系统的闭环传递函数为:

要求:

利用Matlab中的函数,求ζ分别为0,0.7,1,2时系统的单位阶跃响应,并利用所求结果分析阻尼比ζ对系统性能的影响。

程序清单:

clear

clc

s=[00.712];

j=0:

0.01:

10;

fori=0:

1:

3

%Gs=tf([16],[1s(i+1)*816]);

yy=step([16],[1s(i+1)*816],j);

plot(j,yy);

holdon

end

2、系统结构图如图所示,用Matlab中的函数,

(1)求该系统的单位阶跃响应和单位斜坡响应(图形显示);

(2)求单位阶跃输入和单位斜坡响应时的稳态误差;

(3)分析该系统的稳定性。

(4)试利用Simulink仿真实现以上问题的求解。

(1)、程序清单:

clear

clc

y1=tf([1],[11]);

y2=tf([1],[12]);

y3=tf([12],[145]);

y4=tf([1],[13]);

Gs=feedback(series(y1,parallel(y2,y3)),y4);

t=0:

0.01:

10;

Gstep=step(Gs.num{1},Gs.den{1},t);%单位阶跃

plot(t,Gstep,'r');

holdon

Gt=lsim(Gs.num{1},Gs.den{1},t,t);%单位斜坡

plot(t,Gt,'b');

legend('step','t');

显示结果:

(2)、程序清单:

clear

clc

y1=tf([1],[11]);

y2=tf([1],[12]);

y3=tf([12],[145]);

y4=tf([1],[13]);

Gs=feedback(series(y1,parallel(y2,y3)),y4)

t=0:

0.01:

10;

Gstep=step(Gs.num{1},Gs.den{1},t);%单位阶跃

Gsteper=Gstep(length(t))

Gt=lsim(Gs.num{1},Gs.den{1},t,t);%单位斜坡

Gter=Gt(length(t))-1

显示结果:

Gsteper=

0.6923

Gter=

5.2249

分析从

(1)的图形可看出:

脉冲响应的稳态误差为:

0.629;

单位阶跃响应稳定为:

正无穷大;

(3)、程序清单:

clear

clc

y1=tf([1],[11]);

y2=tf([1],[12]);

y3=tf([12],[145]);

y4=tf([1],[13]);

Gs=feedback(series(y1,parallel(y2,y3)),y4);

x=roots(Gs.den{1})%分母系数矩阵

len=length(x);

flag=0;

fori=1:

1:

len

if(x(i)<0)

flag=1;

else

flag=0;

break;

end

end

if(0==flag)

fprintf('不稳定系统。

\n');

else

fprintf('稳定系统。

\n');

end

显示结果:

x=

-3.4656

-1.7672+0.7926i

-1.7672-0.7926i

-1.5000+0.8660i

-1.5000-0.8660i

稳定系统。

分析:

系统稳定。

(4)、阶跃响应:

系统稳定,稳态误差为约为0.7;

2、单位斜坡响应:

稳态误差为正无穷。

3、设单位负反馈系统的开环传递函数为:

(1)对该系统进行仿真,分析其动态性能();

(2)忽略系统闭环零点,对系统动态性能进行仿真,分析仿真结果。

(1)、程序清单:

clear

clc

t=0:

0.01:

100;

Gs=tf([0.41],conv([10],[10.6]))

[num,den]=cloop([0.41],conv([10],[10.6]));

ys=step(num,den,t);

plot(t,ys);

flag=1;

max=0;

Tp=0;

T1=ys(length(ys))*(1+0.05);

T2=ys(length(ys))*(1-0.05);

fori=1:

1:

length(ys)

if(ys(i)>max)

max=ys(i);

Tp=t(i);

end

end

Ts=0;

forj=length(ys):

-1:

1

if(ys(j)>=T1||ys(j)<=T2)

Ts=t(j);

break;

end

end

yc=(max-ys(length(ys)))/ys(length(ys));

fprintf('超调量为:

%f\n',yc);

fprintf('上升时间为:

%f\n',Tp);

fprintf('调节时间为:

%f\n',Ts);

显示结果:

Transferfunction:

0.4s+1

-----------

s^2+0.6s

超调量为:

0.179946

上升时间为:

3.160000

调节时间为:

4.870000

4、试作出以下系统的单位阶跃响应曲线,并与原系统的响应曲线进行比较,并对实验结果进行分析。

程序清单:

clear

clc

s=0:

0.01:

1;

y0=step([10],[1210],s);

y1=step([210],[1210],s);

y2=step([10.510],[1210],s);

y3=step([10.50],[1210],s);

y4=step([10],[1210],s);

plot(s,y0,'b');

holdon

plot(s,y1,'r');

holdon

plot(s,y2,'y');

holdon

plot(s,y3,'k');

holdon

plot(s,y4,'m');

legend('G0','G1','G2','G3','G4');

xlabel('s');ylabel('y');

显示结果:

5、已知系统的开环传递函数为:

,求该系统的单位阶跃输入及单位斜坡输入下的稳态误差。

答:

程序清单:

clc

clear

numk=[25];

denk=conv([1],[13]);

Gk=tf(numk,denk);

[numden]=cloop(numk,denk);

fprintf('传递函数为:

\n');

Gs=tf(num,den)

t=0:

0.01:

0.5;

ys=step(Gs,t);

plot(t,ys,'r');

holdon

yt=lsim(num,den,t,t);

plot(t,yt,'b');

legend('step','t');

fprintf('单位阶跃输入稳态误差:

\n');

erstep=ys(length(t))-1

fprintf('单位斜坡输入下的稳态误差:

\n')

ert=yt(length(t))-length(t)

显示结果:

传递函数为:

Transferfunction:

25

------

s+28

单位阶跃输入稳态误差:

erstep=

-0.1071

单位斜坡输入下的稳态误差:

ert=

-50.5855

实验三线性系统的根轨迹分析

12-25

1、实验目的

1.熟悉Matlab的基本操作;

2.掌握利用Matlab函数实现系统根轨迹的绘制及设计的方法。

3.能够根据所得结果对系统进行性能分析。

二、实验内容

1、已知单位负反馈系统的开环传递函数为:

(1)试画出K=0→∞时的闭环系统根轨迹

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

当前位置:首页 > IT计算机 > 互联网

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

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