电气与自动化工程学院综合实验报告系统仿真综合实验报告Word格式.docx
《电气与自动化工程学院综合实验报告系统仿真综合实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《电气与自动化工程学院综合实验报告系统仿真综合实验报告Word格式.docx(80页珍藏版)》请在冰豆网上搜索。
”后面输入交互的命令,这些命令就立即被执行。
在MATLAB中,一连串命令可以放置在一个文件中,不必把它们直接在命令窗口内输入。
在命令窗口中输入该文件名,这一连串命令就被执行了。
因为这样的文件都是以“.m”为后缀,所以称为m-文件。
2.m-文件编辑窗口(TheEditWindow)
我们可以用m-文件编辑窗口来产生新的m-文件,或者编辑已经存在的m-文件。
在MATLAB主界面上选择菜单“File/New/M-file”就打开了一个新的m-文件编辑窗口;
选择菜单“File/Open”就可以打开一个已经存在的m-文件,并且可以在这个窗口中编辑这个m-文件。
3.图形窗口(TheFigureWindow)
图形窗口用来显示MATLAB程序产生的图形。
图形可以是2维的、3维的数据图形,也可以是照片等。
MATLAB中矩阵运算、绘图、数据处理等内容参见教材《自动控制系统计算机仿真》的相关章节。
Simulink是MATLAB的一个部件,它为MATLAB用户提供了一种有效的对反馈控制系统进行建模、仿真和分析的方式。
有两种方式启动Simulink:
1.在Commandwindow中,键入simulink,回车。
2.单击工具栏上Simulink图标。
启动Simulink后,即打开了Simulink库浏览器(Simulinklibrarybrowser)。
在该浏览器的窗口中单击“Createanewmodel(创建新模型)”图标,这样就打开一个尚未命名的模型窗口。
把Simulink库浏览器中的单元拖拽进入这个模型窗口,构造自己需要的模型。
对各个单元部件的参数进行设定,可以双击该单元部件的图标,在弹出的对话框中设置参数。
实验内容
1用MATLAB可以识别的格式输入下面两个矩阵
再求出它们的乘积矩阵C,并将C矩阵的右下角2×
3子矩阵赋给D矩阵。
赋值完成后,调用相应的命令查看MATLAB工作空间的占用情况。
答案:
1)程序:
A=[1233;
2357;
1357;
3239;
1894];
B=[1+4i43678;
233554+2i;
26+7i5342;
189543];
C=A*B
D=C(4:
5,4:
6)
结果:
C=
1.0e+002*
Columns1through4
0.1400+0.0400i0.5200+0.2100i0.51000.4000
0.2500+0.0800i1.0300+0.3500i1.03000.7700
0.2400+0.0400i0.9900+0.3500i1.00000.7100
0.2200+0.1200i1.0800+0.2100i1.11000.8200
0.3900+0.0400i1.1400+0.6300i1.08000.9300
Columns5through6
0.41000.3100+0.0400i
0.77000.5900+0.0600i
0.70000.5100+0.0600i
0.79000.6500+0.0400i
0.99000.7000+0.1600i
D=
82.000079.000065.0000+4.0000i
93.000099.000070.0000+16.0000i
工作空间:
NameValue
A<
5x4double>
B<
4x6double>
C<
5x6double>
D[82.000000000000000+0.000000000000000i,79.000000000000000+0.000000000000000i,65.000000000000000+4.000000000000000i;
93.000000000000000+0.000000000000000i,99.000000000000000+0.000000000000000i,70.000000000000000+16.000000000000000i]
小结:
matlab通过确认下标,可以对矩阵进行插入子块、提取子块和重排子块的操作。
如果提取子块时,n或m是常数,则返回指定的行列;
如果n或m是向量,则返回的是指定矩阵的子块。
2分别用for和while循环结构编写程序,求出
程序1:
s=0;
fork=0:
63;
s=s+2^k;
end
disp('
Thesumis'
),s
Thesumis
s=
1.8447e+019
程序2:
s=0;
k=0;
whilek<
=63;
k=k+1;
在for循环语句,循环体内不能出现对循环控制变量的重新设置,否则会出错;
while循环语句中,在语句内必须有可以修改循环控制变量的命令,否则将陷入死循环,除非循环语句中有控制退出循环的语句。
3选择合适的步距绘制出下面的图形
(1)
,其中
(2)
t=0.1:
0.001:
10;
y=sin(t.^(-1));
plot(t,y)
t=0.1:
0.001:
10是代表一个步长为0.001的向量,t.^(-1)是代表这个向量的点运算,而不是代表这个向量的向量运算,运算才不会出错。
t=linspace(-pi,pi,60);
y=sin(tan(t))-tan(sin(t));
linspace函数能够生成线性分度的向量。
4对下面给出的各个矩阵求取矩阵的行列式、秩、特征多项式、范数。
,
程序:
A=[7.53.500;
8334.10;
09103-1.5;
003.719.3];
B=[5765;
71087;
68109;
57910];
C=[1234;
5678;
9101112;
13141516];
D=[3-3-24;
5-518;
1185-7;
5-1-3-1];
detA=det(A),rankA=rank(A),polyA=poly(A),normA=norm(A)
detB=det(B),rankB=rank(B),polyB=poly(B),normB=norm(B)
detC=det(C),rankC=rank(C),polyC=poly(C),normC=norm(C)
detD=det(D),rankD=rank(D),polyD=poly(D),normD=norm(D)
detA=
4.3222e+005
rankA=
4
polyA=
1.0e+005*
0.0000-0.00160.0713-1.06594.3222
normA=
103.7228
detB=
1.0000
rankB=
polyB=
1.0000-35.0000146.0000-100.00001.0000
normB=
30.2887
detC=
4.7332e-030
rankC=
2
polyC=
1.0000-34.0000-80.0000-0.0000-0.0000
normC=
38.6227
detD=
595.0000
rankD=
polyD=
1.0000-2.0000-32.0000532.0000595.0000
normD=
16.6958
det、rank、poly、norm分别求出矩阵的行列式、秩、特征多项式以及范数
5求解下面的线性代数方程,并验证得出的解真正满足原方程。
(a)
,(b)
(a).
A=[721-2;
9153-2;
-2-2115;
13213];
B=[4;
7;
-1;
0];
X=inv(A)*B
X=
0.4979
0.1445
0.0629
-0.0813
(b)
A=[13213;
721-2;
7153-2;
-2-2115];
B=[90;
64;
117;
-2-1];
结果
0.92470.4695
0.41400.2186
-0.19070.0791
0.5550-0.0987
求矩阵A*B=C,已知A,C求B,则应用逆矩阵来求解即B=(A*(-1))*C
6假设有一组实测数据
x
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
y
2.3201
2.6470
2.9707
3.2885
3.6008
3.9090
4.2147
4.5191
4.8232
5.1275
用最小二乘法拟合,求出相应的二次函数。
程序
x=0.1:
0.1:
1;
y=[2.32012.64702.97073.28853.60083.90904.21474.51914.82325.1275];
p=polyfit(x,y,2)
p=
-0.15633.28281.9967
polyfit是最小二乘拟合的函数,本题说明用最小二乘拟合求得的二次函数为y=-0.1563*x^2+3.2828*x+1.9967
7考虑线性微分方程
(1)试用Simulink搭建起系统的仿真模型,并绘制出仿真结果曲线。
(2)将给定的微分方程转换成状态方程,并建立S函数,再利用Simulink进行仿真。
参数设置:
Integrator1,2,3,4:
Initialcondition分