最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

实验一 指导书 MATLAB 在控制系统模型建立与仿真中的应用

来源:动视网 责编:小OO 时间:2025-10-01 12:50:47
文档

实验一 指导书 MATLAB 在控制系统模型建立与仿真中的应用

实验一MATLAB在控制系统模型建立与仿真中的应用一、MATLAB基本操作与使用1.实验目的1)熟悉MATLAB工作环境平台及其各个窗口,掌握MATLAB语言的基本规定,MATLAB图形绘制功能、M文件程序设计。2)学习使用MATLAB控制系统工具箱中线性控制系统传递函数模型的相关函数。2.实验仪器PC计算机一台,MATLAB软件1套3.实验内容1)MATLAB工作环境平台图1在英文Windows平台上的MATLAB6.5MATLAB工作平台①命令窗口(CommandWindow)命令窗口是对
推荐度:
导读实验一MATLAB在控制系统模型建立与仿真中的应用一、MATLAB基本操作与使用1.实验目的1)熟悉MATLAB工作环境平台及其各个窗口,掌握MATLAB语言的基本规定,MATLAB图形绘制功能、M文件程序设计。2)学习使用MATLAB控制系统工具箱中线性控制系统传递函数模型的相关函数。2.实验仪器PC计算机一台,MATLAB软件1套3.实验内容1)MATLAB工作环境平台图1在英文Windows平台上的MATLAB6.5MATLAB工作平台①命令窗口(CommandWindow)命令窗口是对
实验一 MATLAB 在控制系统模型建立与仿真中的应用

一、 MATLAB 基本操作与使用

1. 实验目的

1)  熟悉 MATLAB工作环境平台及其各个窗口,掌握MATLAB 语言的基本规定,MATLAB图形绘制功能、M 文件程序设计。

2)  学习使用MATLAB控制系统工具箱中线性控制系统传递函数模型的相关函数。

2. 实验仪器

PC计算机一台,MATLAB软件1套

3. 实验内容

1)  MATLAB工作环境平台

图1 在英文Windows 平台上的MATLAB6.5 MATLAB工作平台

① 命令窗口(Command Window)

命令窗口是对 MATLAB 进行操作的主要载体,默认的情况下,启动MATLAB 时就会打开命令窗口,显示形式如图 1 所示。一般来说,MATLAB的所有函数和命令都可以在命令窗口中执行。掌握 MALAB 命令行操作是走入 MATLAB 世界的第一步。命令行操作实现了对程序设计而言简单而又重要的人机交互,通过对命令行操作,避免了编程序的麻烦,体现了 MATLAB 所特有的灵活性。

在运行MATLAB后,当命令窗口为活动窗口时,将出现一个光标,光标的左侧还出现提示符“>>”,表示MATLAB正在等待执行命令。注意:每个命令行键入完后,都必须按回车键!

当需要处理相当繁琐的计算时,可能在一行之内无法写完表达式,可以换行表示,此时需要使用续行符“…”否则 MATLAB 将只计算一行的值,而不理会该行是否已输入完毕。

使用续行符之后 MATLAB 会自动将前一行保留而不加以计算,并与下一行衔接,等待完整输入后再计算整个输入的结果。

在 MATLAB 命令行操作中,有一些键盘按键可以提供特殊而方便的编辑操作。比如:“↑”可用于调出前一个命令行,“↓”可调出后一个命令行,避免了重新输入的麻烦。当然下面即将讲到的历史窗口也具有此功能。

② 历史窗口(Command History)

历史命令窗口是 MATLAB6 新增添的一个用户界面窗口,默认设置下历史命令窗口会保留自安装时起所有命令的历史记录,并标明使用时间,以方便使用者的查询。而且双击某一行命令,即在命令窗口中执行该命令。

③ 当前目录窗口(Current Directory)

在当前目录窗口中可显示或改变当前目录,还可以显示当前目录下的文件,包括文件名、文件类型、最后修改时间以及该文件的说明信息等并提供搜索功能。

④ 工作空间管理窗口(Workspace)

工作空间管理窗口是 MATLAB 的重要组成部分。在工作空间管理窗口中将显示所有目前保存在内存中的 MATLAB 变量的变量名、数据结构、字节数以及类型,而不同的变量类型分别对应不同的变量名图标。

2)  MATLAB 的基本规定

(1) 数值的表示

MATLAB 的数值采用十进制,可以带小数点或负号。以下表示都合法。0, -100, 0.008, 12.752,1.8e-6 ,8.2e52

(2) 变量命名规定

① 变量名、函数名:字母大小写表示不同的变量名。如A 和a 表示不同的变量名;sin 是MATLAB 定义的正弦函数,而Sin,SIN 等都不是。

② 变量名的第一个字母必须是英文字母,不能是数字,最多可包含31 个字符(英文、数字和下连字符)。如A21 是合法的变量名,而3A21 是不合法的变量名。

③ 变量名中不得包含空格、标点,但可以有下连字符。如变量名A _b21 是合法变量名,而A,21 是不合法的。

(3) 基本运算符 

表1  MATLAB 表达式的基本运算符

数学表达式MATLAB 运算符

MATLAB 表达式

a + b+a + b
a-b

a-b

a×b

*a*b
a÷b

/或\

a/b或a\\b

ab

^a^b
点乘两矩阵元素相乘.*a.*b
(4) MATLAB 默认的预定义变量

在MATLAB 中有一些预定义变量(predefined variable)。每当MATLAB 启动,这些变量就被产生。用户在定义变量时,尽量避开表2 所列预定义变量名,以免产生混淆。

表2 MATLAB 的预定义变量

预定义变量含义预定义变量含义
ans计算结果的缺省变量名NaN或nan

未定式,如0/0

eps机器零阈值nargin函数输入宗量数目
flops浮点运算次数nargout函数输出宗量数目
Inf 或inf

无穷大,如1/0

realmax最大正实数
i 或j

虚单元i = j =

realmin最小正实数
pi圆周率π
    对《自动控制理论》书p409-410中简单数算的例子,请在MATLAB 命令窗口中对这些运算进行验证。

(5) MATLAB 的矩阵运算 (课本P410-411)

 矩阵的输入和矩阵的运算

    对课本p410-411中矩阵运算的例子,请在MATLAB 命令窗口中对这些运算进行验证。

3) MATLAB 图形绘制

在二维曲线绘制中,最基本的指令是plot( )函数。如果用户将x 和y 两组数据分别在向量x 和y 中存储,且它们的长度相同,调用该函数的格式为:

plot(x,y)

这时将在一个图形窗口上绘出所需要的二维图形。在MATLAB 命令窗口提示符“>>”下键入 help  plot ,可得到plot( )函数的相关内容,如曲线颜色和线型的改变。

任务一:在MATLAB 命令窗口提示符“>>”下,完成下述任务:

任务(1)绘制一个周期内的正弦曲线。先产生自变量t 时间向量,由给出的自变量时间向量求取其正弦函数值向量,然后调用plot( )函数绘制曲线。

任务(2) 在一个绘图窗口上同时绘制多条曲线。参考课本p411-412,写成命令,完成上述任务(1)和任务(2)。

4)  M 文件程序设计

对于简单问题,使用直接输入命令简单有效,但对于较复杂和多次重复的问题,直接输入命令比较麻烦,使用M文件则简便。

MATLAB不仅用命令行方式工作,还可以像 BASIC、FORTRAN、C等其他高级计算机语言一样进行控制流的程序设计(MATLAB 语言的流程控制语句主要有 for、while、if-else-end 及 switch-case 等 4 种语句)。MATLAB控制流,即编制一种以 . m为扩展名的 MATLAB 程序(简称 M 文件)。由于商用的 MATLAB 软件是用 C 语言编写而成。因此,M 文件的语法与 C 语言十分相似。

建立和运行M文件程序的过程如下:

1打开M文件编辑窗口:在图1中选择File→New→M-file菜单项实现,在M文件编辑窗口键入M文件的各行命令代码,例如输入课本P412M文件部分的例子代码

2保存文件:在图2中选择File→Save菜单项,保存文件。例如可键入exp1,上述命令行就保存为exp1.m。

图2 建立和运行M文件程序的过程

3调试运行M文件程序:可在图中选择Debug→Run菜单项,全速运行M文件程序。也可用鼠标点击行号后短横线,给程序设置断点,选择Debug→Step,单步运行M文件程序,并根据工作空间管理窗口(Workspace)结果了解每条指令的功能。此外,在MATLAB命令窗口键入exp1(该M文件的名字,注意不写后缀)即可运行该M文件。

任务二:按上面的过程来建立并保存一个M文件程序,并调试运行M文件程序。

5)  MATLAB控制系统工具箱中的线性系统传递函数模型的相关函数

(1)tf ( )函数

若要在MATLAB 环境下得到传递函数的形式,可以调用tf ( )函数。该函数的调用格式为                                G = tf ( num, den );

其中num, den 分别为系统传递函数的分子和分母多项式系数向量。返回的G 为传递函数形式。

但如果分子或分母多项式给出的不是完全的展开的形式,而是若干个因式的乘积,则事先需要将其变换为完全展开的形式,两个多项式的乘积在MATLAB下借用卷积求取函数conv( )得出,其调用格式为            p=conv(p1,p2)

其中p1和p2为两个多项式,调用这个函数就能返回乘积多项式p。如果有3个多项式的乘积,就需要嵌套使用此函数,即

p=conv(p1,conv(p2,p3))   或 p=conv(conv(p1,p2),p3)

请注意在调用时括号的匹配。

MATLAB还支持一种特殊的传递函数的输入格式,在这样的输入方式下,应该先用s=tf(’s’)定义传递函数算子,然后用数学表达式直接输入系统的传递函数。请自己通过下面两个例子来演示和掌握tf ()和s=tf(’s’)算子这两种输入方式。

例1 设系统传递函数  

输入方式一:num = [1, 5, 3, 2]; den = [1, 2, 4, 3, 1];  %分子多项式和分母多项式

  G = tf ( num, den ); %这样就获得系统的数学模型G 了。

这些命令可在命令行输入也可编成一个M文件。在MATLB提示符“>>”下键入G,或省略最后命令中分号,则可显示该数学模型。

输入方式二:s=tf(’s’); G=( s^3 + 5* s^2 + 3* s + 2)/( s^4 + 2*s^3 + 4* s^2 + 3* s + 1);

任务三:设系统传递函数  采用上面两种输入方式,输入其传递函数,并记录命令。 

例2 设系统传递函数 

此题分子或分母多项式给出的不是完全展开的形式,而是若干个因式的乘积,采用tf () 这一种输入法之前,应先用conv( )函数获得分子和分母多项式给出的完全展开的形式num和den,即输入命令:

num=conv([0,5],[1,2.4]);

den=conv(conv(conv([1,1],[1,1]),[1,3,4]),[1,0,1]);

G=tf(num,den)   %语句没有分号结尾,故将显示系统传递函数

Transfer function:

                    5 s + 12

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

s^6 + 5 s^5 + 12 s^4 + 16 s^3 + 15 s^2 + 11 s + 4

这种情况用算子方法可以更直观地输入系统模型,输入命令为

s=tf('s');G=5*(s+2.4)/((s+1)^2*(s^2+3*s+4)*(s^2+1));

任务四:在MATLAB 命令窗口中对例2的这两种输入方法进行验证。

(2)tfdata()函数

如果有了传递函数G,则提取控制系统的传递函数的分子多项式num和分母多项式den可以由tfdata()函数来实现。如输入命令:

s=tf('s');G=5*(s+2.4)/((s+1)^2*(s^2+3*s+4)*(s^2+1))

[num,den]=tfdata(G,'v') %其中'v'表示想获得num和den的数值

任务五:在MATLAB 命令窗口中对该例进行验证。

(3)zpk ()函数

若要得到控制系统零极点传递函数,可以调用zpk ( )函数。该函数的调用格式为

G = zpk ( Z, P,K );

其中K为系统的增益,Z, P 分别为系统传递函数的零点和极点列向量。返回的G 为传递函数形式。

例3 设系统传递函数 

输入下面的命令:

Z=[-1.539; -2.7305+2.8538i;-2.7305-2.8538i];  %注意使用列向量,另外注意符号

P=[-1;-2;-3;-4]; G=zpk(Z,P,1);

在MATLB提示符“>>”下键入G,或省略最后命令中分号,则可显示该数学模型。

>> G  %下面是MATLB的显示结果

Zero/pole/gain:

(s+1.539) (s^2 + 5.461s + 15.6)

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

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

任务六:在MATLAB 命令窗口中对该例进行验证。

注意在MATLAB的零极点模型显示中,如果有复数零极点存在,则用二阶多项式来表示两个因子,而不直接展成复数的一阶因式。

(4)tf2zp( )函数、zp2tf( )函数

控制系统分子、分母多项式传递函数与控制系统零极点传递函数可以用tf2zp( )、zp2tf( )函数转换。tf2zp( )可将分子、分母多项式的传递函数转换为零、极点增益形式。该函数的调用格式为

[ Z, P,K] = tf2zp ( num, den );

zp2tf( )可将零、极点增益形式转换为分子、分母多项式的传递函数。该函数的调用格式为

[ num, den]= zp2tf ( Z, P,K)

任务七:应用tf2zp( )函数求出例1和任务五中系统的零极点。

4. 实验报告内容

1) 写出MATLAB工作环境平台中四个窗口的功能。

2) 实现实验内容的所有任务,并将答案记录(记录命令代码)。

3) 整理在实验过程中遇到的问题及如何解决的。

每次实验报告形式为:实验名称、实验目的、实验仪器、实验内容(包括以上列出的实验报告内容 1)、2)、3))、分析心得等。

5. 预习要求

1) 阅读实验内容及实验目的。

2) 完成对MATLAB 软件的熟悉工作。

二、 SIMULINK 基本功能与使用

1. 实验目的

1) SIMULINK 的使用方法。

2) 熟悉SIMULINK 模块库的分类及其相应用途。

3) 能够使用SIMULINK 进行系统模型的建立并仿真等。

2. 实验仪器:

PC计算机一台,MATLAB软件1套

3. 实验内容

1) SIMULINK 的启动

启动方式一:在 MATLAB 命令窗口,键入“SIMULINK”

启动方式二:点击窗口上面的 SIMULINK图标。如图3 所示,就打开了 SIMULINK 窗口,进入SIMULINK 库模块浏览界面。

2) SIMULINK 的模型窗口的建立

在 SIMULINK 窗口下,用鼠标点击 new model 图标或选取菜单 File→ New→ Model 后,SIMULINK 会打开一个名为untilited(无标题)的模型窗口,如图4 所示。随后,按用户要求可以在此模型窗口中创建模型及进行仿真运行。

图3 启动SIMULINK

图4 空的模块窗口

3) SIMULINK 模块库

SIMULINK 提供了9 类基本模块库:连续系统模块库(Continous)、离散系统模块库(Discrete)、函数与表模块库(Function&Tables)、数算模块库(Math)、非线性系统模块库(Nonlinear)、信号模块库(Signal Routing)、输出模块库(Sinks)、输入源模块库(Sourses)、子系统模块库(Subsystems)等基本模块库。附录二对本实验书中用到的5个模块:连续系统模块库(Continous)、数算模块库(Math)、信号模块库(Signal Routing)、输出模块库(Sinks)、和输入源模块库(Sourses)的功能进行了介绍。

4) 用SIMULINK 建立系统模型及仿真

(1)例1 以求一个惯性环节的阶跃响应为例,说明模型的建立过程。

①开启 SIMULINK 窗口及模块库:在 MATLAB 命令窗口,键入“SIMULINK”,或点击窗口上面的 SIMULINK图标,如图3 所示,就打开了 SIMULINK 窗口,进入SIMULINK 库模块浏览界面。

②建立新文件:在 SIMULINK 窗口下,用鼠标点击 new model 图标或选取菜单 File→ New→ Model 后,SIMULINK 会打开一个名为untilited(无标题)的空白模型窗口,如图4 所示。新文件建立后,可以用菜单 File 中的 Save as 命令保存程序,这时需要给文件取名。保存的文件扩展应名为.mdl。本例中将文件名命名为examp1.mdl。

③复制模块:双击模块组图标打开模块子库,将鼠标移到所要复制的模块上,然后按下左键并拖动鼠标到目标窗口,再松开键,用右键可在任意窗口内复制模块,此时原模块保留。

本例中需双击Sources图标从信号源库中选中阶跃信号模块,双击Continuous图标从连续系统模块库中选中传递函数模块,双击Sinks图标从显示库中选中示波器模块,分别拖入examp1.mdl目标窗口。

④修改模块参数。通常目标窗口中复制的模块的参数和要求不一致,因此需对这些复制过来的模块参数进行修改。双击复制过来的模块,会出现对一个对话框,在对话框中设置相应参数。

本例中双击Step模块,设置阶跃信号的起始时间从默认的1修改为0、并可根据实际情况设计设置初值和终值;双击Transfer Fcn模块,设置传递函数的表达式,在分子(Numerator)多项式系数处键入[5],在分母(Denominator)多项式系数处键入[0.8,2].

⑤模块之间的连接:模块左侧和右侧尖角>分别表示模块的输入和输出,模块之间的连接按照下述方法进行:鼠标移到一个模块的输入(出)端,按下左键,拖动鼠标到另一个模块的输出(入)端,松开,连线完毕。若要从一条已经存在的连线上引出另一条连线,首先把鼠标指针移到这个连线上,按下右键,拖动鼠标到目标端口,再松开键。按照上述步骤建立的惯性环节模型如图5所示。

图5 用SIMULINK建立的惯性环节模型

⑥若需要选择对象或删除对象,用鼠标左键在所选对象上单击一下,被选对象就会出现相应标记。若要删除模块或连线,首先要选中该模块过连线,然后再按 Delete 或Clear 键。

⑦仿真与显示

若要开始仿真,单击起动仿真的按钮      或选择 Simulation→ Start就可以了。双击 Scope 模块就打开示波器,示波器上就显示出变量随时间变化的曲线。

(2)典型环节仿真与分析

自控系统是由比例、积分、惯性环节等按一定的关系连接而成。熟悉这些惯性环节对阶跃输入的响应,对分析线性系统将是十分有益。

①典型环节的仿真

        任务一:写出各典型环节(比例、惯性、积分环节)的传递函数,在纸上记录仿真各典型环节的仿真图及其单位阶跃响应波形,并研究参数变化对输出响应的影响。将题目中的示波器横轴终值修改为20,以便进行环节的比较,回答实验思考题。

实验记录表格如下(供参考)

典型环节传函参数单位阶跃响应曲线参数变化对输出影响的结论
比例环节①K=1②K=5③K=10

惯性环节①τ=0.01 ②τ=1 ③τ=100

积分环节①K=0.01 ②K=1 ③K=10

实验思考题:

A) 积分环节和惯性环节主要差别是什么?在什么条件下,惯性环节可以近似地视为积分环节?而又在什么条件下,惯性环节可以近似地视为比例环节?

B) 在积分环节和惯性环节实验中,如何根据单位阶跃响应曲线的波形,确定积分环节和惯性环节的时间常数?

任务二:在SIMULINK 环境下搭建阶跃响应时的模型,并用示波器观测输出波形,将示波器横轴终值修改为50,记录仿真图及示波器波形。

A)(传递函数形式)

B) (零极点形式)

4. 实验报告内容

1) 如何修改用到的模块的参数。

2) 示波器模块的功能。

3) 完成所有任务,并将答案记录与思考题回答。

4) 整理在实验过程中遇到的问题及如何解决的。

5. 预习要求

1) 阅读实验内容及实验目的。

2) 完成对SIMULINK 模块库的熟悉工作。

文档

实验一 指导书 MATLAB 在控制系统模型建立与仿真中的应用

实验一MATLAB在控制系统模型建立与仿真中的应用一、MATLAB基本操作与使用1.实验目的1)熟悉MATLAB工作环境平台及其各个窗口,掌握MATLAB语言的基本规定,MATLAB图形绘制功能、M文件程序设计。2)学习使用MATLAB控制系统工具箱中线性控制系统传递函数模型的相关函数。2.实验仪器PC计算机一台,MATLAB软件1套3.实验内容1)MATLAB工作环境平台图1在英文Windows平台上的MATLAB6.5MATLAB工作平台①命令窗口(CommandWindow)命令窗口是对
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top