仿真实验.docx

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

仿真实验.docx

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

仿真实验.docx

仿真实验

 

《计算机控制技术及仿真》实验指导

 

攀枝花学院机电工程学院

二○○八年十月

 

实验一Matlab环境语法及数学运算

(验证性实验)

一、实验目的

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

2、熟悉Matlab的数据表示、基本运算方法;

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

二、实验仪器与软件

1.PC机1台

2.MATLAB6.X环境

三、实验原理

MATLAB环境是一种为数值计算、数据分析和图形显示服务的交互式的环境。

MATLAB有3种窗口,即:

命令窗口(TheCommandWindow)、m-文件编辑窗口(TheEditWindow)和图形窗口(TheFigureWindow),而Simulink另外又有Simulink模型编辑窗口。

1.命令窗口(TheCommandWindow)

当MATLAB启动后,出现的最大的窗口就是命令窗口。

用户可以在提示符“>>”后面输入交互的命令,这些命令就立即被执行。

在MATLAB中,一连串命令可以放置在一个文件中,不必把它们直接在命令窗口内输入。

在命令窗口中输入该文件名,这一连串命令就被执行了。

因为这样的文件都是以“.m”为后缀,所以称为m-文件。

2.m-文件编辑窗口(TheEditWindow)

我们可以用m-文件编辑窗口来产生新的m-文件,或者编辑已经存在的m-文件。

在MATLAB主界面上选择菜单“File/New/M-file”就打开了一个新的m-文件编辑窗口;选择菜单“File/Open”就可以打开一个已经存在的m-文件,并且可以在这个窗口中编辑这个m-文件。

四、实验内容:

1、帮助命令

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

SyntaxB=sqrt(X)

DescriptionB=sqrt(X)returnsthesquarerootofeachelementofthearrayX.FortheelementsofXthatarenegativeorcomplex,sqrt(X)producescomplexresults.RemarksSeesqrtmforthematrixsquareroot.Examplessqrt((-2:

2)')

ans=

0+1.4142i

0+1.0000i

0

1.0000

1.4142

2、矩阵运算

(1)矩阵的乘法

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

求A^2*B

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

>>A^2*B

ans=

105115

229251

(2)矩阵除法

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

B=[100;020;003];

A\B,A/B

A=[123;456;789];

B=[100;020;003];

>>A\B,A/B

ans=

1.0e+016*

-0.45041.8014-1.3511

0.9007-3.60292.7022

-0.45041.8014-1.3511

 

ans=

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]

A=

5.0000+1.0000i2.0000-1.0000i1.0000

0+6.0000i4.00009.0000-1.0000i

>>A.'

ans=

5.0000+1.0000i0+6.0000i

2.0000-1.0000i4.0000

1.00009.0000-1.0000i

>>A'

ans=

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]

A=

123

456

789

>>A(1:

2,3)

ans=

3

6

>>A(2:

3,:

ans=

456

789

 

(5)方括号[]

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

A=magic(4)

A=

162313

511108

97612

414151

>>A(:

1:

3)

ans=

1623

51110

976

41415

3、多项式

(1)求多项式p(x)=x3+2x+4的根

p=[10-2-4]

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=[1.2350.9;51.756;3901;1234]

A=

1.20003.00005.00000.9000

5.00001.70005.00006.0000

3.00009.000001.0000

1.00002.00003.00004.0000

>>poly(A)

ans=

1.0000-6.9000-77.2600-86.1300604.5500

>>polyval(ans,20)

ans=

7.2778e+004

求矩阵A的特征多项式;

求特征多项式中未知数为20时的值;

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

4、基本绘图命令

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

t=0:

pi/100:

2*pi;

plot(t,cos(t))

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

t=0:

pi/100:

2*pi

y1=plot(t,cos(t-0.25));

holdon

y2=plot(t,sin(t-0.5));

5、基本绘图控制

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

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

(2)坐标轴控制:

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

(3)标注控制:

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

t=0:

0.1:

4*pi;

y=10*sin(t);

plot(t,y,'r=.+')

gridon;

title('y=10*sin(t)');

xlabel('t')

ylabel('y')

五、实验要求

利用所学知识,完成上述各项实验内容,并将实验过程和实验步骤和结果写在报告中。

 

 

实验二MATLAB数值运算与绘图

(验证性实验)

一、实验目的

l.熟悉Matlab中各类数据,尤其是矩阵的定义、赋值和运用。

2.了解Matlab的矩阵分析函数以及求线性方程组的数值解;

3.熟悉多项式运算函数、数值插值。

二、实验仪器与软件

1.PC机1台

2.MATLAB6.X环境

三、实验原理

1.创建矩阵的方法

a.直接输入法规则:

矩阵元素必须用[]括住;矩阵元素必须用逗号或空格分隔;在[]内矩阵的行与行之间必须用分号分隔。

逗号和分号的作用:

逗号和分号可作为指令间的分隔符,matlab允许多条语句在同一行出现。

分号如果出现在指令后,屏幕上将不显示结果。

b.用matlab函数创建矩阵:

空阵[]—matlab允许输入空阵,当一项操作无结果时,返回空阵;rand——随机矩阵;eye——单位矩阵;zeros——全部元素都为0的矩阵;ones——全部元素都为1的矩阵

c.矩阵的修改:

可用键找到所要修改的矩阵,用键移动到要修改的矩阵元素上即可修改;指令修改:

可以用A(,)=来修改。

2.矩阵运算

a.矩阵加、减(+,-)运算规则:

(1)相加、减的两矩阵必须有相同的行和列两矩阵对应元素相加减。

(2)允许参与运算的两矩阵之一是标量。

标量与矩阵的所有元素分别进行加减操作。

b.矩阵乘(,./,.\)运算规则:

A矩阵的列数必须等于B矩阵的行数

标量可与任何矩阵相乘。

c.矩阵乘方——a^n,a^p,p^a

a^p——a自乘p次幂,对于p的其它值,计算将涉及特征值和特征向量,如果p是矩阵,a是标量,a^p使用特征值和特征向量自乘到p次幂;如a,p都是矩阵,a^p则无意义。

d.多项式运算

matlab语言把多项式表达成一个行向量,该向量中的元素是按多项式降幂排列的。

f(x)=anxn+an-1xn-1+……+loa0

可用行向量p=[anan-1……a1+a0]表示;poly——产生特征多项式系数向量

e.代数方程组求解

matlab中有两种除运算左除和右除。

四、实验内容

1.输入下列向量(矩阵)

>>g=[1234];h=[4321];

2.分别执行以下数组点运算

>>s1=g+h,s2=g.*h,s3=g.^h,s4=g.^2,s5=2.^h

g=[1234]

g=

1234

>>h=[4321]

h=

4321

>>s1=g+h

s1=

5555

>>s2=g.*h

s2=

4664

>>s3=g.^h

s3=

1894

>>s4=g.^2

s4=

14916

>>s5=2.^h

s5=

16842

3.输入下列特殊矩阵

〉〉A=[]

〉〉A=eye(10)

〉〉A=ones(5,10)

>>A=rand(10,15)

>>A=randn(5,10)

>>A=zeros(5,10)

A=[]

A=

[]

>>A=eye(10)

A=

1000000000

0100000000

0010000000

0001000000

0000100000

0000010000

0000001000

0000000100

0000000010

0000000001

>>A=ones(5,10)

A=

1111111111

1111111111

1111111111

1111111111

1111111111

>>A=rand(10,15)

A=

Columns1through6

0.95010.61540.05790.01530.83810.1934

0.23110.79190.35290.74680.01960.6822

0.60680.92180.81320.44510.68130.3028

0.48600.73820.00990.93180.37950.5417

0.89130.17630.13890.46600.83180.1509

0.76210.40570.20280.41860.50280.6979

0.45650.93550.19870.84620.70950.3784

0.01850.91690.60380.52520.42890.8600

0.82140.41030.27220.20260.30460.8537

0.44470.89360.19880.67210.18970.5936

Columns7through12

0.49660.72710.79480.13650.58280.2091

0.89980.30930.95680.01180.42350.3798

0.82160.83850.52260.89390.51550.7833

0.64490.56810.88010.19910.33400.6808

0.81800.37040.17300.29870.43290.4611

0.66020.70270.97970.66140.22590.5678

0.34200.54660.27140.28440.57980.7942

0.28970.44490.25230.46920.76040.0592

0.34120.69460.87570.06480.52980.6029

0.53410.62130.73730.98830.64050.0503

Columns13through15

0.41540.21400.6833

0.30500.64350.2126

0.87440.32000.8392

0.01500.96010.6288

0.76800.72660.1338

0.97080.41200.2071

0.99010.74460.6072

0.78890.26790.6299

0.43870.43990.3705

0.49830.93340.5751

>>A=randn(5,10)

A=

Columns1through6

-0.43261.1909-0.18670.11390.29440.8580

-1.66561.18920.72581.0668-1.33621.2540

0.1253-0.0376-0.58830.05930.7143-1.5937

0.28770.32732.1832-0.09561.6236-1.4410

-1.14650.1746-0.1364-0.8323-0.69180.5711

Columns7through10

-0.39990.6686-1.60410.5287

0.69001.19080.25730.2193

0.8156-1.2025-1.0565-0.9219

0.7119-0.01981.4151-2.1707

1.2902-0.1567-0.8051-0.0592

>>A=zeros(5,10)

A=

0000000000

0000000000

0000000000

0000000000

0000000000

4.输入下列矩阵及矩阵函数

>>A=[20–1;132];B=[17–1;423;201];

>>M=A*B%矩阵A与B按矩阵运算相乘

>>det_B=det(B)%矩阵A的行列式

>>rank_A=rank(A)%矩阵A的秩

>>inv_B=inv(B)%矩阵B的逆矩阵

>>[V,D]=eig(B)%矩阵B的特征值矩阵V与特征向量构成的矩阵D

>>X=A/B%A/B=A*B-1,即XB=A,求X

>>Y=B\A%B\A=B-1*A,即BY=A,求Y

A=[20-1;132]

A=

20-1

132

>>B=[17-1;423;201]

B=

17-1

423

201

>>M=A*B

M=

014-3

171310

>>det_B=det(B)

det_B=

20

>>rank_A=rank(A)

rank_A=

2

>>inv_B=inv(B)

inv_B=

0.1000-0.35001.1500

0.10000.1500-0.3500

-0.20000.7000-1.3000

>>[V,D]=eig(B)

V=

-0.70940.74440.7444

-0.6675-0.3599+0.0218i-0.3599-0.0218i

-0.2263-0.5587-0.0607i-0.5587+0.0607i

 

D=

7.268000

0-1.6340+0.2861i0

00-1.6340-0.2861i

>>X=A/B

X=

0.4000-1.40003.6000

0.00001.5000-2.5000

Y=B/A

Y=

0.60001.4286

1.00001.1429

0.60000.2857

5.多项式运算

>>p=[120-56]%表示多项式

>>rr=roots(p)%求多项式p的根

>>pp=poly(rr)%由根的列向量求多项式系数

>>s=[00123]%表示多项式

>>c=conv(p,s)%多项式乘积

>>d=polyder(p)%多项式微分

>>x=-1:

0.1:

2;

>>y=polyval(p,x)%计算多项式的值

p=[120-56]

p=

120-56

>>rr=roots(p)

rr=

-1.8647+1.3584i

-1.8647-1.3584i

0.8647+0.6161i

0.8647-0.6161i

>>pp=poly(rr)

pp=

1.00002.00000.0000-5.00006.0000

>>s=[00123]

s=

00123

>>c=conv(p,s)

c=

001471-4-318

>>d=polyder(p)

d=

460-5

>>x=-1:

0.1:

2;

>>y=polyval(p,x)

y=

Columns1through6

10.00009.69819.38569.05418.69768.3125

Columns7through12

7.89767.45416.98566.49816.00005.5021

Columns13through18

5.01764.56214.15363.81253.56163.4261

Columns19through24

3.43363.61414.00004.62615.52966.7501

Columns25through30

8.329610.312512.745615.678119.161623.2501

Column31

28.0000

6.有理多项式:

>>n=conv([10],[13])%定义分子多项式

>>d=conv([11],[113])%定义分母多项式

>>[r,p,k]=residue(n,d)%进行部分分式展开

>>p1=[1-p

(1)],p2=[1-p2]%定义两个极点多项式p1(s)=s-p

(1),p2(s)=s-p

(2)

>>den=conv(p1,p2)%求分母多项式den=p1(s)*p2(s)

>>num=conv(r1,p2)+conv(r2,p1)%求分子多项式

〉〉[num,den]=residue(r,p,k)%根据r,p,k的值求有理多项式

n=conv([10],[13])

n=

1030

>>d=conv([11],[113])

d=

1243

>>[r,p,k]=residue(n,d)

r=

-3.3333-4.0202i

-3.3333+4.0202i

6.6667

 

p=

-0.5000+1.6583i

-0.5000-1.6583i

-1.0000

 

k=

[]

p1=[1-p

(1)],p2=[1-p2]

p1=

1.5000-1.6583i

 

p2=

-0.5000-1.6583i

>>den=conv(p1,p2)

den=

-3.5000-1.6583i

num=conv(r,p2)+conv(r,p1)

num=

-16.6667+7.0353i

10.0000+15.0756i

6.6667-22.1108i

>>[num,den]=residue(r,p,k)

num=

0.000010.000030.0000

 

den=

1.00002.00004.00003.0000

7.函数插值运算

(1)线形样条插值

〉〉x=0:

10

>>y=sin(x)

>>x0=[3.44.76.58.2]

>>y0=interp1(x,y,x0)%线形插值

>>x1=0:

0.1:

10

>>y1=sin(x1)

>>plot(x1,y1,'r:

',x,y,'b*',x0,y0,'g.')%插值比较

x=0:

10

x=

Columns1through10

0123456789

Column11

10

>>y=sin(x)

y=

Columns1through6

00.84150.90930.1411-0.7568-0.9589

Columns7through11

-0.27940.65700.98

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

当前位置:首页 > 教学研究 > 教学反思汇报

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

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