1实验一MATLAB软件的安装和使用一、实验目的1.熟悉MATLAB的主界面;2.学会利用MATLAB的联机帮助系统和命令窗口帮助系统;二、实验设备PC机、Windowsxp操作系统和MATLAB2010a软件三、实验内容参看课本310内容。实验题目改为“MATLAB软件的安装和使用”实验二数组和矩阵处理一、实验目的1.掌握数组的相关操作:创建,寻访,运算。2.掌握矩阵的构建与运算方法及相关函数;3.掌握多项式的运算方法。二、实验内容(一)matlab中数值运算的基础理论和相关命令“数值运算”是matlab的常用功能,也是其最基础的内容,要认真学习,扎实掌握。参看课本2.1、2.2、2.5和2.6节的内容,掌握矩阵和数组,多项式,元胞数组和结构数组的相关操作和简单应用并运行书中例题,细心体会。(二)数值运算中常见问题处理1.设2212a,4032b,21c,)2(eyed,求解下列问题:(1)3×a(2)a+b(3)a*d(4)a.*d(5)a\b(6)a.\b(7)a.^b(8)矩阵a的逆阵22.设三阶矩阵A,B,满足BAABAA61,其中710004100031A请求出矩阵B,并代入关系式进行验证。3.已知矩阵44434241343332312423222114131211A计算:(1)A(:,1)(2)A(2,:)(3)A(:,2:3)(4)A(:,1:2:3)(5)[eye(size(A)),A';zeros(size(A)),A^2]5.求解下列方程(1)0189234XXX(2)12224732258232432143214321421xxxxxxxxxxxxxxx6.设矩阵a、b、c和d的定义如下:]2[a;4112b;02112c;9011d,试判断下列表达式的值:(1))(~ba(2)cbca&(3)dc3实验三数值运算和特殊矩阵的设计(matlab符号计算)一、实验目的1.掌握符号变量及符号表达式的构建;2.掌握符号表达式的运算方法及相关函数。二、实验内容(一)matlab符号运算的基本知识和相关命令Matlab的数学运算分为数值运算和符号运算。符号运算具有以下特点:一、运算以推理解析的方式进行,因此不受计算误差积累问题困扰;二、符号计算,或给出完全正确的封闭解,或给出任意精度的数值解(当封闭解不存在时);三、符号计算指令的调用比较简单,经典教科书公式相近;四、计算所需时间较长,有时难以忍受。涉及符号计算的指令使用、运算符操作、计算结果可视化、程序编制以及在线帮助系统都是十分完整、便捷的。认真学习课本3.1,3.2,3.3,3.4和3.6各节内容,掌握符号运算的相关知识,运行书中例题。(二)matlab符号运算常见问题处理1.创建符号表达式)tan()cos()sin()(xxxxf,并计算该符号表达式在1x、2x处的值。2.设x为符号变量,12)(24xxxf,536)(23xxxxg,试进行如下运算:(1))()(xgxf(2))()(xgxf(3)对)(xf进行因式分解3.求下列表达式的极限(1)求xx)(cos当0x时的极限(2)求)1ln()cos1(1cossin32xxxxx当0x时的极限4.求下列表达式的积分4(1)dxxxx111(2)80)(sindxxx(3)dxdyxexy5.求下列表达式的微分(1)计算xxxf1sin)cos()(22的2次微分(2)计算5)sin()(xxxf的5次微分6.利用符号运算计算级数65564334212之和。7.求解下列方程组134143yxyx8.计算下列微分方程(1)求xeyyy244的通解(2)求22yxyyx,1|1xy实验四图形设计及界面设计一、目的与要求(1)熟练掌握matlab二维曲线的绘制和修饰。(2)掌握三维图形的绘制。(3)熟练掌握句柄图形的概念和GUI设计。二、实验设备PC机、Windowsxp操作系统和MATLAB2010a软件三、内容与步骤(一)图形设计及界面设计的基础知识MATLAB作为世界顶级的数值计算工具软件具有极其强大的数据可视化功能,可制作具有出版质量图形。详细介绍MATLAB这一部分的内容的书籍有《matlab图形与动画设计》(国防工业出版社),《基于matlab的计算机图形与动画技术》(清华大学出版社)。认真学习课本4.1(重点),4.3中的4.3.1,4.3.2两节,以及4.7。(二)简单的图形设计及界面设计参看课本336页内容,将课本中的题目改成“图形设计及界面设计”5实验五程序设计一、目的与要求1、掌握MATLAB程序设计的流程和M文件的结构2、掌握循环语句、条件转移试探结构的使用方法3、掌握内联函数的创建、查看和调用方法二、实验设备PC机、Windowsxp操作系统和MATLAB2010a软件三、内容与步骤(一)matlab程序设计基本知识Matlab编程属于面向对象编程,Matlab的编程语言称为m语言。学习matlab程序设计对灵活运用matlab解决实际问题,充分调动起科学技术资源十分有用。认真学习课本中5.1(5.1.7不看),5.2,5.3,5.4,5.6中的内容,掌握matlab程序设计的相关知识,。(二)简单的matlab程序设计1、实验内容(1)使用for…end循环编程求出1+3+5…+99的值。(2)使用for…end循环将单位阵zeros(6,1)转换为列向量(3)采用while…end结构11113521yn,求y3时的最大n值和y值。(4)采用条件转移if…else…end结构根据不同的分段表达式04462()685/281xxxfxxxx≤≤≤≥,,绘制分段函数曲线。(5)用switch…case开关结构得出各月份的季节.(6)if与break命令结合,停止while循环。计算11113521yn值,当y=3时终止计算。2.在M文件编辑/调试器窗口编写计算二阶系统时域响应的M函数文件,并在MATLAB命令窗口中调用该文件,如:。在MATLAB命令窗口输入以下命令,则会出现f的计算值和绘制的曲线:f=Ex0512(0.3)3、内联函数的创建把sin(x)*exp(-z*x)作为内联函数(1)创建内联函数f=inline('sin(x)*exp(-z*x)','x','z')(2)调用函数f6y=f(5,0.3)(3)查看内联函数的信息char(f)(4)使内联函数f转换为适合于数组运算ff=vectorize(f)(5)执行内联函数。x=0:0.1:20;z=0:0.05:10;y=feval(ff,x,z)实验六工具箱的使用一、目的与要求1、掌握MATLAB常用的工具箱2、掌握在simulink下连续和离散系统的设计方法3、掌握在simulink下连续系统的仿真过程4、掌握在simulink下离散系统的仿真过程二、实验设备PC机、Windowsxp操作系统和MATLAB2010a软件三、实验内容与步骤(一)simulink的基本操作认真学习课本7.1,7.2,7.3,7.4,7.5节的内容。(二)simulink的简单应用本部分内容可以参看以下操作练习,也可参看课本中的实验7练习。1Simulink文件操作1:创建一个正弦信号的仿真模型输出结果如下图:2.从工作空间获取数据(FromWorkspace)。从工作空间获取数据模块的输入信号源。在工作空间计算变量t和y,将其运算的结果作为系统的输入。7t=0:0.1:10;y=sin(t);t=t';y=y';3从文件获取数据(Fromfile)。从文件获取数据是指从mat数据文件中获取数据。将下面例子中的数据保存到.mat文件。t=0:0.1:2*pi;y=sin(t);y1=[t;y];saveEx0702y1%保存在“Ex0702.mat”文件中将“FromFile”模块的“参数设置”对话框打开,在“Filename”栏填写“Ex0702.mat”,单击“OK”按钮。用示波器作为接收模块,可以查看输出波形。84传递函数(Transferfunction)。传递函数模块是用来构成连续系统结构的模块,其模块参数对话框如图所示。例如:建立二阶系统的仿真模型。(1)在“Sources”模块库选择“Step”模块,在“Continuous”模块库选择“TransferFcn”模块,在“MathOperations”模块库选择“Sum”模块,在“Sinks”模块库选择“Scope”模块。(2)连接各模块,从信号线引出分支点,构成闭环系统。(3)设置模块参数,打开“Sum”模块“参数设置”对话框,如图7.22所示。将“Iconshape”设置为“rectangular”,将“Listofsigns”设置为“|+”,其中“|”表示上9面的入口为空。5S函数在Simulink中选择“User-DefinedFunctions”模块库,如图7.54所示有多种可供用户自定义的模块。创建单级倒立摆系统simulink模型,并使用S函数构建自定义函数。单级倒立摆的动力学方程为:sin()dgMKuF其动力学方程转化为状态方程为:21212sin()dgxxkxuFxx(1)创建模型10在命令行下输入:editsfuntmpl(2)修改函数function[sys,x0,str,ts,simStateCompliance]=sfun_pendulum(t,x,u,flag)fd=0.8;fg=9.8;m=0.2;switchflag,case0,[sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes;%修改该函数输入参数case1,sys=mdlDerivatives(t,x,u,fd,fg,m);%修改该函数输入参数case2,sys=mdlUpdate(t,x,u);case3,sys=mdlOutputs(t,x,u);case9,sys=mdlTerminate(t,x,u);otherwiseDAStudio.error('Simulink:blocks:unhandledFlag',num2str(flag));end根据输入参数个数修改初始化函数“mdlInitializeSizes”:function[sys,x0,str,ts,simStateCompliance]=mdlInitializeSizessizes=simsizes;sizes.NumContStates=2;%修改状态参数为2个sizes.NumDiscStates=0;sizes.NumOutputs=1;%修改输出参数为1个sizes.NumInputs=1;%修改输入参数为1个sizes.DirFeedthrough=0;sizes.NumSampleTimes=1;sys=simsizes(sizes);11x0=[0;0];str=[];ts=[00];simStateCompliance='UnknownSimState';微分函数表示了状态变量之间的关系,修改微分函数“mdlDerivatives”如下:functionsys=mdlDerivatives(t,x,u,fd,fg,m)dx(1)=x(2);dx(2)=-fd*x(2)-m*fg*sin(x(1))+u;sys=dx;修改输出函数“mdlOutputs”如下:functionsys=mdlOutputs(t,x,