MATLAB实验报告.docx

上传人:b****5 文档编号:7653263 上传时间:2023-01-25 格式:DOCX 页数:36 大小:391.09KB
下载 相关 举报
MATLAB实验报告.docx_第1页
第1页 / 共36页
MATLAB实验报告.docx_第2页
第2页 / 共36页
MATLAB实验报告.docx_第3页
第3页 / 共36页
MATLAB实验报告.docx_第4页
第4页 / 共36页
MATLAB实验报告.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

MATLAB实验报告.docx

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

MATLAB实验报告.docx

MATLAB实验报告

《MATLAB语言及其应用》

实验指导书

 

实验一Matlab使用方法和程序设计........................

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

实验三控制系统的时域、频域和根轨迹分析...........

实验四动态仿真集成环境-Simulink.........................

姓名:

班级:

学号:

实验一Matlab使用方法和程序设计

一、实验目的

1、掌握Matlab软件使用的基本方法;

2、熟悉Matlab的数据表示、基本运算和程序控制语句

3、熟悉Matlab绘图命令及基本绘图控制

4、熟悉Matlab程序设计的基本方法

二、实验内容:

1、帮助命令

使用help命令,查找sqrt(开方)函数的使用方法;

解:

截图如下

2、矩阵运算

(1)矩阵的乘法

已知A=[12;34];B=[55;78];

求A^2*B

解:

A=[12;34];%定义矩阵A

B=[55;78];%定义矩阵B

C=A^2*B%定义矩阵C的表达式

(2)矩阵除法

已知A=[123;456;789];

B=[100;020;003];

A\B,A/B

解:

A=[123;456;789];

>>B=[100;020;003];

>>C=A\B%左除

Warning:

Matrixisclosetosingularorbadlyscaled.

Resultsmaybeinaccurate.RCOND=1.541976e-018.

(Type"warningoffMATLAB:

nearlySingularMatrix"tosuppressthiswarning.)

C=

1.0e+016*

-0.45041.8014-1.3511

0.9007-3.60292.7022

-0.45041.8014-1.3511

>>D=A/B%右除

D=

1.00001.00001.0000

4.00002.50002.0000

7.00004.00003.0000

(3)矩阵的转置及共轭转置

已知A=[5+i,2-i,1;6*i,4,9-i];

求A.',A'

解:

A=[5+i,2-i,1;6*i,4,9-i];

B=A.'

C=A'

B=

5.0000+1.0000i0+6.0000i

2.0000-1.0000i4.0000

1.00009.0000-1.0000i

 

C=

5.0000-1.0000i0-6.0000i

2.0000+1.0000i4.0000

1.00009.0000+1.0000i

(4)使用冒号表达式选出指定元素

已知:

A=[123;456;789];

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

方括号[]

解:

A=[123;456;789];

B1=A([12],[3])

B2=A([2,3],:

 

结果如下:

B1=

3

6

 

B2=

456

789

用magic函数生成一个4阶魔术矩阵,删除该矩阵的第四列

n=4;

A=magic(4)

B=A(:

[123])

A=

162313

511108

97612

414151

 

B=

1623

51110

976

41415

3、多项式?

(1)求多项式

的根;

>>p=[10-2-4];r=roots(p)

r=

2.0000

-1.0000+1.0000i

-1.0000-1.0000i

(2)已知A=[1.2350.9;51.756;3901;1234],

求矩阵A的特征多项式;

>>A=[1.2350.9;51.756;3901;1234];p=poly(A)

p=

1.0000-6.9000-77.2600-86.1300604.5500

把矩阵A作为未知数代入到多项式中;

>>A=[1.2350.9;51.756;3901;1234];p=poly(A);

B=polyvalm(p,A)

B=

0.1364-0.33500.00800.1421

-0.0455-0.0114-0.1627-0.0909

-0.30840.1705-0.0227-0.2217

0.0171-0.1265-0.03270.0227

 

4、基本绘图命令

(1)绘制余弦曲线y=cos(t),t∈[0,2π]

解:

t=[0:

0.05:

2*pi];%定义二维曲线横坐标范围

y=cos(t);%写出函数表达式

plot(t,y)%绘图命令

(2)在同一坐标系中绘制余弦曲线y=cos(t-0.25)和正弦曲线y=sin(t-0.5),t∈[0,2π]

解:

>>t=[0:

0.05:

2*pi];%定义二维曲线横坐标范围

y1=cos(t-0.25);%写出函数表达式y1

y2=sin(t-0.5);%写出函数表达式y2

plot(t,y1);%绘图命令

holdon;plot(t,y2)

5、基本绘图控制

绘制[0,4π]区间上的x1=10sint曲线,并要求:

(1)线形为点划线、颜色为红色、数据点标记为加号;

>>t=0:

0.1:

4*pi;x1=10*sin(t);plot(t,x1,'-.r+')

(2)坐标轴控制:

显示范围、刻度线、比例、网络线

>>t=0:

0.1:

4*pi;x1=10*sin(t);

plot(t,x1,'-.r+'),gridon

(3)标注控制:

坐标轴名称、标题、相应文本;

>>t=0:

0.1:

4*pi;x1=10*sin(t);

plot(t,x1,'-.r+'),gridon;

title('x1=10sint曲线');xlabel('x轴');ylabel('y轴')

6、基本程序设计

(1)编写命令文件:

计算1+2+…+n<2000时的最大n值;

>>s=0;n=0;

while(s<2000)

n=n+1;s=s+n;

end;n=n-1

n=

62

(2)编写函数文件:

分别用for和while循环结构编写程序,求2的0到n次幂的和。

functions=kuang(n,i)

s=0;

for(i=0:

n)

s=s+2^i;

end

(4)如果想对一个变量x自动赋值。

当从键盘输入y或Y时(表示是),x自动赋为1;当从键盘输入n或N时(表示否),x自动赋为0;输入其他字符时终止程序。

x=input('请输入:

','s');

if(x=='y'||x=='Y')

z=1;

elseif(x=='n'||x=='N')

z=0;

else('error')

end

x,z

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

一、实验目的

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

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

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

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

二、实验内容:

1.控制系统模型

1.1系统的模型为

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

>>s=tf('s');

G=4*(s+2)*(s^2+6*s+6)/(s*(s+1)^3*(s^3+3*s^2)+2*s+5)

Transferfunction:

4s^3+32s^2+72s+48

-----------------------------------------------

s^7+6s^6+12s^5+10s^4+3s^3+2s+5

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

建立系统的零极点模型。

>>s=zpk('s');

g1=3*(s+12)/((s+3)*(s+4)*(s+5));g2=4*(s+5)*(s+3)/((s+3)*(s+4)*(s+5));

G=[g1;g2]

Zero/pole/gainfrominputtooutput...

3(s+12)

#1:

-----------------

(s+3)(s+4)(s+5)

4(s+5)(s+3)

#2:

-----------------

(s+3)(s+4)(s+5)

>>g1=zpk([-12],[-3;-4;-5],3);g2=zpk([-5;-3],[-3;-4;-5],4);G=[g1;g2]

Zero/pole/gainfrominputtooutput...

3(s+12)

#1:

-----------------

(s+3)(s+4)(s+5)

4(s+5)(s+3)

#2:

-----------------

(s+3)(s+4)(s+5)

1.3给定系统的状态空间表达式,

建立系统的状态空间模型。

>>A=[-2.8-1.400;1.4000;-1.8-0.3-1.4-0.6;000.60];B=[1;0;1;0];

C=[0001];D=zeros

(1);G=ss(A,B,C,D)

a=

x1x2x3x4

x1-2.8-1.400

x21.4000

x3-1.8-0.3-1.4-0.6

x4000.60

b=

u1

x11

x20

x31

x40

c=

x1x2x3x4

y10001

d=

u1

y10

Continuous-timemodel.

2.控制系统模型的转换

2.1将1.1的模型转换为零极点模型

>>s=tf('s');

G=4*(s+2)*(s^2+6*s+6)/(s*(s+1)^3*(s^3+3*s^2)+2*s+5);

G1=zpk(G)

Zero/pole/gain:

4(s+4.732)(s+2)(s+1.268)

----------------------------------------------------------------------------

(s+2.995)(s^2+3.06s+2.549)(s^2-1.089s+0.5457)(s^2+1.034s+1.2)

2.2将1.2的模型转换为状态空间模型

>>s=zpk('s');

g1=3*(s+12)/((s+3)*(s+4)*(s+5));g2=4*(s+5)*(s+3)/((s+3)*(s+4)*(s+5));

G=[g1;g2];G2=ss(G)

a=

x1x2x3

x1-340

x20-416

x300-5

b=

u1

x10

x20

x32

c=

x1x2x3

y10.21090.093750

y2-9.714e-0170.1252

d=

u1

y10

y20

2.3将1.3的模型转换为零极点模型

A=[-2.8-1.400;1.4000;-1.8-0.3-1.4-0.6;000.60];B=[1;0;1;0];

C=[0001];D=zeros

(1);G=ss(A,B,C,D);G3=zpk(G)

Zero/pole/gain:

0.6(s^2+s+1.54)

------------------------------

(s+1.4)^2(s+1.061)(s+0.3394)

3.控制系统模型的连接:

已知两个系统

求按串联、并联、系统2联接在反馈通道时的负反馈系统的状态方程。

>>A1=[01;1-2];B1=[0;1];C1=[13];D1=[1];G1=ss(A1,B1,C1,D1);

A2=[01;-1-3];B2=[0;1];C2=[14];D2=zeros(1,1);G2=ss(A2,B2,C2,D2);

G=G2*G1

a=

x1x2x3x4

x10100

x2-1-313

x30001

x4001-2

b=

u1

x10

x21

x30

x41

c=

x1x2x3x4

y11400

d=

u1

y10

>>G=G1+G2

a=

x1x2x3x4

x10100

x21-200

x30001

x400-1-3

b=

u1

x10

x21

x30

x41

c=

x1x2x3x4

y11314

d=

u1

y11

>>G3=feedback(G1,G2)

a=

x1x2x3x4

x10100

x21-2-1-4

x30001

x413-2-7

b=

u1

x10

x21

x30

x41

c=

x1x2x3x4

y113-1-4

d=

u1

y11

4、典型系统的生成:

4典型二阶系统

试建立

时的系统传递函数模型。

>>s=tf('s');

H=36/(s^2+1.2*s+36)

Transferfunction:

36

----------------

s^2+1.2s+36

5、连续系统的离散化:

对连续系统

在采样周期T=0.1时进行离散化。

>>z=[-3];p=[-1;-2;-5];G=zpk(z,p,6);G1=c2d(G,0.1)

Zero/pole/gain:

0.025525(z+0.8468)(z-0.7408)

--------------------------------

(z-0.9048)(z-0.8187)(z-0.6065)

Samplingtime:

0.1

 

实验三控制系统的时域、频域和根轨迹分析

一、实验目的

1、掌握如何使用Matlab进行系统的时域分析

2、掌握如何使用Matlab进行系统的频域分析

3、掌握如何使用Matlab进行系统的根轨迹分析

二、实验内容:

1、时域分析

1.1、某系统的开环传递函数为

试编程求系统在单位负反馈下的阶跃响应曲线,并求最大超调量。

>>G=tf([20],[1836400]);step(feedback(G,1))

1.2、典型二阶系统

编程求:

分别取值为0.2、0.4、0.6、0.8、1.0、1.5、2.0时的单位阶跃响应曲线。

>>w=6;a=0.2;s=tf('s');G=w^2/(s^2+2*a*w*s+w^2);step(G)

>>a=0.4;step(G)

a=0.6;step(G)

a=0.8;step(G)

a=1.0;step(G)

a=1.5;step(G)

a=2.0;step(G)

1.3、典型二阶系统传递函数为:

绘制当:

分别取2、4、6、8、10、12时的单位阶跃响应曲线。

a=0.7;w=2;s=tf('s');G=w^2/(s^2+2*a*w*s+w^2);step(G)

w=4;step(G)

w=6;step(G)

w=8;step(G)

w=10;step(G)

w=12;step(G)

2、根轨迹分析

根据下面负反馈系统的开环传递函数,绘制系统根轨迹,并分析使系统稳定的K值范围。

>>s=zpk('s');G=1/(s*(s+1)*(s+3));rlocus(G)

3、频域分析

典型二阶系统传递函数为:

3.1绘制当:

取2、4、6、8、10、12时的伯德图

>>a=0.7;s=tf('s');G=w^2/(s^2+2*a*w*s+w^2);

forw=2:

2:

12

bode(G);figure;end

3.2绘制当:

分别取0.2、0.4、0.6、0.8、1.0、1.5、2.0时的伯德图。

>>w=6;a=0.2;s=tf('s');G=w^2/(s^2+2*a*w*s+w^2);step(G)

>>a=0.4;step(G)

a=0.6;step(G)

a=0.8;step(G)

a=1.0;step(G)

a=1.5;step(G)

a=2.0;step(G)

实验四动态仿真集成环境—Simulink  

一、实验目的

1、熟悉Simulink模块库中常用标准模块的功能及其应用;

2、掌握利用Simulink在用户窗口中建立控制系统仿真模型的方法;

3、掌握模块参数和仿真参数的设置以及建立子系统的方法。

二、实验内容

1.用Simulink对以下系统进行仿真

其中u(t)为系统输入,y(t)为系统输出,仿真当输入为正弦信号时,输出的信号的波形,仿真时

间0

2.在滑艇的运行过程中,滑艇主要受到如下作用力的控制:

滑艇自身的牵引力F,滑艇受到的水的阻力

其中水的阻力

为滑艇的运动速度。

由运动学的相关定理可知,整个滑艇系统的动力学方程为:

其中,m为滑艇的质量。

假设滑艇的质量为1000kg,建立此系统的Simulink模型并进行分析。

3.输入教材中P198中例题5-2并作仿真。

(不做)

 

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

当前位置:首页 > 农林牧渔 > 林学

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

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