第8章 MATLAB仿真实验
- 格式:ppt
- 大小:876.50 KB
- 文档页数:52
MATLAB 仿真实验报告课题名称:MATLAB 仿真——图像处理学院:机电与信息工程学院专业:电子信息科学与技术年级班级:2012级电子二班一、实验目的1、掌握MATLAB处理图像的相关操作,熟悉相关的函数以及基本的MATLAB语句。
2、掌握对多维图像处理的相关技能,理解多维图像的相关性质3、熟悉Help 命令的使用,掌握对相关函数的查找,了解Demos下的MATLAB自带的原函数文件。
4、熟练掌握部分绘图函数的应用,能够处理多维图像。
二、实验条件MATLAB调试环境以及相关图像处理的基本MATLAB语句,会使用Help命令进行相关函数查找三、实验内容1、nddemo.m函数文件的相关介绍Manipulating Multidimensional ArraysMATLAB supports arrays with more than two dimensions. Multidimensional arrays can be numeric, character, cell, or structure arrays.Multidimensional arrays can be used to represent multivariate data. MATLAB provides a number of functions that directly support multidimensional arrays. Contents :●Creating multi-dimensional arrays 创建多维数组●Finding the dimensions寻找尺寸●Accessing elements 访问元素●Manipulating multi-dimensional arrays操纵多维数组●Selecting 2D matrices from multi-dimensional arrays从多维数组中选择二维矩阵(1)、Creating multi-dimensional arraysMultidimensional arrays in MATLAB are created the same way astwo-dimensional arrays. For example, first define the 3 by 3 matrix, and then add a third dimension.The CAT function is a useful tool for building multidimensional arrays. B =cat(DIM,A1,A2,...) builds a multidimensional array by concatenating(联系起来)A1, A2 ... along the dimension DIM. Calls to CAT can be nested(嵌套).(2)、Finding the dimensions SIZE and NDIMS return the size and number of dimensions of matrices.(3)、Accessing elements To access a single element of a multidimensional array, use integer subscripts(整数下标).(4)、Manipulating multi-dimensional arraysRESHAPE, PERMUTE, and SQUEEZE are used to manipulate n-dimensional arrays. RESHAPE behaves as it does for 2D arrays. The operation of PERMUTE is illustrated below.Let A be a 3 by 3 by 2 array. PERMUTE(A,[2 1 3]) returns an array with the row and column subscripts reversed (dimension 1 is the row, dimension 2 is the column, dimension 3 is the depth and so on). Similarly, PERMUTE(A,[3,2,1]) returns an array with the first and third subscripts interchanged.A = rand(3,3,2);B = permute(A, [2 1 3]);%permute:(转置)C = permute(A, [3 2 1]);(5)、Selecting 2D matrices from multi-dimensional arrays Functions like EIG that operate on planes or 2D matrices do not accept multi-dimensional arrays as arguments. To apply such functions to different planes of the multidimensional arrays, use indexing or FOR loops.For example: A = cat( 3, [1 2 3; 9 8 7; 4 6 5], [0 3 2; 8 8 4; 5 3 5], ...[6 4 7; 6 8 5; 5 4 3]);% The EIG function is applied to each of the horizontal 'slices' of A.for i = 1:3eig(squeeze(A(i,:,:))) %squeeze 除去size为1的维度endans =10.3589-1.00001.6411ans =21.22930.3854 + 1.5778i0.3854 - 1.5778ians =13.3706-1.6853 + 0.4757i-1.6853 - 0.4757iINTERP3, INTERPN, and NDGRID are examples of interpolation and data gridding functions that operate specifically on multidimensional data. Here is an example of NDGRID applied to an N-dimensional matrix.示例程序x1 = -2*pi:pi/10:0;x2 = 2*pi:pi/10:4*pi;x3 = 0:pi/10:2*pi;[x1,x2,x3] = ndgrid(x1,x2,x3);z = x1 + exp(cos(2*x2.^2)) + sin(x3.^3);slice(z,[5 10 15], 10, [5 12]); axis tight;程序运行结果:2、题目要求:编写程序,改变垂直于X轴的三个竖面的其中两个面的形状,绘制出图形。
附录实验二程序:(1)>> clear>> tic;>> t=-5:0.5:5;>> for n=1:size(t,2)if(t(n)<0)y(n)= 3*t(n)^2+5;elsey(n)= -3*t(n)^2+5;endend>> figure(1);>> plot(t,y);>> xlabel('x');>> ylabel('y');>> grid on;>> toc;(2)>> clear>> tic;>> t=[-5:0.5:5];>> b=t>=0;>> y(b)=-3*t(b).^2 + 5;>> y(~b)=3*t(~b).^2 + 5;>> figure(2);>> plot(t,y);>> xlabel('x');>> ylabel('y');>> grid on;>> toc;结果:(1)Elapsed time is 0.156000 seconds.(2)Elapsed time is 0.094000 seconds.实验三程序:(1)>> clear;>> n=input('ENTER A NUMBER:');>> sum=0;>> m=1;>> while m<nsum=sum+m;m=m+2;end>> fprintf('The result of all odd numbers within a given number is:%d\n',sum);(2)创建Fib.m文件% 函数功能: 计算斐波那契数列的第 n 个斐波那契数% 文件名: Fib.m% 含有 n 个数的斐波那契数列的定义如下:% f(1) = 1% f(2) = 2% f(n) = f(n-1) + f(n-2)function y=Fib(n);a(1)=1;a(2)=1;i=2;while i<=na(i+1)=a(i-1)+a(i);i=i+1;end;y=a(i);结果:(1)ENTER A NUMBER:6The result of all odd numbers within a given number is:9(2)>> Fib(7)ans =21实验四(1)程序:创建myfun.m文件% 函数功能: 计算x的双曲正弦、双曲余弦和双曲正切,并画出对应的图象。
matlab仿真实验报告Matlab仿真实验报告引言:Matlab是一种广泛应用于科学和工程领域的数值计算软件,它提供了强大的数学和图形处理功能,可用于解决各种实际问题。
本文将通过一个具体的Matlab 仿真实验来展示其在工程领域中的应用。
实验背景:本次实验的目标是通过Matlab仿真分析一个电路的性能。
该电路是一个简单的放大器电路,由一个输入电阻、一个输出电阻和一个放大倍数组成。
我们将通过Matlab对该电路进行仿真,以了解其放大性能。
实验步骤:1. 定义电路参数:首先,我们需要定义电路的各个参数,包括输入电阻、输出电阻和放大倍数。
这些参数将作为Matlab仿真的输入。
2. 构建电路模型:接下来,我们需要在Matlab中构建电路模型。
可以使用电路元件的模型来表示电路的行为,并使用Matlab的电路分析工具进行仿真。
3. 仿真分析:在电路模型构建完成后,我们可以通过Matlab进行仿真分析。
可以通过输入不同的信号波形,观察电路的输出响应,并计算放大倍数。
4. 结果可视化:为了更直观地观察仿真结果,我们可以使用Matlab的图形处理功能将仿真结果可视化。
可以绘制输入信号波形、输出信号波形和放大倍数的变化曲线图。
实验结果:通过仿真分析,我们得到了以下实验结果:1. 输入信号波形与输出信号波形的对比图:通过绘制输入信号波形和输出信号波形的变化曲线,我们可以观察到电路的放大效果。
可以看到输出信号的幅度大于输入信号,说明电路具有放大功能。
2. 放大倍数的计算结果:通过对输出信号和输入信号的幅度进行计算,我们可以得到电路的放大倍数。
通过比较不同输入信号幅度下的输出信号幅度,可以得到放大倍数的变化情况。
讨论与分析:通过对实验结果的讨论和分析,我们可以得出以下结论:1. 电路的放大性能:根据实验结果,我们可以评估电路的放大性能。
通过观察输出信号的幅度和输入信号的幅度之间的比值,可以判断电路的放大效果是否符合设计要求。
计算机仿真及应用实验指导书电气与电子信息工程学院实验一 S 函数实现单摆运动一、实验目的掌握S 函数的定义、功能模块调用方法、工作原理及应用场合。
二、预习及思考1、S 函数应用于哪些场合?2、S 函数的子程序是如何调用的?三、实验步骤在建立实际的S-函数时,可在该 模板必要的子程序中编写程序并输入参数便可。
S-函数的模板程序位于toolbox/simulink/blocks 目录下,文件名为sfuntmpl.m ,可以自己查看。
在运用S-函数进行仿真前,应当自行编制S-函数程序,因此必须知道系统在不同时刻所需要的信息:(1)在系统开始进行仿真时,应先知道系统有多少状态变量,其中哪些是连续变量,哪些是离散变量,以及这些变量的初始条件等信息。
这些信息可通过S-函数中设置flag=0获取。
(2)若系统是严格连续的,则在每一步仿真时所需要的信息为:通过flag=1获得系统状态导数;通过flag=3获得系统输出。
(3)若系统是严格离散的,则通过flag=2获得系统下一个离散状态;通过flag=3获得系统离散状态的输出。
单摆示意图:单摆的状态方程从MATLAB 的toolbox\simulink\blocks 子目录下,复制sfintempl.m ,并把它改名为simpendzzy.m ,再根据状态方程对文件进行修改,最后形成文件。
构成名为simpendzzy 的S-函数模块从simulink 的“user -defined Function ”子库中复制S-Function 框架模块到空白模型窗,如图所示。
m 121sin d g x K x K ux x θ=--+=双击S-Function框架模块,弹出下图所示对话窗;在“S-Function name ”栏中填写函数名simpendzzy;在“S-Function parameters”栏中填写函数simpendzzy.m的第4、5、6、个输入宗量名dampzzy,gngzzy(次序要对);再点击【OK】,就得到单摆S-函数模块,如图所示。
典型环节的MATLAB仿真实验————————————————————————————————作者: ————————————————————————————————日期:实验报告 实验名称 典型环节的MATLAB 仿真一、 实验目的1.熟悉MATLA B桌面和命令窗口,初步了解SIMUL IN K功能模块的使用方法。
2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的 理解。
3.定性了解各参数变化对典型环节动态特性的影响。
二、 实验内容按下列各典型环节的传递函数,建立相应的SI MULINK 仿真模型,观察并记录其单位阶跃响应波形。
① 比例环节1)(1=s G 和2)(1=s G ;② 惯性环节11)(1+=s s G 和15.01)(2+=s s G ③ 积分环节ss G 1)(1= ④ 微分环节s s G =)(1⑤ 比例+微分环节(PD)2)(1+=s s G 和1)(2+=s s G⑥ 比例+积分环节(PI )s s G 11)(1+=和ss G 211)(2+= 三、 实验结果及分析① 比例环节1)(1=s G2)(1 s G② 惯性环节11)(1+=s s G15.01)(1+=s s G③ 积分环节s s G 1)(1④ 微分环节s s G =)(1⑤ 比例+微分环节(PD)1)(2+=s s G2)(1+=s s G⑥ 比例+积分环节(PI)s s G 11)(1+=s s G 211)(2+=①比例环节:增益成比例加倍,曲线响应最值成比例增加。
②惯性环节:惯性环节s因子系数越小,系统越快速趋于稳定。
③积分环节: 积分环节先趋于稳定,后开始开始不稳定。
④微分环节:微分环节开始稳定中间突变而后又趋于稳定。
四、 实验心得与体会通过这次实验,基本熟悉了M ATLAB 的使用方法及如何来仿真,熟悉MAT LAB桌面和命令窗口,初步了解S IMUL INK 功能模块的使用方法。
MATLAB仿真实验报告MATLAB仿真实验报告实验三PID控制仿真实验一、实验目的1.掌握MATLAB6.5软件的使用方法。
2.完成直流伺服电机PID典型控制系统结构图设计及调试。
二、实验内容1.熟悉MATLAB6.5软件各菜单作用。
2.完成直流伺服电机PID典型系统结构图设计并调试成功。
三、实验设备微型计算机1台四、实验步骤1.双击桌面MATLAB6.5快捷图标,进入MATLAB仿真环境。
2.单击菜单simulink选项,进入其界面。
单击filenew--model进入新建文件界面。
3.在新建文件界面中,通过simulink选项的下拉菜单中选择仿真需要的函数及器件,组成仿真系统结构图。
4.仿真调试:鼠标单击“黑三角”图标,再双击“SCOPE”示波器,即可显示仿真结果。
5.改变参数,观察调试结果。
五、实验报告要求1.写出实验具体过程。
2.画出仿真结果图和仿真系统结构图。
实验四直流电机双闭环系统仿真实验一、实验目的1.掌握MATLAB6.5软件的使用方法。
2.完成双闭环典型系统结构图设计及调试。
二、实验内容1.熟悉MATLAB6.5软件各菜单作用。
2.完成PID典型系统结构图设计并调试成功。
三、实验设备微型计算机1台四、实验步骤1.双击桌面MATLAB6.5快捷图标,进入MATLAB仿真环境。
2.单击菜单simulink选项,进入其界面。
单击filenewmodel进入新建文件界面。
3.在新建文件界面中,通过simulink选项的下拉菜单中选择仿真需要的函数及器件,组成仿真系统结构图。
4.仿真调试:鼠标单击“黑三角”图标,再双击“SCOPE”示波器,即可显示仿真结果。
5.改变参数,观察调试结果。
五、实验报告要求1.写出实验具体过程。
2.画出仿真结果图和仿真系统结构图。
实验五直流电机控制模型仿真实验一、实验目的1.掌握MATLAB6.5软件的使用方法。
2.完成直流电机仿真系统结构图设计及调试。
二、实验内容1.熟悉MATLAB6.5软件各菜单作用。
实验一 MATLAB 及仿真实验(控制系统的时域分析)一、实验目的学习利用MATLAB 进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性;二、预习要点1、 系统的典型响应有哪些?2、 如何判断系统稳定性?3、 系统的动态性能指标有哪些?三、实验方法(一) 四种典型响应1、 阶跃响应:阶跃响应常用格式:1、)(sys step ;其中sys 可以为连续系统,也可为离散系统。
2、),(Tn sys step ;表示时间范围0---Tn 。
3、),(T sys step ;表示时间范围向量T 指定。
4、),(T sys step Y =;可详细了解某段时间的输入、输出情况。
2、 脉冲响应:脉冲函数在数学上的精确定义:0,0)(1)(0〉==⎰∞t x f dx x f 其拉氏变换为:)()()()(1)(s G s f s G s Y s f === 所以脉冲响应即为传函的反拉氏变换。
脉冲响应函数常用格式: ① )(sys impulse ;② );,();,(T sys impulse Tn sys impulse ③ ),(T sys impulse Y =(二) 分析系统稳定性有以下三种方法:1、 利用pzmap 绘制连续系统的零极点图;2、 利用tf2zp 求出系统零极点;3、 利用roots 求分母多项式的根来确定系统的极点(三) 系统的动态特性分析Matlab 提供了求取连续系统的单位阶跃响应函数step 、单位脉冲响应函数impulse 、零输入响应函数initial 以及任意输入下的仿真函数lsim.四、实验内容(一) 稳定性1.系统传函为()27243645232345234+++++++++=s s s s s s s s s s G ,试判断其稳定性%Matlab 计算程序num=[3 2 5 4 6];den=[1 3 4 2 7 2];G=tf(num,den);pzmap(G);p=roots(den) 2.用Matlab 求出253722)(2342++++++=s s s s s s s G 的极点。
《MATLAB与控制系统仿真》实验报告班级:学号:姓名:时间:2013 年 6 月目录实验一 MATLAB环境的熟悉与基本运算(一)实验二 MATLAB环境的熟悉与基本运算(二)实验三 MATLAB语言的程序设计实验四 MATLAB的图形绘制实验五基于SIMULINK的系统仿真实验六控制系统的频域与时域分析实验七控制系统PID校正器设计法实验八线性方程组求解及函数求极值实验一 MATLAB环境的熟悉与基本运算(一)一、实验目的1.熟悉MATLAB开发环境2.掌握矩阵、变量、表达式的各种基本运算二、实验基本原理1.熟悉MATLAB环境:MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器、文件和搜索路径浏览器。
2.掌握MATLAB常用命令表1 MATLAB常用命令3.MATLAB变量与运算符3.1变量命名规则3.2 MATLAB的各种常用运算符表3 MATLAB关系运算符表4 MATLAB逻辑运算符| Or 逻辑或~ Not 逻辑非Xor逻辑异或符号功能说明示例符号功能说明示例:1:1:4;1:2:11 .;分隔行..,分隔列…()% 注释[] 构成向量、矩阵!调用操作系统命令{} 构成单元数组= 用于赋值4.MATLAB的一维、二维数组的寻访表6 子数组访问与赋值常用的相关指令格式三、主要仪器设备及耗材计算机四.实验程序及结果1、新建一个文件夹(自己的名字命名,在机器的最后一个盘符)2、启动MATLAB,将该文件夹添加到MATLAB路径管理器中。
3、学习使用help命令。
4、窗口命令closeclose allclchold onhold off5、工作空间管理命令whowhosclear6、随机生成一个2×6的矩阵,观察command window、command history和workspace等窗口的变化结果,实现矩阵左旋90°或右旋90°的功能。
如何在MATLAB中进行仿真实验1. 引言在科学研究和工程设计中,仿真实验是一种重要的手段和工具。
通过建立数学模型和使用计算机来模拟和分析实际系统,可以在较短时间内获得大量有效的数据和结果。
MATLAB是一个功能强大的数值计算软件,广泛应用于仿真实验中。
本文旨在介绍如何在MATLAB中进行仿真实验,并探讨一些实验技巧和注意事项。
2. 确定仿真目标和建立数学模型在进行仿真实验之前,首先需要明确仿真的目标和问题。
例如,如果要研究一个物理系统的动态特性,可以考虑建立相应的微分方程或差分方程模型。
对于控制系统的仿真,可以使用传递函数或状态空间模型。
在MATLAB中,可以使用符号计算工具箱来建立数学模型,并将其转化为可用的形式。
3. 编写仿真程序一旦数学模型建立完成,就可以开始编写仿真程序。
MATLAB提供了丰富的函数和工具箱,可以方便地进行仿真实验。
首先,可以使用ODE或PDE求解器来求解微分方程或差分方程模型。
对于控制系统的仿真,可以使用control工具箱中的函数来进行系统响应和稳定性分析。
4. 参数设置和输入规划在进行仿真实验时,需要对系统的参数和输入进行设置。
参数包括系统的初始条件、物理特性和环境因素等,可以通过改变参数的值来观察系统的响应。
输入规划可以是恒定的、随机的或基于特定函数的,可以根据实际需求进行设定。
MATLAB提供了丰富的函数和工具箱,可以方便地对参数和输入进行设置和规划。
5. 数据可视化和结果分析仿真实验的一个重要任务是对仿真数据进行可视化和结果分析。
MATLAB提供了强大的绘图函数和工具箱,可以绘制各种图表,如曲线图、散点图、三维图等。
可以使用这些功能来展示仿真数据的时域和频域特性,以及系统的稳定性和响应。
同时,还可以使用MATLAB进行数据统计和处理,如求取平均值、方差、相关性等。
6. 优化和参数调整仿真实验可以帮助优化系统设计和参数调整。
通过对仿真结果的观察和分析,可以发现系统存在的问题和改进的空间。