Matlab计算机仿真实验指导书.docx

上传人:b****2 文档编号:3092059 上传时间:2023-05-05 格式:DOCX 页数:30 大小:430.77KB
下载 相关 举报
Matlab计算机仿真实验指导书.docx_第1页
第1页 / 共30页
Matlab计算机仿真实验指导书.docx_第2页
第2页 / 共30页
Matlab计算机仿真实验指导书.docx_第3页
第3页 / 共30页
Matlab计算机仿真实验指导书.docx_第4页
第4页 / 共30页
Matlab计算机仿真实验指导书.docx_第5页
第5页 / 共30页
Matlab计算机仿真实验指导书.docx_第6页
第6页 / 共30页
Matlab计算机仿真实验指导书.docx_第7页
第7页 / 共30页
Matlab计算机仿真实验指导书.docx_第8页
第8页 / 共30页
Matlab计算机仿真实验指导书.docx_第9页
第9页 / 共30页
Matlab计算机仿真实验指导书.docx_第10页
第10页 / 共30页
Matlab计算机仿真实验指导书.docx_第11页
第11页 / 共30页
Matlab计算机仿真实验指导书.docx_第12页
第12页 / 共30页
Matlab计算机仿真实验指导书.docx_第13页
第13页 / 共30页
Matlab计算机仿真实验指导书.docx_第14页
第14页 / 共30页
Matlab计算机仿真实验指导书.docx_第15页
第15页 / 共30页
Matlab计算机仿真实验指导书.docx_第16页
第16页 / 共30页
Matlab计算机仿真实验指导书.docx_第17页
第17页 / 共30页
Matlab计算机仿真实验指导书.docx_第18页
第18页 / 共30页
Matlab计算机仿真实验指导书.docx_第19页
第19页 / 共30页
Matlab计算机仿真实验指导书.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Matlab计算机仿真实验指导书.docx

《Matlab计算机仿真实验指导书.docx》由会员分享,可在线阅读,更多相关《Matlab计算机仿真实验指导书.docx(30页珍藏版)》请在冰点文库上搜索。

Matlab计算机仿真实验指导书.docx

Matlab计算机仿真实验指导书

 

电信学院自动控制系

李小华魏东

2005年1月

目录

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

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

实验二MATLAB语言的程序设计…………………………………5

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

实验四控制系统的频域与时域分析……………………………10

实验五采用SIMULINK的系统仿真……………………………14

实验六控制系统工具箱的使用…………………………………18

前言

 

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

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

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

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

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

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

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

 

编者

 

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

一、实验目的及要求:

1.熟悉MATLAB6的开发环境;

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

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

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

二、实验内容:

1.熟悉MATLAB6的各个窗口

MATLAB桌面包括:

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

1)

命令窗口:

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

其中注意“”键的使用。

2)启动平台窗口:

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

3)工作空间窗口:

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

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

4)命令历史窗口:

显示已执行过的命令。

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

5)当前路径窗口:

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

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

2.掌握MATLAB常用命令

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

Yourvariablesare:

aansbc

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

NameSizeBytesClass

a1x18doublearray

ans1x18doublearray

b1x18doublearray

c1x324doublearray

Grandtotalis6elementsusing48bytes

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

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

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

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

>>format%命令窗口数据显示格式命令

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

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

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等

exploglog10log2powsqrt等

absanglerealimag

fixfloorceilremsignround

(2)detinvrankeigexpmtrace

(3)allanyfindisemptyisinf

andornotxor

(4)zerosoneseyerandnrand

rot90fliplrflipuddiagtriltriureshape

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

三、实验报告要求:

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

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

2)针对上面的每一项写出上机的结果,体会其用法。

 

实验二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.设计出上面要求的各种练习的具体例子,给出MATLAB程序;

2.完成下面练习:

通过编程实现以下功能:

(1)求1~100的和;

(2)求n的阶乘;

(3)给出学生百分制成绩要求转换为五级制。

以上程序要求用程序M文件和函数M文件分别实现。

 

实验三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.图形修饰与标注

(1)坐标轴的标题:

title函数

(2)坐标轴的说明:

xlabel和ylabel函数

(3)图形说明文字:

text和gtext函数

(4)给图形加网格:

grid函数

(5)在图形中添加图例框:

legend函数

(6)用鼠标点选屏幕上的点:

ginput函数

4.图形的修改

(1)采用设句柄修改;

set函数;get函数;

gcf:

获得当前图形窗口的句柄;

gca:

获得当前坐标轴对象的句柄;

gco:

获得当前对象的句柄。

如:

A.要对图形窗口的底色进行修改,可用:

set(gcf,‘Color’,[1,1,1])------将图形窗口底色设为白色

B.要把当前X轴的颜色改为绿色,可用:

set(gca,‘Xcolor’,[0,1,0])

(2)在图形窗口上直接修改。

三、实验报告要求:

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

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

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

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

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

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

3.对上面图形进行修改。

 

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

一、实验目的及要求:

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

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

判断状态空间形式描述的系统的稳定性,两个输入。

A=[01–1;-6–116;-6–115];

B=[001];

C=[100];

D=0;

[

]=ss2zp(A,B,C,D,1)

[

]=ss2zp(A,B,C,D,2)

ii=find(real(

)>0),

=length(ii);

ii1=find(real(

)>0),

=length(ii1);

if(

+

>0),disp(‘systemisUnstable’)

else

disp(‘systemisStable’);

end

3.控制系统根轨迹绘制

rlocus()函数:

功能为求系统根轨迹

rlocfind():

计算给定根的根轨迹增益

sgrid()函数:

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

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

(1)Bode图:

bode()函数

(2)Nyquist图:

nyquist()函数

(3)稳定裕度计算:

margin()函数

综合应用:

A=[01–1;-6–116;-6–115];

B=[001];

C=[100];

D=0;

=logspace(-1,1);

[m,p]=bode(A,B,C,D,1,

subplot(211),semilogx(

20*log10(m));

subplot(212),semilogx(

p);

[X,Y]=nyquist(A,B,C,D,1,

);

plot(X,Y)

[

]=margin(A,B,C,D)

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

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

impulse()函数:

求取系统的脉冲响应

lsim()函数:

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

三、实验报告要求:

1.自己设计出各种函数使用的具体例子;

2.编出程序并运行,完成下面的练习题:

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

并求系统性能指标:

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

 

实验五采用SIMULINK的系统仿真

一、实验目的及要求:

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

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

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

二、实验内容:

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

………连续系统模块

………离散系统模块

………函数与表模块

…………数学模块

………非线性模块

………信号与系统模块

………输出模块

………输入源模块

………子系统模块

微分

积分

积分步长延时

状态空间模型

传递函数模型

传输延迟

可变传输延迟

零极点模型

 

直接查询表

函数功能块 

MATLAB函数

S函数(系统函数)

 

绝对值

点乘

增益

逻辑运算

符号函数

相加点

 

死区特性

手动开关

继电器特性

饱和特性

开关模块

 

信号分离模块

信号复合模块

输出端口

示波器模块

输出仿真数据到文件

输出仿真数据到工作空间

 

通过实验熟悉以上模块的使用。

2.SIMULINK的建模与仿真方法

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

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

(2)创建子系统:

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

(3)模块的封装:

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

3.SIMULINK仿真实际应用

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

建立该模型并在单位阶跃信号作用下进行仿真,计算仿真结果的超调量、上升时间、调节时间、稳态误差。

(2)PID控制器的仿真实现

控制对象的开环传递函数如下图;

加入PID控制器,求系统单位负反馈闭环单位阶跃响应,要求通过调节器的作用使系统满足超调量20%,上升时间3s,调节时间10s的要求。

使输出曲线如下图。

要求加入的PID控制器封装成一个模块使用。

 

三、实验报告要求:

1.实验前写出实验准备报告,自己设计练习的内容,列出具体的上机实例。

2.针对具体实例写出上机的结果,体会其使用方法。

实验六控制系统工具箱的使用

一、实验目的及要求:

1.了解控制系统工具箱的基本概况

2.掌握控制系统工具箱的基本用法

二、实验内容:

1.了解MATLAB工具箱的基本功能概况

每个工具箱中有一个Contents文件,在文件中将该工具箱里的所有函数其作用功能一一列出,可以在使用前先看此文件,找到要用的函数后,在命令空间里键入help文件名,即可查到相应函数的调用格式。

例如控制系统工具箱中包括以下几类函数:

*连续系统和离散系统设计;

*状态空间和传递函数;

*模型转换;

*频域响应:

Bode图、Nyquist图、Nichols图;

*时域响应:

脉冲响应、阶跃响应、斜坡响应等;

*根轨迹、极点配置、LQG控制。

打开\matlab6p1\toolbox\control\control\contents.m

2.了解控制系统工具箱的基本用法

在命令窗口中运行ltidemo

分别执行模型建立、离散时间模型、访问模型数据、模型连接、模型类型转换、连续/离散转换等演示。

熟悉工具箱中函数用法。

3.了解LTIViewer基本用法

MATLAB提供了一个图形化的模型分析工具LTIViewer,通过它可以方便的进行系统各种LTI分析及仿真。

在命令窗口中输入ltiviewer运行该程序。

从菜单中选取File——Import,从工作空间中导入一个LTI对象进行分析。

可以先运行loadltiexamples调入系统提供的一些LTI对象。

4.补偿设计器sisotool的使用

在命令空间中输入sisotool既可进入SISO补偿设计窗口,也可直接指定设计对象,调用形式为sisotool(sys)。

 

三、实验报告要求:

1.实验前写出实验准备报告,设计出具体的应用实例;

2.运行实例,写出上机的结果,并体会其用法。

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

当前位置:首页 > 工程科技 > 能源化工

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

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