MATLAB控制系统仿真实验报告Word格式文档下载.docx
- 文档编号:20017221
- 上传时间:2023-01-15
- 格式:DOCX
- 页数:25
- 大小:282.19KB
MATLAB控制系统仿真实验报告Word格式文档下载.docx
《MATLAB控制系统仿真实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《MATLAB控制系统仿真实验报告Word格式文档下载.docx(25页珍藏版)》请在冰豆网上搜索。
(5)二维数组的创建和寻访,创建一个二维数组(4×
8)A,查询数组A第2行、第3列的元素,查询数组A第2行的所有元素,查询数组A第6列的所有元素,查询数组A按列拉长形成新的数组B(1×
8),查询数组A按行拉长形成新的数组C(1×
8),以全元素赋值的方式对数组A赋值。
(6)两种运算指令形式和实质内涵的比较。
设有3个二维数组A2×
4,B2×
4,C2×
2,写出所有由2个数组参与的合法的数组运算和矩阵指令
(7)学习使用表8列的常用函数(通过help方法)
(8)学习使用表9数组操作函数
(9)学习字符串的创建,a='
Thisisanexample.'
串数组的大小size(a)
串数组的元素标识a14=a(1:
4)ra=a(end:
-1:
1)
对字符串ASCLL码的数组操作
w=find(a>
='
a'
&
a<
z'
);
ascii_a(w)=ascii_a(w)-32;
%英文大小写字母ASCLL值差32(小-32=大)
char(ascii_a)
练习B
(10)创建符号对象与函数命令sym()、syms()与class()的熟悉和运用。
有符号表达式:
试计算
与
四、实验操作过程(实验说明)
>
helprand%用help指令学习rand的用法
rand-Uniformlydistributedpseudorandomnumbers
ThisMATLABfunctionreturnsapseudorandomscalardrawnfromthestandard
uniformdistributionontheopeninterval(0,1).
r=rand
r=rand(n)
r=rand(sz1,...,szN)
r=rand(sz)
r=rand(classname)
r=rand(n,classname)
r=rand(sz1,...,szN,classname)
r=rand(sz,classname)
r=rand('
like'
p)
r=rand(n,'
r=rand(sz1,...,szN,'
r=rand(sz,'
rand(2,6)%随机生成一个2×
6的数组
ans=
0.81470.12700.63240.27850.95750.1576
0.90580.91340.09750.54690.96490.9706
clear%清除命令窗口
[12;
34]%输入一个二维数组
12
34
[1,2;
3,4]%将空格改为逗号效果一致
a=[1234;
5678];
b=a(2:
2,3:
4)%逗号前面是行,后面是列,冒号前后的数表示所选范围
b=
78
eye(3)%产生单位矩阵
100
010
001
magic(3)%产生魔方矩阵
816
357
492
flipud(ans)%以数组“水平中线”为对称轴,交换上下对称位置上的元素
rot90(ans)%逆时针旋转数组90°
276
951
438
a='
hello'
a=
hello
b=size(a)%字符串a的大小为1x5
15
symsxypkabc%创建符号对象
e1=x^2*a*c*y+a*p*x^2+b*p*x+c*k*y+k*p%创建函数命令
e1=
k*p+a*p*x^2+c*k*y+b*p*x+a*c*x^2*y
e2=c*y+p
e2=
p+c*y
e1/e2
(k*p+a*p*x^2+c*k*y+b*p*x+a*c*x^2*y)/(p+c*y)
a=[12]
c=reshape(a,2,1)%改变数组a的行数和列数
c=
1
2
五、实验结果及讨论
1.熟悉了MATLAB的基本软件操作。
2.通过本次实验熟悉了MATLAB的开发环境掌握了矩阵、变量、表达式的各种运算了解了*与.*、/与\、^与.^等区别以及绝对值、开方e的阶乘、正弦、正切的运算的符号。
3.让我明白了MATLAB的实用性。
实验二MATLAB语言的程序设计
黄岛老校区计算中心
1、熟悉MATLAB程序编辑与设计环境
2、掌握各种编程语句语法规则及程序设计方法
3、函数文件的编写和设计
4、了解和熟悉跨空间变量传递和赋值
练习A
1、熟悉MATLAB程序编辑与设计环境
2、用for循环语句实现求1~100的和
3、用for循环语句实现编写一个求
阶乘的函数文件
思考题
4、已知一维数组
、
,用for循环语句实现
。
求和函数可用
5、
(1)编写求解一维数组平均值的函数文件。
(2)编写求解二维数组平均值的函数文件。
1.用for循环语句实现求1~100的和,函数名为theSec().
程序:
a=0;
fori=1:
100
a=i+a;
end
fprintf('
%d\n'
a)
执行结果:
theSec%求1~100的和
5050
2.用for循环语句实现编写一个求
阶乘的函数文件,函数名为jiex(x).
程序:
functionjiex(x)
a=1;
x
a=a*i;
jiex(4)%求4的阶乘
24
3.已知一维数组
求和,函数名用ABsum()
functiony=ABsum()
a=[2,4,5,8,10];
b=[4,9,6,7,4];
n=5;
sum=0;
n
sum=sum+a(1,i)*b(1,n-i+1);
y=sum;
执行结果:
>
ABsum()
178
4.编写求解任意数组平均值的函数文件,函数名为avg(f).
functiony=avg(f)
[m,n]=size(f);
m
forj=1:
sum=sum+f(i,j);
end
y=sum/(m*n);
a=[1,2,3,4;
5,6,7,8]%定义一个数组
1234
5678
avg(2*a)%求数组2*a的平均值
9
1.编程语句:
循环语句有for循环和while循环,我习惯使用for循环,使用格式如下:
for循环变量=表达式1(初值):
表达式2(增量):
表达式3(终值)
循环语句组
end
条件判断语句if语句格式为:
if表达式
执行语句
实验三MATLAB的图形绘制
2015.10.21上午8:
1、学习MATLAB图形绘制的基本方法;
2、熟悉和了解MATLAB图形绘制程序编辑的基本指令;
3、熟悉掌握利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形的各种标注;
4、掌握plot、subplot的指令格式和语法。
【1】二维曲线绘图基本指令演示。
t=(0:
pi/50:
2*pi)'
;
k=0.4:
0.1:
1;
Y=cos(t)*k;
plot(t,Y)
plot指令基本操作演示
【2】用图形表示连续调制波形
及其包络线。
pi/100:
pi)'
y1=sin(t)*[1,-1];
y2=sin(t).*sin(9*t);
t3=pi*(0:
9)/9;
y3=sin(t3).*sin(9*t3);
plot(t,y1,'
r:
'
t,y2,'
b'
t3,y3,'
bo'
)
axis([0,pi,-1,1])
【3】通过绘制二阶系统阶跃响应,综合演示图形标识。
本例比较综合,涉及的指令较广。
请耐心读、实际做、再看例后说明,定会有匪浅收益。
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,'
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'
二阶阶跃响应图的标识
1.二维曲线绘图基本指令演示:
t=(0:
plot(t,Y)
(图3-1)
图3-1
2.用图形表示连续调制波形
及其包络线:
axis([0,pi,-1,1])
(图3-2)
图3-2
3.通过绘制二阶系统阶跃响应,综合演示图形标识:
clf;
(图3-3)
图3-3
1,通过这次实验,我学会了MATLAB图形绘制的基本方法,掌握了MATLAB图形绘制程序编辑的基本指令,而且还懂得了利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形的各种标注。
2,感觉到了MATLAB的强大,而且很实用。
实验四采用SIMULINK的系统仿真
实验地点:
1、熟悉SIMULINK工作环境及特点
2、掌握线性系统仿真常用基本模块的用法
3、掌握SIMULINK的建模与仿真方法
4、子系统的创建和封装设计
1、实验内容:
1、SIMULINK仿真实际应用,建立双环调速的电流环系统的方框图模型,模型参数设为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调节器替代图中的比例积分调节器,调节
,
用使系统满足超调量15%,上升时间0.3s,调节时间0.4s的要求。
(4)要求对加入的PID控制器封装成一个模块使用
封装步骤1创建子系统
封装步骤2封装子系统
封装步骤3设置参数
封装步骤4修改和设计模块图标
1.画出双环调速的电流环系统的方框图模型,并在Simulink集成环境下建立模型:
(图4-1)
图4-1
2.绘制相应的响应曲线:
(图4-2)
图4-2
1、SIMULINK的基本操作:
1)启动SIMULINK软件包:
可以在MATLAB命令窗口键入“SIMULINK”命令,回车后将弹出SIMULINK图形库浏览器(SIMULINKLIBRARYBREWSER)界面,也可以选择“SIMULINK>
LIBRARYBREWSER”同样可以打开该界面;
2)SIMULINK用户接口:
SIMULINK仿真模型编译器界面有菜单栏、工具栏、状态栏等,通过这些接口可以调整仿真运行时间,仿真模式等,可以查看仿真运行进度等信息。
3)构建SIMULINK框图:
用鼠标将模块库中的所需的模块拖至系统模型中,然后添加连线将各个模块连接起来,模型中可以包含WORKSPACE中已定义的变量;
4)运行:
点击仿真模型编译器界面中的运行按钮,系统会在输入信号的作用下输出,通过SCOPE模块可以查看输出响应曲线,通过TOWORKSPACE模块可以将输出及时间信号送至工作区。
实验五控制系统的频域与时域分析
2015.10.28上午8:
30-9:
1、掌握控制系统数学模型的基本描述方法和相互转化
2、了解控制系统的稳定性分析方法
3、掌握控制系统频域与时域分析基本方法
1、
表示下列传递函数模型,并转化成其他的数学模型
(1)
(2)
(3)
(4)
2、一个单位负反馈开环传递函数为
试绘出系统闭环的根轨迹图;
并在跟轨迹图上任选一点,试计算该点的增益
及其所有极点的位置
num=[4,-2]
num=
4-2
den=[1025]
den=
1025
Gs=tf(num,den)
Gs=
4s-2
----------------
s^3+2s+5
Continuous-timetransferfunction.
num=0.5;
den=[12.51];
0.5
-------------------
s^2+2.5s+1
Continuous-timetransferfunction.
k=1;
num=k;
den=[24.510];
--------------------------
2s^3+4.5s^2+s
Ms=Gs/(Gs+1)
Ms=
---------------------------------------------------------------
4s^6+18s^5+24.25s^4+11s^3+5.5s^2+s
rlocus(Ms)%绘制系统闭环的根轨迹图(图5-1)
图5-1
pzmap(Ms)%绘制零极点图(5-2)
图5-2
[p,z]=pzmap(Ms)
p=
0.0000+0.0000i
-2.1254+0.0000i
-2.0000+0.0000i
-0.0623+0.4810i
-0.0623-0.4810i
-0.2500+0.0000i
z=
0
-2.0000
-0.2500
[k,poles]=rlocfind(Ms)
Selectapointinthegraphicswindow
selected_point=
0.5795+0.4927i
k=
4.1162
poles=
-2.4675+0.0000i
0.1088+1.0124i
0.1088-1.0124i
1.MATLAB通过函数tf(num,den)建立传递函数模型,通过zpk(z,p,k)建立零极点增益模型,通过ss(A,B,C,D)建立连续系统状态空间模型;
2.MATLAB通过ss2tf(),ss2zp(),tf2ss(),tf2zp(),zp2ss(),zp2tf()等函数将传递函数模型、零极点增益模型、状态空间模型等模型互相转换;
3.通过函数rlocus(sys)可绘制系统sys的根轨迹图,通过pzmap(sys
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 控制系统 仿真 实验 报告