MATLAB语言与控制系统仿真-参考答案-第1章

  • 格式:doc
  • 大小:592.50 KB
  • 文档页数:13

MATLAB语言与控制系统仿真实训教程-参考答案-第1章

1 1.6 MATLAB操作基础-实训

1.6.1实训目的

1. 熟悉MATLAB语言环境,识别MATLAB桌面和命令窗口,命令历史窗口,工作空间窗口等;

2. 练习设置变量精度或变量显示方式;

3. 练习通过MATLAB编程解决一些实际问题;

4. 通过作图总结自变量增量设置对作图结果的影响;

5. 学会求解方程、方程组的基本方法;

6. 练习M文件的建立与执行;

7. 学会进入工具箱的演示系统,以便于进一步了解和学习感兴趣的知识,为以后的自主学习奠定基础。

1.6.2实训内容

1. 根据表1-2中要求,先使用命令format改变变量的精度或显示方式,然后键入表达式,并将运行结果填入表1-2中,并练习使用clc 清除命令窗口中内容。

表1-2 命令行变量精度设置记录表

命令行键入表达式 format bank format short format short e format rat 备注

pi 3.14 3.1416 3.1416e+000 355/113 

exp(1) 2.72 2.7183 2.7183e+000 1457/536 1e

exp(-0.5) 0.61 0.6065 6.0653e-001 743/1225 5.0e

sqrt(2) 1.41 1.4142 1.4142e+000 1393/985 2

8^2 64.00 64.0000 6.4000e+001 64 28

3^4 81.00 81.0000 8.1000e+001 81 43

>> a=[pi;exp(1);exp(-0.5);sqrt(2);8^2;3^4];

>> format bank;

>> a

a = 3.14

2.72

0.61

1.41

64.00

81.00

>> format short

>> a

a =

3.1416

2.7183

0.6065

1.4142

64.0000

81.0000

>> format short e

>> a

a =

3.1416e+000

2.7183e+000 MATLAB语言与控制系统仿真实训教程-参考答案-第1章

2 6.0653e-001

1.4142e+000

6.4000e+001

8.1000e+001

>> format rat

>> a

a =

355/113

1457/536

743/1225

1393/985

64

81

2. 编写MATLAB程序计算,根据程序运算结果填空(要求保留两位小数)

(1)58.135.0ea=( 4.29 );

程序为: a=exp(-0.5)+sqrt(13.58)

>> format bank;

>> a=exp(-0.5)+sqrt(13.58)

a =

4.29

(2)已知两个圆的半径分别为cm5.31r, cm62r,则两个圆的周长分别为1l( 21.99 )cm, 2l( 37.70 )cm;面积分别为1s( 38.48 )2cm,2s( 113.10 )2cm

程序:

>> format bank;

>> r=[3.5 6];

>> [2*pi*r;pi*r.*r]

提示:圆的周长计算公式为:rL2,圆的面积2rS,其中r为圆的半径。

>> format bank;

>> r=[3.5 6];

>> [2*pi*r;pi*r.*r]

ans =

21.99 37.70

38.48 113.10

(3)已知一大球半径为cm281r, 现从大球的中心挖去一个半径cm102r的小球后得到一个空心球,则

空心球的体积V=(87763.53)3cm ;

小球的表面积S( 1256.64 )2cm;

程序为:

>> format bank; MATLAB语言与控制系统仿真实训教程-参考答案-第1章

3 >> r1=28;r2=10;

>> 4/3*pi*r1^3-4/3*pi*r2^3

>> 4*pi*r2*r2

提示:球的体积计算公式为:334rV,表面积24rS,其中r为球体的半径。

>> format bank;

>> r1=28;r2=10;

>> 4/3*pi*r1^3-4/3*pi*r2^3

ans =

87763.53

>> 4*pi*r2*r2

ans =

1256.64

3. 练习MATLAB命令的基本操作

(1)常数矩阵输入

a1=[1 2 3]

a2=[1;2;3]

记录结果,比较显示结果有何不同。答:a1为行矩阵,a2为列矩阵。

b=[1 2 5]

b=[1 2 5];

记录结果,比较显示结果有何不同。答:加分号后不显示当前结果。

a3=[sqrt(3),5/4,exp(-0.2);1:3]

a4=a3'

记录结果,比较变量加“'”后的区别。

>> a3=[sqrt(3),5/4,exp(-0.2);1:3]

a3 =

1.7321 1.2500 0.8187

1.0000 2.0000 3.0000

>> a4=a3'

a4 =

1.7321 1.0000

1.2500 2.0000

0.8187 3.0000

变量加“'”代表求原矩阵的转置矩阵。

(2)作循环指令程序

通过建立M文件求取表达式?2009998321的值。

sum=0;

for i=1:1:200

sum=sum+i;

end

在命令平台上键入sum后回车(键入Enter键),记录计算结果。 MATLAB语言与控制系统仿真实训教程-参考答案-第1章

4 >> sum=0;

for i=1:1:200

sum=sum+i;

end

>> sum

sum =

20100

4. 增量与绘图,通过仿真结果回答问题

(1)程序1

t1=0:4*pi;

y1=sin(2*t1);

plot(t1,y1);

程序1可得到图形正弦曲线A(增量为默认值1)。

(2)程序2

t2=0:0.2:4*pi;

y2=sin(2*t2);

plot(t2,y2);

程序2可得到图形正弦曲线B(增量为0.2)。 MATLAB语言与控制系统仿真实训教程-参考答案-第1章

5

(3)程序3

t3=0:0.01:4*pi;

y3=sin(2*t3);

plot(t3,y3);

程序3可得到图形正弦曲线C(增量为0.01)。

(4)程序4

t4=0:0.00001:4*pi;

y4=sin(2*t4);

plot(t4,y4);

程序4可得到图形正弦曲线D(增量为0.00001): MATLAB语言与控制系统仿真实训教程-参考答案-第1章

6

回答问题:

① 通过MATLAB仿真得到的正弦曲线A、B、C有何区别?

答:曲线A失真严重,曲线B略有失真,曲线C几乎没有失真。

② 通过MATLAB仿真得到的正弦曲线C、D有何区别?

答:曲线C和曲线D区别不大。

③ 你得到的结论是通常情况下增量(步长)取多少为宜?

答:通常情况下增量(步长)取0.01即可满足一般的仿真要求和仿真精度。

5. 解方程、方程组(要求保留4位小数)

(1)0312512.5657.1069.3212345xxxxx

>> d=[1 -21 3.69 -10.57 56.12 -3125];

>> roots(d)

ans =

20.8577

2.4747 + 2.6023i

2.4747 - 2.6023i

-2.4035 + 2.4168i

-2.4035 - 2.4168i

(2)019852522.8258122346sssss

>> a=[1 0 12 -258 8.2 -52 -19852];

>> roots(a)

ans =

-3.1684 + 6.3436i

-3.1684 - 6.3436i

6.3693

-3.7928

1.8801 + 3.5790i MATLAB语言与控制系统仿真实训教程-参考答案-第1章

7 1.8801 - 3.5790i

(3)解方程组

8.3007.768.1053.2525.0529.116.32zyxzyxzyx

>> a=[1 2 -3.6;2 -5 0.25;5 10.68 7.7];

>> b=[11.9;-25.3;300.8];

>> a/b

>> a\b

ans =

18.5795

12.9441

9.0466

6. 编程计算解决并回答问题

(1)在打谷场上,有一个近似于圆锥形的大米堆,测得底面直径是6米,高是15米。每立方米大米约重735千克,这堆大米大约重多少千克?

(提示:圆锥体体积=sh31,s为底面积,h为圆锥体高度)

>> h=15;

>> d=6;

>> s=pi*(d/2)*(d/2);

>> v=1/3*s*h

v =

141.3717

>> G=v*735

G =

1.0391e+005

答:这堆大米大约重1.0391510千克。

(2)一圆柱形金属构件,直径为20cm,长为110cm,质量为362kg,求此金属的密度(3g/cm)。

>> d=20;

>> L=110;

>> v=pi*(d/2)*(d/2)*L;

>> m=362000;

>> rou=m/v

rou =

10.4753

(3)编写程序求取?19919719527252321s

>> sum=0;

for i=21:2:199

sum=sum+i;