MATLAB 与控制系统仿真实验
一、对参加实验学生的总要求
1.认真复习有关理论知识,明确每次实验目的,了 解实验相关软件操作,熟悉实验内容和方法。 2.实验过程中注意仔细观察,认真记录有关数据和 图像,并经由指导教师查验后方可结束实验。 3.应严格遵守实验室觃章制度,服从实验室教师的 安排和管理。
4.对实验仪器的操作使用严格按照实验室要求进 行。
二、实验总要求
1.封面:注明实验名称、实验时间和实验地点,实 验人员班级、学号(全号)和姓名等。
2.内容方面:注明实验所用设备、仪器及实验步骤 方法;记录清楚实验所得的原始数据和图像,并按实验 要求绘制相关图表、曲线或计算相关数据;认真分析所 得实验结果,得出明确实验结论。并注明该结论所依据 的原理和理论;对实验进行反馈回顾,总结出实验方法 要领和注意事项,对实验失败的原因进行分析剖解,总 结出实验的经验和教训。
3.文字方面,撰写觃范,杜绝错别字。 4.杜绝抄袭,杜绝提供不真实的实验内容。
1
实验二 MATLAB 绘图基础
一、实验目的
了解MATLAB 常用命令和常见的内建函数使用。 熟悉矩阵基本运算以及点运算。
掌握MATLAB 绘图的基本操作:向量初始化、向量基本运算、绘图命令plot,plot3,mesh,surf 使用、绘制多个图形的方法。
二、实验原理
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 ([xmin xmax ymin ymax zmin zmax]) 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函数设置图象色图。
2
7, 建立并执行M 文件multi_plot.m,使之画出曲线。
三、实验方法(参考程序)
x=linspace(0,4*pi);%向量初始化 y1=sin(2*x); y2=2*cos(2*x); plot(x,y1, x,y2); axis([0 4*pi -2 2]);
title('Plot of y=sin(2x) and its derivative'); xlabel('x'); ylabel('y');
legend('sin(2x)','2cos(2x)',-1); grid on;
四、实验要求
1. 分析给出的MATLAB 参考程序,理解MATLAB 程序设计的思维方法及其结构。
2. 添加或更改程序中的指令和参数,预想其效果并验证,并对各语句做出详细注释。对不熟悉的指令可通过HELP 查看帮助文件了解其使用方法。达到熟悉MATLAB 画图操作 的目的。
3. 总结MATLAB 中常用指令的作用及其调用格式。
五、实验内容
1、实现同时画出多图还有其它方法,请思考怎样实现,并给出一种实现方法。 (参考程序如下) (1)%% subplot
x=linspace(0,4*pi);%向量初始化 y1=sin(2*x); subplot(2,1,1) plot(x,y1);
axis([0 4*pi -2 2]);
title('Plot of y=sin(2x)'); xlabel('x'); ylabel('y'); grid on;
subplot(2,1,2) y2=2*cos(2*x); plot(x,y2);
axis([0 4*pi -2 2]);
title('Plot derivative of y=sin(2x):y=2cos(2x) '); xlabel('x'); ylabel('y'); grid on;
(2)%hold on;hold off
3
x=linspace(0,4*pi);%向量初始化 y1=sin(2*x); plot(x,y1,'r--'); hold on;
y2=2*cos(2*x); plot(x,y2);
axis([0 4*pi -2 2]);
title('Plot of y=sin(2x) and its derivative'); xlabel('x'); ylabel('y');
legend('sin(2x)','2cos(2x)',-1); grid on; hold off;
(3)%%figure1,figure2...
x=linspace(0,4*pi);%向量初始化 %%figure1,figure2...
x=linspace(0,4*pi);%向量初始化 figure(1); y1=sin(2*x); plot(x,y1,'r--'); axis([0 4*pi -1 1]);
title('Plot of y=sin(2x)'); xlabel('x'); ylabel('y'); grid on;
figure(2);
y2=2*cos(2*x); plot(x,y2);
axis([0 4*pi -2 2]);
title('Plot derivative of y=sin(2x):y=2cos(2x)'); xlabel('x'); ylabel('y'); grid on;
2 、思考三维曲线( plot3 ) 与曲面(mesh, surf) 的用法,( 1 ) 绘制参数方程
x(t) ??t 3 sin(3t)e?t , y ??t 3 cos(3t)e?t , z ??t 2 的三维曲线;( 2 ) 绘制二元函数
z ??f( x, y) ???x2 ??2x) e??x2 ??y2 ?xy ,在XOY 平面内选择一个区域(-3:0.1:3,-2:0.1:2),然后绘制出其三维表面图形。(以下给出PLOT3 和SURF 的示例) (有关详细公式实验课上给出)。 (1)%eg.plot3 :绘制参数方程x= sin(t),y=cos(t),z=8*t 的三维曲线 t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),8*t);
(2)% eg. mesh: 绘制二元方程z=(实验课上给出)的三维曲面,x,y 的取值范围为[-8,8]。 [x,y]=meshgrid(-8:0.5:8,-8:0.5:8); c=sqrt(x.^2+y.^2)+eps;
4
z=sin(c)./c; surf(x,y,z); shading flat;
5