1、 控制系统仿真实验 Matlab 部分实验结果 目 录 实验一 MATLAB 基本操作 . 1 实验 二 Matlab 编程 . 5 实验 三 Matlab 底层图形控制 . 6 实验 四 控制系统 古 典分析 .12 实验五 控制系统 现代 分析 .15 实验六 PID 控制器的设计 .19 实验 七 系统状态空间设计 .23 实验 九 直流双闭环调速系统仿真 .25 1 实验一 MATLAB 基本操作 1 用 MATLAB 可以识别的格式输入下面两个矩阵 1 2 3 32 3 5 71 3 5 73 2 3 91 8 9 4A1 4 4 3 6 7 82 3 3 5 5 4 22 6 7
2、5 3 4 21 8 9 5 4 3iiBi 再求出它们的乘积矩阵 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
3、 C 5x6 480 double complex D 2x3 96 double complex 2 选择合适的步距绘制出下面的图形 1sin(/ )t ,其中 11( , )t t=-1:0.1:1; y=sin(1./t); plot(t,y) 2 3 对下面给出的各个矩阵求取矩阵的行列式、秩、特征多项式、范数、特征根、特征向量和逆矩阵。 7 5 3 5 0 08 3 3 4 1 00 9 1 0 3 1 50 0 3 7 1 9 3.A ,5 7 6 57 10 8 76 8 10 95 7 9 10B1 2 3 45 6 7 89 10 11 1213 14 15 16C,3 3 2
4、 45 5 1 81 1 8 5 75 1 3 1D 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
5、); 3 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 求解下面的线性代数方程,并验证得出的解真正满足原方程。 (a)7 2 1 2 49 1 5 3 2 72 2 1 1 5 11 3 2 1 3 0X , (b)1 3 2 1 3 9 07 2 1 2 6 49 1 5 3 2 1 1 72 2 1 1 5 2 1X ( a)
6、 A=7,2,1,-2;9,15,3,-2;-2,-2,11,5;1,3,2,13; B=4;7;-1;0; X=AB; 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=AB; 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=
7、1 1 1; 2 2 2; 3 3 3, 执行下列命令,理解其含义 A(2, 3) 表示取 A 矩阵第 2 行、第 3 列的元素; 4 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 A2 矩阵 A 的平方 A.2 矩阵表示求矩阵 A 的每一个元素的平方
8、值 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) 5 实验 二 Matlab 编程 1 分别用 for 和 while 循环结构编写程序,求出 63 2 3 6 2 6 30 2 1 2 2 2 2 2iiK 并考
9、虑一种避免循环的简洁方法来进行求和。 ( 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=-D) 6 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);
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 Clipping: on CommandWindowSize: 89 27 CreateFcn: Cu
11、rrentFigure: 1 DeleteFcn: Diary: off DiaryFile: diary Echo: off FixedWidthFontName: Courier New Format: short FormatSpacing: loose HandleVisibility: on HitTest: on Interruptible: on Language: zh_cn.gbk MonitorPositions: 1 1 1440 900 More: off 7 Parent: PointerLocation: 1048 463 PointerWindow: 0 Recu
12、rsionLimit: 500 ScreenDepth: 32 ScreenPixelsPerInch: 96 ScreenSize: 1 1 1440 900 Selected: off SelectionHighlight: on ShowHiddenHandles: off Tag: Type: root UIContextMenu: Units: pixels UserData: Visible: on 3 h1=get(1);h2=get(10), 1, 10 分别为两图形窗口对应标号,其中 1 为 Matlab 自动分配,标号10 已在 figure(10)中指定。查看 h1 和
13、h2 属性,注意 CurrentAxes 和 CurrenObject 属性。 h1=get(1) h1 = Alphamap: 1x64 double BeingDeleted: off BusyAction: queue ButtonDownFcn: Children: 170.0012 Clipping: on CloseRequestFcn: closereq Color: 0.8000 0.8000 0.8000 Colormap: 64x3 double CreateFcn: CurrentAxes: 170.0012 CurrentCharacter: CurrentObject
14、: CurrentPoint: 0 0 DeleteFcn: DockControls: on FileName: FixedColors: 10x3 double HandleVisibility: on HitTest: on IntegerHandle: on Interruptible: on InvertHardcopy: on 8 KeyPressFcn: KeyReleaseFcn: MenuBar: figure MinColormap: 64 Name: NextPlot: add NumberTitle: on PaperOrientation: portrait Pape
15、rPosition: 0.6345 6.3452 20.3046 15.2284 PaperPositionMode: manual PaperSize: 20.9840 29.6774 PaperType: A4 PaperUnits: centimeters Parent: 0 Pointer: arrow PointerShapeCData: 16x16 double PointerShapeHotSpot: 1 1 Position: 440 378 560 420 Renderer: painters RendererMode: auto Resize: on ResizeFcn:
16、Selected: off SelectionHighlight: on SelectionType: normal Tag: ToolBar: auto Type: figure UIContextMenu: Units: pixels UserData: Visible: on WindowButtonDownFcn: WindowButtonMotionFcn: WindowButtonUpFcn: WindowKeyPressFcn: WindowKeyReleaseFcn: WindowScrollWheelFcn: WindowStyle: normal WVisual: 00 (RGB 32 GDI, Bitmap, Window) WVisualMode: auto h2=get(10) h2 =