matlab练习题和答案
控制系统仿真实验
Matlab部分实验结果
目录
实验一 MATLAB基本操
作 ............................................................................................ 1 实验二 Matlab编程 .................................................................................................... 5 实验三Matlab底层图形控制 ..........................................................................................
6 实验四控制系统古典分析.............................................................................................12 实验五控制系统现代分析 . (15)
实验六 PID控制器的设
计 ...........................................................................................19 实验七系统状态空间设计.............................................................................................23 实验九
直流双闭环调速系统仿真 (25)
实验一 MATLAB基本操作
1 用MATLAB可以识别的格式输入下面两个矩阵
1233,,1443678,i,,,,2357,,,,2335542,i,,,, A,1357B,,,2675342,
i,,3239,,,,189543,,,,1894,,
再求出它们的乘积矩阵C,并将C矩阵的右下角2×3子矩阵赋给D矩阵。赋值完成后,调
用相应的命令查看MATLAB工作空间的占用情况。
A=[1,2,3,3;2,3,5,7;1,3,5,7;3,2,3,9;1,8,9,4];
B=[1+4i,4,3,6,7,8;2,3,3,5,5,4+2i;2,6+7i,5,3,4,2;1,8,9,5,4,3]; C=A*B;
D=C(4:5,4:6);
whos
Name Size Bytes Class Attributes
A 5x4 160 double
B 4x6 384 double complex
C 5x6 480 double complex
D 2x3 96 double complex 2 选择合适的步距绘制出下面的图形,其中 sin(/)1tt,,(,)11
t=[-1:0.1:1];
y=sin(1./t);
plot(t,y)
1
3 对下面给出的各个矩阵求取矩阵的行列式、秩、特征多项式、数、特征根、特征向量和
逆矩阵。
5765753500..,,,,
,,,,.,,,,, B,A,,,,,5,.
,,,,3..,,,,
12343324,,,,,,
,,,,56785518,,,,,, C,D,,,,,7,
,,,,1,,,,,,,
A=[7.5,3.5,0,0;8,33,4.1,0;0,9,103,-1.5;0,0,3.7,19.3];
B=[5,7,6,5;7,10,8,7;6,8,10,9;5,7,9,10]; C=[1:4;5:8;9:12;13:1rtf6];
D=[3,-3,-2,4;5,-5,1,8;11,8,5,-7;5,-1,-3,-1]; det(A);det(B);det(C);det(D);
rank(A);
rank(B);
rank(C);
rank(D);
a=poly(A);
b=poly(B);
c=poly(C);
d=poly(D);
norm(A);
2
norm(B);
norm(C);
norm(D);
[v,d]=eig(A,'nobalance');
[v,d]=eig(B,'nobalance');
[v,d]=eig(C,'nobalance');
[v,d]=eig(D,'nobalance');
m=inv(A);
n=inv(B);
p=inv(C);
q=inv(D);
4 求解下面的线性代数方程,并验证得出的解真正满足原方程。72124,1321390,,,,,,,,
,,,,,,,,721264,915327,,,,,,,,,(a),(b) X,X,,,,,,,,,91532117,,,,221151 ,,,,,,,,,,,,30,,,,,,,,
(a)
A=[7,2,1,-2;9,15,3,-2;-2,-2,11,5;1,3,2,13];
B=[4;7;-1;0];
X=A\B;
C=A*X;
(b)
A=[1,3,2,13;7,2,1,-2;9,15,3,-2;-2,-2,11,5];
B=[9,0;6,4;11,7;-2,-1];
X=A\B;
C=A*X;
5.
(1) 初始化一10*10矩阵,其元素均为1 ones(10,10);
(2) 初始化一10*10矩阵,其元素均为0 zeros(10,10);
(3) 初始化一10*10对角矩阵
v=[1:10];
diag(v);
(4) 输入A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2; 3 3 3],执行下列命令,理解其含义
A(2, 3) 表示取A矩阵第2行、第3列的元素;
3
A(:,2) 表示取A矩阵的第,列全部元素;
A(3,:) 表示取A矩阵第,行的全部元素;
A(:,1:2:3)表示取A矩阵第1、3列的全部元素;
A(:,3).*B(:,2)表示A矩阵第3列的元素点乘B矩阵第2列的元素
A(:,3)*B(2,:)表示A矩阵第3列的元素乘以B矩阵第2行 A*B 矩阵AB相乘
A.*B矩阵A点乘矩阵B
A^2矩阵A的平方
A.^2矩阵表示求矩阵A的每一个元素的平方值
B/A 表示方程AX=B的解X
B./A表示矩阵B的每一个元素点除矩阵A的元素
6在同一坐标系中绘制余弦曲线y=cos(t-0.25)和正弦曲线y=sin(t-0.5),t?[0,2π],
用不同颜色,不同线的类型予以表示,注意坐标轴的比例控制。
t=[0:0.01:2*pi];
y1=cos(t-0.25);
plot(t,y1,'r--')
hold on
y2=sin(t-0.5);
plot(t,y2,'k')
4
实验二 Matlab编程
1分别用for和while循环结构编写程序,求出
63i236263 K,,,,,,,,2122222?,,i0
并考虑一种避免循环的简洁方法来进行求和。 (a)j=1;n=0;sum=1; for n=n+1:63
for i=1:n
j=j*2;
end
sum=sum+j;
j=1;
end
sum
(b)j=1;n=1;sum=1;
while n~=64
i=1;
while i j=j*2; i=i+1; end n=n+1; sum=sum+j; j=1; end Sum (c)i=0:63;k=sum(2.^i); 2计算 1+2+…+n<2000 时的最大 n 值 s=0;m=0;while(s<=2000),m=m+1;s=s+m;end,m 3 用MATLAB语言实现下面的分段函数 ,hxD,, , yfxhDx,,()/,xD,, ,,,,hxD,,存放于文件ff.m中,令D=3,h=1求出,f(-1.5), f(0.5), f(5). D=3;h=1; x=-2*D:1/2:2*D; y=-h*(x<-D)+h/D./x.*((x>=-D)&(x<=D))+h*(x>D); 5 plot(x,y); grid on f1=y(find(x==-1.5)) f2=y(find(x==0.5)) f3=y(find(x==5)) 实验三 Matlab底层图形控制 1 在MATLAB命令行中编程得到y=sin(t)和 y1=cos(t)函数, plot(t,y);figure(10);plot(t,y1); >> t=[-pi:0.05:pi]; >> y=sin(t); >> y1=cos(t); >> plot(t,y) >> figure(10); >> plot(t,y1) 2 在MATLAB命令行中键入h=get(0),查看根屏幕的属性,h此时为根屏幕句柄的符号表示,0为根屏幕对应的标号。 >> h=get(0) h = BeingDeleted: 'off' BusyAction: 'queue' ButtonDownFcn: '' CallbackObject: [] Children: [2x1 double]