系统仿真实验报告.docx
- 文档编号:2478980
- 上传时间:2022-10-30
- 格式:DOCX
- 页数:28
- 大小:181.94KB
系统仿真实验报告.docx
《系统仿真实验报告.docx》由会员分享,可在线阅读,更多相关《系统仿真实验报告.docx(28页珍藏版)》请在冰豆网上搜索。
系统仿真实验报告
系统仿真实验报告
实验一MATLAB中矩阵与多项式的基本运算1
实验二MATLAB绘图命令6
实验三MATLAB程序设计8
实验四MATLAB的符号计算与SIMULINK的使用12
实验五MATLAB在控制系统分析中的应用15
实验六连续系统数字仿真的基本算法26
实验一MATLAB中矩阵与多项式的基本运算
一、实验任务
1.了解MATLAB命令窗口和程序文件的调用。
2.熟悉如下MATLAB的基本运算:
①矩阵的产生、数据的输入、相关元素的显示;
②矩阵的加法、乘法、左除、右除;
③特殊矩阵:
单位矩阵、“1”矩阵、“0”矩阵、对角阵、随机矩阵的产生和运算;
④多项式的运算:
多项式求根、多项式之间的乘除。
二、基本命令训练
1.eye(m)
>>eye(4)
ans=
1000
0100
0010
0001
2.one(n)、ones(m,n)
>>ones(3,4)
ans=
1111
1111
1111
3.zeros(m,n)
>>zeros(2,3)
ans=000
000
4.rand(m,n)
>>rand(3,4)
ans=
0.95010.48600.45650.4447
0.23110.89130.01850.6154
0.60680.76210.82140.7919
5.diag(v)
>>v=[111];
X=diag(v)
X=
100
010
001
>>X=diag(v,1)
X=
0100
0010
0001
0000
>>X=diag(v,2)
X=
00100
00010
00001
00000
00000
6.A\B、A/B、inv(A)*B、B*inv(A)
Matlab提供了两种除法运算:
左除(\)和右除(/)。
一般情况下,x=a\b是方程a*x=b的解,而x=b/a是方程x*a=b的解。
a=[1 2 3;4 2 6;7 4 9];b=[4;1;2];x=a\b
x=
-1.5000
2.0000
0.5000
>>a=[1127;385;436];b=flipud(a)
b=
436
385
1127
>>a/b
ans=
001
010
100
如果a为非奇异矩阵,则a\b和b/a可通过a的逆矩阵与b阵得到:
a\b=inv(a)*b
b/a=b*inv(a)
7.roots(p)
求解多项式x^3-6x^2-72x-27=0的根
>>p=[1-6-72-27];roots(p)
ans=
12.1229
-5.7345
-0.3884
8.Poly
>>r=[123];poly(r)
ans=
1-611-6
创建以之为根的方程为:
x^3-6*x^2+11*x-6=0
>>A=[123;456;780];
P=poly(A)
P=
1.0000-6.0000-72.0000-27.0000
创建特征方程为λ^3-6*λ^2-72*λ-27=0
9.conv、deconv
>>a=[1234];b=[3-5823-7];conv(a,b)
ans=
31736438771-28
>>deconv(a,b)
ans=
0
>>deconv(b,a)
ans=
3-11
>>a=[10-1];b=[1-1];deconv(a,b)
ans=
11
>>conv(a,b)
ans=
1-1-11
10.A*B与A.*B的区别
>>a=[12;34];b=[45;67];c=a*b
c=
1619
3643
>>a.*b
ans=
410
1828
11.who与whos的使用
>>who
Yourvariablesare:
APaansbcr
>>whos
NameSizeBytesClass
A3x372doublearray
P1x432doublearray
a2x232doublearray
ans2x232doublearray
b2x232doublearray
c2x232doublearray
r1x324doublearray
Grandtotalis32elementsusing256bytes
12.disp、size(a)、length(a)的使用
>>d=[12;34];disp(d)
12
34
>>disp('d')
d
>>size(d)
ans=
22
>>length(d)
ans=
2
实验二MATLAB绘图命令
一、实验任务
熟悉MATLAB基本绘图命令,掌握如下绘图方法:
1.坐标系的选择、图形的绘制;
2.图形注解(题目、标号、说明、分格线)的加入;
3.图形线型、符号、颜色的选取。
二、基本命令训练
1.plot2.loglog3.semilogx4.semilogy
5.polar6.title7.xlabel8.ylabel
9.text10.grid11.bar12.stairs
13.contour
三、实验举例
1.t=[0:
pi/360:
2*pi*22/3];
x=93*cos(t)+36*cos(t*4.15);
y=93*sin(t)+36*sin(t*4.15);
plot(y,x),grid;
2.t=0:
0.05:
100;
x=t;y=2*t;z=sin(2*t);
plot3(x,y,z,'b:
')
3.t=0:
pi/20:
2*pi;
y=sin(x);
stairs(x,y)
4.th=[pi/200:
pi/200:
2*pi]';
r=cos(2*th);
polar(th,r),grid
5.th=[0:
pi/10:
2*pi];
x=exp(j*th);
plot(real(x),imag(x),'r*');
grid;
实验三MATLAB程序设计
一、实验任务
1.熟悉MATLAB程序设计的方法和思路;
2.掌握循环、分支语句的编写,学会使用lookfor、help命令。
二、程序举例
1.计算1~1000之内的斐波那契亚数列
f=[1,1];
i=1;
whilef(i)+f(i+1)<1000
f(i+2)=f(i)+f(i+1);
i=i+1;
end
f,i
f=
Columns1through14
1123581321345589144233377
Columns15through16
610987
i=15
2.m=3;
n=4;
fori=1:
m
forj=1:
n
a(i,j)=1/(i+j-1);
end
end
formatrat
a
a=
11/21/31/4
1/21/31/41/5
1/31/41/51/6
3.m=3;
n=4;
fori=1:
m
forj=1:
n
a(i,j)=1/(i+j-1);
end
end
a
a=
11/21/31/4
1/21/31/41/5
1/31/41/51/6
4.x=input('请输入x的值:
');
ifx==10
y=cos(x+1)+sqrt(x*x+1);
else
y=x*sqrt(x+sqrt(x));
end
y
x=input('请输入x的值:
')
请输入x的值:
10
x=10
>>ifx==10
y=cos(x+1)+sqrt(x*x+1);
else
y=x*sqrt(x+sqrt(x));
end
y
y=10.0543
>>x=input('请输入x的值:
')
请输入x的值:
8
x=8
>>ifx==10
y=cos(x+1)+sqrt(x*x+1);
else
y=x*sqrt(x+sqrt(x));
end
y
y=26.3253
5.去掉多项式或数列开头的零项
p=[0001302009];
fori=1:
length(p),ifp
(1)==0,p=p(2:
length(p));
end;
end;
p
p=
1302009
6.建立MATLAB的函数文件,程序代码如下,以文件名ex2_4.m存盘
functionf=ffibno(n)
%ffibno计算斐波那契亚数列的函数文件
%n可取任意自然数
%程序如下
f=[1,1];
i=1;
whilef(i)+f(i+1) f(i+2)=f(i)+f(i+1); i=i+1; end >>exe2_4(200) ans= 1123581321345589144 >>lookforffibno exe2_4.m: %ffibno计算斐波那契亚数列的函数文件 >>helpexe2_4 ffibno计算斐波那契亚数列的函数文件 n可取任意自然数 三、程序设计题 用一个MATLAB语言编写一个程序: 输入一个自然数,判断它是否是素数,如果是,输出“Itisoneprime”,如果不是,输出“Itisnotoneprime.”。 要求通过调用子函数实现。 最好能具有如下功能: ①设计较好的人机对话界面,程序中含有提示性的输入输出语句。 ②能实现循环操作,由操作者输入相关命令来控制是否继续进行素数的判断。 如果操作者希望停止这种判断,则可以退出程序。 ③如果所输入的自然数是一个合数,除了给出其不是素数的结论外,还应给出至少一种其因数分解形式。 例: 输入6,因为6不是素数。 则程序中除了有“Itisnotoneprime”的结论外,还应有: “6=2*3”的说明。 >> close all; c=input('是否进行素数运算 1为是 0为否: ') while c==1 a=input('请输入一个自然数: '); if a==1 disp('1既不是质数也不是合数'); else if factor(a)==a disp('It IS one prime'); else disp('It is not one prime'); b=factor(a); fprintf('%3d=',a) for j=1: (length(b)-1) fprintf('%3d *',b(j)) end fpri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统 仿真 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)