MATLAB实验报告.docx

上传人:b****7 文档编号:9758903 上传时间:2023-02-06 格式:DOCX 页数:60 大小:746.27KB
下载 相关 举报
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

《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盘下的文件

2)读入D盘下的文件,并赋给变量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.编写分段函数

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

的值。

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.控制系统模型的转换

将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。

保存为。

用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的变化对系统输出有何影响。

(三)系统动态特性分析

用编程方式求二阶系统

阶跃响应的峰值时间

,上升时间

,调整时间

,超调量

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

并绘制相应的响应曲线。

(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

2

0

PI

Tm/

0

PID

三、实验内容

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

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

3、修改PID参数

讨论参数对系统的影响

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

稳定边界法)对PID参数

校正设计。

参数

Km

Tm

Kp

Ti

Td

数值

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*/

结果:

f=ans=

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盘下的文件

程序:

x=[0:

1:

1000]

结果:

savex-ascii–double

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

程序:

num=load(‘’)

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.编写分段函数

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

的值。

程序:

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=

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:

:

1)

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

set(gca,'yticklabel','-1||0||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:

:

1)

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

set(gca,'yticklabel','-1||0||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:

:

1)

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

set(gca,'yticklabel','-1||0||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(gca,'xtick',-2*pi:

pi:

2*pi)

set(gca,'ytick',-1:

:

1)

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

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

xlabel('x');ylabel('y4');

title('cos(2x)');

gridon;

结果:

 

②另建一个窗

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1