新编实验指导书资料.docx

上传人:b****8 文档编号:9038260 上传时间:2023-02-02 格式:DOCX 页数:37 大小:445.96KB
下载 相关 举报
新编实验指导书资料.docx_第1页
第1页 / 共37页
新编实验指导书资料.docx_第2页
第2页 / 共37页
新编实验指导书资料.docx_第3页
第3页 / 共37页
新编实验指导书资料.docx_第4页
第4页 / 共37页
新编实验指导书资料.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

新编实验指导书资料.docx

《新编实验指导书资料.docx》由会员分享,可在线阅读,更多相关《新编实验指导书资料.docx(37页珍藏版)》请在冰豆网上搜索。

新编实验指导书资料.docx

新编实验指导书资料

 

《控制系统计算机仿真》实验指导

 

目录

前言………………………………………………………………1

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

实验二MATLAB数值计算………………………………………5

实验三MATLAB的图形绘制…………………………………8

实验四MATLAB语言的程序设计……………………………12

实验五数据处理方法…………………………………………14

实验六线性系统的数学模型…………………………………17

实验七基于SIMULINK的系统仿真……………………………20

实验八双闭环调速系统的Simulink动态仿真………………22

实验九控制系统工具箱的使用…………………………………23

前言

 

《控制系统计算机仿真》课是工业自动化专业的专业选修课。

本课程的任务就是使学生了解控制系统计算机仿真的基本概念和方法,掌握MATLAB仿真工具在控制系统仿真与辅助设计中的应用,其目的在于培养学生对控制系统的分析与设计能力,加深对已学过的各科专业知识的消化与理解。

该课程的知识在控制系统的辅助设计及控制理论的研究中起着相当重要的作用。

通过本课程的实验教学,学生应熟练掌握MATLAB语言的使用与程序设计、MATLAB基本绘图功能、MATLAB中数学模型的建立及转换、控制系统的时域、频域及根轨迹分析、系统框图输入与SIMULINK仿真工具的应用等基本仿真方法,对所学过的理论知识有更深入的理解和认识,并能利用它对控制系统进行分析、设计与综合,具有应用计算机解决专业理论问题的能力。

本实验指导书按照教学大纲要求并结合所学内容编写了六个基本实验,其中的每一个实验学生都可以自己扩展,按照实验目的和要求自己设计,多做一些练习题。

在每次做实验前,要求学生在此基础上写出实验准备报告,鼓励出新,丰富实验内容。

由于本书编写仓促,在使用的过程中如发现问题请及时批评指正。

 

编者

 

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

一、实验目的及要求:

1.熟悉MATLAB6.5的开发环境;

2.掌握MATLAB6.5的一些常用命令;

3.掌握矩阵、变量、表达式的输入方法及各种基本运算;

4.熟练掌握特殊运算符及MATLAB函数的用法。

二、实验内容:

1.熟悉MATLAB6.5的各个窗口

MATLAB桌面包括:

命令窗口、命令历史窗口、启动平台窗口、工作空间窗口和当前路径窗口。

1)

命令窗口(CommandWindow):

提供交互式操作功能,输入命令,运行程序。

其中注意“”键的使用。

2)交互界面分类目录窗(LaunchPad):

窗口中包括了系统中已安装的全部MATLAB程序和帮助文件的管理和启动功能,它采用了树型菜单的形式,用户可以直接从启动平台进入所选定项目。

3)工作空间浏览器(WorkspaceBrowser):

变量管理中心,显示出所有变量的信息。

在某一变量上单击鼠标右键,会弹出菜单,可对变量进行处理。

4)历史命令窗口(CommandHistory):

显示已执行过的命令。

在某一命令行上单击鼠标右键,会弹出菜单,可对所选命令进行操作。

5)当前目录窗口(CurrentDirectory):

提供当前路径文件的操作。

在窗口的某一文件上单击鼠标右键,会弹出菜单,对所选文件进行操作。

2.掌握MATLAB常用命令

>>who%列出工作空间中变量

Yourvariablesare:

aansbc

>>whos%列出工作空间中变量,同时包括变量详细信息

NameSizeBytesClass

a1x18doublearray

ans1x18doublearray

b1x18doublearray

c1x324doublearray

Grandtotalis6elementsusing48bytes

>>savetest%将工作空间中变量存储到test.mat文件中

>>loadtest%从test.mat文件中读取变量到工作空间中

>>clc%清除命令窗口中内容

>>clear%清除工作空间中变量

>>help函数名(回车)%对所选函数的功能、调用格式及相关函数给出说明

>>which显示指定的外部函数(M文件)所在的目录

如:

whichabc

则系统会显示文件abc所在的目录

>>what列出指定目录下的M文件、MAT文件、MEX文件和Class

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

如:

lookforLyapunov可列出与Lyapunov有关的所有函数。

3.MATLAB的矩阵、变量、表达式及其基本运算

1)注意创建矩阵的原则、方法;

2)注意变量命名规则、表达式写法;

3)MATLAB中的基本运算。

例:

a=[103;0–16;1–21],b=[-100;2–31;050.3]

矩阵运算:

a+ba-ba*ba.*ba/ba^2a.^2

关系运算:

a>ba<=ba==b

逻辑运算:

a&ba|b~bxor(a,b)

按照以上运算实际执行,观察运行结果,体会各种运算规则

4.特殊运算符

1)“;”——不显示运算结果

例:

在命令空间中输入a=10;或a=10观察运行结果。

2)“:

”——生成向量

例:

1:

10——生成向量[12345678910]

A=[123;456;789];

运行A(1:

9)A(:

1:

2)A(:

[1,3])A(2,3)A(4,5)A(2,:

观察运行结果。

5.MATLAB的常用函数的使用练习

(1)sincosasinacostanatan等

exploglog10log2pow2sqrt等

absanglerealimag

fixfloorceilremsignround

(2)detinvrankeigexpmtrace

(3)allanyfindisemptyisinf

andornotxor

(4)zerosoneseyerandnrand

rot90fliplrflipuddiagtriltriureshape

各函数的用法不清楚时,请使用help命令。

三、实验报告要求:

1)要求做实验前写出实验准备报告,将要求练习的内容列出具体的上机实例。

可以广泛查阅参考书来写。

2)针对根据实验内容的第五项写出上机的结果,体会其用法。

3)指令窗口中,键入:

demo,出现MATLAB的demo演示窗口,然后选择:

MATLAB下的DesktopEnvironment,选取其中的Desktopoverview等示例进行MATLAB的桌面系统学习。

4)教材16~17页:

3、4、7、8、11题。

 

实验二MATLAB数值计算

一、实验目的及要求:

1、掌握特殊矩阵的实现方法,

2、矩阵的特征值与特征向量的求法,行列式的值的求法,数组的寻访,线性方程和线性方程组的求解。

3、掌握MATLAB语言中对矩阵的一些操作和计算。

二、实验内容:

常见的特殊矩阵有零矩阵、幺矩阵、单位矩阵、三角形矩阵等,这类特殊矩阵在线性代数中具有通用性;还有一类特殊矩阵在专门学科中有用,如有名的希尔伯特(Hilbert)矩阵、范德蒙(Vandermonde)矩阵等。

MATLAB提供的内部函数eig可以用来计算特征值与特征向量,det可用来计算矩阵的行列式的值。

设矩阵A为一方阵(必须是方阵),求矩阵A的行列式值的格式为:

det(A)。

4、矩阵求逆及其线性代数方程组求解

三、实验报告要求

1、已知向量v=[1;2;3]

,试建立以向量v作为主对角线的对角阵A。

2、已知矩阵A=[123;456]

,试从矩阵A分别提取主对角线及主对角线的两侧的对角线构成向量B、C和D。

3、A=[123;456;789;987],分别用triu(A)、triu(A,1)和、triu(A,-1)从矩阵A提取相应的上三角部分构成上三角阵B、C和D。

4、求A的特征值和相应的特征向量

 

A=

5、用inv函数求4题中方阵A的逆阵A-1赋值给B,且验证A与A-1是互逆的。

 

6、求解线性方程组AX=B。

  

其中A=

,B=

7、求方程x^4+7x^3+9x-20=0的全部根。

8、在命令窗口中,键入:

demo,出现MATLAB的demo演示窗口,然后选择:

MATLAB下的Matrices,依次选取其中的BasicMatrixoperation、Matrixmanipulation两个示例,进行MATLAB矩阵运算的学习。

9、教材37~38页:

1*、2*、3、4*、5*、7题。

(*号题为必做题)

 

实验三MATLAB的图形绘制

一、实验目的及要求:

1.了解MATLAB中图形窗口与坐标系;

2.掌握MATLAB绘图的基本方法,熟悉各种绘图函数的使用;

3.掌握图形的修饰方法和标注方法;

4.掌握图形的修改方法。

二、实验内容:

1.了解图形窗口与坐标系的概念

MATLAB图形窗口如下:

窗口的设置:

>>axis([0,2,0,4])

>>axissquare

2.二维图形的绘制

(1)plot函数的多种调用方法:

plot(y)y为向量

plot(t,y)t为向量、y为矩阵

plot(t,y)t、y为矩阵

例:

y=[00.62.358.311.71517.719.420];

plot(y)

(2)多组变量绘图:

plot(x1,y1,选项1,x2,y2,选项2,……)

上面的plot格式中,选项是指为了区分多条画出曲线的颜色、线型及标记点而设定的曲线的属性。

MATLAB在多组变量绘图时,可将曲线以不同的颜色、不同的线型及标记点表示出来。

这些选项如下表所示:

各种颜色属性选项

选项

意义

选项

意义

‘r’

红色

‘m’

粉红

‘g’

绿色

‘c’

青色

‘b’

兰色

‘w’

白色

‘y’

黄色

‘k’

黑色

各种线型属性选项

选项

意义

选项

意义

‘-’

实线

‘--’

虚线

‘:

点线

‘-.’

点划线

各种标记点属性选项

选项

意义

选项

意义

‘.’

用点号绘制各数据点

‘^’

用上三角绘制各数据点

‘+’

用‘+’号绘制各数据点

‘v’

用下三角绘制各数据点

‘*’

用‘*’号绘制各数据点

‘>’

用右三角绘制各数据点

‘。

用‘。

’号绘制各数据点

‘<’

用左三角绘制各数据点

‘s’或squar

用正方形绘制各数据点

‘p’

用五角星绘制各数据点

‘d’或diamond

用菱形绘制各数据点

‘h’

用六角星绘制各数据点

注意掌握各选项的作用与用法以及holdon与holdoff的用法。

(3)对数坐标图形绘制

semilogx()semilogy()loglog()

(4)极坐标图形绘制

polar(theta,rho,‘属性选项’)

(5)子图绘制

掌握subplot()的用法。

subplot(n,m,k)或subplot(nmk)------n,m分别表示将窗口分割的行数和列数。

3.图形修饰与标注

 

图形标记:

title('加图形标题');

xlabel('加X轴标记');

ylabel('加Y轴标记');

text(3.5,0.8,'添加文本');

设定坐标轴:

axis([xminxmaxyminymax])设定最大和最小值

axis('auto');

将坐标系统返回到自动缺省状态

axis('square');

将当前图形设置为方形

axis('equal');

两个坐标因子设成相等

axis('off');

关闭坐标系统

axis('on');

显示坐标系统

subplot函数

特殊坐标图形:

双对数坐标、单对数坐标、极坐标图。

4.三维图形的绘制

plot3函数;

mesh函数;

surf函数。

三、实验报告要求:

1.设计出上面要求的各种练习的具体例子,写出程序;

2.通过下面习题熟悉各绘图函数应用

(1)用MATLAB语言实现下面的分段函数,并绘出(-3,6)区间上的曲线图形(数据点个数自定,但应保证曲线平滑性)。

要求曲线为蓝色、线型为实线,并且标注X轴、Y轴

(2)用MATLAB语言绘制[-2π,2π]区间内sinθ、cosθ曲线,数据点间隔0.1弧度。

要求分上下两个子图分别绘制sinθ、cosθ,并且sinθ用红色、实线,cosθ用兰色、虚线,对图形标题及横纵坐标轴进行标注。

3.在[02π]范围内绘制二维曲线图y=sin(x)*cos(5x)。

4.在[02π]范围内绘制二维曲线图。

y=|1000sin(4x)|+1

5.在[–6,2]范围内用plot和fplot函数分别绘制二维曲线图。

6.绘制z=sin(x)*cos(y)的三维网格和三维曲面图,x,y变化范围均为[0,2π]。

7、命令窗口中,键入:

demo,出现MATLAB的demo演示窗口,然后选择:

MATLAB下的Graphics,依次选取其中的OverviewofFeatures(playback)、2-DPlots、3-DPlots两个示例,了解MATLAB有关绘图的操作。

8、教材第3章(64-65页):

1、2*、3*题。

教材第一题的部分程序如下:

方法一:

t=0:

0.2:

18;

xi=[0.2:

0.2:

0.8]';

beta=sqrt(1-xi.^2);

sita=atan(beta./xi);

y=1-exp(-xi*t).*sin(beta*t+sita*t)./(beta*t);

plot(t,y(1,:

),'r'),holdon

plot(t,y(2,:

),'b'),holdon

plot(t,y(3,:

),'g'),holdon

plot(t,y(4,:

),'k')

方法二:

forxi=0.2:

0.2:

0.8

beta=sqrt(1-xi^2);

sita=atan(beta/xi);

fort=0:

0.2:

18

y=1-exp(-xi*t)*sin(beta*t+sita)/beta;

plot(t,y,'r')

holdon

end

end

 

实验四MATLAB语言的程序设计

一、实验目的及要求:

1.掌握一些矩阵运算的基本函数应用方法

2.熟悉MATLAB程序编辑与设计环境

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

4.会编写程序M文件和函数M文件

5.初步掌握程序的调式方法

二、实验内容:

1.掌握以下矩阵操作函数

实际给定一些数据后,使用各种函数计算,观察运算结果:

det(方阵的行列式)

inv(矩阵的逆)

norm(矩阵或矢量的范数)

rank(矩阵的秩)

trace(矩阵的迹)

eig(矩阵的特征值和特征矢量)

expm(矩阵指数)

logm(矩阵对数)

zeros(n)生成nxn的零阵

zeros(n,m)生成n行m列的零阵

ones(n,m)生成n行m列的全1阵

eye(n)生成nxn的单位阵

randn(n,m)生成元素为正态分布随机阵

x=[]生成空矩阵

2.熟悉MATLAB程序编辑与设计环境

M文件编辑器界面如下:

要求:

1)简单程序的编写与运行。

(自己找实例:

程序M文件与函数M文件)

2)熟练掌握各种程序控制语句。

循环语句:

for循环,while循环

条件语句:

ifelseelseif

分支语句:

switch

continue和break语句

3)通过实际程序编制及执行,深入理解程序M文件与函数M文件的区别。

3.初步掌握程序的调式方法

1)直接调试法

利用echo命令;在程序的适当位置添加keyboard命令;设置或去掉断点等。

keyboard命令:

在程序中加入keyboard命令,可暂停程序运行,将控制权交给键盘,此时可显示程序中变量的值或对其进行修改,完成后键入return命令返回。

2)调试器的使用

Debug菜单说明:

(有相应的快捷键)

Step单步运行

Stepin单步运行,遇到函数时进入函数,仍单步运行

Stepout如果是在函数中,跳出函数;如果不在函数中,直接运行到下一个断点处

SaveandRun存储文件并开始运行,如文件是已存储过的,则该菜单变为Run,当程序暂停在断点处时,该菜单项变为Continue

GoUntilCursor直接运行到光标所在位置

ExitDebugMode退出调试方式

以一个自己编写的程序为例,按上面方法调试。

三、实验报告要求

1.求1~100的和。

2.求n的阶乘。

3.输入20个数,求其中最大数和最小数。

要求用循环结构输入数据,然后调用MATLAB的max函数、min函数来实现。

(strcat是实现字符串串联的命令)

4.Fibonacci数列(1.1.2.3.5.8.13…),就是数列中从第三项开始,任意一个数都是它前两数之和的数列。

要求:

编制程序,使得运行程序后,输入大于2的数n就可以输出Fibonacci数列的前n项。

 

实验五数据处理方法

一、实验目的及要求:

1、掌握基本统计处理方法,如对数据进行批处理,找寻最值等。

2、多项式运算与求根方法。

3、数组的排序及翻转。

 

二、实验内容:

使用查取最大值命令,查取最小值命令,求中值命令,求和命令,求平均值命令,求积命令。

多项式求根命令,命令格式:

x=roots(A);

建立多项式命令,命令格式:

A=poly(x);

求多项式的值,命令格式:

Y=polyval(A,x)

多项式的四则运算,加、减、乘、除。

实验题目:

1.已知某班的5名学生的三门课成绩列表如下:

学生序号12345

高等数学7889647368

外语8377807870

MATLAB语言8291788268

试写出有关命令,先分别找出三门课的最高分及其学生序号;然后找出三门课总分的最高分及其学生序号。

2.针对上小题的成绩表,求出其三门课总分存入数组ZF,再利用SORT命令对之按降序排序,同时把相应的学生序号存入数组XH。

3.今有多项式P1(x)=x^4-2x+1,P2(x)=x^2+4x-0.5,要求先求得P(x)=P1(x)+P2(x),然后计算xi=0.2*i各点上的P(xi)(i=0,1,2,…,5)值。

4.试编一个m程序,将一维数组x中的N个数按颠倒的次序重新存储。

如N=5,原来x为:

x=[13579]

而经过颠倒处理后x中数据的次序应该为:

x=[97531]

三、实验报告要求:

上述实验题目1、2、3、4。

 

参考程序:

1.

x1=[7889647368];

x2=[8377807870];

x3=[8291788268];

x4=[7889647368;8377807870;8291788268];

x5=sum(x4,1);

[y1,l1]=max(x1)

[y2,l2]=max(x2)

[y3,l3]=max(x3)

[y4,l4]=max(x5)

2.

x=[7889647368;8377807870;8291788268];

ZF=sum(x,1)

[ZF,XH]=dsort(ZF)

3.

p1=[100-21];

p2=[0014-0.5];

p=p1+p2

i=(0:

1:

5);

x=0.2*i;

y=polyval(p,x)

end

4.

x=[13579];

y=fliplr(x)

 

实验六线性系统的数学模型

一、实验目的及要求:

1.掌握控制系统数学模型的基本描述方法;

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

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

二、实验内容:

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

(1)传递函数模型

>>num=4*conv([1,2],conv([1,6,6],[1,6,6]));

>>den=conv([1,0],conv([1,1],conv([1,1],conv([1,1],[1,3,2,5]))));

表示下列传递函数模型

(2)零极点模型

G(s)=

将零点、极点及K值输入即可建立零极点模型。

z=[-z

-z

…,-z

]

p=[-p

-p

…,-p

]

k=k

多项式求根的函数:

roots()

调用格式:

z=roots(a)

其中:

z—各个根所构成的向量a—多项式系数向量

两种模型之间的转换函数:

[z,p,k]=tf2zp(num,den);(或[z,p,k]=tf2zpk(num,den))

[num,den]=zp2tf(z,p,k)

(3)状态方程模型

A=[01;-1–2];B=[0;1];C=[01];D=0;

s=ss(A,B,C,D);

系统状态方程转换为系统零极点模型及传递函数模型的函数。

[num,den]=ss2tf(A,B,C,D,iu)

%iu—表示输入的序号(对多输入系统)

[z,p,k]=ss2zp(A,B,C,D,iu)

%[z,p,k]—表示对第iu个输入信号的传递函数的零极点。

[A,B,C,D]=tf2ss(num,den)

[A,B,C,D]=zp2ss(z,p,k)

(4)feedback()函数:

系统反馈连接

调用格式:

sys=feedback(s1,s2,sign)

2.控制系统的稳定性分析方法

(1)求闭环特征方程的根;

(2)化为零极点模型,看极点是否在s右半平面;

(3)对状态空间形式(闭环),求A阵的特征值eig(A);

判断如下系统的稳定性:

 

 

可编程如下:

numg=1;deng=[11223];

numf=1;denf=1;

[num,den]=feedback(numg,deng,numf,denf,-1);

roots(den)

3.控制系统根轨迹绘制

rlocus()函数:

功能为求系统根轨迹

rlocfind():

计算给定根的根轨迹增益

sgrid()函数:

绘制连续时间系统根轨迹和零极点图中的阻尼系数和自然频率栅格线

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

(1)B

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

当前位置:首页 > 初中教育 > 语文

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

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