计算机仿真实验.docx
- 文档编号:8222079
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:32
- 大小:504.37KB
计算机仿真实验.docx
《计算机仿真实验.docx》由会员分享,可在线阅读,更多相关《计算机仿真实验.docx(32页珍藏版)》请在冰豆网上搜索。
计算机仿真实验
实验1MATLAB语言平台及基本运算
一.实验目的
1.学习了解MATLAB语言环境;
2.练习MATLAB命令的基本操作;
3.练习m文件的基本操作;
4.学习MATLAB的基本矩阵运算;
5.学习MATLAB的点运算;
二.实验指导原理
1、常见数学函数
如:
输入x=[-4.85-2.3-0.21.34.566.75],则
ceil(x)=-4-20257
fix(x)=-4-20146
floor(x)=-5-3-1146
round(x)=-5-20157
2、系统的在线帮助
(1)help命令:
1).当不知系统有何帮助内容时,可直接输入help以寻求帮助:
>>help(回车)
2).当想了解某一主题的内容时,如输入:
>>helpsyntax(了解Matlab的语法规定)
3).当想了解某一具体的函数或命令的帮助信息时,如输入:
>>helpsqrt(了解函数sqrt的相关信息)
(2)lookfor命令
现需要完成某一具体操作,不知有何命令或函数可以完成,如输入:
>>lookforline(查找与直线、线性问题有关的函数)
3、常量与变量
系统的变量命名规则:
变量名区分字母大小写;变量名必须以字母打头,其后
可以是任意字母,数字,或下划线的组合。
此外,系统内部预先定义了几个有特殊意
义和用途的变量,见下表:
(1)数值型向量(矩阵)的输入
1).任何矩阵(向量),可以直接按行方式输入每个元素:
同一行中的元素用逗号(,)
或者用空格符来分隔;行与行之间用分号(;)分隔。
所有元素处于一方括号([]内;
例1:
>>Time=[111212345678910]
>>X_Data=[2.323.43;4.375.98]
2).系统中提供了多个命令用于输入特殊的矩阵:
上面函数的具体用法,可以用帮助命令help得到。
如:
helpzeros
ZEROSZerosarray.
ZEROS(N)isanN-by-Nmatrixofzeros.
ZEROS(M,N)orZEROS([M,N])isanM-by-Nmatrixofzeros.等等
4、数组(矩阵)的点运算
运算符:
+(加)、-(减)、./(右除)、.\(左除)、.^(乘方),
例4:
>>g=[1234];h=[4321];
>>s1=g+h,s2=g.*h,s3=g.^h,s4=g.^2,s5=2.^h
5、矩阵的运算
运算符:
+(加)、-(减)、*(乘)、/(右除)、\(左除)、^(乘方)、’(转置)等;
常用函数:
det(行列式)、inv(逆矩阵)、rank(秩)、eig(特征值、特征向量)、rref
(化矩阵为行最简形)
例5:
>>A=[20–1;132];B=[17–1;423;201];
>>M=A*B%矩阵A与B按矩阵运算相乘
>>det_B=det(B)%矩阵A的行列式
>>rank_A=rank(A)%矩阵A的秩
>>inv_B=inv(B)%矩阵B的逆矩阵
>>[V,D]=eig(B)%矩阵B的特征值矩阵V与特征向量构成的矩阵D
-1
>>X=A/B%A/B=A*B,即XB=A,求X
-1
>>Y=B\A%B\A=B*A,即BY=A,求Y
6、平面绘图
MATLAB能绘制表现非常丰富的平面图形,以下是一些常用的MATLAB绘图函数,以绘制不同平面图元和实现不同的平面图形绘制功能:
(1).利用plot函数可依据给定的数据绘制平面图形,如绘制正弦函数y=sin(x)的图形:
>>x=-2*pi:
pi/10:
2*pi?
>>y=sin(x)?
>>plot(x,y,’r*-’)
可以使用gridon绘图网格线和holdon同时绘制两个图形,还可以给图形加上各种注解和
处理:
x=-2*pi:
pi/10:
2*pi;
y=sin(x);
plot(x,y,‘r*:
’)
gridon%绘制网格线
holdon
y2=2*cos(x);
plot(x,y2,‘b+-’)
xlabel('x轴');%x轴注解
ylabel('y轴');%y轴注解
title('正弦和余弦函数');%图形标题
legend({'y=sin(x)','y2=cos(x)'});%图形注解
(2).MATLAB还可以在同一图形窗口完成多个子图的功能,如:
>>x=-2*pi:
pi/10:
2*pi;
>>y=sin(x);
>>y2=cos(x);
>>y3=2*cos(x);
>>y4=sin(x)+cos(x);
>>subplot(2,2,1);
>>plot(x,y,‘r*:
’)
>>subplot(2,2,2);
>>plot(x,y2,‘b+-’)
>>subplot(2,2,3);
>>plot(x,y3,‘gp:
’)
>>subplot(2,2,4)
>>plot((x,y4,‘kx’)
(3).其它的各种二维函数图
三.实验内容
1.学习了解MATLAB语言环境
(1)MATLAB语言操作界面:
在命令提示符位置键入命令,完成下述练习。
(2)MATLAB的数据格式
键入a=pi;b=exp
(1);改变数据结构,观察并记录变量值。
在workspace里双击变量便可在弹出的窗口中进行修改。
(3)变量查询,命令有who,whos,查询变量并作记录。
(4)联机帮助:
使用help查询who,whos命令。
(5)MATLAB语言演示:
键入命令intro,阅读命令平台内容;键入命令demo,MATLAB语言功能演示。
2.练习MATLAB命令的基本操作
(1)常数矩阵输入
a=[123]a=[1;2;3]记录结果,并比较不同;
>>a=[123]
>>a=[1;2;3]
a=a=
1231
2
3
b=[125]b=[125];记录结果,并比较不同;
>>b=[125]
>>b=[125];
b=>>
125
aa'bb';记录结果,比较变量加“'”后的区别;
>>a
>>a'
>>b
>>b'
a=ans=b=ans=
11231251
22
35
c=a*bc=a*b'记录显示结果与出错原因;
>>c=a*b
>>c=a*b'
c=?
?
?
Errorusing==>mtimes
125Innermatrixdimensionsmustagree.
2410
3615
a=[123;456;780]a^2a^0.5记录显示结果。
>>a=[123;456;780]
>>a^2
a=ans=
123303615
456668142
780395469
>>a^0.5
ans=
0.5977+0.7678i0.7519+0.0979i0.5200-0.4680i
1.4102+0.1013i1.7741+0.6326i1.2271-0.7467i
1.2757-1.0289i1.6049-1.0272i1.1100+1.6175i
(2)创建一个空白文件,建立一个循环命令程序,求解
,并保存为makesum.m,并使用open、run命令对makesum.m进行操作。
sum=0;
forn=1:
100
sum=sum+n;
n=n+1;
end
sum
sum=
5050
(3)执行下列命令
a=[123;456;780]
poly(a)、rank(a)、det(a)、trace(a)、inv(a)、eig(a)、diag(a)、tril(a)
并观察记录显示结果,使用联机帮助help查阅相应的m函数的意义和函数格式,并作记录。
poly求特征多项式和由根求多项式
>>poly(a)
ans=
1.0000-6.0000-72.0000-27.0000
rank求矩阵的秩
>>rank(a)
ans=
3
det求行列式
>>det(a)
ans=
27
trace矩阵的迹(对角线元素的和)
>>trace(a)
ans=
6
inv矩阵求逆
>>inv(a)
ans=
-1.77780.8889-0.1111
1.5556-0.77780.2222
-0.11110.2222-0.1111
eig计算矩阵特征系统
>>eig(a)
ans=
12.1229
-0.3884
-5.7345
diag建立或提取对角阵
>>diag(a)
ans=
1
5
0
tril下三角形矩阵
>>tril(a)
ans=
100
450
780
3.MATLAB的基本矩阵运算
(1)创建数值矩阵
键入a=[123;456;789]观察a(3,2),a(:
1)
>>a=[123;456;789]
a=
123
456
789
>>a(3,2)
ans=
8
>>a(:
1)
ans=
1
4
7
键入t=0:
10;u=0:
0.1:
10,观察向量t,u的值
>>t=0:
10;u=0:
0.1:
10
u=
Columns1through7
00.10000.20000.30000.40000.50000.6000
Columns8through14
0.70000.80000.90001.00001.10001.20001.3000
Columns15through21
1.40001.50001.60001.70001.80001.90002.0000
Columns22through28
2.10002.20002.30002.40002.50002.60002.7000
Columns29through35
2.80002.90003.00003.10003.20003.30003.4000
Columns36through42
3.50003.60003.70003.80003.90004.00004.1000
Columns43through49
4.20004.30004.40004.50004.60004.70004.8000
Columns50through56
4.90005.00005.10005.20005.30005.40005.5000
Columns57through63
5.60005.70005.80005.90006.00006.10006.2000
Columns64through70
6.30006.40006.50006.60006.70006.80006.9000
Columns71through77
7.00007.10007.20007.30007.40007.50007.6000
Columns78through84
7.70007.80007.90008.00008.10008.20008.3000
Columns85through91
8.40008.50008.60008.70008.80008.90009.0000
Columns92through98
9.10009.20009.30009.40009.50009.60009.7000
Columns99through101
9.80009.900010.0000
键入a(:
3)=[2;3;4];a,观察矩阵a的变化
>>a(:
3)=[2;3;4];a
a=
122
453
784
键入b=[11+2i;3+4i3],观察复数矩阵
>>b=[11+2i;3+4i3]
b=
1.00001.0000+2.0000i
3.0000+4.0000i3.0000
(2)生成特殊矩阵
键入a=ones(3,3);b=zeros(2,2);c=eye(4);magic(4);观察特殊矩阵
>>a=ones(3,3)
a=
111
111
111
>>b=zeros(2,2)
b=
00
00
>>c=eye(4)
c=
1000
0100
0010
0001
>>magic(4)
ans=
162313
511108
97612
414151
(3)矩阵乘、乘方、加减、右除、左除运算
键入a=[010;001;-6-11-6];b=[12;34;56];c=[110;011];
作矩阵乘运算
v1=c*av2=a*bv3=c*a*bv4=b*cv5=c*b
>>v1=c*a
v1=
011
-6-11-5
>>v2=a*b
v2=
34
56
-69-92
>>v3=c*a*b
v3=
810
-64-86
>>v4=b*c
v4=
132
374
5116
>>v5=c*b
v5=
46
810
矩阵乘方运算
a^2a^(1/2)
>>a^2
ans=
001
-6-11-6
366025
>>a^(1/2)
ans=
0.0000+0.4894i-0.0000-0.5588i-0.0000-0.0482i
0.0000+0.2891i0.0000+1.0195i-0.0000-0.2696i
0.0000+1.6179i0.0000+3.2553i0.0000+2.6374i
矩阵加减运算
a1=a+b*ca2=c*b-a(1:
2,1:
2)a3=a(1:
2,2:
3)+c*b
>>a1=a+b*c
a1=
142
375
-100
>>a2=c*b-a(1:
2,1:
2)
a2=
45
810
>>a3=a(1:
2,2:
3)+c*b
a3=
56
811
矩阵右除(常规除)a/c
>>a/c
ans=
0.33330.3333
-0.33330.6667
-5.6667-5.6667
矩阵左除a\b
>>a\b
ans=
-5.6667-8.6667
1.00002.0000
3.00004.0000
5.MATLAB的点运算
(1)练习点乘与点除
a1=[12;34];a2=0.2*a1;观察[a1a2][a1.*a2a1./a2]
>>[a1a2]
ans=
1.00002.00000.20000.4000
3.00004.00000.60000.8000
>>[a1.*a2a1./a2]
ans=
0.20000.80005.00005.0000
1.80003.20005.00005.0000
(2)编制m文件建立一个正弦、余弦函数,并在0~2pi间绘制sin(t)*cos(t)的图形。
t=(0:
0.001:
2*pi);
x=sin(t).*cos(t);
plot(x)
gridon
hold
xlabel('t')
ylabel('x')
四.实验报告要求
1.写明实验目的和实验原理。
实验原理中简要说明实验内容中所使用的MATLAB命令。
2.在实验过程和结果中,要列项目反映各自的实验内容,编写的程序,运行结果,按实验内容对结果的分析与判断。
程序和运行结果(图)可以从屏幕上复制,打印报告或打印粘贴在报告上。
不方便打印的同学,要求手动从屏幕上抄写和绘制。
3.简要写出实验心得和问题或建议。
实验二Simulink基本操作
一、实验目的
1、熟悉Simulink基本模块(信号发生器,数学模块,示波器)的使用。
2、掌握Simulink仿真参数的设置。
3、熟悉构建Simulink子系统。
4、学习自建模快的封装,帮助文档的编写。
5、掌握MATLAB命令窗口中运行Simulink。
二、实验指导原理
1、使用Simulink进行建模和仿真的过程
启动MATLAB之后,在命令窗口中输入命令“Simulink”或单击MATLAB工具栏上的Simulink图标,打开Simulink模块库窗口。
在Simulink模块库窗口中单击菜单项“File|New|Model”,就可以新建一个Simulink模型文件。
利用鼠标单击Simulink基础库中的子库,选取所需模块,将它拖动到新建模型窗口中的适当位置,如果需要对模型模块进行参数设置和修改,只需选中模型文件中的相应模块,单击鼠标右键,弹出快捷菜单,从中选取相应参数进行修改,如图所示。
点击
,即可仿真所建模块。
2、MATLAB命令窗口中运行Simulink。
若参数设置为变量,变量可先在MATLAB命令窗口中进行定义,并使用open,sim等命令直接运行信号。
然后在命令行提示符下输入>>a=1;b=1;open('s01.mdl');sim('s01.mdl');可得到同样的结果,
3、子系统建立与封装
首先将Simulink模块库中Ports&Subsystems子模块库中的Subsystem模块拖动到新建的模型文件窗口中,双击该Subsystem模块就会打开该子系统,其输入用In模块表示,输出用Out模块表示,一个子系统可以有多个输入、输出。
然后如下图所示建立子系统的内部模块。
上例中的子系统模型还存在一些缺点:
子系统中的参数(如增益G)、传递函数系数等是通过MATLAB工作空间传入的,这就破坏了子系统内部的隐藏性质。
对子系统封装以后,它就可以像Simulink模块库所提供的模块一样来使用。
选中上例中子系统模块,改名为Mysubsystem,选择菜单项“Edit|MaskSubsystem”,弹出MaskEditor对话框,
在Icon标签下主要是对封装模块的图标进行设置,可以设置图标的边框是否可见、图标是否透明、是否旋转、绘图单位等,还可使用命令来绘制图标,该标签下部给出了绘制图标的语法举例。
在Parameters标签下可以设置子系统的参数,本例中需要设置的参数就是G、A、B、C四个。
参数设置可以采用编辑框(Edit)、弹出列表(Popup)或复选框(Checkbox)形式。
一般情况下,初始化标签可使用默认值。
文档标签的三部分将分别显示在封装模块的参数设置对话框和帮助文档中,
三、实验内容
1、通过示波器观察1MHz,幅度为15mV的正弦波和100KHz,幅度为5mV的正弦波相乘的结果。
写出数学表达式。
通过使用三踪示波器同时观察1MHz、100KHz正弦波以及相乘的结果。
注意设置仿真参数和示波器的扫描参数和幅度显示参数。
2、将50Hz,有效值为220V的正弦交流电信号通过全波整流(绝对值
)模
块,观察输出波形。
3、学习构建SIMULINK子系统:
构建一个子系统,使得它具有将输入信号m(t)(如一个100Hz的正弦波)和一个常数C相加后再和一个1000Hz的幅度为A的正弦波相乘的功能。
y(t)=A(m(t)+C)sin(2*pi*f*t)
其中f=1000Hz。
保存为s23.用sim指令在命令空间启动模型进行仿真:
在Matlab命令空间中用语句对参数A,C,f进行设置,并对采用命令open打开,采用sim指令进行仿真。
请给出指令语句。
>>A=2;C=2;f=1000;open('s23.mdl');sim('s23.mdl')
4、对子系统进行封装:
请对3中所建立子系统进行封装(Mask),编写参数输入对话框和帮助文档,并将模块放入一个自己新建的库中,请记录整个的操作过程。
5、MATLAB编程与Simulink模型混合编程:
在MATLAB的命令行中以命令的形式生成1MHz,幅度为15mV的正弦波和100KHz,幅度为5mV的正弦波,然后利用Simulink中的FromWorkspace模块从工作空间中读入,在Simulink中使用Product模块实现其相乘后,再通过ToWorkspace模块将Ssimulink中产生的数据回送到工作空间,从而实现MATLAB编程与Simulink模型相结合的混合仿真。
四、实验报告要求:
1.写明实验目的和实验原理。
实验原理中简要说明实验内容中所使用的MATLAB命令。
2.在实验过程和结果中,要列项目反映各自的实验内容,编写的程序,运行结果,按实验内容对结果的分析与判断。
程序和运行结果(图)可以从屏幕上复制,打印报告或打印粘贴在报告上。
不方便打印的同学,要求手动从屏幕上抄写和绘制。
3.简要写出实验心得和问题或建议。
实验三通信系统的Simulink建模与仿真
一、实验目的
1、熟悉通信系统中数字2ASK调制系统、频率合成技术和采样定理的基本原理。
2、了解2ASK调制解调、锁相环频率合成和采样定理的建模方法。
3、掌握Simulink常用通信仿真模块参数的设置。
二、实验指导原理
1、2ASK调制解调系统建模与仿真
在一般情况下,调制信号为具有一定波形形状的二进制序列,则二进制振幅键控信号可用下式描述
2ASK信号的产生原理框图如图2.1所示。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机仿真 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)