MATLAB控制系统仿真实验报告.docx

上传人:b****8 文档编号:10933018 上传时间:2023-02-23 格式:DOCX 页数:39 大小:25.83KB
下载 相关 举报
MATLAB控制系统仿真实验报告.docx_第1页
第1页 / 共39页
MATLAB控制系统仿真实验报告.docx_第2页
第2页 / 共39页
MATLAB控制系统仿真实验报告.docx_第3页
第3页 / 共39页
MATLAB控制系统仿真实验报告.docx_第4页
第4页 / 共39页
MATLAB控制系统仿真实验报告.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

MATLAB控制系统仿真实验报告.docx

《MATLAB控制系统仿真实验报告.docx》由会员分享,可在线阅读,更多相关《MATLAB控制系统仿真实验报告.docx(39页珍藏版)》请在冰豆网上搜索。

MATLAB控制系统仿真实验报告.docx

MATLAB控制系统仿真实验报告

word文档整理分享

 

清华大学自动化工程学院

 

实验报告

 

课程:

控制系统仿真

 

专业自动化

班级122

姓名学号

 

指导教师:

 

时间:

2015年10月19日—10月28日

 

参考资料

word文档整理分享

 

实验一

MATLAB环境的熟悉与基本运算⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

1

实验二

MATLAB语言的程序设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

6

实验三

MATLAB的图形绘制⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

9

实验四

采用SIMULINK的系统仿真⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

14

实验五

控制系统的频域与时域分析⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

17

实验六

控制系统PID校正器设计法⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯

23

 

参考资料

word文档整理分享

 

实验一MATLAB环境的熟悉与基本运算

 

一、实验时间及地点:

 

实验时间:

2015.10.19上午8:

30—9:

30

实验地点:

计算中心

 

二、实验目的:

1.熟悉MATLAB开发环境

2.掌握矩阵、变量、表达式的各种基本运算

 

三、实验内容:

1、新建一个文件夹(自己的名字命名,在机器的最后一个盘符)

2、启动MATLAB6.5,将该文件夹添加到MATLAB路径管理器中。

3、保存,关闭对话框

4、学习使用help命令,例如在命令窗口输入helpeye,然后根据帮助说明,学习使用指

令eye(其它不会用的指令,依照此方法类推)

5、学习使用clc、clear,观察commandwindow、commandhistory和workspace等窗口的

变化结果。

6、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、exerc2、

exerc3⋯⋯),学习使用MATLAB的基本运算符、数组寻访指令、标准数组生成函数和

数组操作函数。

注意:

每一次M-file的修改后,都要存盘。

练习A:

(1)helprand,然后随机生成一个2×6的数组,观察commandwindow、command

history和workspace等窗口的变化结果

(2)学习使用clc、clear,了解其功能和作用

(3)输入一个2维数值数组,体会标点符号的作用(空格和逗号的作用)。

(4)

一维数组的创建和寻访,创建一个一维数组(

1×8)X,查询X数组的第2个元

素,查询X数组的第3个元素到第

6个元素,查询

X数组的第5个元素到最后

一个元素,查询X数组的第

3、2、1个元素,查询

X数组中≤5

元素,将X数

组的第2个元素重新赋值为

111,实例expm1。

(5)

二维数组的创建和寻访,创建一个二维数组(

4×8)A,查询数组

A第2行、第

3列的元素,查询数组A第2行的所有元素,查询数组

A第6列的所有元素,

查询数组A按列拉长形成新的数组

B(1×8),查询数组A按行拉长形成新的数组

C(1×8),以全元素赋值的方式对数组

A赋值。

(6)

两种运算指令形式和实质内涵的比较。

设有

3个二维数组A2×4,B2×4,C2×2,写出

参考资料

word文档整理分享

所有由2个数组参与的合法的数组运算和矩阵指令

(7)

学习使用表

8

列的常用函数(通过help方法)

(8)

学习使用表

9

数组操作函数

(9)

学习字符串的创建,a='Thisisanexample.'

串数组的大小size(a)

串数组的元素标识a14=a(1:

4)ra=a(end:

-1:

1)

对字符串ASCLL码的数组操作

w=find(a>='a'&a<='z');

ascii_a(w)=ascii_a(w)-32;%英文大小写字母ASCLL值差32(小-32=大)

char(ascii_a)

练习B

(10)创建符号对象与函数命令sym()、syms()与class()的熟悉和运用。

有符号表达式:

 

e1acx2yapx2bcxybpxckykp,e2cyp

试计算e1e2?

与e1e2?

 

四、实验操作过程(实验说明)

 

>>helprand%用help指令学习rand的用法

 

rand-Uniformlydistributedpseudorandomnumbers

 

ThisMATLABfunctionreturnsapseudorandomscalardrawnfromthestandard

uniformdistributionontheopeninterval(0,1).

 

r=rand

 

r=rand(n)

 

r=rand(sz1,...,szN)

 

r=rand(sz)

r=rand(classname)

 

r=rand(n,classname)

r=rand(sz1,...,szN,classname)

 

r=rand(sz,classname)

r=rand('like',p)

 

参考资料

word文档整理分享

 

r=rand(n,'like',p)

 

r=rand(sz1,...,szN,'like',p)

r=rand(sz,'like',p)

 

>>rand(2,6)%随机生成一个2×6的数组

 

ans=

0.8147

0.1270

0.6324

0.2785

0.9575

0.1576

0.9058

0.9134

0.0975

0.5469

0.9649

0.9706

>>clear

 

>>[12;34]

%清除命令窗口

 

%输入一个二维数组

 

ans=

 

12

 

34

 

>>[1,2;3,4]%将空格改为逗号效果一致

 

ans=

12

 

34

 

>>a=[1234;5678];

 

>>b=a(2:

2,3:

4)%逗号前面是行,后面是列,冒号前后的数表示所选范围

 

b=

78

 

>>eye(3)%产生单位矩阵

 

参考资料

word文档整理分享

 

ans=

1

0

0

0

1

0

0

0

1

 

>>magic(3)%产生魔方矩阵

 

ans=

8

1

6

3

5

7

4

9

2

 

>>flipud(ans)%以数组“水平中线”为对称轴,交换上下对称位置上的元素

 

ans=

4

9

2

3

5

7

8

1

6

 

>>rot90(ans)

 

ans=

2

7

6

9

5

1

4

3

8

>>a='hello'

 

a=

 

hello

 

%逆时针旋转数组90°

 

参考资料

word文档整理分享

 

>>b=size(a)%字符串a的大小为1x5

 

b=

15

 

>>symsxypkabc%创建符号对象

 

>>e1=x^2*a*c*y+a*p*x^2+b*p*x+c*k*y+k*p%创建函数命令

 

e1=

 

k*p+a*p*x^2+c*k*y+b*p*x+a*c*x^2*y

 

>>e2=c*y+p

 

e2=

 

p+c*y

 

>>e1/e2

 

ans=

(k*p+a*p*x^2+c*k*y+b*p*x+a*c*x^2*y)/(p+c*y)

 

>>a=[12]

 

a=

 

12

 

>>c=reshape(a,2,1)%改变数组a的行数和列数

 

c=

1

 

参考资料

word文档整理分享

 

2

 

五、实验结果及讨论

1.熟悉了MATLAB的基本软件操作。

2.通过本次实验熟悉了MATLAB的开发环境掌握了矩阵、变量、表达式的各种运算了解

了*与.*、/与、^与.^等区别以及绝对值、开方e的阶乘、正弦、正切的运算的符号。

3.让我明白了MATLAB的实用性。

 

参考资料

word文档整理分享

 

实验二MATLAB语言的程序设计

 

一、实验时间及地点:

 

实验时间:

2015.10.19上午8:

30—9:

30

 

实验地点:

黄岛老校区计算中心

 

二、实验目的:

1、熟悉MATLAB程序编辑与设计环境

2、掌握各种编程语句语法规则及程序设计方法

3、函数文件的编写和设计

4、了解和熟悉跨空间变量传递和赋值

 

三、实验内容:

练习A

1、熟悉MATLAB程序编辑与设计环境

2、用for

循环语句实现求1~100的和

3、用for

循环语句实现编写一个求

n阶乘的函数文件

练习B

思考题

n

4、已知一维数组A[2,4,5,8,10]

、B

[4,9,6,7,4],用for

循环语句实现AiBni1。

i1

 

求和函数可用sum()

 

5、

(1)编写求解一维数组平均值的函数文件。

(2)编写求解二维数组平均值的函数文件。

 

四、实验操作过程(实验说明)

 

1.用for循环语句实现求1~100的和,函数名为theSec().

 

程序:

a=0;

 

fori=1:

100

a=i+a;

 

参考资料

word文档整理分享

 

end

 

fprintf('%d\n',a)

 

执行结果:

 

>>theSec%求1~100的和

 

5050

2.用for循环语句实现编写一个求n阶乘的函数文件,函数名为jiex(x).

 

程序:

functionjiex(x)

a=1;

fori=1:

x

a=a*i;

end

fprintf('%d\n',a)

 

执行结果:

 

>>jiex(4)%求4的阶乘

 

24

 

n

3.已知一维数组A[2,4,5,8,10]、B[4,9,6,7,4],用for循环语句实现AiBni1。

i1

 

求和,函数名用ABsum()

 

程序:

functiony=ABsum()

a=[2,4,5,8,10];

b=[4,9,6,7,4];

n=5;

sum=0;

fori=1:

n

sum=sum+a(1,i)*b(1,n-i+1);

end

y=sum;

 

参考资料

word文档整理分享

 

执行结果:

 

>>ABsum()ans=

178

 

4.编写求解任意数组平均值的函数文件,函数名为avg(f).

 

程序:

functiony=avg(f)

[m,n]=size(f);

sum=0;

fori=1:

m

forj=1:

n

sum=sum+f(i,j);

end

end

y=sum/(m*n);

 

执行结果:

>>a=[1,2,3,4;5,6,7,8]%定义一个数组

 

a=

 

1

2

3

4

5

6

7

8

 

>>avg(2*a)%求数组2*a的平均值

 

ans=

 

9

 

五、实验结果及讨论

 

参考资料

word文档整理分享

 

1.编程语句:

循环语句有for循环和while循环,我习惯使用for循环,使用格式如下:

for循环变量=表达式1(初值):

表达式2(增量):

表达式3(终值)

 

循环语句组

end

条件判断语句if语句格式为:

if表达式

 

执行语句

end

 

实验三MATLAB的图形绘制

 

一、实验时间及地点:

 

实验时间:

2015.10.21上午8:

30—9:

30

 

实验地点:

黄岛老校区计算中心

 

二、实验目的:

1、学习MATLAB图形绘制的基本方法;

2、熟悉和了解MATLAB图形绘制程序编辑的基本指令;

3、熟悉掌握利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形的各种标注;

4、掌握plot、subplot的指令格式和语法。

 

三、实验内容:

 

练习A

【1】二维曲线绘图基本指令演示。

t=(0:

pi/50:

2*pi)';

k=0.4:

0.1:

1;

Y=cos(t)*k;

plot(t,Y)

 

参考资料

word文档整理分享

 

1

0.8

0.6

0.4

0.2

0

-0.2

-0.4

-0.6

-0.8

-1

01234567

 

plot指令基本操作演示

 

【2】用图形表示连续调制波形ysin(t)sin(9t)及其包络线。

t=(0:

pi/100:

pi)';

y1=sin(t)*[1,-1];

y2=sin(t).*sin(9*t);

t3=pi*(0:

9)/9;

y3=sin(t3).*sin(9*t3);plot(t,y1,'r:

',t,y2,'b',t3,y3,'bo')

axis([0,pi,-1,1])

 

1

0.8

0.6

0.4

0.2

0

-0.2

-0.4

-0.6

-0.8

-1

00.511.522.53

 

【3】通过绘制二阶系统阶跃响应,综合演示图形标识。

本例比较综合,涉及的指令较广。

请耐心读、实际做、再看例后说明,定会有匪浅收益。

clf;t=6*pi*(0:

100)/100;y=1-exp(-0.3*t).*cos(0.7*t);

tt=t(find(abs(y-1)>0.05));ts=max(tt);

plot(t,y,'r-','LineWidth',3)

axis([-inf,6*pi,0.6,inf])

set(gca,'Xtick',[2*pi,4*pi,6*pi],'Ytick',[0.95,1,1.05,max(y)])

gridon

title('\ity=1-e^{-\alphat}cos{\omegat}')

text(13.5,1.2,'\fontsize{12}{\alpha}=0.3')

text(13.5,1.1,'\fontsize{12}{\omega}=0.7')

holdon;plot(ts,0.95,'bo','MarkerSize',10);holdoff

cell_string{1}='\fontsize{12}\uparrow';

 

参考资料

word文档整理分享

cell_string{2}='\fontsize{16}\fontname{

隶书}镇定时间';

cell_string{3}='\fontsize{6}';

cell_string{4}=['\fontsize{14}\rmt_{s}='num2str(ts)];

text(ts,0.85,cell_string)

xlabel('\fontsize{14}\bft\rightarrow')

ylabel('\fontsize{14}\bfy\rightarrow')

y=1-e

-atcoswt

1.2843

 

?

y

 

1.05

1

0.95

a=0.3

w=0.7

 

-

ò?

¨?

±?

?

ts=9.6133

 

6.283212.566418.8496

t?

二阶阶跃响应图的标识

 

四、实验操作过程(实验说明)

 

1.二维曲线绘图基本指令演示:

>>t=(0:

pi/50:

2*pi)';

 

k=0.4:

0.1:

1;

Y=cos(t)*k;

 

plot(t,Y)

 

执行结果:

(图3-1)

 

图3-1

 

参考资料

word文档整理分享

 

2.用图形表示连续调制波形ysin(t)sin(9t)及其包络线:

 

>>t=(0:

pi/100:

pi)';y1=sin(t)*[1,-1];y2=sin(t).*sin(9*t);t3=pi*(0:

9)/9;

y3=sin(t3).*sin(9*t3);plot(t,y1,'r:

',t,y2,'b',t3,y3,'bo')axis([0,pi,-1,1])

执行结果:

(图3-2)

 

图3-2

 

3.通过绘制二阶系统阶跃响应,综合演示图形标识:

>>clf;t=6*pi*(0:

100)/100;y=1-exp(-0.3*t).*cos(0.7*t);tt=t(find(abs(y-1)>0.05));ts=max(tt);plot(t,y,'r-','LineWidth',3)axis([-inf,6*pi,0.6,inf])set(gca,'Xtick',[2*pi,4*pi,6*pi],'Ytick',[0.95,1,1.05,max(y)])gridon

 

title('\ity=1-e^{-\alphat}cos{\omegat}')text(13.5,1.2,'\fontsize{12}{\alpha}=0.3')

text(13.5,1.1,'\fontsize{12}{\omega}=0.7')

holdon;plot(ts,0.95,'bo','MarkerSize',10);holdoff

 

参考资料

word文档整理分享

 

cell_string{1}='\fontsize{12}\uparrow';

 

cell_string{2}='\fontsize{16}\fontname{隶书}镇定时间';

cell_string{3}='\fontsize{6}';

 

cell_string{4}=['\fontsize{14}\rmt_{s}='num2str(ts)];

text(ts,0.85,cell_string)

 

xlabel('\fontsize{14}\bft\rightarrow')

 

ylabel('\fontsize{14}\bfy\rightarrow')

 

执行结果:

(图3-3)

 

图3-3

 

五、实验结果及讨论

 

1,通过这次实验,我学会了MATLAB图形绘制的基本方法,掌握了MATLAB

 

图形绘制程序编辑的基本指令,而且还懂得了利用MATLAB图形编辑窗口编辑和

 

修改图形界面,并添加图形的各种标注。

 

2,感觉到了MATLAB的强大,而且很实用。

 

参考资料

word文档整理分享

 

实验四采用SIMULINK的系统仿真

 

一、实验时间及地点:

 

参考资料

word文档整理分享

 

实验时间:

2015.10.21上午8:

30—9:

30

 

实验地点:

黄岛老校区计算中心

 

二、实验目的:

1、熟悉SIMULINK工作环境及特点

2、掌握线性系统仿真常用基本模块的用法

3、掌握SIMULINK的建模与仿真方法

4、子系统的创建和封装设计

 

1、实验内容:

练习A

1、SIMULINK仿真实际应用,建立双环调速的电流环系统的方框图模型,

模型参数设为

Ks=44;

Ts=0.00167;Ta=0.017;R=1;Tm=0.075;Ce=0.1925;Kt=0.01178;T1=0.049;T2=0.088,

(1)

在Simulink集成环境下建立模型,在给定信号作用点处输入单位给定阶跃响应信号,

0.3

秒后在扰动信号点输入单位阶跃响应信号。

并绘制相应的响应曲线

(2)

计算仿真结果的超调量、上升时间、调节时间、稳态误差。

(3)

设计PID调节器替代图中的比例积分调节器,调节KP,Ti,Td用使系统满足超调量

15%,

上升时间0.3s,调节时间0.4s的要求。

(4)要求对加入的PID控制器封装成一个模块使用封装步骤1创建子系统

封装步骤2封装子系统封装步骤3设置参数

封装步骤4修改和设计模块图标

 

四、实验操作过程(实验说明)

 

1.画出双环调速的电流环系统的方框图模型,并在Simulink集成环境下建立模型:

(图

 

4-1)

 

参考资料

word文档整理分享

 

图4-1

 

2.绘制相应的响应曲线:

(图4-2)

 

图4-2

 

参考资料

word文档整理分享

 

五、实验结果及讨论

1、SIMULINK的基本操作:

1)启动SIMULINK软件包:

可以在MATLAB命令窗口键入“SIMULINK”命令,回车后将弹出SIMULINK图形库浏览器(SIMULINKLIBRARYBREWSER)界面,也可以选择

“SIMULINK>LIBRARYBREWSER”同样可以打开该界面;

2)SIMULINK用户接口:

SIMULINK仿真模型编译器界面有菜单栏、工具栏、状态栏等,

通过这些接口可以调整仿真运行时间,仿真模式等,可以查看仿真运行进度等信息。

3)构建SIMULINK框图:

用鼠标将模块库中的所需的模块拖至系统模型中,然后添加

连线将各个模块连接起来,模型中可以包含WORKSPACE中已定义的变量;

4)运行:

点击仿真模型编译器界面中的运行按钮,系统会在输入信号的作用下输出,

通过SCOPE模块可以查看输出响应曲线,通过TOWORKSPACE模块可以将输出及时

间信号送至工作区。

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

当前位置:首页 > 法律文书 > 调解书

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

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