中南大学控制系统仿真技术实验指导书1
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)求矩阵 B1, B1 中每一元素为对应矩阵 A 中每一元素的正弦函数; (3)求矩阵 B2, B2 中每一元素为对应矩阵 A 中每一元素的余弦函数; (4)求 B1^2+B2^2.。
练习 1-6 利用基本矩阵产生 3×3 和 5×5 的单位阵、全 1 阵、全 0 阵、均匀分布随 机阵([-1,1]之间) 、正态分布随机阵(均值为 1、方差为 4) 。
(0 t 30)
(4)在 0≤t≤20 区间内,且在同一图中绘制如下函数图形:
y 1 ( t ) 2 . 62 e 0 . 25 t cos( 2 . 22 t 174 ) 0 . 6 y 2 ( t ) 2 . 62 e 0 . 25 t 0 . 6 y 3 (t ) 0 .6
% MATLAB PROGRAM EG2-4 function [pos,tr,ts2,tp]=stepchar(t,y); %finding Pos and Tp [mp,ind]=max(y);dimt=length(t); yss=y(dimt); pos=100*(mp-yss)/yss; tp=t(ind); i=1;j=1;k=1;q=1; while y(i)<0.1; i=i+1; end; t1=t(i); while y(j)<0.9;
6
I=100Sin(ωt-π/4)曲线,线条分别用不同颜色表示; (2)在右窗口,绘制 P=V·I 曲线,线型用“*”符号。
练习 2-2.绘制以下函数图形:
(1)
y (t ) 1 2e t sin(t )
(0 t 8)
且在 X 轴写上“Time” 标号,Y 轴写上“Amplitude” 标号,图形的标题为 “Decaying-oscillating Exponential”.
5 x 5 , 5 y 5 z 1 1.5 2 2 ( x 1) ( y 1) 1 ( x 1) ( y 1) 2 1
2
2.编辑函数文件 函数是 MATLAB 扩展功能的 M 文件。许多 MATLAB 命令与全部工具箱命令都 是用 M 文件格式写成的。程序文件与函数文件的主要区别在于,函数允许通过数 值进行参数传递,而且函数使用局部变量而不是对整个工作空间中变量的操作。 另外一个不同点是,函数文件的第一行必须包括“function”这个词。下面是一个 典型的函数文件格式: function[out1,out2,…]=filename(in1,in2,…)
(二)
实验设备
计算机,Matlab 软件
(三)
实验要求
本实验属于设计实验, 请先根据 (四) 实验内容的 (a) 【Matlab GUI 编程示例】 , 并完成(b) 【实验操作】 。 请在页眉处填写班级、 学号、 姓名, 并将实验报告命名为 “实验三_学号_姓名” , 并通过 FTP 上传至指定文件夹。
《控制系统仿真技术》 实验指导书
编写:徐德刚 中南大学信息科学与工程学院
2013 年 1 月
1
实验一 MATLAB 的实验环境及基本命令
一 实验目的:
1. 学习了解 MATLAB 的实验环境 2. 在 MATLAB 系统命令窗口练习有关 MATLAB 命令的使用。
二 实验步骤
1. 学习了解 MATLAB 的实验环境: 在 Windows 桌面上,用 mouse 双击 MATLAB 图标,即可进入 MATLAB 系统命令 窗口:
练习 2-3.绘制下列方程的极坐标图。θ∈[0,2π],步长为π/200。
(1 ) (2) (3 ) (4) (5 )
r 3 ( 1 cos ) r 2 ( 1 cos ) r 2 ( 1 sin ) r cos r e 3
/( 4 )
练习 2-4.求函数 Z 的三维图形。定义区间与 Z 函数表达式如下:
练习 1-1: 计算下列表达式: 要求计算完毕后,键入相应的变量名,查看并记录变量的值。
a (1 10 ) / 2
② 向量运算:
b 3 5i
Hale Waihona Puke Baidu
c sin(e 2.3 )
d 250 / sin(
6
)
n 维向量是由 n 个成员组成的行或列数组。 在 MATLAB 中, 由分号分隔的方括 号中的元素产生一个列向量; 由逗号或空号分隔的方括号中的元素产生一个行向量; 同维的向量可进行加减运算,乘法须遵守特殊的原则。
%程序中,pos 为超调量σ%。
10
实验三 MATLAB_GUI 界面
(一)
实验目的
图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指 采用图形方式显示的计算机操作用户界面。与早期计算机使用的命令行界面相比, 图形界面对于用户来说在视觉上更易于接受。 通过 Matlab GUI 编程示例仿真掌握 GUI 界面的设计;
图 1-1 MATLAB 系统命令窗口 MATLAB 的默认界面由三部分组成: ① Command Windows 命令窗口
2
② Command History
历史窗口
③ Workspace 工作空间
2. 练习 MATLAB 系统命令的使用。 ① 表达式 MATLAB 的表达式由变量、 数值、 函数及操作符构成。 实验前应掌握有关变量、 数值、函数及操作符的有关内容及使用方法。
(四)
实验内容
a)Matlab GUI 编程示例 1.首先我们新建一个 GUI 文件:File/New/GUI 如下图所示;
选择 Blank GUI(Default)
11
2.进入 GUI 开发环境以后添加两个编辑文本框,6 个静态文本框,和一个按钮, 布置如下图所示;
布置好各控件以后,我们就可以来为这些控件编写程序来实现两数相加的功能了。 3.我们先为数据 1 文本框添加代码;
8
% optional comment lines for documentation MATLAB commands
练习 2-5 阅读计算阶跃响应特征参数的函数文件,并编写主程序调用该函数文件 (见附录) ,求: ⑴超调量σ%;⑵上升时间 Tr; ⑶峰值时间 Tp; ⑷过渡过程时间 Ts;
练习 2-6 参考练习 2-5 程序,编写程序计算下列传递函数的阶跃响应特参数:⑴ 超调量σ%;⑵上升时间 Tr; ⑶峰值时间 Tp; ⑷过渡过程时间 Ts;
一.实验目的:
1.熟悉 MATLAB 系统 M 文件的基本操作; 2.熟练应用 MATLAB 有关的图形函数,绘制函数图形。
二.实验内容
1. MATLAB 程序文件: ①编辑程序文件 当完成一个功能需要许多 MATLAB 命令时, 可以将这些命令按特定的顺序组合 在一起,存储在一个程序文件中, 就得到了 MATLAB 程序, 其文件名的后缀为*.M, 故也称为 M 文件。在命令窗口的 FILE 菜单或工具栏上选择 NEW 命令——M-file, 即可开始编辑 M 文件。MATLAB 编辑器与其它 WINDOWS 编辑程序类似。 ②保存 M 文件 编辑 M 文件后,在命令窗口的 FILE 菜单或工具栏上选则 SAVE AS 命令存盘, 文件应以* .M 为后缀。 ③执行 M 文件 在 MATLAB 系统命令窗口下,在提示符 ”>>” 处键入所编辑的 M 文件名后,即 可执行该文件。在执行中若发现错误,系统将给出提示。此时可再次进入编辑器 中修改程序,直至程序能正确执行为止。 编写下列题目 M 文件,调试并运行: 练习 2-1.将图形窗口分割成 1×2 的空格,设ωt∈[0,2π], 以π/50 为步长, 绘制下列函数图形: (1) 在左窗口,以ωt 为横坐标,绘制 V=120Sinωt 和
③矩阵基本运算操作。
3
要求熟悉矩阵的输入方法及矩阵运算的有关命令。
练习 1-4 求出下列运算结果,并上机验证。已知矩阵:
11 21 A 31 41
12 22 32 42
13 23 33 43
14 24 34 44
(1) A(: ,1) (2)A(2, : ) (3)A(: ,2:3) (4)A(2:3,2:3) (5) A(: ,1:2:3) (6)A(2:3) (7)A(: ) (8)A(: , : ) (9) ones(2,2) (10)eye(2) (11)[A,[ones(2,2);eye(2)]] (15)diag(A,2) (19)tril(A)
求 y1 的最小值与最大值。
(5)对应 0≤t≤25 区域内,在同一图中绘制下列函数。
7
y1 (t ) 1.25e t y 2 (t ) 2.02e 0.3t y 3 (t ) 2.02e 0.3t cos(0.554t 128) 1.25e t
求 y3(t)值: y(t=0)、ymax、ymin 和 y(t=12)
练习 1-10 利用 randn 函数产生均值为 0, 方差为 1 的 10×10 正态分布随机阵 a, 然 后统计 a 中大于-0.5,小于 0.5 的元素个数。
3.退出 MATLAB 环境 在命令提示符 ”>>” 位置键入命令:
exit
或者 quit
执行以上命令可以退出 MATLAB 环境。
5
实验二 程序文件与函数文件的应用
(12)diag(A) (13)diag(A,1) (16)fliplr(A)
(14)diag(A,-1) (18)rot90(A)
(17)flipud(A)
练习 1-5 用 MATLAB 命令完成下列矩阵函数运算: (1) 输入如下矩阵 A:
/ 3 0 A / 6 / 2
G1 (S)
2 s 2s 2
2
G2 (S)
4s 2 s 2s 2
2
G3 (S)
1 2s 3s 2 3s 1
3
—-——————————————————————————— 附录: 计算超调量σ%、 上升时间 Tr、 峰值时间 Tp、 过渡过程时间 Ts 的函数文件;
9
j=j+1; end; t2=t(j);tr=t2-t1; %Finding settling time (two percent)Ts i=dimt+1;n=0; while n==0; i=i-1; if i==1; n=1; elseif y(i)>=1.02; n=1; end; end; t1=t(i);i=dimt+1;n=0; while n==0; i=i-1; if y(i)<=0.98; n=1; end; t2=t(i); if t1>t2; ts2=t1; else ts2=t2; end; end;
练习 1-2 已知:X=[2 ;-4;8]
R [tg , 9, 5] 4
求 :Y=R' ;P=5*R;E=X.*Y;S=X'* Y 练习 1-3 ⑴产生每个元素为 1 的 4 维的行向量; ⑵产生每个元素为 0 的 4 维的列向量; ⑶产生一个从 1 到 8 的整数行向量,默认步长为 1; ⑷产生一个从π到 0,间隔为π/3 的行向量;
练习 1-7 产生一均匀分布在(-5,5)之间的随机阵(50×2) ,要求精确到小数点 后一位。
练习 1-8 编程实现当 a∈[-π,π],间隔为 1°时,求解正弦、余弦的值。
4
练习 1-9 利用 rand 函数产生(0,1)间均匀分布的 10×10 随机阵 a ,然后统计 a 中大于等于 0.6 的个数。
12
选择 edit1_Callback,右键选择 View Callbacks/callback function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double 然后在上面这段代码的下面插入如下代码: %以字符串的形式来存储数据文本框 1 的内容. 如果字符串不是数字, 则显示空白内 容 input = str2num(get(hObject,'String')); %检查输入是否为空. 如果为空,则默认显示为 0 if (isempty(input)) set(hObject,'String','0') end guidata(hObject, handles); 这段代码使得输入被严格限制,我们不能试图输入一个非数字。 4.为 edit2_Callback 添加同样一段代码 5. 现在我们为计算按钮添加代码来实现把数据 1 和数据 2 相加的目的。 用 3 中同样的方法在 m 文件中找到 pushbutton1_Callback 代码段 如下; function pushbutton1_Callback(hObject, eventdata, handles)
(2)在 0≤t≤10 区间内绘制如下图形:
y (t ) 1.23 cos(2.83t 240 ) 0.625
x(t ) 0.625
在同一个图中绘制上述函数, 求出 Y(t=0)和 Y(t=10)的点。 (注意弧度与角度的 区别) 。 (3)绘制如下图形:
y (t ) 5e 0.2t cos(0.9t 30) 0.8e 2t
练习 1-6 利用基本矩阵产生 3×3 和 5×5 的单位阵、全 1 阵、全 0 阵、均匀分布随 机阵([-1,1]之间) 、正态分布随机阵(均值为 1、方差为 4) 。
(0 t 30)
(4)在 0≤t≤20 区间内,且在同一图中绘制如下函数图形:
y 1 ( t ) 2 . 62 e 0 . 25 t cos( 2 . 22 t 174 ) 0 . 6 y 2 ( t ) 2 . 62 e 0 . 25 t 0 . 6 y 3 (t ) 0 .6
% MATLAB PROGRAM EG2-4 function [pos,tr,ts2,tp]=stepchar(t,y); %finding Pos and Tp [mp,ind]=max(y);dimt=length(t); yss=y(dimt); pos=100*(mp-yss)/yss; tp=t(ind); i=1;j=1;k=1;q=1; while y(i)<0.1; i=i+1; end; t1=t(i); while y(j)<0.9;
6
I=100Sin(ωt-π/4)曲线,线条分别用不同颜色表示; (2)在右窗口,绘制 P=V·I 曲线,线型用“*”符号。
练习 2-2.绘制以下函数图形:
(1)
y (t ) 1 2e t sin(t )
(0 t 8)
且在 X 轴写上“Time” 标号,Y 轴写上“Amplitude” 标号,图形的标题为 “Decaying-oscillating Exponential”.
5 x 5 , 5 y 5 z 1 1.5 2 2 ( x 1) ( y 1) 1 ( x 1) ( y 1) 2 1
2
2.编辑函数文件 函数是 MATLAB 扩展功能的 M 文件。许多 MATLAB 命令与全部工具箱命令都 是用 M 文件格式写成的。程序文件与函数文件的主要区别在于,函数允许通过数 值进行参数传递,而且函数使用局部变量而不是对整个工作空间中变量的操作。 另外一个不同点是,函数文件的第一行必须包括“function”这个词。下面是一个 典型的函数文件格式: function[out1,out2,…]=filename(in1,in2,…)
(二)
实验设备
计算机,Matlab 软件
(三)
实验要求
本实验属于设计实验, 请先根据 (四) 实验内容的 (a) 【Matlab GUI 编程示例】 , 并完成(b) 【实验操作】 。 请在页眉处填写班级、 学号、 姓名, 并将实验报告命名为 “实验三_学号_姓名” , 并通过 FTP 上传至指定文件夹。
《控制系统仿真技术》 实验指导书
编写:徐德刚 中南大学信息科学与工程学院
2013 年 1 月
1
实验一 MATLAB 的实验环境及基本命令
一 实验目的:
1. 学习了解 MATLAB 的实验环境 2. 在 MATLAB 系统命令窗口练习有关 MATLAB 命令的使用。
二 实验步骤
1. 学习了解 MATLAB 的实验环境: 在 Windows 桌面上,用 mouse 双击 MATLAB 图标,即可进入 MATLAB 系统命令 窗口:
练习 2-3.绘制下列方程的极坐标图。θ∈[0,2π],步长为π/200。
(1 ) (2) (3 ) (4) (5 )
r 3 ( 1 cos ) r 2 ( 1 cos ) r 2 ( 1 sin ) r cos r e 3
/( 4 )
练习 2-4.求函数 Z 的三维图形。定义区间与 Z 函数表达式如下:
练习 1-1: 计算下列表达式: 要求计算完毕后,键入相应的变量名,查看并记录变量的值。
a (1 10 ) / 2
② 向量运算:
b 3 5i
Hale Waihona Puke Baidu
c sin(e 2.3 )
d 250 / sin(
6
)
n 维向量是由 n 个成员组成的行或列数组。 在 MATLAB 中, 由分号分隔的方括 号中的元素产生一个列向量; 由逗号或空号分隔的方括号中的元素产生一个行向量; 同维的向量可进行加减运算,乘法须遵守特殊的原则。
%程序中,pos 为超调量σ%。
10
实验三 MATLAB_GUI 界面
(一)
实验目的
图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指 采用图形方式显示的计算机操作用户界面。与早期计算机使用的命令行界面相比, 图形界面对于用户来说在视觉上更易于接受。 通过 Matlab GUI 编程示例仿真掌握 GUI 界面的设计;
图 1-1 MATLAB 系统命令窗口 MATLAB 的默认界面由三部分组成: ① Command Windows 命令窗口
2
② Command History
历史窗口
③ Workspace 工作空间
2. 练习 MATLAB 系统命令的使用。 ① 表达式 MATLAB 的表达式由变量、 数值、 函数及操作符构成。 实验前应掌握有关变量、 数值、函数及操作符的有关内容及使用方法。
(四)
实验内容
a)Matlab GUI 编程示例 1.首先我们新建一个 GUI 文件:File/New/GUI 如下图所示;
选择 Blank GUI(Default)
11
2.进入 GUI 开发环境以后添加两个编辑文本框,6 个静态文本框,和一个按钮, 布置如下图所示;
布置好各控件以后,我们就可以来为这些控件编写程序来实现两数相加的功能了。 3.我们先为数据 1 文本框添加代码;
8
% optional comment lines for documentation MATLAB commands
练习 2-5 阅读计算阶跃响应特征参数的函数文件,并编写主程序调用该函数文件 (见附录) ,求: ⑴超调量σ%;⑵上升时间 Tr; ⑶峰值时间 Tp; ⑷过渡过程时间 Ts;
练习 2-6 参考练习 2-5 程序,编写程序计算下列传递函数的阶跃响应特参数:⑴ 超调量σ%;⑵上升时间 Tr; ⑶峰值时间 Tp; ⑷过渡过程时间 Ts;
一.实验目的:
1.熟悉 MATLAB 系统 M 文件的基本操作; 2.熟练应用 MATLAB 有关的图形函数,绘制函数图形。
二.实验内容
1. MATLAB 程序文件: ①编辑程序文件 当完成一个功能需要许多 MATLAB 命令时, 可以将这些命令按特定的顺序组合 在一起,存储在一个程序文件中, 就得到了 MATLAB 程序, 其文件名的后缀为*.M, 故也称为 M 文件。在命令窗口的 FILE 菜单或工具栏上选择 NEW 命令——M-file, 即可开始编辑 M 文件。MATLAB 编辑器与其它 WINDOWS 编辑程序类似。 ②保存 M 文件 编辑 M 文件后,在命令窗口的 FILE 菜单或工具栏上选则 SAVE AS 命令存盘, 文件应以* .M 为后缀。 ③执行 M 文件 在 MATLAB 系统命令窗口下,在提示符 ”>>” 处键入所编辑的 M 文件名后,即 可执行该文件。在执行中若发现错误,系统将给出提示。此时可再次进入编辑器 中修改程序,直至程序能正确执行为止。 编写下列题目 M 文件,调试并运行: 练习 2-1.将图形窗口分割成 1×2 的空格,设ωt∈[0,2π], 以π/50 为步长, 绘制下列函数图形: (1) 在左窗口,以ωt 为横坐标,绘制 V=120Sinωt 和
③矩阵基本运算操作。
3
要求熟悉矩阵的输入方法及矩阵运算的有关命令。
练习 1-4 求出下列运算结果,并上机验证。已知矩阵:
11 21 A 31 41
12 22 32 42
13 23 33 43
14 24 34 44
(1) A(: ,1) (2)A(2, : ) (3)A(: ,2:3) (4)A(2:3,2:3) (5) A(: ,1:2:3) (6)A(2:3) (7)A(: ) (8)A(: , : ) (9) ones(2,2) (10)eye(2) (11)[A,[ones(2,2);eye(2)]] (15)diag(A,2) (19)tril(A)
求 y1 的最小值与最大值。
(5)对应 0≤t≤25 区域内,在同一图中绘制下列函数。
7
y1 (t ) 1.25e t y 2 (t ) 2.02e 0.3t y 3 (t ) 2.02e 0.3t cos(0.554t 128) 1.25e t
求 y3(t)值: y(t=0)、ymax、ymin 和 y(t=12)
练习 1-10 利用 randn 函数产生均值为 0, 方差为 1 的 10×10 正态分布随机阵 a, 然 后统计 a 中大于-0.5,小于 0.5 的元素个数。
3.退出 MATLAB 环境 在命令提示符 ”>>” 位置键入命令:
exit
或者 quit
执行以上命令可以退出 MATLAB 环境。
5
实验二 程序文件与函数文件的应用
(12)diag(A) (13)diag(A,1) (16)fliplr(A)
(14)diag(A,-1) (18)rot90(A)
(17)flipud(A)
练习 1-5 用 MATLAB 命令完成下列矩阵函数运算: (1) 输入如下矩阵 A:
/ 3 0 A / 6 / 2
G1 (S)
2 s 2s 2
2
G2 (S)
4s 2 s 2s 2
2
G3 (S)
1 2s 3s 2 3s 1
3
—-——————————————————————————— 附录: 计算超调量σ%、 上升时间 Tr、 峰值时间 Tp、 过渡过程时间 Ts 的函数文件;
9
j=j+1; end; t2=t(j);tr=t2-t1; %Finding settling time (two percent)Ts i=dimt+1;n=0; while n==0; i=i-1; if i==1; n=1; elseif y(i)>=1.02; n=1; end; end; t1=t(i);i=dimt+1;n=0; while n==0; i=i-1; if y(i)<=0.98; n=1; end; t2=t(i); if t1>t2; ts2=t1; else ts2=t2; end; end;
练习 1-2 已知:X=[2 ;-4;8]
R [tg , 9, 5] 4
求 :Y=R' ;P=5*R;E=X.*Y;S=X'* Y 练习 1-3 ⑴产生每个元素为 1 的 4 维的行向量; ⑵产生每个元素为 0 的 4 维的列向量; ⑶产生一个从 1 到 8 的整数行向量,默认步长为 1; ⑷产生一个从π到 0,间隔为π/3 的行向量;
练习 1-7 产生一均匀分布在(-5,5)之间的随机阵(50×2) ,要求精确到小数点 后一位。
练习 1-8 编程实现当 a∈[-π,π],间隔为 1°时,求解正弦、余弦的值。
4
练习 1-9 利用 rand 函数产生(0,1)间均匀分布的 10×10 随机阵 a ,然后统计 a 中大于等于 0.6 的个数。
12
选择 edit1_Callback,右键选择 View Callbacks/callback function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double 然后在上面这段代码的下面插入如下代码: %以字符串的形式来存储数据文本框 1 的内容. 如果字符串不是数字, 则显示空白内 容 input = str2num(get(hObject,'String')); %检查输入是否为空. 如果为空,则默认显示为 0 if (isempty(input)) set(hObject,'String','0') end guidata(hObject, handles); 这段代码使得输入被严格限制,我们不能试图输入一个非数字。 4.为 edit2_Callback 添加同样一段代码 5. 现在我们为计算按钮添加代码来实现把数据 1 和数据 2 相加的目的。 用 3 中同样的方法在 m 文件中找到 pushbutton1_Callback 代码段 如下; function pushbutton1_Callback(hObject, eventdata, handles)
(2)在 0≤t≤10 区间内绘制如下图形:
y (t ) 1.23 cos(2.83t 240 ) 0.625
x(t ) 0.625
在同一个图中绘制上述函数, 求出 Y(t=0)和 Y(t=10)的点。 (注意弧度与角度的 区别) 。 (3)绘制如下图形:
y (t ) 5e 0.2t cos(0.9t 30) 0.8e 2t