计算机仿真实验报告 MATLAB
Matlab仿真实验报告_发布
2、实验目的
通过本次实验,应该掌握: (1) 用傅立叶变换进行信号分析时基本参数的选择。 (2) 经过离散时间傅立叶变换(DTFT)和有限长度离散傅立叶变换(DFT) 后信号频 谱上的区别,前者 DTFT 时间域是离散信号,频率域还是连续的,而 DFT 在两个域中都 是离散的。 (3) 离散傅立叶变换的基本原理、特性,以及经典的快速算法(基 2 时间抽选法) ,体 会快速算法的效率。 (4) 获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨 率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。 (5) 建立 DFT 从整体上可看成是由窄带相邻滤波器组成的滤波器组的概念,此概念 的一个典型应用是数字音频压缩中的分析滤波器,例如 DVD AC3 和 MPEG Audio。
~4~
MATLAB 仿真实验报告
N=4000; % N>1/TΔf=1/357*T
n=0:1:N-1; f=fs*n/N;
%DTMF 信号编码 dtmf(1,:)=sin(2*pi*row(1)*T*n)+sin(2*pi*col(1)*T*n); dtmf(2,:)=sin(2*pi*row(1)*T*n)+sin(2*pi*col(2)*T*n); dtmf(3,:)=sin(2*pi*row(1)*T*n)+sin(2*pi*col(3)*T*n); dtmf(4,:)=sin(2*pi*row(2)*T*n)+sin(2*pi*col(1)*T*n); dtmf(5,:)=sin(2*pi*row(2)*T*n)+sin(2*pi*col(2)*T*n); dtmf(6,:)=sin(2*pi*row(2)*T*n)+sin(2*pi*col(3)*T*n); dtmf(7,:)=sin(2*pi*row(3)*T*n)+sin(2*pi*col(1)*T*n); dtmf(8,:)=sin(2*pi*row(3)*T*n)+sin(2*pi*col(2)*T*n); dtmf(9,:)=sin(2*pi*row(3)*T*n)+sin(2*pi*col(3)*T*n); dtmf(10,:)=sin(2*pi*row(4)*T*n)+sin(2*pi*col(2)*T*n); %1 %2 %3 %4 %5 %6 %7 %8 %9 %0
matlab仿真实验报告
matlab仿真实验报告Matlab仿真实验报告引言:Matlab是一种广泛应用于科学和工程领域的数值计算软件,它提供了强大的数学和图形处理功能,可用于解决各种实际问题。
本文将通过一个具体的Matlab 仿真实验来展示其在工程领域中的应用。
实验背景:本次实验的目标是通过Matlab仿真分析一个电路的性能。
该电路是一个简单的放大器电路,由一个输入电阻、一个输出电阻和一个放大倍数组成。
我们将通过Matlab对该电路进行仿真,以了解其放大性能。
实验步骤:1. 定义电路参数:首先,我们需要定义电路的各个参数,包括输入电阻、输出电阻和放大倍数。
这些参数将作为Matlab仿真的输入。
2. 构建电路模型:接下来,我们需要在Matlab中构建电路模型。
可以使用电路元件的模型来表示电路的行为,并使用Matlab的电路分析工具进行仿真。
3. 仿真分析:在电路模型构建完成后,我们可以通过Matlab进行仿真分析。
可以通过输入不同的信号波形,观察电路的输出响应,并计算放大倍数。
4. 结果可视化:为了更直观地观察仿真结果,我们可以使用Matlab的图形处理功能将仿真结果可视化。
可以绘制输入信号波形、输出信号波形和放大倍数的变化曲线图。
实验结果:通过仿真分析,我们得到了以下实验结果:1. 输入信号波形与输出信号波形的对比图:通过绘制输入信号波形和输出信号波形的变化曲线,我们可以观察到电路的放大效果。
可以看到输出信号的幅度大于输入信号,说明电路具有放大功能。
2. 放大倍数的计算结果:通过对输出信号和输入信号的幅度进行计算,我们可以得到电路的放大倍数。
通过比较不同输入信号幅度下的输出信号幅度,可以得到放大倍数的变化情况。
讨论与分析:通过对实验结果的讨论和分析,我们可以得出以下结论:1. 电路的放大性能:根据实验结果,我们可以评估电路的放大性能。
通过观察输出信号的幅度和输入信号的幅度之间的比值,可以判断电路的放大效果是否符合设计要求。
matlab计算机实验报告
matlab计算机实验报告Matlab计算机实验报告引言Matlab是一种强大的计算机软件,广泛应用于科学计算、数据分析和工程设计等领域。
本实验报告旨在介绍我对Matlab的实验研究和应用。
通过实验,我深入了解了Matlab的功能和特点,并通过实际案例展示了其在科学计算和数据处理中的应用。
实验一:基本操作和语法在本实验中,我首先学习了Matlab的基本操作和语法。
通过编写简单的程序,我熟悉了Matlab的变量定义、赋值、运算符和条件语句等基本语法。
我还学习了Matlab的矩阵操作和向量化计算的优势。
通过实例演示,我发现Matlab在处理大规模数据时具有高效性和便捷性。
实验二:数据可视化数据可视化是Matlab的重要应用之一。
在本实验中,我学习了如何使用Matlab绘制各种图表,如折线图、散点图、柱状图和饼图等。
我了解了Matlab 的绘图函数和参数设置,并通过实例展示了如何将数据转化为直观的图形展示。
数据可视化不仅可以帮助我们更好地理解数据,还可以用于数据分析和决策支持。
实验三:数值计算和优化Matlab在数值计算和优化方面具有强大的功能。
在本实验中,我学习了Matlab 的数值计算函数和工具箱,如数值积分、微分方程求解和线性代数运算等。
通过实例研究,我发现Matlab在求解复杂数学问题和优化算法方面具有出色的性能。
这对于科学研究和工程设计中的数值分析和优化问题非常有用。
实验四:图像处理和模式识别Matlab在图像处理和模式识别领域也有广泛的应用。
在本实验中,我学习了Matlab的图像处理工具箱和模式识别算法。
通过实例演示,我了解了如何使用Matlab进行图像滤波、边缘检测和特征提取等操作。
我还学习了一些常见的模式识别算法,如支持向量机和神经网络等。
这些技术在计算机视觉和模式识别中具有重要的应用价值。
实验五:信号处理和系统建模Matlab在信号处理和系统建模方面也有广泛的应用。
在本实验中,我学习了Matlab的信号处理工具箱和系统建模工具。
仿真软件操作实验报告(3篇)
第1篇实验名称:仿真软件操作实验实验目的:1. 熟悉仿真软件的基本操作和界面布局。
2. 掌握仿真软件的基本功能,如建模、仿真、分析等。
3. 学会使用仿真软件解决实际问题。
实验时间:2023年X月X日实验地点:计算机实验室实验器材:1. 仿真软件:XXX2. 计算机一台3. 实验指导书实验内容:一、仿真软件基本操作1. 打开软件,熟悉界面布局。
2. 学习软件菜单栏、工具栏、状态栏等各个部分的功能。
3. 掌握文件操作,如新建、打开、保存、关闭等。
4. 熟悉软件的基本参数设置。
二、建模操作1. 学习如何创建仿真模型,包括实体、连接器、传感器等。
2. 掌握模型的修改、删除、复制等操作。
3. 学会使用软件提供的建模工具,如拉伸、旋转、镜像等。
三、仿真操作1. 设置仿真参数,如时间、步长、迭代次数等。
2. 学习如何进行仿真,包括启动、暂停、继续、终止等操作。
3. 观察仿真结果,包括数据、曲线、图表等。
四、分析操作1. 学习如何对仿真结果进行分析,包括数据统计、曲线拟合、图表绘制等。
2. 掌握仿真软件提供的分析工具,如方差分析、回归分析等。
3. 将仿真结果与实际数据或理论进行对比,验证仿真模型的准确性。
实验步骤:1. 打开仿真软件,创建一个新项目。
2. 在建模界面,根据实验需求创建仿真模型。
3. 设置仿真参数,启动仿真。
4. 观察仿真结果,进行数据分析。
5. 将仿真结果与实际数据或理论进行对比,验证仿真模型的准确性。
6. 完成实验报告。
实验结果与分析:1. 通过本次实验,掌握了仿真软件的基本操作,包括建模、仿真、分析等。
2. 在建模过程中,学会了创建实体、连接器、传感器等,并能够进行模型的修改、删除、复制等操作。
3. 在仿真过程中,成功设置了仿真参数,启动了仿真,并观察到了仿真结果。
4. 在分析过程中,运用了仿真软件提供的分析工具,对仿真结果进行了数据分析,并与实际数据或理论进行了对比,验证了仿真模型的准确性。
matlab仿真实验报告,Matlab仿真及其应用实验报告.doc
matlab仿真实验报告,Matlab仿真及其应⽤实验报告.doc Matlab仿真及其应⽤ 实验报告温州⼤学物理与电⼦信息⼯程学院Matlab仿真及其应⽤ 实验报告课程名称:Matlab仿真及其应⽤班 级:10电信姓名:吴** 学号:1011000****实验地点:5B305⽇期:12.25实验⼆ Matlab 基本编程基础[实验⽬的和要求]熟悉MATLAB环境与⼯作空间熟悉变量与矩阵的输⼊、矩阵的运算熟悉M⽂件与M函数的编写与应⽤熟悉MATLAB控制语句与逻辑运算掌握if语句、switch语句、try语句的使⽤。
掌握利⽤for语句、while语句实现循环结构的⽅法。
[实验内容]1⾏100列的Fibonacc 数组a,a(1)=a(2)=1,a(i)=a(i-1)+a(i-2),⽤for循环指令来寻求该数组中第⼀个⼤于10000的元素,并之处其位置i。
编写M函数表⽰曲线以及它的包络线,并从命令窗⼝输⼊命令语句绘制曲线。
t的取值范围是[0,4π]。
设,编写⼀个M函数⽂件,使得调⽤f(x)时,x可⽤矩阵代⼊,得出的f(x)为同阶矩阵。
根据,求时的最⼤n值;与(1)的n值对应的y值。
已知求中,最⼤值、最⼩值、各数之和,以及正数、零、负数的个数。
输⼊⼀个百分制成绩,要求输出成绩等级A,B,C,D,E。
其中,90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
求分段函数的值。
⽤if语句实现输出x=-5.0, -3.0, 1.0, 2.0, 2.5, 3.0, 5.0时的y值。
编写⼀M函数,实现近似计算指数,其中x为函数参数输⼊,当n+1步与n步的结果误差⼩于0.00001时停⽌。
编写⼀M函数,a和x作为M函数参数输⼊,函数⾥⾯分别⽤if结构实现函数表⽰实验结果及分析:1.a=ones(1,100); %定义数组for i=3:100a(i)=a(i-1)+a(i-2);if(a(i)>10000)a(i),break;endend ,i2.function y=ff(t)y1=exp(-t/3);y2=exp(-t/3).*sin(3*t); y=[y1;y2]3.function y=f(x);a=input('输⼊a值:');x=input('输⼊x值:');if(x<=-a)y=-1;elseif(x-a)y=x/a;elsey=1;endend4.for n=1:100f(n)=1./(2*n-1);y=sum(f)if y>=3my=y-f(n)breakendendmy5.f(1)=1,f(2)=0,f(3)=1; for n=4:100f(n)=f(n-1)-2*f(n-2)+f(n-3);enda=sum(f);b=max(f);c=min(f);p=f==0,d=sum(p);%p等于f为0的个数p1=f>0,e=sum(p1);p2=f<0,f=sum(p2);a,b,c,d,e,f6.clear;n=input('输⼊成绩:');m=floor(n/10);%取整switch mcase num2cell(9:10)disp('A'); %显⽰在控制框case 8disp('B');case 7disp('C');case 6disp('D');case num2cell(0:5)disp('E');otherwisedisp('error')end7.function y=ex3_4(x)for i=1:length(x)if (x(i)<0)&(x(i)~=-3)y(i)=x(i)^2+x(i)-6elseif (x(i)>=0)&(x(i)<5)&(x(i)~=2)&(x(i)~=3) y(i)=x(i)^2-5*x(i)+6else y(i)=x(i)^2-x(i)-1 endendy8.function t=ex3_4(x) n=0;t=1;y=1;x=input(‘’);while y>=0.00001n=n+1;y=x^n/factorial(n);t=t+y;endn9.function y=f(x);a=input('输⼊a值:'); x=input('输⼊x值:'); if。
自动控制原理MATLAB仿真实验报告
实验一 典型环节的MATLAB 仿真 一、实验目的1.熟悉MATLAB 桌面和命令窗口,初步了解SIMULINK 功能模块的使用方法。
2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。
3.定性了解各参数变化对典型环节动态特性的影响。
二、实验内容① 比例环节1)(1=s G 和2)(1=s G ;Simulink 图形实现:示波器显示结果:② 惯性环节11)(1+=s s G 和15.01)(2+=s s GSimulink 图形实现:示波器显示结果:③ 积分环节s s G 1)(1Simulink 图形实现:示波器显示结果:④ 微分环节s s G )(1Simulink 图形实现:波器显示结果:⑤ 比例+微分环节(PD )2)(1+=s s G 和1)(2+=s s G1)、G1(s )=s+2Simulink 图形实现:示波器显示结果:2)、G2(s)=s+1 Simulink图形实现:示波器显示结果:⑥ 比例+积分环节(PI )s s G 11)(1+=和s s G 211)(2+=1)、G1(1)=1+1/sSimulink 图形实现:示波器显示结果:2)G2(s)=1+1/2s Simulink图形实现:示波器显示结果:三、心得体会通过这次实验我学到了很多,对课本内容加深了理解,熟悉MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法,加深对各典型环节响应曲线的理解,这为对课程的学习打下了一定基础。
实验二线性系统时域响应分析一、实验目的1.熟练掌握step( )函数和impulse( )函数的使用方法,研究线性系统在单位阶跃、单位脉冲及单位斜坡函数作用下的响应。
2.通过响应曲线观测特征参量ζ和nω对二阶系统性能的影响。
3.熟练掌握系统的稳定性的判断方法。
二、实验内容1.观察函数step( )的调用格式,假设系统的传递函数模型为243237()4641s s G s s s s s ++=++++绘制出系统的阶跃响应曲线?2.对典型二阶系统222()2n n n G s s s ωζωω=++1)分别绘出2(/)n rad s ω=,ζ分别取0,0.25,0.5,1.0和2.0时的单位阶跃响应曲线,分析参数ζ对系统的影响,并计算ζ=0.25时的时域性能指标,,,,p r p s ss t t t e σ。
计算机仿真实验报告 MATLAB
注:以下所有程序均在MATLAB7.0下运行通过。
实验一MATLAB语言编程一、实验目的:熟悉MATLAB语言及其环境,掌握编程方法。
要求认真听取实验指导老师讲解与演示。
二、具体实验内容、步骤、要求:1.运行交互式学习软件,学习MATLAB语言2.在MATLAB的命令窗口下键入如下命令:INTRO(注意:intro为一个用MATLAB语言编写的幻灯片程序,主要演示常用的MATLAB语句运行的结果。
)然后,根据显示出来的幻灯片右图按钮进行操作,可按START→NEXT→NEXT按钮一步步运行,观察。
3.自编程序并完成上机编辑,调试,运行,存盘:(1)、用MATLAB命令完成矩阵的各种运算。
例如:求出下列运算结果,并上机验证。
(1)A(:,1) %取矩阵A的第一列元素ans =11213141(2)A(2,:) %取矩阵A的第二行元素ans =21 22 23 24(3)A(1:2,2:3) %取矩阵A第一二行第二三列的元素ans =12 1322 23(4)A(2:3,2:3) %取矩阵A第二三行第二三列的元素ans =22 2332 33(5)A(:,1:2) %取矩阵A第一列与第二列元素ans =11 1221 2231 3241 42(6)A(2:3) %取矩阵A第二行与第三行的首列元素ans =21 31(7)A(:) %将矩阵A的所有元素按一列排列ans =11213141122232421323334314243444(8)A(:,:) %显示矩阵Aans =11 12 13 1421 22 23 2431 32 33 3441 42 43 44(9)ones(2,2) %建立一个两行两列的全1矩阵ans =1 11 1(10)eye(2) %建立一个二维的单位矩阵ans =1 00 1(2)、绘制数学函数的图形:例如:,理解数组运算与矩阵运算的功能。
MATLAB程序如下:t=0:0.1:8; %建立向量ty=1-2*exp(-t.*sin(t)); %计算向量t的函数向量yplot(t,y); %利用plot命令绘图xlabel('t');ylabel('y=1-2*e^(-t*sin(t))'); %注释横坐标与纵坐标图1.1 所对应的函数图像4.理解函数文件与命令文件的区别,并自编函数文件并调用。
matlab 仿真实验报告
matlab 仿真实验报告Matlab 仿真实验报告引言:在科学研究和工程应用中,仿真实验是一种非常重要的手段。
通过在计算机上建立数学模型和进行仿真实验,我们可以更好地理解和预测现实世界中的各种现象和问题。
Matlab作为一种强大的科学计算软件,被广泛应用于各个领域的仿真实验中。
本文将介绍我进行的一次基于Matlab的仿真实验,并对实验结果进行分析和讨论。
实验背景:在电子通信领域中,信号的传输和接收是一个重要的研究方向。
而在进行信号传输时,会受到各种信道的影响,如噪声、衰落等。
为了更好地理解信道的特性和优化信号传输方案,我进行了一次关于信道传输的仿真实验。
实验目的:本次实验的目的是通过Matlab仿真,研究不同信道条件下信号传输的性能,并对比分析不同传输方案的优劣。
实验步骤:1. 信道建模:首先,我需要建立信道的数学模型。
根据实际情况,我选择了常见的高斯信道模型作为仿真对象。
通过Matlab提供的函数,我可以很方便地生成高斯噪声,并将其加入到信号中。
2. 信号传输方案设计:接下来,我需要设计不同的信号传输方案。
在实验中,我选择了两种常见的调制方式:频移键控(FSK)和相移键控(PSK)。
通过调整不同的调制参数,我可以模拟不同的传输效果。
3. 信号传输仿真:在信道模型和传输方案设计完成后,我开始进行信号传输的仿真实验。
通过Matlab提供的信号处理函数,我可以很方便地生成调制后的信号,并将其传输到信道中。
4. 信号接收和解调:在信号传输完成后,我需要进行信号接收和解调。
通过Matlab提供的信号处理函数,我可以很方便地对接收到的信号进行解调,并还原出原始的信息信号。
5. 仿真结果分析:最后,我对仿真结果进行分析和讨论。
通过对比不同信道条件下的传输性能,我可以评估不同传输方案的优劣,并得出一些有价值的结论。
实验结果与讨论:通过对不同信道条件下的信号传输仿真实验,我得到了一些有价值的结果。
首先,我观察到在高斯噪声较大的信道条件下,PSK调制比FSK调制具有更好的抗干扰性能。
计算机仿真(Matlab)上机报告
计算机仿真上机报告班级:信息101学号:201027012 姓名:张化迪指导老师:李贺实验一1、实验要求:安装Matlab软件,熟悉Matlab语言的基本语法格式及用法2.实验过程:3、实验感受:本次实验内容主要是安装Matlab以及熟悉Matlab的界面和基本操作,安装Matlab软件后,按照老师的要求执行了Matlab命令。
我熟悉了Matlab软件的安装步骤并了解了Matlab的基本语句和用法。
实验二1、实验要求:用Matlab编程语言实现AMI编码,要求可以将文本文件中的数据读入matlab程序,然后转换为数值量进行AMI编码,然后存入一个新的文本文件中。
并且将编码前后的数据用画图函数在程序中实现,运行并测试。
2、实验程序:3、实验结果4.实验分析本次实验中要求实现AMI的编码转码和图像表示,在本次实验中,在工作区中建立对应的AMI的编码的文件,注意码元1 、0 之间要有空格,这样可以确保Matlab程序对文件的读入和转换是正确的。
通过对转码后的波形可得出,利用上述程序成功实现了对AMI码的转换,同时另一个生成的文本文档也验证了该程序实现老师要求的AMI编码的可行性。
实验三1、实验要求:以经典的二阶电路为例(例如RLC电路),利用数值分析函数(例如龙格库塔函数)用Matlab语言编写程序实现其参数的计算及观测2、程序:方程定义的M文件(文件1)使用ode32仿真的M文件(文件2)t0=0;3、仿真结果:4、实验总结:本实验通过Matlab运用数值分析函数对二阶电路进行分析,对二阶电路各参数进行计算,得到相应图像。
通过此次实验我也掌握了Matlab中M格式文件的用法,并熟悉了数值分析函数的使用方法以及使用Matalab对二阶电路编程分析的方法。
实验四1、实验要求:熟悉Simulink建模及通信、数字信号处理工具箱,建立简单的数字信号BPSK 的调制解调模型,并借助示波器等虚拟工具观测数据的正确性。
(完整word)Matlab实验报告
实验一:Matlab操作环境熟悉一、实验目的1.初步了解Matlab操作环境.2.学习使用图形函数计算器命令funtool及其环境。
二、实验内容熟悉Matlab操作环境,认识命令窗口、内存工作区窗口、历史命令窗口;学会使用format 命令调整命令窗口的数据显示格式;学会使用变量和矩阵的输入,并进行简单的计算;学会使用who和whos命令查看内存变量信息;学会使用图形函数计算器funtool,并进行下列计算:1.单函数运算操作。
求下列函数的符号导数(1)y=sin(x);(2) y=(1+x)^3*(2-x);求下列函数的符号积分(1)y=cos(x);(2)y=1/(1+x^2);(3)y=1/sqrt(1—x^2);(4)y=(x1)/(x+1)/(x+2)求反函数(1)y=(x-1)/(2*x+3); (2) y=exp(x);(3) y=log(x+sqrt(1+x^2));代数式的化简(1)(x+1)*(x-1)*(x-2)/(x-3)/(x—4);(2)sin(x)^2+cos(x)^2;(3)x+sin(x)+2*x—3*cos(x)+4*x*sin(x);2.函数与参数的运算操作。
从y=x^2通过参数的选择去观察下列函数的图形变化(1)y1=(x+1)^2(2)y2=(x+2)^2(3) y3=2*x^2 (4) y4=x^2+2 (5) y5=x^4 (6) y6=x^2/2 3.两个函数之间的操作求和(1)sin(x)+cos(x) (2) 1+x+x^2+x^3+x^4+x^5乘积(1)exp(—x)*sin(x) (2) sin(x)*x商(1)sin(x)/cos(x); (2) x/(1+x^2); (3) 1/(x—1)/(x—2); 求复合函数(1)y=exp(u) u=sin(x) (2) y=sqrt(u) u=1+exp(x^2)(3) y=sin(u) u=asin(x) (4) y=sinh(u) u=-x实验二:MATLAB基本操作与用法一、实验目的1.掌握用MATLAB命令窗口进行简单数学运算。
MATLAB系统仿真实验报告一
MATLAB系统仿真实验报告(一实验一、MATLAB语言环境与基本运算一、实验目的及要求1.学习了解MATLAB语言环境2.练习MATLAB命令的基本操作3.练习MATLAB数值运算相关内容4.练习MATLAB符号运算相关内容5.撰写实验报告二、实验内容1.熟悉Matlab语言环境1).学习了解MATLAB语言环境MATLAB语言操作界面(主界面的各个窗口)主界面:工具栏:状态栏:命令窗口:文件窗口:工作空间窗口:历史命令窗口:变量查询命令who, whosWho:列出当前存储器中的所有变量Whos:列出当前工作空间中的所有变量,包括与他们的维数、字节、类型有关的变量目录与目录结构目录,文件夹,文件搜索路径联机帮助2).MATLAB基本操作命令demos,clc,clf,clear,contro-c(^c),diary Demos:Clc:命令窗口清屏。
Clf:清楚当前图形。
清楚工作空间。
Control+c:复制选定区域到粘贴板。
Diary:用于记录MATLAB窗口的输入的命令和响应输出,diary off关闭记录,diary on打开记录。
2.Matlab数值运算与符号运算1).MATLAB数值运算相关内容MATLAB变量及变量赋值变量名以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。
变量名区分大小写,不可使用保留字。
变量赋值:变量名=表达式。
初等矩阵函数ones, zeros, eye, rand, randn, sizeOnes:生成常熟1构成的数组。
Zeros:零数组。
Eye:生成单位矩阵。
Rand:生成随机数和矩阵。
产生标准正态分布的随机数或矩阵的函数。
Size:求矩阵的维数。
矩阵的基本运算+ 加- 减* 乘^ 乘方‘共轭转置/或\ 矩阵相除./或.\ 数组相除矩阵的特征运算det, eig, rank, svdDet:求行列式。
Eig:求特征值和特征向量。
Rank:计算矩阵的秩。
计算机仿真实验报告实验.
《计算机仿真》上机实验报告姓名:学号:2012104021专业:测控班级:12级实验一常微分方程的求解及系统数学模型的转换一.实验目的通过实验熟悉计算机仿真中常用到的Matlab指令的使用方法,掌握常微分方程求解指令和模型表示及转换指令,为进一步从事有关仿真设计和研究工作打下基础。
二. 实验设备个人计算机,Matlab软件。
三. 实验准备预习本实验有关内容(如教材第2、3、5章中的相应指令说明和例题),编写本次仿真练习题的相应程序。
四. 实验内容1. Matlab中常微分方程求解指令的使用题目一:请用MATLAB的ODE45算法分别求解下列二个方程。
要求:1.编写出Matlab 仿真程序;2.画出方程解的图形并对图形进行简要分析;3.分析下列二个方程的关系。
1.2.1.function fun=funl(t,x)fun=-x^2;[t,x]=ode45('fun1',[0,20],[1]);figure(1);plot(t,x);grid2.function fun=fun2(t,x)fun=x^2;[t,x]=ode45('fun2',[0,20],[-1]);figure(2);plot(t,x);grid题目二:下面方程组用在人口动力学中,可以表达为单一化的捕食者-被捕食者模式(例如,狐狸和兔子)。
其中1x 表示被捕食者, 2x 表示捕食者。
如果被捕食者有无限的食物,并且不会出现捕食者。
于是有1'1x x ,则这个式子是以指数形式增长的。
大量的被捕食者将会使捕食者的数量增长;同样,越来越少的捕食者会使被捕食者的数量增长。
而且,人口数量也会增长。
请分别调用ODE45、ODE23算法求解下面方程组。
要求编写出Matlab 仿真程序、画出方程组解的图形并对图形进行分析和比较。
1.ODE45function fun=fun3(t,x)fun=[x(1)-0.1*x(1)*x(2)+0.01*t;-x(2)+0.02*x(1)*x(2)+0.04*t];[t,x]=ode45('fun3',[0,20],[30,20]);plot(t,x);Grid2.ODE23function fun=fun3(t,x)fun=[x(1)-0.1*x(1)*x(2)+0.01*t;-x(2)+0.02*x(1)*x(2)+0.04*t];[t,x]=ode23('fun3',[0,20],[30,20]);plot(t,x);Grid2. Matlab 中模型表示及模型转换指令的使用题目三:若给定系统的的传递函数为1132106126)(23423+++++++=s s s s s s s s G 请用MATLAB 编程求解其系统的极零点模型。
matlab实验一实验报告
matlab实验一实验报告实验一:Matlab实验报告引言:Matlab是一种强大的数学软件工具,广泛应用于科学计算、数据分析和工程设计等领域。
本实验旨在通过使用Matlab解决实际问题,探索其功能和应用。
一、实验目的本次实验的主要目的是熟悉Matlab的基本操作和常用函数,了解其在科学计算中的应用。
二、实验内容1. 数值计算在Matlab中,我们可以进行各种数值计算,包括基本的加减乘除运算,以及更复杂的矩阵运算和方程求解。
通过编写相应的代码,我们可以实现这些功能。
例如,我们可以使用Matlab计算两个矩阵的乘积,并输出结果。
代码如下:```matlabA = [1 2; 3 4];B = [5 6; 7 8];C = A * B;disp(C);```2. 数据可视化Matlab还提供了强大的数据可视化功能,可以将数据以图表的形式展示出来,更直观地观察数据的规律和趋势。
例如,我们可以使用Matlab绘制一个简单的折线图,来展示某个物体在不同时间下的位置变化。
代码如下:```matlabt = 0:0.1:10;x = sin(t);plot(t, x);xlabel('Time');ylabel('Position');title('Position vs. Time');```3. 图像处理Matlab还可以进行图像处理,包括图像的读取、处理和保存等操作。
我们可以通过Matlab对图像进行增强、滤波、分割等处理,以及进行图像的压缩和重建。
例如,我们可以使用Matlab读取一张图片,并对其进行灰度化处理。
代码如下:```matlabimg = imread('image.jpg');gray_img = rgb2gray(img);imshow(gray_img);```三、实验结果与分析在本次实验中,我们成功完成了数值计算、数据可视化和图像处理等任务。
控制系统计算机仿真(matlab)仿真实验一实验报告
实验一MATLAB基本操作与矩阵运算一、实验目的1、熟悉Matlab软件的基本操作方法2、掌握Matlab矩阵和数组的基本运算3、了解Matlab的常用函数的使用方法二、实验学时:2学时三、实验原理MATLAB环境是一种为数值计算、数据分析和图形显示服务的交互式的环境。
打开MATLAB软件弹出如图1-1所示的图形窗口。
MATLAB有3种子窗口,即:命令窗口(Command Window)、m-文件编辑窗口(Edit Window)和图形窗口(Figure Window)。
图1-1 MATLAB R2008a基本界面1.命令窗口(The Command Window)当MATLAB 启动后,出现的最大的窗口就是命令窗口。
用户可以在提示符“>>”后面输入交互的命令,这些命令就立即被执行。
在MATLAB 中,一连串命令可以放置在一个文件中,不必把它们直接在命令窗口内输入。
在命令窗口中输入该文件名,这一连串命令就被执行了。
因为这样的文件都是以“.m ”为后缀,所以称为m-文件。
2.m-文件编辑窗口(The Edit Window )我们可以用m-文件编辑窗口来产生新的m-文件,或者编辑已经存在的m-文件。
在MATLAB 主界面上选择菜单“File/New/M-file ”就打开了一个新的m-文件编辑窗口;选择菜单“File/Open ”就可以打开一个已经存在的m-文件,并且可以在这个窗口中编辑这个m-文件。
3.图形窗口(The Figure Window )图形窗口用来显示MATLAB 程序产生的图形。
图形可以是2维的、3维的数据图形,或其它棒状图、极坐标图等。
MATLAB 常用操作命令和运算符如下:clear ——清除工作空间变量clc ——清除命令窗口内容path ——设置路径cd ——设置当前目录符+——矩阵的加法运算符-——矩阵的减法运算符*——矩阵的乘法运算符\——矩阵的左除运算符/——矩阵的右除运算符^——矩阵的乘方linspace ——产生线性等分向量inv ——矩阵求逆poly ——创建多项式polyval ——多项式求值polyfit ——多项式拟合四、实验内容1.自由练习Matlab 软件的操作2、已知矩阵 A=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡987654321。
MatLab仿真实验报告
实验一 一阶系统及二阶系统时域特性MatLab 仿真实验 一:实验目的1、通过实验中的系统设计及理论分析方法,进一步理解自动控制系统的设计与分析方法。
2、熟悉仿真分析软件。
3、利用Matlab 对一、二阶系统进行时域分析。
4、掌握一阶系统的时域特性,理解常数T 对系统性能的影响。
5、掌握二阶系统的时域特性,理解二阶系统重要参数对系统性能的影响。
二、实验设备计算机和Matlab 仿真软件。
三、实验内容1、一阶系统时域特性 一阶系统11)(+=Ts s G ,影响系统特性的参数是其时间常数T ,T 越大,系统的惯性越大,系统响应越慢。
Matlab 编程仿真T=0.4,1.2,2.0,2.8,3.6,4.4系统单位阶跃响应。
2、二阶系统时域特性a 、二阶线性系统 16416)(2++=s s s G 单位脉冲响应、单位阶跃响应、单位正弦输入响应的 Matlab 仿真。
b 、二阶线性系统3612362++s s ξ,当ξ为0.1,0.2,0.5,0.7,1.0,2.0时,完成单位阶跃响应的Matlab 仿真,分析ξ值对系统响应性能指标的影响。
四、实验步骤1、一阶系统时域特性clearclcnum=1for del=0.4:0.8:4.4den=[del 1];step(tf(num,den))hold onendlegend('t=0.4','t=1.2','t=2.0','t=2.8','t=3.6','t=4.4') 2、二阶系统时域特性a、clearclcnum=16den=[1 4 16]sys=tf(num,den)[y1,t1]=impulse(sys)impulse(sys)figure ,plot(t1,y1)[y2,t2]=step(sys)step(sys)figure ,plot(t2,y2)hold ont=0:0.1:20figure,lsim(sys,sin(t),t)hold onc、clearclcnum=[0 0 4];den=[1 0.5 4];t=0:0.1:10;step(num,den,t)gridtitle('Step-Response Curves of G(s)=4/[s^2+2s+4]')num=[0 0 36]; den1=[1 1.2 36]; den2=[1 2.4 36]; den3=[1 4.8 36]; den4=[1 8.4 36]; den5=[1 12 36]; den6=[1 24 36];t=0:0.1:10; step(num,den1,t)gridtext(4,1.7,'Zeta=0.1'); holdstep(num,den2,t)text(3.3,1.5,'0.2')step(num,den3,t)text(3.5,1.2,'0.4')step(num,den4,t)text(3.3,0.9,'0.7')step(num,den5,t)text(3.3,0.6,'1.0')step(num,den6,t)text(3.0,0.4,'2.0')title('Step-Response Curves for G(s)=36/[s^2+12(zeta)s+1]')五、实验结果1、2、a、b、。
计算机仿真Matlab 实验报告二
实验二非线性系统的数字仿真实验一、实验目的学会用数字仿真方法分析线性和非线性系统的动态特性以及各种典型非线性环节对控制系统动态特性的影响。
二、实验内容系统模型如习题2.17所示。
根据控制理论分析,该系统将出现振幅为0.3,频率为0.8的自激振荡。
1. 按实验目的、要求和已知条件,建立系统的Simulink模型。
2. 在不引入非线性环节的情况下运行仿真模型,观察纪录系统动态特性的变化。
3. 在同样的条件下,引入滞环继电特性非线性环节,再运行仿真模型,观察纪录该非线性环节对系统过渡过程的影响。
4. 将滞环继电特性非线性环节换成饱和非线性环节,C1仍为0.3,运行仿真模型,观察纪录饱和非线性环节对系统过渡过程的影响。
实验解答:1.按实验目的、要求和已知条件,建立系统的Simulink模型。
建立Simulink模型如下:2.在不引入非线性环节的情况下运行仿真模型,观察纪录系统动态特性的变化。
去掉上图中的非线性环节—Relay,得到下图仿真结果:从图可以看出,开始会有突变,之后趋于稳定。
3. 在同样的条件下,引入滞环继电特性非线性环节,再运行仿真模型,观察纪录该非线性环节对系统过渡过程的影响。
如下,加入了滞环继电特性非线性环节从图中可以看出,系统产生了自激振荡,可以通过编程找到仿真曲线上的极值点,求出该图线的周期、角频率以及振幅。
通过仿真,由仿真图像可以很明白地看出,产生了自激振荡,且该自激振荡幅度约为0.6,周期约为8,则角频率约为0.8。
仿真结果与题目一致。
4. 将滞环继电特性非线性环节换成饱和非线性环节,C1仍为0.3,运行仿真模型,观察纪录饱和非线性环节对系统过渡过程的影响。
由图可得,仿真曲线的变化趋于缓和,但同时进入稳定的速率变慢。
即加入的饱和环节在系统中起到了限幅的作用。
饱和非线性环节使得系统更加平和的进入了稳定状态。
matlab 模拟 实验报告
matlab 模拟实验报告《利用Matlab模拟的实验报告》摘要:本实验利用Matlab软件对某一特定系统进行了模拟实验。
通过对系统的建模和仿真,我们得出了一些有价值的结论,并对系统的性能进行了评估。
本文将详细介绍实验的目的、方法、结果和分析,以及对实验结果的讨论和总结。
1. 引言Matlab是一种强大的数学建模和仿真工具,广泛应用于工程、科学和技术领域。
利用Matlab进行系统仿真可以帮助我们更好地理解系统的行为和性能,优化系统设计,并预测系统在不同条件下的表现。
本实验旨在利用Matlab对某一特定系统进行仿真,以验证系统的性能和稳定性。
2. 实验目的本实验的主要目的是利用Matlab对某一特定系统进行建模和仿真,分析系统的动态响应和稳定性,并评估系统的性能。
具体来说,我们将通过仿真实验探讨系统的频率响应、阶跃响应和脉冲响应,以及系统的稳定性和鲁棒性。
3. 实验方法首先,我们对系统进行了建模,包括系统的传递函数、状态空间模型等。
然后,利用Matlab软件进行仿真实验,分别对系统的频率响应、阶跃响应和脉冲响应进行了分析。
最后,我们对仿真结果进行了统计和评估,得出了一些有价值的结论。
4. 实验结果与分析通过Matlab的仿真实验,我们得到了系统的频率响应曲线、阶跃响应曲线和脉冲响应曲线。
通过对这些曲线的分析,我们可以得出系统的动态特性和稳定性。
同时,我们还对系统的性能进行了评估,包括系统的超调量、调节时间等指标。
5. 结果讨论与总结通过对实验结果的讨论和总结,我们得出了一些结论和建议。
我们对系统的性能和稳定性进行了评估,发现系统在某些条件下存在一些问题,提出了一些建议和改进措施。
同时,我们也对Matlab软件在系统仿真中的应用进行了总结和展望。
结论本实验利用Matlab对某一特定系统进行了建模和仿真,得出了一些有价值的结论。
通过对系统的动态响应和稳定性进行分析,我们发现了系统存在的一些问题,并提出了一些建议和改进措施。
控制系统计算机仿真(matlab)实验四实验报告
实验四控制系统计算机辅助分析一、实验目的1、掌握如何使用Matlab进行系统的时域分析2、掌握如何使用Matlab进行系统的频域分析3、掌握如何使用Matlab进行系统的根轨迹分析二、实验学时:2学时三、试验原理:1、稳定性的基本概念与必要条件根据李雅普诺夫稳定性理论,线性控制系统的稳定性可定义如下:如果线性控制系统在初始扰动的影响下,其动态过程随时间的推移逐渐衰减并趋于零(原平衡工作点),则称系统渐近稳定,简称稳定。
否则,若在初始扰动影响下,系统的动态过程随时间的推移而发散,则称系统不稳定。
线性系统稳定的充分必要条件是:闭环系统特征方程的所有根均具有负实部;或者说,闭环传递函数的极点均严格位于左半s平面。
由上述线性系统稳定性概念与系统稳定的充分必要条件可知,判定线性系统稳定性的最直接方法就是求出闭环系统特征方程的所有根或者全部闭环极点,根据特征方程所有根是否具有负实部或闭环极点是否全部位于左半s平面来判定系统的稳定性。
四、实验内容:(三题选做两题)1、时域分析(1)根据下面传递函数模型:绘制其单位阶跃响应曲线并从图上读取最大超调量,并求出单位脉冲响应曲线。
程序:s=tf('s');G=5*(s^2+5*s+6)/(s^3+6*s^2+10*s+8);step(G);grid;hold on;impulse(G);结果:超调量=(|3.75-4|)/4x100%=6.25%0123456-112345Step ResponseTime (sec)A m p l i t u d e(2)典型二阶系统传递函数为:当ζ=0.7,ωn 取2、4、6、8、10、12的单位阶跃响应。
程序: kesi=0.7for wn=2:2:12 num=wn^2;den=[1 2*kesi*wn wn^2]; G=tf(num,den); t=0:0.01:10; step(G); hold on; endtitle('wn 不同值下的单位阶跃响应'); xlabel('t');ylabel('阶跃响应'); grid; 结果:00.51 1.52 2.53 3.540.20.40.60.811.21.4w n 不同值下的单位阶跃响应t (sec)阶跃响应(3)典型二阶系统传递函数为:当ωn =6,ζ取0.2、0.4、0.6、0.8、1.0、1.5、2.0的单位阶跃响应。
matlab计算机实验报告
Matlab计算机实验报告 - Step by Step Thinking引言本文将介绍如何使用Matlab进行计算机实验,并以Step by Step Thinking的方式来展示实验的过程。
在本实验中,我们将使用Matlab进行数学计算和数据分析。
实验目标本实验的主要目标是展示如何使用Matlab进行计算和数据分析。
通过学习本实验,您将能够:1.熟悉Matlab的基本操作和语法;2.使用Matlab进行数学计算;3.进行数据可视化和分析。
实验环境在开始实验之前,请确保您已安装好Matlab软件并配置好运行环境。
实验步骤步骤1:启动Matlab双击Matlab图标或通过命令行启动Matlab软件。
步骤2:创建新的脚本文件在Matlab的编辑器中,创建一个新的脚本文件。
您可以选择新建文件,然后选择脚本文件类型。
步骤3:进行数学计算在脚本文件中,您可以输入各种数学表达式和计算公式。
例如,我们可以计算一个简单的数学表达式:2 + 2。
result = 2 + 2;disp(result);运行脚本后,Matlab会输出结果4。
步骤4:使用Matlab进行数据分析在Matlab中,您可以使用各种函数和工具箱来进行数据分析。
例如,我们可以使用内置的统计工具箱来计算一组数据的平均值和标准差。
data = [1, 2, 3, 4, 5];mean_value = mean(data);std_value = std(data);disp(mean_value);disp(std_value);运行脚本后,Matlab会输出数据的平均值和标准差。
步骤5:数据可视化Matlab还提供了强大的数据可视化功能,可以帮助我们更好地理解和分析数据。
例如,我们可以使用plot函数来绘制数据的折线图。
x = 1:5;y = [1, 4, 8, 11, 15];plot(x, y);xlabel('x');ylabel('y');title('数据可视化');运行脚本后,Matlab会显示一个包含数据折线图的图形窗口。
控制系统计算机仿真(matlab)实验五实验报告
实验五 控制系统计算机辅助设计一、实验目的学习借助MATLAB 软件进行控制系统计算机辅助设计的基本方法,具体包括超前校正器的设计,滞后校正器的设计、滞后-超前校正器的设计方法。
二、实验学时:4 学时 三、实验原理1、PID 控制器的设计PID 控制器的数学模型如公式(5-1)、(5-2)所示,它的三个特征参数是比例系数、积分时间常数(或积分系数)、微分时间常数(或微分系数),因此PID 控制器的设计就是确定PID 控制器的三个参数:比例系数、积分时间常数、微分时间常数。
Ziegler (齐格勒)和Nichols (尼克尔斯)于1942提出了PID 参数的经验整定公式。
其适用对象为带纯延迟的一节惯性环节,即:s e Ts Ks G τ-+=1)( 5-1式中,K 为比例系数、T 为惯性时间常数、τ为纯延迟时间常数。
在实际的工业过程中,大多数被控对象数学模型可近似为式(5-1)所示的带纯延迟的一阶惯性环节。
在获得被控对象的近似数学模型后,可通过时域或频域数据,根据表5-1所示的Ziegler-Nichols 经验整定公式计算PID 参数。
表控制器的参数。
假定某被控对象的单位阶跃响应如图5-4所示。
如果单位阶跃响应曲线看起来近似一条S 形曲线,则可用Ziegler-Nichols 经验整定公式,否则,该公式不适用。
由S 形曲线可获取被控对象数学模型(如公式5-1所示)的比例系数K 、时间常数T 、纯延迟时间τ。
通过表5-1所示的Ziegler-Nichols 经验整定公式进行整定。
如果被控对象不含有纯延迟环节,就不能够通过Ziegler-Nichols 时域整定公式进行PID 参数的整定,此时可求取被控对象的频域响应数据,通过表5-1 所示的Ziegler-Nichols 频域整定公式设计PID 参数。
如果被控对象含有纯延迟环节,可通过pade 命令将纯延迟环节近似为一个四阶传递函数模型,然后求取被控对象的频域响应数据,应用表5-1求取PID 控制器的参数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
注:以下所有程序均在MATLAB7.0下运行通过。
实验一MATLAB语言编程一、实验目的:熟悉MATLAB语言及其环境,掌握编程方法。
要求认真听取实验指导老师讲解与演示。
二、具体实验内容、步骤、要求:1.运行交互式学习软件,学习MATLAB语言2.在MATLAB的命令窗口下键入如下命令:INTRO(注意:intro为一个用MATLAB语言编写的幻灯片程序,主要演示常用的MATLAB语句运行的结果。
)然后,根据显示出来的幻灯片右图按钮进行操作,可按START→NEXT→NEXT按钮一步步运行,观察。
3.自编程序并完成上机编辑,调试,运行,存盘:(1)、用MATLAB命令完成矩阵的各种运算。
例如:求出下列运算结果,并上机验证。
(1)A(:,1) %取矩阵A的第一列元素ans =11213141(2)A(2,:) %取矩阵A的第二行元素ans =21 22 23 24(3)A(1:2,2:3) %取矩阵A第一二行第二三列的元素ans =12 1322 23(4)A(2:3,2:3) %取矩阵A第二三行第二三列的元素ans =22 2332 33(5)A(:,1:2) %取矩阵A第一列与第二列元素ans =11 1221 2231 3241 42(6)A(2:3) %取矩阵A第二行与第三行的首列元素ans =21 31(7)A(:) %将矩阵A的所有元素按一列排列ans =11213141122232421323334314243444(8)A(:,:) %显示矩阵Aans =11 12 13 1421 22 23 2431 32 33 3441 42 43 44(9)ones(2,2) %建立一个两行两列的全1矩阵ans =1 11 1(10)eye(2) %建立一个二维的单位矩阵ans =1 00 1(2)、绘制数学函数的图形:例如:,理解数组运算与矩阵运算的功能。
MATLAB程序如下:t=0:0.1:8; %建立向量ty=1-2*exp(-t.*sin(t)); %计算向量t的函数向量yplot(t,y); %利用plot命令绘图xlabel('t');ylabel('y=1-2*e^(-t*sin(t))'); %注释横坐标与纵坐标图1.1 所对应的函数图像4.理解函数文件与命令文件的区别,并自编函数文件并调用。
命令文件可以理解为简单的M文件,命令文件中的变量都是全局变量。
函数文件是在命令文件的基础之上多添加了一行函数定义行,其代码组织结构和调用方式与对应的命令文件截然不同。
函数文件是以函数声明行“function...”作为开始的,其实质就是用户往MATLAB函数库里边添加了子函数,函数文件中的变量都是局部变量,除非使用了特别声明。
函数运行完毕之后,其定义的变量将从工作区间中清除。
而命令文件只是将一系列相关的代码结合封装,没有输入参数和输出参数,即不自带参数,也不一定要返回结果。
而多数函数文件一般都有输入和输出变量,并见有返回结果。
举例如下:已知非线性方程组求系统在初始条件为的数值解。
1)定义方程组的m函数equ.mfunction xs=equ(xi)x=xi(1);y=xi(2);z=xi(3);xs=zeros(3,1);xs(1)=sin(x)+y^2+log(z)-7;xs(2)=3*x+2^y-z^3+1;xs(3)=x+y+z-5;2)方程组求解x0=[1 1 1];xyz=fsolve(@equ,x0)xyz =0.5991 2.3959 2.0050在调用fsolve命令求解方程时调用了自定义的equ函数。
5.学会通过Help,熟悉MATLAB中为用户提供的功能各异的函数与命令。
只需在MATLAB命令窗口中键入help 命令名或函数名,按回车键后即会显示该命令或函数的相关说明。
根据说明即可自学如何使用该命令或函数。
例如键入help eig实验二数值积分算法练习与函数调用一、实验目的:理解数值积分法,熟练掌握MATLAB的函数调用。
二、实验示例介绍:1.用Euler法求初值问题的数值解:设方程如下:取步长h=0.1,名为FZSYZ1.M上机用如下程序名FZSYZ1.M可求出数值解。
2.在MATLAB中提出了现成的数值积分函数,如ode1、ode23、ode45求解微分方程组,下面介绍ode23它为二阶/三阶的RKF方法在MATLAB的ToolBox。
文件夹中的MATLAB/funfun下的M文件,在此介绍其调用方法与应用示例如下:[t,x]=ode23(‘系统函数名’,)其中,系统函数名为描述系统状态方程的M函数的名称,该函数名在调用时应该用引号括起来(文件名字串),为起始与终止时间,为系统初始变量的值(列向量),为控制解的精度(缺省值为=在ode23中),trace为输出形式控制变量,非零则程序运行的每步都显示出来。
trace为缺省值时——不显示中间结果。
t为输出参数返回积分的时间离散值(列向量)。
X:输出参量,返回每个时间点值的解的列向量。
注意:系统函数的编写格式为固定的。
例如:若MATLAB求解初值问题的解,其方程如下:第一步:编写如下程序:function xdot=fun21(t,x)xdot=x-t^2并以fun21.m存盘。
第二步:编写如下程序并以fzsy22.m存盘。
t0=0;tf=3;tol=1e-6;x0=1;trace=1;[t,x]=ode23('fun21',t0,tf,tol,trace)plot(t,x)第三步:在命令窗口下运行fzsy21即可求出x的解,并画出曲线。
3.实验具体内容、步骤、要求:(1)运行交互式软件中函数调用,学习程序,(2)试将(2-2)方程改为用Euler编程求解,试比较用ode23求解结果。
MATLAB源程序如下:%ode23求解t0=0;tf=3;tol=1e-6;x0=1;trace=1;[t,x]=ode23('fun21',t0,tf,tol,trace);plot(t,x,'r');hold on;%Euler求解h1=0.1;t=[t0:h1:tf];n=length(t);u=x0;uu(1)=u;for i=2:ndu=u-t(i-1)^2;u=du*h1+u;uu(i)=u;endplot(t,uu,'b--');hold off;图2.1 式(2-2)用Euler编程与ode23算法求解结果(3)试将(2-1)方程改为用ode23算法调用求解,并试比较结果。
图2.2 式(2-1)用Euler编程与ode23算法求解结果从比较可知:Euler需要小步长,不能自动确定步长;ode23算法自动确定步长,如果误差小于指定的精度,进行下一步,否则缩小步长,因此ode23算法比Euler算法更为准确,但占用的计算时间更长。
(4)利用ode23或ode45求解线性时不变系统微分方程并绘制出的曲线。
式中MATLAB程序清单如下:%函数(y(t) ) ̇=Ay(t)function ys=fun22(t,y)ys=zeros(2,1);ys(1)=-0.5*y(1)+y(2);ys(2)=-y(1)-0.5*y(2);%利用ode45求解其数值解并作图t0=0;tf=4;tol=1e-6;y0=[0;1];trace=1;y=zeros(2,1);[t,y]=ode45('fun22',t0,tf,y0,tol,trace);plot(t,y(:,1),'r');hold on;plot(t,y(:,2),'b');hold off;图2.3 第(4)问利用ode45算法求解所得y(t)曲线(5)求出与的单位阶跃响应,并分别求出状态空间模型。
MATLAB程序清单如下:num1=[2];den1=[1 2 1];g1=tf(num1,den1);%构造连续传函G1(S)num2=[1];den2=[2 3 3 1];g2=tf(num2,den2);%构造连续传函G2(S)step(g1);hold on;%画出G1(S)的阶跃响应step(g2);hold off;%画出G2(S)的阶跃响应[A1,B1,C1,D1]=tf2ss(num1,den1)%得到G1(S)的状态空间描述[A2,B2,C2,D2]=tf2ss(num2,den2)%得到G2(S)的状态空间描述从MATLAB窗口中得到的结果可知,对应的状态空间模型为:对应的状态空间模型为:图2.4 传递函数G1(S)与G2(S)对应的单位阶跃响应选做题一:已知系统传递函数为求对应的零极点模型,绘制系统阶跃响应。
MATLAB程序清单如下:num=[200 400];den=conv([1 1],[1 10 42]);g=tf(num,den);%构造连续传递函数[z,p,k]=tf2zp(num,den)%将普通传函转化为零极点模型step(g);在MATLAB命令窗中显示如下结果:z =-2p =-5.0000 + 4.1231i-5.0000 - 4.1231i-1.0000k =200所以对应的零极点模型为。
图2.5 选做题一中的传递函数对应的单位响应曲线图选做题二:已知一个二阶系统为,分别取R=0与R=0.5时,系统模型取不同步长的数值解(h=0.5~0.001)。
MATLAB程序清单如下:function ys=cstep(t,y)R=0;ys=zeros(2,1);ys(1)=y(2);ys(2)=-2*R*y(2)-y(1);[t,y]=ode45(@cstep,[0:0.5:5],[100 0]);plot(t,y(:,1),'r--');hold on;tol=1e-6;trace=1;t0=0;tf=5;[t1,y1]=ode45('cstep',t0,tf,[100 0],tol,trace);plot(t1,y1(:,1),'b');hold off在MATLAB命令窗中显示如下结果:图2.6 R=0时的仿真图2.7 R=0.5时的仿真从图2.6与图2.7可以看出,步长越短,仿真结果越接近准确值。
当步长取0.5时,可以看到与步长取0.001时有明显偏离,而采取自动步长的ode45算法与步长取0.001的仿真结果一致。
(6)设方程式为用各种数值积分法与不同步长求方程式的数值解,并比较之。
MATLAB程序清单如下:%欧拉法求解子函数function [uu,t]=euler(t,h1,y0)n=length(t);u=y0;uu(1)=u;for i=2:ndu=-40*u;u=du*h1+u;uu(i)=u;end%主程序t0=0;tf=0.5;y0=2;h1=0.01;t1=[0:h1:1];[uu1,t1]=euler(t,h1,y0);%步长取0.01,用欧拉法求解plot(t1,uu1,'r');hold on;h2=0.001;%步长取0.01,用欧拉法求解t2=[0:h2:1];[uu2,t2]=euler(t2,h2,y0);plot(t2,uu2,'b');hold on;tol=1e-6;trace=1;u0=1;[t,u]=ode23('fun26',t0,tf,y0,tol,trace);%用ode23求解,步长自定plot(t,u,'g--');hold off;gridgtext('Euler0.01');gtext('Euler0.001');gtext('ode23');在MATLAB命令窗中显示如下结果:图2.8 采用不同算法对第(6)题微分方程求解结果示意图从图2.5可以看出,采用欧拉法求解时,步长选取越短,其结果越接近真实值,选用龙阶-库塔法时,由于程序自动变步长直到达到预设精度,因此利用该方法求得的结果较准确。