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

上传人:b****3 文档编号:10949263 上传时间:2023-05-28 格式:DOCX 页数:41 大小:1.36MB
下载 相关 举报
《MATLAB与控制系统仿真》实验报告.docx_第1页
第1页 / 共41页
《MATLAB与控制系统仿真》实验报告.docx_第2页
第2页 / 共41页
《MATLAB与控制系统仿真》实验报告.docx_第3页
第3页 / 共41页
《MATLAB与控制系统仿真》实验报告.docx_第4页
第4页 / 共41页
《MATLAB与控制系统仿真》实验报告.docx_第5页
第5页 / 共41页
《MATLAB与控制系统仿真》实验报告.docx_第6页
第6页 / 共41页
《MATLAB与控制系统仿真》实验报告.docx_第7页
第7页 / 共41页
《MATLAB与控制系统仿真》实验报告.docx_第8页
第8页 / 共41页
《MATLAB与控制系统仿真》实验报告.docx_第9页
第9页 / 共41页
《MATLAB与控制系统仿真》实验报告.docx_第10页
第10页 / 共41页
《MATLAB与控制系统仿真》实验报告.docx_第11页
第11页 / 共41页
《MATLAB与控制系统仿真》实验报告.docx_第12页
第12页 / 共41页
《MATLAB与控制系统仿真》实验报告.docx_第13页
第13页 / 共41页
《MATLAB与控制系统仿真》实验报告.docx_第14页
第14页 / 共41页
《MATLAB与控制系统仿真》实验报告.docx_第15页
第15页 / 共41页
《MATLAB与控制系统仿真》实验报告.docx_第16页
第16页 / 共41页
《MATLAB与控制系统仿真》实验报告.docx_第17页
第17页 / 共41页
《MATLAB与控制系统仿真》实验报告.docx_第18页
第18页 / 共41页
《MATLAB与控制系统仿真》实验报告.docx_第19页
第19页 / 共41页
《MATLAB与控制系统仿真》实验报告.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

《MATLAB与控制系统仿真》实验报告

 

《MATLAB与控制系统仿真》

实验报告

班级:

学号:

 

时间:

2013年6月

 

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

(一)

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

(二)

实验三MATLAB语言的程序设计

实验四MATLAB的图形绘制

实验五基于SIMULINK的系统仿真

实验六控制系统的频域与时域分析

实验七控制系统PID校正器设计法

实验八线性方程组求解及函数求极值

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

(一)

一、实验目的

1.熟悉MATLAB开发环境

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

二、实验基本原理

1.熟悉MATLAB环境:

MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器、文件和搜索路径浏览器。

2.掌握MATLAB常用命令

表1MATLAB常用命令

clc

清除命令窗口中容

clear

清除工作空间中变量

help

对所选函数的功能、调用格式及相关函数给出说明

lookfor

查找具有某种功能的函数但却不知道该函数的准确名称

3.MATLAB变量与运算符

3.1变量命名规则

3.2MATLAB的各种常用运算符

表2MATLAB算术运算符

操作符

功能说明

操作符

功能说明

+

\

矩阵左除

-

.\

数组左除

*

矩阵乘

/

矩阵右除

.*

数组乘

./

数组右除

^

矩阵乘方

'

矩阵转置

.^

数组乘方

.'

数组转置

表3MATLAB关系运算符

操作符

功能说明

==

等于

~=

不等于

>

大于

<

小于

>=

大于等于

<=

小于等于

表4MATLAB逻辑运算符

逻辑运算符

逻辑运算

说明

&

And

逻辑与

|

Or

逻辑或

~

Not

逻辑非

Xor

逻辑异或

表5MATLAB特殊运算

符号

功能说明示例

符号

功能说明示例

1:

1:

4;1:

2:

11

.

分隔行

..

分隔列

()

%

注释

[]

构成向量、矩阵

调用操作系统命令

{}

构成单元数组

=

用于赋值

4.MATLAB的一维、二维数组的寻访

表6子数组访问与赋值常用的相关指令格式

三、主要仪器设备及耗材 

计算机

四.实验程序及结果

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

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

3、学习使用help命令。

4、窗口命令

●close

●closeall

●clc

●holdon

●holdoff

5、工作空间管理命令

●who

●whos

●clear

6、随机生成一个2×6的矩阵,观察commandwindow、commandhistory和workspace等窗口的变化结果,实现矩阵左旋90°或右旋90°的功能。

7.求高阶方程的的根,求高阶多项式的值。

8、创建一个二维数组A(4×8)。

查询数组A第2行、第3列的元素;查询数组A第2行的所有元素;查询数组A第6列的所有元素;查询数组A按列拉长形成新的数组B;查询数组A按行拉长形成新的数组C。

五、实验总结

通过第一次做实验,熟悉了一些的基本功能。

掌握矩阵、变量、表达式的各种基本运算,让自己感觉到了MATLAB功能的强大.

 

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

(二)

一、实验目的

1.熟悉MATLAB开发环境

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

二、实验基本原理

1.MATLAB的基本运算

表1两种运算指令形式和实质涵的异同表

2.MATLAB的常用函数

三、主要仪器设备及耗材 

计算机

四、实验程序及结果

1、设有3个二维数组A(2×4),B(2×4),C(2×2),参照表1写出所有由2个数组参与的合法的数组运算和矩阵指令及结果。

 

2、学习使用表2列出的常用函数。

3、学习使用表3列出的数组操作函数。

>>A=[1,2;3,4];

>>reshape(A,1,4)

ans=

1324

>>rot90(A)

ans=

24

13

>>det(A)

ans=-2

>>rank(A)

ans=2

>>A=[1,2,3,4;5,6,7,8;9,10,11,12];

>>diag(A)

ans=

1

6

11

>>fliplr(A)

ans=

4321

8765

1211109

>>flipud(A)

ans=

9101112

5678

1234

4、生成下列矩阵,并取出方框的数组元素

>>A=[1,2,3,4,5;10,9,8,7,6;11,12,13,14,15;16,17,18,19,20]

A=

12345

109876

1112131415

1617181920

>>A(2,2:

3)

ans=

98

>>A(2:

4,4)

ans=

7

14

19

>>A(4:

5,1:

3)

ans=

161718

212223

 

实验三MATLAB语言的程序设计

一、实验目的

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

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

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

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

二、实验基本原理

1、程序流程控制语句

for循环结构

语法:

fori=初值:

增量:

终值

语句1

……

语句n

end

说明:

1.i=初值:

终值,则增量为1。

2.初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。

while循环结构

语法:

while逻辑表达式

循环体语句

end

说明:

1、whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。

若表达式的值为真,执行循环体语句一次、在反复执行时,每次都要进行判断。

若表达式的值为假,则程序执行end之后的语句。

2、为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位置加break语句、以便程序能正常执行。

(执行循环体的次数不确定;每一次执行循环体后,一定会改变while后面所跟关系式的值。

3、while循环也可以嵌套、其结构如下:

while逻辑表达式1

循环体语句1

while逻辑表达式2

循环体语句2

end

循环体语句3

end

if-else-end分支结构

if表达式1

语句1

elseif表达式2(可选)

语句2

else(可选)

语句3

end

end

说明:

1.if结构是一个条件分支语句,若满足表达式的条件,则往下执行;若不满足,则跳出if结构。

2.elseif表达式2与else为可选项,这两条语句可依据具体情况取舍。

3.注意:

每一个if都对应一个end,即有几个if,记就应有几个end。

switch-case结构

语法:

switch表达式

case常量表达式1

语句组1

case常量表达式2

语句组2

……

otherwise

语句组n

end

说明:

1.switch后面的表达式可以是任何类型,如数字、字符串等。

2.当表达式的值与case后面常量表达式的值相等时,就执行这个case后面的语句组如果所有的常量表达式的值都与这个表达式的值不相等时,则执行otherwise后的执行语句。

程序流程控制指令

break、return、pause

2、函数文件的结构和编写方法

函数只能在函数体对变量进行操作,也就是只能访问函数本身工作空间中的变量。

M函数文件的结构

(1)函数定义行(function)

(2)H1行(函数帮助文本的第一行)

(3)函数帮助文本

(4)函数体

(5)注释

函数文件编写后,保存时,其文件名必须与函数名相同。

注意:

函数名不要与MATLAB自身的函数命令相同。

三、主要仪器设备及耗材 

计算机

四、实验程序及结果

练习A

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

2、用for循环语句实现求1~100的和3、用for循环语句实现编写一个求阶乘n!

的函数文件

4、判断y向量的元素属于3n3n+1或3n+2,设y=[3,5,7,9,11,16]。

(使用函数rem求余数)。

 

 

7、已知数组A=[2,4,6,8,10],B=[4,9,6,7,4],求

其中n=5。

5、实验总结

在前两次实验的基础上,掌握了基本的操作,这次实验进一步加深了对软件功能的探索,让自己熟悉MATLAB程序编辑与设计环境.

 

实验四MATLAB的图形绘制

一、实验目的

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

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

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

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

二、实验基本原理

1、基本的绘图命令plot(x,y,)

2、建立图形窗口命令figure

(1);figure

(2);…;figure(n)打开不同的图形窗口,以便绘制不同的图形。

3、gridon:

在所画出的图形坐标中加入栅格

gridoff:

除去图形坐标中的栅格。

4、holdon:

把当前图形保持在屏幕上不变,同时允许在这个坐标绘制另外一个图形。

holdoff:

使新图覆盖旧的图形。

5、axis设定轴的围

axis([xminxmaxyminymax])设定x轴与y轴的最大、最小坐标。

axis(‘equal’):

将x坐标轴和y坐标轴的单位刻度大小调整为一样。

6、文字标示

●text(x,y,’字符串’)

在图形的指定坐标位置(x,y)处,标示单引号括起来的字符串。

●gtext(‘字符串’)

利用鼠标在图形的任意位置标示字符串。

●title(‘字符串’)

在所画图形的最上端显示说明该图形标题的字符串。

●xlabel(‘字符串’),ylabel(‘字符串’)

设置x,y坐标轴的名称。

●输入特殊的文字需要用反斜杠(\)开头

7、subplot(m,n,k):

分割图形显示窗口,在同一个窗口中显示多个图形。

●m:

上下分割个数

●n:

左右分割个数

●k:

子图编号

8、semilogx:

绘制以x轴为对数坐标(以10为底),y轴为线性坐标的半对数坐标图形。

semilogy:

绘制以y轴为对数坐标(以10为底),x轴为线性坐标的半对数坐标图形。

3、主要仪器设备及耗材 

计算机

四、实验程序及结果

1、绘制下列曲线,要求尽可能多地使用二中所列命令。

④y=sin(t)sin(9t)

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';

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')

 

五实验总结

这次实验掌握了MATLAB图形绘制的基本方法,熟悉和了解MATLAB图形绘制程序编辑的基本指令,利用MATLAB图形编辑窗口编辑和修改图形界面.

 

实验五基于SIMULINK的系统仿真

一、实验目的

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

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

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

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

二、实验基本原理

1、了解SIMULINK模块库中各子模块基本功能

2、SIMULINK的建模与仿真方法

(1)打开模块库,找出相应的模块。

鼠标左键点击相应模块,拖拽到模型窗口中即可。

(2)创建子系统:

当模型大而复杂时,可创建子系统。

(3)设置仿真控制参数。

三、实验程序及结果

1、SIMULINK仿真实际应用

(1)双环调速的电流环系统的方框图模型为:

图中参数设为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控制器封装成一个模块使用。

PID调节器封装模块

应用PID调节器后

2、用Simulink对以下系统进行仿真

其中

为系统输入,y(t)为系统输出,仿真当输入为正弦信号时,输出的信号的波形,仿真

时间0<=0t<=100。

3、在滑艇的运行过程中,滑艇主要受到如下作用力的控制:

滑艇自身的牵引力F,滑艇受到的水

的阻力f。

其中水的阻力

,u为滑艇的运动速度。

由运动学的相关定理可知,整个滑艇

系统的动力学方程为:

其中,m为滑艇的质量。

假设滑艇的质量为1000kg,建立此系统的Simulink模型并进行分析。

由仿真曲线可知,滑艇在牵引力F(值为1000)的作用下,在经过80s左右的时间后,速度由0上升并稳定在33km/h。

四实验总结

这个实验让我熟悉SIMULINK工作环境及特点,熟悉SIMULINK的建模与仿真方法以及子系统的创建和封装设计.

 

实验六控制系统的频域与时域分析

一、实验目的

1、掌握控制系统数学模型的基本描述方法和相互转化

2、了解控制系统的稳定性分析方法

3、掌握控制系统频域与时域分析基本方法

二、实验基本原理

1、系统数学模型的几种表示方法

2、在MATLAB工具箱中,提供了子系统的连接处理函数:

1)series()函数:

系统串联实现。

2)parallel()函数:

系统并联实现。

3)feedback()函数:

系统反馈连接。

3、控制系统根轨迹绘制

1)rlocfind():

计算给定根的根轨迹增益

2)rlocus()函数:

功能为求系统根轨迹。

4、控制系统频域分析基本方法

1)Bode图:

bode()函数

2)Nyquist图:

nyquist()函数

3)稳定裕度计算:

margin()函数

5、线性系统时间响应分析

1)step()函数---求系统阶跃响应

2)impulse()函数:

求取系统的脉冲响应

3)lsim()函数:

求系统的任意输入下的仿真

三、实验程序及结果

1、表示下列传递函数模型,并转化成其他的数学模型

1.

(1)传递函数以及传递函数转化为零极点形式

传递函数转化为状空表达式

(2)传递函数以及传递函数转化为零极点形式

传递函数转化为状空表达式

(3)传递函数以及传递函数转化为零极点形式

传递函数转化为状空表达式

(4)状空表达式以及状空表达式转化为传递函数

状空表达式转化为零极点形式

2、一个单位负反馈开环传递函数为

试绘出系统闭环的根轨迹图;并在跟轨迹图上任选一点,试计算该点的增益K及其所有极点的位置。

3、求下面系统在阶跃信号为0.11(t)时系统的响应。

并求系统性能指标:

稳态值、上升时间、调节时间、超调量。

稳态值0.11、上升时间4.52、调节时间10、超调量0.113

四实验总结

通过本次实验掌握控制系统数学模型的基本描述方法和相互转化,了解控制系统的稳定性分析方法,掌握控制系统频域与时域分析基本方法。

 

实验七控制系统PID校正器设计法

一、实验目的

1、熟悉常规PID控制器的设计方法

2、掌握PID参数的调节规律

3、学习编写程序求系统的动态性能指标

二、实验基本原理

1.模拟PID控制器

典型的PID控制结构如图1所示。

比例

积分

微分

对象模型

PID控制器

r(t)

y(t)

u(t)

e(t)

`

图1典型PID控制结构

PID调节器的数学描述为

2数字PID控制器

在计算机PID控制中,连续PID控制算法不能直接使用,需要采用离散化方法,通常使用数字PID控制器。

以一系列采样时刻点kT(T为采样周期)代表连续时间t,以矩形法数值积分近似代替积分,以一阶后向差分近似代替微分,即:

离散PID表达式:

三、实验程序及结果

1、在SIMULINK窗口建立如下模型

2、设计PID控制器,传递函数模型如下

计算得出M=92.7299p=0.0924tp=2.5103tr=1.8008ts=3.4543yss=84.8827

满足条件。

此时PID参数如下表:

参数

Kp

Ti

Td

数值

5

5

2

程序如下:

%systemanalyse

%Mmaxmun

%pover

%tpmaxmun-time

%tstransition-time

%trrise_time

%yssstable

function[M,p,tp,tr,ts,yss]=sys_ana(t,y);

tm=length(t);

yss=y(tm);

[Mtpk]=max(y);

tp=t(tpk);

p=(M-yss)/yss;

while(y(tm)>0.95*yss)&(y(tm)

tm=tm-1;

end

ts=t(tm);

k=1;

whiley(k)<=yss*0.98

k=k+1;

end

tr=t(k);

6、将输入信号设为

,调节PID控制器参数,绘制正弦跟踪曲线。

 

实验八线性方程组求解及函数求极值

一、实验目的

1、理解线性方程组求解方法

2、理解函数求极值方法

3、通过练习以下容熟悉求解线性方程组的方法和函数求极值的方法

二、实验说明

1.自主编写程序,必要时参考相关资料

2.实验前应写出程序大致框架或完整的程序代码

5.实验学时:

2学时

三、实验容及实验程序

1、求下列方程组的解

1)

2、求下列函数在指定区间的最大值

1)

>>f='-(1+x^2)/(1+x^4)',x=fminsearch(f,0),ymax=(1+x^2)/(1+x^4)

f=

-(1+x^2)/(1+x^4)

x=

0.6436

ymax=

1.2071

2)

>>f='-sin(x)-cos(x^2)',x=fminsearch(f,0),ymax=sin(x)+cos(x^2)

f=

-sin(x)-cos(x^2)

x=

0.7310

ymax=

1.5282

心得体会:

通过这几次做实验,基本掌握了的基本matlab的功能,也把matlab强大的功能应用于其他几门课实验数据的处理。

 

《数据结构》实验报告

 

班级:

自动化101班

学号:

6100310017

 

时间:

2013年6月

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

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2