MATLAB与控制系统仿真实验报告.docx
《MATLAB与控制系统仿真实验报告.docx》由会员分享,可在线阅读,更多相关《MATLAB与控制系统仿真实验报告.docx(11页珍藏版)》请在冰豆网上搜索。
MATLAB与控制系统仿真实验报告
《MATLAB与控制系统仿真》
实验报告
2013-2014学年第1学期
专业:
班级:
学号:
姓名:
实验三MATLAB图形系统
一、实验目的:
1.掌握绘制二维图形的常用函数。
2.掌握绘制三维图形的常用函数。
3.熟悉利用图形对象进行绘图操作的方法。
4.掌握绘制图形的辅助操作。
二、实验原理:
1,二维数据曲线图
(1)绘制单根二维曲线plot(x,y);
(2)绘制多根二维曲线plot(x,y)当x是向量,y是有一维与x同维的矩阵时,则绘制多根不同颜色的曲线。
当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。
(3)含有多个输入参数的plot函数plot(x1,y1,x2,y2,…,xn,yn)
(4)具有两个纵坐标标度的图形plotyy(x1,y1,x2,y2)
2,图形标注与坐标控制
1)title(图形名称);
2)xlabel(x轴说明)
3)ylabel(y轴说明)
4)text(x,y图形说明)
5)legend(图例1,图例2,…)
6)axis([xminxmaxyminymaxzminzmax])
3,图形窗口的分割
subplot(m,n,p)
4,三维曲线
plot3(x1,y1,z1,选项1,x2,y2,选项2,…,xn,yn,zn,选项n)
5,三维曲面
mesh(x,y,z,c)与surf(x,y,z,c)。
一般情况下,x,y,z是维数相同的矩阵。
X,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。
6,图像处理
1)imread和imwrite函数这两个函数分别用于将图象文件读入matlab工作空间,以及将图象数据和色图数据一起写入一定格式的图象文件。
2)image和imagesc函数这两个函数用于图象显示。
为了保证图象的显示效果,一般还应使用colormap函数设置图象色图。
三、实验仪器和设备:
计算机一台(带有MATLAB6.5以上的软件环境)。
四、预习要求:
1.复习二维与三维图形的绘图函数。
2.复习图形辅助操作。
五、实验内容及步骤:
1,设
,在x=0~2π区间取101点,绘制函数曲线。
2,已知y1=x2,y2=cos(2x),y3=y1*y2,完成下列操作:
(1)在同一坐标系下用不同的颜色和线型绘制三条曲线;
(2)分别用条形图、阶梯图、杆图和填充图绘制三条曲线。
3,已知
在-5<=x<=5区间绘制函数曲线。
4,绘制函数的曲面图和等高线
其中x的21个值均匀分布在[-5,5]范围,y的31个值均匀分布在[0,10],要求使用subplot(2,1,1)和subplot(2,1,2)将产生的曲面图和登高图画在同一个窗口上。
5.画出函数
的曲面及等高线图。
6.根据
绘制平面曲线,并分析参数
对其形状的影响。
4、心得体会:
通过这次实验我能熟练掌握二维和三维图以及其他特殊图形的制作,弄清楚了基本的图形操作规则,大大加深了我对matlab的兴趣。
实验二MATLAB程序设计
一、实验目的
1.掌握利用if语句实现选择结构的方法。
2.掌握利用switch语句实现多分支选择结构的方法。
3.掌握利用for语句实现循环结构的方法。
4.掌握利用while语句实现循环结构的方法。
二、实验设备及条件
计算机一台(带有MATLAB6.5以上的软件环境)。
三、实验内容
1.编写求解方程
的根的函数(这个方程不一定为一元二次方程,因
的不同取值而定),这里应根据
的不同取值分别处理,有输入参数提示,当
时应提示“为恒不等式!
”。
并输入几组典型值加以检验。
clear,clc
a=input('请输入一个数a=');
b=input('请输入一个数b=');
c=input('请输入一个数c=');
m=b^2-4*a*c;
ifa==0
ifb==0
'为恒不等式'
end
end
m=b^2-4*a*c;
ifm>0
x1=(-b+sqrt(m))/(2*a)
x2=(-b-sqrt(m))/(2*a)
elseifm==0
x=(-b)/(2*a)
else
'不存在正实根'
end
2.输入一个百分制成绩,要求输出成绩等级A+、A、B、C、D、E。
其中100分为A+,90分~99分为A,80分~89分为B,70分~79分为C,60分~69分为D,60分以下为E。
要求:
(1)用switch语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
clear,clc
fork=1:
10
a(k)={89+k};b(k)={79+k};
c(k)={69+k};d(k)={59+k};
end
A=cell(3,6);
A(1,:
)={'a','b','c','d','e','f'};
A(2,:
)={85,76,95,100,40,65};
fork=1:
6
switchA{2,k}
case100
r='A+';
casea
r='A';
caseb
r='B';
casec
r='C';
cased
r='D';
otherwise
r='E';
end
A(3,k)={r};
end
A
A='a''b''c''d''e''f'
[85][76][95][100][40][65]
'B''C''A''A+''E''D'
3.利用for循环语句编写计算n!
的函数程序,取n分别为-89、0、3、5、10验证其正确性(输入n为负数时输出出错信息)。
clear,clc
n=input('请输入一个正数n=');
ifn<0
'输入错误'
elseifn==0
'n!
=0'
elseifn==1
'n!
=1'
else
y=1;
fori=1:
1:
n
y=y*i;
i=i+1;
end
y
end
请输入一个正数n=-89ans=输入错误
请输入一个正数n=0ans=n!
=0
请输入一个正数n=1ans=n!
=1
请输入一个正数n=3y=6
请输入一个正数n=10y=
四、实验心得体会:
通过本次实验课,我能熟练运用for循环语句,switch条件语句以及if条件语句的新用法,和在C中的区别。
尽管如此,但是在实验中依然容易把for循环跟C语言中的for语句弄混,最后经过不懈努力下,终于弄明白了两者之间的差别,使我能更好的运用这些指令语句。