MATLAB实验报告.docx

上传人:b****4 文档编号:6345148 上传时间:2023-05-09 格式:DOCX 页数:60 大小:747.56KB
下载 相关 举报
MATLAB实验报告.docx_第1页
第1页 / 共60页
MATLAB实验报告.docx_第2页
第2页 / 共60页
MATLAB实验报告.docx_第3页
第3页 / 共60页
MATLAB实验报告.docx_第4页
第4页 / 共60页
MATLAB实验报告.docx_第5页
第5页 / 共60页
MATLAB实验报告.docx_第6页
第6页 / 共60页
MATLAB实验报告.docx_第7页
第7页 / 共60页
MATLAB实验报告.docx_第8页
第8页 / 共60页
MATLAB实验报告.docx_第9页
第9页 / 共60页
MATLAB实验报告.docx_第10页
第10页 / 共60页
MATLAB实验报告.docx_第11页
第11页 / 共60页
MATLAB实验报告.docx_第12页
第12页 / 共60页
MATLAB实验报告.docx_第13页
第13页 / 共60页
MATLAB实验报告.docx_第14页
第14页 / 共60页
MATLAB实验报告.docx_第15页
第15页 / 共60页
MATLAB实验报告.docx_第16页
第16页 / 共60页
MATLAB实验报告.docx_第17页
第17页 / 共60页
MATLAB实验报告.docx_第18页
第18页 / 共60页
MATLAB实验报告.docx_第19页
第19页 / 共60页
MATLAB实验报告.docx_第20页
第20页 / 共60页
亲,该文档总共60页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MATLAB实验报告.docx

《MATLAB实验报告.docx》由会员分享,可在线阅读,更多相关《MATLAB实验报告.docx(60页珍藏版)》请在冰点文库上搜索。

MATLAB实验报告.docx

MATLAB实验报告

实验一MATLAB环境的熟悉与基本运算

一、实验目的及要求

1.熟悉MATLAB的开发环境;

2.掌握MATLAB的一些常用命令;

3.掌握矩阵、变量、表达式的输入方法及各种基本运算。

二、实验内容

1.熟悉MATLAB的开发环境:

①MATLAB的各种窗口:

命令窗口、命令历史窗口、工作空间窗口、当前路径窗口。

②路径的设置:

Ø建立自己的文件夹,加入到MATLAB路径中,并保存。

Ø设置当前路径,以方便文件管理。

2.学习使用clc、clear,了解其功能和作用。

3.矩阵运算:

已知:

A=[12;34];B=[55;78];求:

A*B、A.*B,并比较结果。

4.使用冒号选出指定元素:

已知:

A=[123;456;789];求:

A中第3列前2个元素;A中所有列第2,3行的元素;

5.在MATLAB的命令窗口计算:

1)

2)

6.关系及逻辑运算

1)已知:

a=[5:

1:

15];b=[12887101211131415],求:

y=a==b,并分析结果

2)已知:

X=[01;10];Y=[00;10],求:

x&y+x>y,并分析结果

7.文件操作

1)将0到1000的所有整数,写入到D盘下的data.txt文件

2)读入D盘下的data.txt文件,并赋给变量num

8.符号运算

1)对表达式f=x3-1 进行因式分解

2)对表达式f=(2x2*(x+3)-10)*t,分别将自变量x和t的同类项合并

3)求

三、实验报告要求

完成实验内容的3、4、5、6、7、8,写出相应的程序、结果

实验二MATLAB语言的程序设计

一、实验目的

1、熟悉MATLAB程序编辑与设计环境

2、掌握各种编程语句语法规则及程序设计方法

3、函数文件的编写和设计

4、了解和熟悉变量传递和赋值

二、实验内容

1.编写程序,计算1+3+5+7+…+(2n+1)的值(用input语句输入n值)。

2.编写分段函数

的函数文件,存放于文件ff.m中,并求

的值。

3.用for循环语句实现编写一个求n阶乘的函数文件

1、函数文件设计:

设计一个函数文件实现一个阶乘运算

并设计程序调用该函数。

为保证函数的通用性,当输入负数或小数时,显示出错提示:

disp('Inputparametermustbeapositiveinteger!

')

提示:

fix(x)对零方向取整数

ceil(x)对+

方向取整数

round(x)四舍五入取整数

4.找到一个n!

>10100的值(利用上题的n阶乘函数文件)

5.已知一维数组A=[2,4,5,8,10]、B=[4,9,6,7,4],用for循环语句实现

,求和函数可用sum()

6.编写验证魔方矩阵的函数文件,输出要求如下:

(1)如果输入矩阵的维数小于3,输出显示’error’

(2)如果输入矩阵的不是方阵,输出显示’thesizeofmatrixXmustbeN-by-Nmatrix’

(3)显示行、列和及其对角线求和后的值,并判断其和是否相同。

若不同,显示‘No’,相同显示‘Yes’。

三、实验报告要求

在M文件编辑器中,编写程序代码并调试

实验三MATLAB的图形绘制

一、实验目的及要求:

1.掌握MATLAB绘图的基本方法,熟悉各种绘图函数的使用;

2.掌握图形的修饰方法和标注方法;

3.了解MATLAB中图形窗口的操作。

二、实验内容:

x=[-2π,2π],y1=sinx、y2=cosx、y3=sin2x、y4=cos2x

①用MATLAB语言分四个区域分别绘制的曲线,并且对图形标题及横纵坐标轴进行标注(如下图所示)。

 

图2四分区绘制曲线

②另建一个窗口,不分区,用不同颜色、线型绘出四条曲线,并标注图例注解。

 

图3同一窗口绘制多条曲线

③绘制三维曲线:

三、实验报告要求:

写出相应的的程序及上机结果。

实验四控制系统的模型及其转换

一、实验目的及要求

1、掌握建立控制系统模型的函数及方法;

2、掌握控制系统模型间的转换方法及相关函数;

3、熟悉控制系统模型的连接方法;

4、掌握典型系统模型的生成方法。

二、实验内容

1、已知两个传递函数分别为:

①在MATLAB中分别用传递函数、零极点表示;

②在MATLAB中分别求出通过反馈、串联、并联后得到的系统模型;

2、系统的模型为

试建立系统的传递函数模型。

3、已知单输入双输出系统的零极点模型

建立系统的零极点模型。

4.控制系统模型的转换

4.1将2的模型转换为零极点模型

4.2将3的模型转换为传递函数模型

三、实验报告要求

写出程序及上机的结果。

实验五SIMULINK基本操作

一、实验目的

学会SIMULINK仿真基本操作

二、实验内容

1、打开SimulinkLibraryBrowser窗口,练习功能模块的基本操作。

2、通过示波器观察1MHz,幅度为15mV 的正弦波和100KHz,幅度为5mV 的正弦波相乘的结果。

写 出数学表达式。

通过使用三踪示波器同时观察1MHz、100KHz 正弦波以及相乘的结果。

注意设置仿真参 数和示波器的扫描参数和幅度显示参数。

3、系统开环传递函数

求系统单位负反馈闭环单位阶跃响应曲线。

4、学习构建SIMULINK 子系统。

构建一个子系统,使得它具有将输入信号m(t)(如一个100Hz 的 正弦波)和一个常数C 相加后再和一个1000Hz 的幅度为A 的正弦波相乘的功能:

y(t)=A(m(t)+C) sin (2*pi*f*t) ,其中f=1000 Hz。

保存为s23.mdl。

用sim 指令在命令空间启动模型进行仿真:

在Matlab 命令空间中用语 句对参数A, C, f进行设置,并对采用命令open 打开,采用sim 指令进行仿真。

请给出指令语句。

三、实验报告要求

写出程序及上机的结果。

实验六控制系统的时域分析

一、实验目的

利用MATLAB进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性;

二、实验内容

(一)稳定性

1.系统传函为

,试判断其稳定性。

2.用Matlab求出

的极点,判断稳定性。

(二)阶跃响应

典型二阶系统:

要求:

1)在Matlab环境下,编程绘制出当Wn=6,

时,二阶系统的单位阶跃响应曲线并分析

的变化对控制系统输出的影响;

2)在Matlab环境下,编程绘制出

,Wn=2、4、6、8、10、12时,系统的单位阶跃响应曲线并说明Wn的变化对系统输出有何影响。

(三)系统动态特性分析

3.1用编程方式求二阶系统

阶跃响应的峰值时间

,上升时间

,调整时间

,超调量

3.2

(1)在Simulink集成环境下建立模型,在给定信号作用点处输入单位给定阶跃响应信号,0.3秒后在扰动信号点输入单位阶跃响应信号。

并绘制相应的响应曲线。

(2)计算仿真结果的超调量、上升时间、峰值时间、稳态误差。

三、实验报告要求:

1)完成上述各题

2)分析零极点对系统性能的影响

3)分析阻尼比

、振荡频率Wn对系统阶跃响应的影响

实验七控制系统的频域分析

一、实验目的

1.利用计算机作出开环系统的波特图

2.观察记录控制系统的开环频率特性

3.控制系统的开环频率特性分析

二、实验内容:

1、绘制典型二阶系统的Bode图

要求:

在Matlab环境下,以

为参变量,编程绘制该系统的对数频率特性曲线(Bode图),并从Bode图中找出二阶系统由于

的变化对其Bode图有何影响?

图形有哪些变化?

图形与

的对应关系(在图中对应的标注出来)

2、某控制系统的开环传递函数为

要求:

在Matlab环境下,编程绘制该系统的开环Bode图,并通过Bode图判断该闭环系统的稳定性。

若闭环系统稳定,则从图中求出系统的幅值裕度Kg、相位裕度

3、某控制系统的开环传递函数为:

要求:

1)绘制开环系统的nyquist图,并判断闭环系统的稳定性;求出系统的单位冲激响应;

2)若给系统增加一个s=1的开环极点(p=2),绘制此时的nyquist图,判别此时闭环系统的稳定性;并求出系统的单位冲激响应;

3)若给系统增加一个开环极点p=2的同时再增加一个开环零点z=0,绘制此时的nyquist图,判别此时闭环系统的稳定性;并求出系统的单位冲激响应。

三、实验报告要求:

1)完成上述各题

2)分析幅值裕度Kg、相位裕度

的物理意义。

实验八控制系统PID校正器设计法

一、实验目的

1、熟悉常规PID控制器的设计方法

2、掌握PID参数的调节规律

3、学习编写程序求系统的动态性能指标

二、相关知识——临界比例度法(边界稳定法)

用系统的等幅振荡曲线来整定控制器的参数。

先测出系统处于闭环状态下对象的等幅振荡曲线,根据等幅振荡曲线定出一些能反映控制对象动态特性的参数,具体做法是将比例增益K(或比例度

=1/K)调在比较小的位置上(对应

为比较大位置上),逐渐增大K值(或逐渐减小

),直到出现等幅振荡曲线,此时的比例增益为Km,称为临界比例增益,

称为临界比例度。

从振荡曲线上读出临界周期Tm。

根据得到的Km(或

)、Tm两个参数,利用下表来计算控制器的控制参数。

控制器类型

控制器的控制参数

比例增益Kp

比例度

积分时间Ti

微分时间Td

P

0.5Km

2

0

PI

0.45Km

2.2

Tm/1.2

0

PID

0.6Km

1.7

0.5Tm

0.125Tm

三、实验内容

1、在SIMULINK窗口建立如下页模型。

2、设计PID控制器,传递函数模型如下

3、修改PID参数

讨论参数对系统的影响

4、利用临界比例度法(即:

稳定边界法)对PID参数

校正设计。

参数

Km

Tm

Kp

Ti

Td

数值

0.68

1.991

0.306

1.6592

5、根据PID参数

对系统的影响,调节PID参数实现系统的超调量小于10%。

参数

Kp

Ti

Td

数值

6、通过程序求得系统的超调量、上升时间和调节时间(误差带选为5%)

四、实验报告要求:

写出程序及上机的结果,并对结果进行分析。

 

实验一MATLAB环境的熟悉与基本运算

一、实验目的及要求

1.熟悉MATLAB的开发环境;

2.掌握MATLAB的一些常用命令;

3.掌握矩阵、变量、表达式的输入方法及各种基本运算。

二、实验内容

3.矩阵运算:

已知:

A=[12;34];B=[55;78];求:

A*B、A.*B,并比较结果。

程序:

A*BA.*B

结果:

1921510

43472132

结果分析:

*表示矩阵相乘,而.*表示矩阵的各元素对应相乘

4.使用冒号选出指定元素:

已知:

A=[123;456;789];求:

A中第3列前2个元素;A中所有列第2,3行的元素;

程序:

A(1:

2,3)A(2:

3,:

结果:

3456

6789

5.在MATLAB的命令窗口计算:

1)

2)

程序:

f=sin(2*pi)(89^(1/2)+55*0.4)/4.5

结果:

f=-2.4493e-016ans=6.9853

6.关系及逻辑运算

1)已知:

a=[5:

1:

15];b=[12887101211131415],求:

y=a==b,并分析结果

程序:

y=a==b

结果:

y=00010100111

结果分析:

2)已知:

X=[01;10];Y=[00;10],求:

x&y+x>y,并分析结果

程序:

X&Y+X>Y

结果:

01

10

结果分析:

7.文件操作

1)将0到1000的所有整数,写入到D盘下的data.txt文件

程序:

x=[0:

1:

1000]

结果:

savedata.txtx-ascii–double

2)读入D盘下的data.txt文件,并赋给变量num

程序:

num=load(‘data.txt’)

8.符号运算

1)对表达式f=x3-1 进行因式分解

程序:

symsx

f=x^3-1

factor(f)

结果:

ans=(x-1)*(x^2+x+1)

2)对表达式f=(2x2*(x+3)-10)*t,分别将自变量x和t的同类项合并

程序:

symsxt

>>f=(2*(x^2)*(x+3)-10)*t;

>>collect(f,x)

>>collect(f,t)

结果:

ans=2*t*x^3+6*t*x^2-10*t

ans=(2*x^2*(x+3)-10)*t

3)求

程序:

symsxz

>>f=x/(1+z)^3;

>>int1=int(f,z)

结果:

int1=-x/(2*(z+1)^2)

实验二MATLAB语言的程序设计

一、实验目的

1、熟悉MATLAB程序编辑与设计环境

2、掌握各种编程语句语法规则及程序设计方法

3、函数文件的编写和设计

4、了解和熟悉变量传递和赋值

二、实验内容

1.编写程序,计算1+3+5+7+…+(2n+1)的值(用input语句输入n值)。

程序:

function[s]=WFSSY21(x,n)

%UNTITLED2Summaryofthisfunctiongoeshere

%Detailedexplanationgoeshere

n=input('pleaseinputn:

');

s=0

forn=0:

1:

n

x=2*n+1;

s=s+x;

end

结果:

pleaseinputn:

5

s=36

2.编写分段函数

的函数文件,存放于文件ff.m中,并求

的值。

程序:

function[y]=WFSSY22(x)

%UNTITLED5Summaryofthisfunctiongoeshere

%Detailedexplanationgoeshere

x=input('pleaseinputx:

');

y=0;

ifx<0

y=0;

elseifx<1

y=x;

elseifx<=2

y=2-x;

else

y=0

end

结果:

pleaseinputx:

-3

ans=0

pleaseinputx:

2^(1/2)

ans=0.5858

pleaseinputx:

inf

y=0

ans=0

3.用for循环语句实现编写一个求n阶乘的函数文件

1、函数文件设计:

设计一个函数文件实现一个阶乘运算

并设计程序调用该函数。

为保证函数的通用性,当输入负数或小数时,显示出错提示:

disp('Inputparametermustbeapositiveinteger!

')

提示:

fix(x)对零方向取整数

ceil(x)对+

方向取整数

round(x)四舍五入取整数

程序:

function[y]=WFSSY23(n)

%UNTITLED3Summaryofthisfunctiongoeshere

%Detailedexplanationgoeshere

x=input('pleaseinputx:

');

ifx<0|(fix(x)~=x)

disp('Inputparametermustbeapositiveinteger!

');

end

y=1;

forx=1:

1:

x

y=y*x;

end

结果:

pleaseinputx:

3

ans=6

pleaseinputx:

4

ans=24

4.找到一个n!

>10100的值(利用上题的n阶乘函数文件)

程序:

function[y]=WFSSY24(n)

%UNTITLED4Summaryofthisfunctiongoeshere

%Detailedexplanationgoeshere

x=input('pleaseinputx:

');

ifx<0|(fix(x)~=x)

disp('Inputparametermustbeapositiveinteger!

');

end

y=1;

forx=1:

1:

x

y=y*x;

end

ify>10^100

y;

else

disp('n!

<10^100!

');

end

结果:

pleaseinputx:

5

ans=120

pleaseinputx:

9999

n!

>10^100!

ans=Inf

5.已知一维数组A=[2,4,5,8,10]、B=[4,9,6,7,4],用for循环语句实现

,求和函数可用sum()

程序:

function[s,c]=WFSSY25(i,n)

%UNTITLED2Summaryofthisfunctiongoeshere

%Detailedexplanationgoeshere

A=[2,4,5,8,10];

B=[4,9,6,7,4];

n=input('pleaseinputn:

');

fori=1:

1:

n

c=A(i)*B(n-i+1);

end

s=sum(c)

end

结果:

pleaseinputn:

3

s=20

6.编写验证魔方矩阵的函数文件,输出要求如下:

(1)如果输入矩阵的维数小于3,输出显示’error’

(2)如果输入矩阵的不是方阵,输出显示’thesizeofmatrixXmustbeN-by-Nmatrix’

(3)显示行、列和及其对角线求和后的值,并判断其和是否相同。

若不同,显示‘No’,相同显示‘Yes’。

程序:

function[b,m,n,c,d,p,e,f,j,h,i]=WFSSY26(A)

%UNTITLED3Summaryofthisfunctiongoeshere

%Detailedexplanationgoeshere

A=input('EntermatrixA=>');

b=ndims(A);

[m,n]=size(A);

ifb<3

disp('error');

end

ifm~=n

disp('thesizeofmatrixXmustbeN-by-Nmatrix');

end

c=sum(A,1);

d=sum(A,2);

p=diag(A);

e=diag(fliplr(A));

f=sum(c)/m;

g=sum(d)/n;

h=sum(p);

i=sum(e);

iff==g;

ifh==i

iff==h

disp('Yes')

else

disp('No')

end

else

disp('No')

end

else

disp('No')

end

结果:

EntermatrixA=>[17241815

23571416

46132022

101219213

11182529]

error

Yes

ans=2

EntermatrixA=>[17245815

23571416

46132022

101219213

11182529]

error

No

ans=2

实验三MATLAB的图形绘制

一、实验目的及要求:

1.掌握MATLAB绘图的基本方法,熟悉各种绘图函数的使用;

2.掌握图形的修饰方法和标注方法;

3.了解MATLAB中图形窗口的操作。

二、实验内容:

x=[-2π,2π],y1=sinx、y2=cosx、y3=sin2x、y4=cos2x

①用MATLAB语言分四个区域分别绘制的曲线,并且对图形标题及横纵坐标轴进行标注。

程序:

closeall

clc

x=[-2*pi:

pi/1000:

2*pi];

y1=sin(x);

y2=cos(x);

y3=sin(2*x);

y4=cos(2*x);

subplot(2,2,1)

plot(x,y1);

axis([-2*pi2*pi-11])

set(gca,'xtick',-2*pi:

pi:

2*pi)

set(gca,'ytick',-1:

0.5:

1)

set(gca,'xticklabel','-2pi|-pi|0|pi|2pi')

set(gca,'yticklabel','-1|-0.5|0|0.5|1')

xlabel('x');ylabel('y1');

title('sin(x)');

gridon;

subplot(2,2,2)

axis([-2*pi2*pi-11])

plot(x,y2);

axis([-2*pi2*pi-11])

set(gca,'xtick',-2*pi:

pi:

2*pi)

set(gca,'ytick',-1:

0.5:

1)

set(gca,'xticklabel','-2pi|-pi|0|pi|2pi')

set(gca,'yticklabel','-1|-0.5|0|0.5|1')

xlabel('x');ylabel('y2');

title('cos(x)');

gridon;

subplot(2,2,3)

axis([-2*pi2*pi-11])

plot(x,y3);

axis([-2*pi2*pi-11])

set(gca,'xtick',-2*pi:

pi:

2*pi)

set(gca,'ytick',-1:

0.5:

1)

set(gca,'xticklabel','-2pi|-pi|0|pi|2pi')

set(gca,'yticklabel','-1|-0.5|0|0.5|1')

xlabel('x');ylabel('y3');

title('sin(2x)');

gridon;

subplot(2,2,4)

axis([-2*pi2*pi-11])

plot(x,y4);

axis([-2*pi2*pi-11])

set(

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2