控制工程中的程序设计实验报告.docx
- 文档编号:5048094
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:22
- 大小:322.45KB
控制工程中的程序设计实验报告.docx
《控制工程中的程序设计实验报告.docx》由会员分享,可在线阅读,更多相关《控制工程中的程序设计实验报告.docx(22页珍藏版)》请在冰豆网上搜索。
控制工程中的程序设计实验报告
《控制工程中的程序设计》
实验报告
实验项目:
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:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 控制工程 中的 程序设计 实验 报告