控制工程中的程序设计实验报告.docx

上传人:b****6 文档编号:5048094 上传时间:2022-12-12 格式:DOCX 页数:22 大小:322.45KB
下载 相关 举报
控制工程中的程序设计实验报告.docx_第1页
第1页 / 共22页
控制工程中的程序设计实验报告.docx_第2页
第2页 / 共22页
控制工程中的程序设计实验报告.docx_第3页
第3页 / 共22页
控制工程中的程序设计实验报告.docx_第4页
第4页 / 共22页
控制工程中的程序设计实验报告.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

控制工程中的程序设计实验报告.docx

《控制工程中的程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《控制工程中的程序设计实验报告.docx(22页珍藏版)》请在冰豆网上搜索。

控制工程中的程序设计实验报告.docx

控制工程中的程序设计实验报告

 

《控制工程中的程序设计》

实验报告

实验项目:

Matlab环境与基础

班级:

自动F1205

学号:

201223910827

姓名:

刘跃

实验一Matlab环境与基础

1.先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。

(1)

z1=2*sin(85*pi/180)/(1+exp

(2))

z1=0.2375

(2)

,其中

x=[2,1+2i;-0.45,5]

z2=0.5*log10(x+sqrt(1+x.^2))

(3)

a=-3:

0.1:

3

z3=(exp(0.3*a)-exp(-0.3*a)).*sin(a+0.3)/2+log10((0.3+a)/2)

(4)

,其中t=0:

0.25:

2.5

>>a=0

fort=0:

0.25:

2.5

a=a+1

ift>=0&t<1

Z4(a)=t.^2;

elseift>=1&t<2

Z4(a)=t.^2-1;

elseift>=2&t<3

Z4(a)=t.^2-2*t+1;

end

end

>>Z4

Z4=

Columns1through7

00.06250.25000.562500.56251.2500

 

Columns8through11

2.06251.00001.56252.2500

2.已知:

 

求下列表达式的值:

(1)A+6*B和A-B+I(其中I为单位矩阵)

A+6*B

ans=

1852-10

467105

215349

I=[100;010;001]

I=

100

010

001

>>A-B+I

ans=

1231-3

32884

0671

(2)A*B和A.*B

A*B

ans=

684462

309-72596

154-5241

A.*B

ans=

121024

680261

9-13049

(3)A^3和A.^3

A^3

ans=

3722623382448604

247370149188600766

78688454142118820

A.^3

ans=

172839304-64

39304343658503

27274625343

(4)A/B及B\A

A/B

ans=

16.4000-13.60007.6000

35.8000-76.200050.2000

67.0000-134.000068.0000

B\A

ans=

109.4000-131.2000322.8000

-53.000085.0000-171.0000

-61.600089.8000-186.2000

(5)[A,B]和[A([1,3],:

);B^2]\

[A,B]

ans=

1234-413-1

34787203

36573-27

[A([1,3],:

);B^2]

ans=

1234-4

3657

451

11019

20-540

3.设有矩阵A和B

(1)求它们的乘积C。

C=A*B

C=

9315077

258335237

423520397

588705557

753890717

(2)将矩阵C的右下角3×2子矩阵赋给D。

D=C(3:

5,2:

3)

D=

520397

705557

890717

(3)查看MATLAB工作空间的使用情况。

4.求[100,999]之间能被21整除的数的个数。

a=100:

999

b=(rem(a,21)==0)

c=find(b)

d=length(c)

d=

43

实验二MATLAB数据结构与控制语句

1.

,求A的行列式值、迹、秩和特征值及特征向量。

[Q,D]=eig(A)

Q=

0.71300.28030.2733

-0.6084-0.78670.8725

0.34870.55010.4050

 

D=

-25.316900

0-10.51820

0016.8351

R_A=rank(A)

R_A=

3

trace(A)

ans=

-19

det(A)

ans=

4483

2.已知:

,分别计算a的数组平方和矩阵平方,并观察其结果。

a.^2

ans=

149

162536

496481

a^2

ans=

303642

668196

102126150

3.

,观察a与b之间的六种关系运算的结果。

a=[125;36-4]

b=[8-74;362]

a=

125

36-4

 

b=

8-74

362

>>a>b

ans=

011

000

a>=b

ans=

011

110

a

ans=

100

001

a<=b

ans=

100

111

a==b

ans=

000

110

a~=b

ans=

111

001

4.矩阵

,分别对a进行LU分解、QR分解及Chollesky分解。

[L,U]=lu(A)

[L,U,P]=lu(A)

L=

1.000000

-0.68971.00000

0.27590.69431.0000

 

U=

-29.00006.000018.0000

09.137924.4138

00-16.9170

 

L=

1.000000

-0.68971.00000

0.27590.69431.0000

 

U=

-29.00006.000018.0000

09.137924.4138

00-16.9170

 

P=

100

010

001

>>[Q,R]=qr(A)

Q=

-0.8028-0.2792-0.5269

0.5536-0.6771-0.4847

-0.2215-0.68090.6981

 

R=

36.1248-3.8201-8.9135

0-10.5075-16.5548

00-11.8104

>>A=pascal(3)

[R,p]=chol(A)

A=

111

123

136

 

R=

111

012

001

 

p=

0

5.求分段函数的值。

用if语句实现,分别输出x=-5.0,-3.0,1.0,3.0,5.0时的y值。

>>n=0;

>>forx=[-5.0,-3.0,1.0,3.0,5.0]

n=n+1

if(x<0&x~=-3)

y(n)=x^2+x-6;

elseif(n)(x>=0&x<5&x~=2&x~=3)

y(n)=x^2-5*x+6;

else

y(n)=x^2-x-1;

end

end

end

n=

1

 

n=

2

 

ans=

0

 

n=

3

 

ans=

1

 

n=

4

 

ans=

0

 

n=

5

 

ans=

0

>>y

y=

1430206

6.输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。

其中90分~100分为A,80分~89分为B,79分~79分为C,60分~69分为D,60分以下为E。

要求:

(1)分别用if语句和switch语句实现。

(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。

>>x=input('x=');

ifx>=90

disp('A');

elseifx>=80

disp('B');

elseifx>=70

disp('c');

elseifx>=60

disp('D');

else

disp('E');

end

end

end

end

x=89

B

>>n=input('inputthescore:

');

switchfix(n/10)

case{0,1,2,3,4,5}

disp('E');

case{6}

disp('D');

case{7}

disp('C');

case{8}

disp('B');

case{9,10}

disp('A');

end

inputthescore:

89

B

7.根据

,求π的近似值。

当n分别取100、1000、10000时,结果是多少?

要求:

分别用循环结构和向量运算(使用sum函数)来实现。

>>x=[000];

n=[100100010000];

fori=1:

n

x=x+1/i/i;

y=sqrt(6*x);

end

>>y

y=

3.13213.13213.1321

8.根据

,求:

(1)y<3时的最大n值。

(2)与

(1)的n值对应的y值。

>>y=0;n=0;

whiley<3n=n+1;y=y+1/(2*n-1);end

>>n-1

ans=

56

实验三GUI与图形设计

1.设

,在x=0~2π区间取101点,绘制函数的曲线。

>>x=linspace(0,2*pi,100);

y=[0.5+3.*sin(x)/(1+x.^2)].*cos(x);

plot(x,y)

2.已知y1=x2,y2=cos(2x),y3=y1×y2,完成下列操作:

(1)在同一坐标系下用不同的颜色和线型绘制三条曲线。

>>x1=linspace(0,2*pi,100);

>>y1=x.^2;

y2=cos(2*x);

y3=y1.*y2;

>>plot(x,y1,x,y2,x,y3)

(2)以子图形式绘制三条曲线。

3.有一组测量数据满足

,t的变化范围为0~10,用不同的线型和标记点画出a=0.1、a=0.2和a=0.5三种情况下的曲线,添加图例框和标题

,并用箭头线标识出各曲线a的取值。

>>y1=exp(-0.1*t);

>>y2=exp(-0.2*t);

>>y3=exp(-0.5*t);

>>plot(t,y1,'-ob',t,y2,':

*r',t,y3,'-.^g')

>>title('\ity\rm=e^{-\itat}')

>>title('\ity\rm=e^{-\itat}','FontSize',12)

>>text(t(6),y1(6),'\leftarrow\ita\rm=0.1','FontSize',11)

>>text(t(6),y2(6),'\leftarrow\ita\rm=0.2','FontSize',11)

>>text(t(6),y3(6),'\leftarrow\ita\rm=0.5','FontSize',11)

4.在同一坐标内,分别用不同线型和颜色绘制曲线y1=0.2e-0.5xcos(4πx)和y2=2e-0.5xcos(πx),标记两曲线交叉点。

x=0:

pi/10:

20;

y1=0.2*exp(-0.5*x.*cos(4*pi*x));

plot(x,y1,'k:

')

holdon

y2=2*exp(-0.5*x.*cos(pi*x));

plot(x,y2,'m')

5.利用图形用户界面,实现记事本【File】菜单下的【新建】、【打开】、【保存】、【另存为】和【退出】菜单项功能。

6.利用图形用户界面,实现两个编辑框输入数据的加减乘除运算,并在静态文本框中显示。

实验四simulink使用与仿真

分别利用数值积分法和Simulink仿真法求解

提示:

(1)数值积分利用quad函数,注意函数表达式的 定义。

   

(2)函数表达式利用Simulink中的MathOperations 模块库中数学函数模块构建,积分是通过Continuous 模块库中Integrator积分模块来完成的,积分区间则 通过设定仿真的起止时间来实现,其结果通过Sink模 块库中的Display模块显示。

f=inline('sin(2*pi*x).*log(1+x)')

quad(f,0,pi,1e-6)

f=Inlinefunction:

f(x)=sin(2*pi*x).*log(1+x)

ans=-0.1342

新建untitled,找模块拖动进u内,右键推动复制单个参数设置

1、mathfunction—function:

log

2、sinewave—frequency:

2*pi

整体参数

--configurationpavamaters—stoptime:

pi

 

实验五PID控制器设计

1.基本PID控制SIMULINK仿真。

仿真时取kp=60,ki=1,kd=3,输入指令为rin(k)=sin(0.4*pi*t)。

采用ODE45迭代方法,仿真时间为10s。

2.设被控对象

,采用增量式PID进行控制,PID的参数

,输入信号选单位阶跃信号。

 

Scope:

 

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

当前位置:首页 > 高等教育 > 军事

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

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