《2023年matlab练习题和超详细解析超详细解析答案.pdf》由会员分享,可在线阅读,更多相关《2023年matlab练习题和超详细解析超详细解析答案.pdf(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、matlab 练习题和答案 matlab 练习题与答案 控制系统仿真实验 Matlab 部分实验结果 目 录 实验一 MATLAB 基本操作、1 实验二 Matlab 编程、5 实验三 Matlab 底层图形控制、6 实验四 控制系统古典分析、12 实验五 控制系统现代分析、15 实验六 PID 控制器的设计、matlab 练习题和答案、19 实验七 系统状态空间设计、23 实验九 直流双闭环调速系统仿真、25 实验一 MATLAB 基本操作 1 用 MATLAB 可以识别的格式输入下面两个矩阵 1233,1443678,i,2357,2335542,i,A,1357B,2675342,i,3
2、239,189543,1894,再求出它们的乘积矩阵 C,并将 C矩阵的右下角 23 子矩阵赋给 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 matlab 练习题和答案
3、 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、,71087833410、,B,A,681090910315,、,579100037193、,12343324,matlab 练习题和答案,56785518,C,D,910111211857,1,A=7、5,3、5,0,0;8,33,4、1,
4、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,noba
5、lance);v,d=eig(C,nobalance);v,d=eig(D,nobalance);m=inv(A);matlab 练习题和答案 n=inv(B);p=inv(C);q=inv(D);4 求解下面的线性代数方程,并验证得出的解真正满足原方程。72124,1321390,721264,915327,(a),(b)X,X,91532117,221151,2211521132130,(a)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,-
6、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);matlab 练习题和答案(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(:,
7、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的每一个元素的平方值 B/A 表示方程 AX=B 的解 X B、/A 表示矩阵 B的每一个元素点除矩阵 A的元素 6 在同一坐标系中绘制余弦曲线 y=cos(t-0、25)与正弦曲线 y=sin(t-0、5),t?0,2,用不同颜色,不同线的类型予以表示,注意坐标轴的比例控制。t=
8、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)matlab 练习题和答案 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;matlab 练习题和答案 while n=64 i=1;whil
9、e in+1 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+n2000 时的最大 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)&(xD);5 plot(x,y);grid on matlab 练习题和答案
10、 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 BusyAct
11、ion:queue ButtonDownFcn:CallbackObject:Children:2x1 double Clipping:on CommandWindowSize:89 27 CreateFcn:CurrentFigure:1 matlab 练习题和答案 DeleteFcn:Diary:off DiaryFile:diary Echo:off FixedWidthFontName:Courier New Format:short FormatSpacing:loose HandleVisibility:on HitTest:on Interruptible:on Language
12、:zh_cn、gbk MonitorPositions:1 1 1440 900 More:off 6 Parent:PointerLocation:1048 463 PointerWindow:0 RecursionLimit:500 ScreenDepth:32 ScreenPixelsPerInch:96 ScreenSize:1 1 1440 900 Selected:off SelectionHighlight:on ShowHiddenHandles:off matlab 练习题和答案 Tag:Type:root UIContextMenu:Units:pixels UserDat
13、a:Visible:on 3 h1=get(1);h2=get(10),1,10分别为两图形窗口对应标号,其中 1 为Matlab 自动分配,标号 10 已在 figure(10)中指定。查瞧 h1 与 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
14、 Colormap:64x3 double CreateFcn:CurrentAxes:170、0012 CurrentCharacter:CurrentObject:CurrentPoint:0 0 matlab 练习题和答案 DeleteFcn:DockControls:on :FixedColors:10 x3 double HandleVisibility:on HitTest:on IntegerHandle:on Interruptible:on InvertHardcopy:on 7 KeyPressFcn:KeyReleaseFcn:MenuBar:figure MinColo
15、rmap:64 Name:NextPlot:add NumberTitle:on PaperOrientation:portrait PaperPosition:0、6345 6、3452 20、3046 15、2284 PaperPositionMode:manual PaperSize:20、9840 29、6774 PaperType:A4 PaperUnits:centimeters Parent:0 matlab 练习题和答案 Pointer:arrow PointerShapeCData:16x16 double PointerShapeHotSpot:1 1 Position:4
16、40 378 560 420 Renderer:painters RendererMode:auto Resize:on ResizeFcn:Selected:off SelectionHighlight:on SelectionType:normal Tag:ToolBar:auto Type:figure UIContextMenu:Units:pixels UserData:Visible:on WindowButtonDownFcn:WindowButtonMotionFcn:WindowButtonUpFcn:WindowKeyPressFcn:WindowKeyReleaseFcn
17、:WindowScrollWheelFcn:matlab 练习题和答案 WindowStyle:normal WVisual:00(RGB 32 GDI,Bitmap,Window)WVisualMode:auto h2=get(10)h2=8 Alphamap:1x64 double BeingDeleted:off BusyAction:queue ButtonDownFcn:Children:342、0011 Clipping:on CloseRequestFcn:closereq Color:0、8000 0、8000 0、8000 Colormap:64x3 double Creat
18、eFcn:CurrentAxes:342、0011 CurrentCharacter:CurrentObject:CurrentPoint:0 0 DeleteFcn:DockControls:on :FixedColors:10 x3 double HandleVisibility:on matlab 练习题和答案 HitTest:on IntegerHandle:on Interruptible:on InvertHardcopy:on KeyPressFcn:KeyReleaseFcn:MenuBar:figure MinColormap:64 Name:NextPlot:add Num
19、berTitle:on PaperOrientation:portrait PaperPosition: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 RendererMo
20、de:auto matlab 练习题和答案 Resize:on ResizeFcn:9 Selected:off SelectionHighlight:on SelectionType:normal Tag:ToolBar:auto Type:figure UIContextMenu:Units:pixels UserData:Visible:on WindowButtonDownFcn:WindowButtonMotionFcn:WindowButtonUpFcn:WindowKeyPressFcn:WindowKeyReleaseFcn:WindowScrollWheelFcn:Windo
21、wStyle:normal WVisual:00(RGB 32 GDI,Bitmap,Window)WVisualMode:auto 4 输入 h、Children,观察结果。h、Children matlab 练习题和答案 ans=1 10 5 键入 gcf,得到当前图像句柄的值,分析其结果与 h,h1,h2中哪个一致,为什么?ans=1 结果与 h 的一致 6 鼠标点击 Figure 1窗口,让其位于前端,在命令行中键入 gcf,观察此时的值,与上一步中有何不同,为什么?ans=1 7 观察 h1、Children与 h2、Children,gca的值。h1、Children ans=17
22、0、0012 10 h2、Children ans=342、0011 gca ans=170、0012 8 观察以下程序结果 h3=h1、Children;set(h3,Color,green);h3_1=get(h3,children);set(h3_1,matlab 练习题和答案 Color,red);其中 h3_1 为 Figure1 中线对象句柄,不能直接采用h3_1=h3、Children命令获得。9 命令行中键入 plot(t,sin(t-pi/3),观察曲线出现在哪个窗口。h4=h2、Children;axes(h4);plot(t,sin(t-pi/3),瞧瞧此时曲线显示在何窗
23、口。plot(t,sin(t-pi/3)后,曲线出现在 figure1窗口;h4=h2、Children;axes(h4);plot(t,sin(t-pi/3)后,曲线出现在 figure10 11 实验四 控制系统古典分析 103G(s),(已知二阶系统 2s,2s,10(1)编写程序求解系统的阶跃响应;a=sqrt(10);zeta=(1/a);num=10;den=1 2*zeta*a 10;matlab 练习题和答案 sys=tf(num,den);t=0:0、01:3;figure(1)step(sys,t);grid 修改参数,实现与的阶跃响应;,1,2 时:,1 a=sqrt(1
24、0);zeta=1;num=10;den=1 2*zeta*a 10;sys=tf(num,den);t=0:0、01:3;figure(1)step(sys,t);grid 时:,2 a=sqrt(10);zeta=2;num=10;den=1 2*zeta*a 10;sys=tf(num,den);t=0:0、01:3;figure(1)step(sys,t);grid 1,2,10修改参数,实现与的阶跃响应()n1nn2nn2 1,时:n1n2 matlab 练习题和答案 12 a=sqrt(10);zeta=(1/a);num=0、25;den=1 2*zeta*0、5*a 0、25;
25、sys=tf(num,den);t=0:0、01:3;figure(1)step(sys,t);grid 时:,2,n2n a=sqrt(10);zeta=(1/a);num=40;den=1 2*zeta*2*a 40;sys=tf(num,den);t=0:0、01:3;figure(1)step(sys,t);grid (2)试做出以下系统的阶跃响应,并比较与原系统响应曲线的差别与特点,作出相应的实验 分析结果。222s,10s,0、5s,10s,0、5sG(s),G(s),G(s),;123222s,2s,10s,2s,10s,2s,10 sG(s),22s,2s,10 要求:分析系统
26、的阻尼比与无阻尼振荡频率对系统阶跃响应的影响;matlab 练习题和答案 分析响应曲线的零初值、非零初值与系统模型的关系;分析响应曲线的稳态值与系统模型的关系;分析系统零点对阶跃响应的影响;a=sqrt(10);zeta=(1/a);num=10;den=1 2*zeta*a 10;sys=tf(num,den);t=0:0、01:3;step(sys,t);hold on num1=0 2 10;sys1=tf(num1,den);step(sys1,t);num2=1 0、5 10;sys2=tf(num2,den);13 step(sys2,t);num3=1 0、5 0;sys3=tf
27、(num3,den);step(sys3,t);num4=0 1 0;sys4=tf(num4,den);step(sys4,t);grid matlab 练习题和答案 5 k(s,1)G(s),已知 2s(0、1s,1)令 k,1 作 Bode 图,应用频域稳定判据确定系统的稳定性,并确定使系统获得最大相位 裕度的增益 k 值。G=tf(1 1,0、1 1 0 0);figure(1)margin(G);grid 14 matlab 练习题和答案 实验五 控制系统现代分析 1 (2)Bode 图法判断系统稳定性:已知两个单位负反馈系统的开环传递函数分别为:用 Bode 图法判断系统闭环的稳定
28、性。G1=tf(2、7,1 5 4 0);figure(1)margin(G);grid G2=tf(2、7,1 5-4 0);figure(2)margin(G2);grid 15 matlab 练习题和答案 2 系统能控性、能观性分析 已知连续系统的传递函数模型:matlab 练习题和答案 16 当 分别取,1,0,1 时,判别系统的能控性与能观性。当 取-1 时:num=1-1;den=1 10 27 18;G=tf(num,den);G1=ss(G)a=-10-3、375-2、25;8 0 0;0 1 0;b=0、5;0;0;Uc=b,a*b,a2*b;rank(Uc)a=x1 x2
29、x3 x1-10-3、375-2、25 x2 8 0 0 x3 0 1 0 b=u1 x1 0、5 x2 0 x3 0 c=x1 x2 x3 y1 0 0、25-0、25 d=u1 matlab 练习题和答案 y1 0 Continuous-time model、rankUc=3 rankUo=3 由此,可以得到系统能控性矩阵 Uc的秩就是 3,等于系统的维数,故系统就是能控的。能观性矩 阵 Uo的秩就是 3,等于系统的维数,故系统能观测的。当 取 0 时:17 a=x1 x2 x3 x1-10-3、375-2、25 x2 8 0 0 x3 0 1 0 b=u1 x1 0、25 x2 0 x3
30、 0 c=x1 x2 x3 y1 0 0、5 0 d=matlab 练习题和答案 u1 y1 0 Continuous-time model、rankUc=3 rankUo=3 由此,可以得到系统能控性矩阵 Uc的秩就是 3,等于系统的维数,故系统就是能控的。能观性矩 阵 Uo的秩就是 3,等于系统的维数,故系统能观测的。当 取 1 时:a=x1 x2 x3 x1-10-3、375-2、25 x2 8 0 0 x3 0 1 0 b=u1 x1 0、5 x2 0 x3 0 c=x1 x2 x3 18 matlab 练习题和答案 y1 0 0、25 0、25 d=u1 y1 0 rankUc=3
31、rankUo=2 由此,可以得到系统能控性矩阵 Uc的秩就是 3,等于系统的维数,故系统就是能控的。能观性矩 阵 Uo的秩就是 2,小于系统的维数,故系统不能观测的。实验六 PID 控制器的设计 31(已知三阶对象模型,利用 MATLAB 编写程序,研究闭环系统在不同控Gss()1/(1),制情况下的阶跃响应,并分析结果。(1)TT,0时,在不同 K值下,闭环系统的阶跃响应;Pid s=tf(s);G=1/(s+1)3;for K=0:0、5:2;hold on step(feedback(G*K,1)end 19 matlab 练习题和答案 比例环节:成比例地反映控制系统的偏差信号 e(t)
32、,偏差一旦产生,控制器立即产生控制作用,以减小偏差。比例系数越大,误差越小。TKT,10,(2)时,在不同值下,闭环系统的阶跃响应;ipd s=tf(s);G=1/(s+1)3;for Ti=1:0、5:3;hold on G1=1+tf(1,Ti,0);step(feedback(G*G1,1)end 20 matlab 练习题和答案 积分环节:主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数 TI,TI 越大,积分作用越弱,反之则越强。TKT,1(3)时,在不同值下,闭环系统的阶跃响应;dpi s=tf(s);G=1/(s+1)3;for Td=1:0、5:3;hold
33、 on G1=1+tf(1,1,0)+tf(Td 0,Td/10 1);step(feedback(G*G1,1)end 21 matlab 练习题和答案 微分环节:反映偏差信号的变化趋势(变化速率),并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减少调节时间。2(被控对象同上,选择合适的参数进行模拟 PID 控制(PID 参数整定)s=tf(s);G=1/(s+1)3;K1,L1,T1,G1=getfolpd(1,G);G1 N=10;K=1、014;T=2、101;L=1、1;a=K*L/T;Kp=1、2/a,Ti=2*L,Td=0、5*L,G2=
34、Kp*(1+tf(1,Ti,0)+tf(Td 0,Td/N 1);step(sys1=feedback(G*G2,1);grid hold on step(feedback(G,1)22 matlab 练习题和答案 实验七 系统状态空间设计 3(已知对象模型 ,03010052、,xtxtut()、()(),10100,15890054、,yx,123,(1)如果我们想将闭环系统的极点配置到-1,-2,-3,利用 MATLAB 设计控制器,并绘出闭环 系统的阶跃响应曲线。(说明:用两种方法配置极点)采用 Ackermann 公式计算:A=-0、3 0、1-0、05;1 0、1 0;-1、5-8
35、、9-0、05;B=2;0;4;C=1 2 3;D=0;P=-1-2-3;k=acker(A,B,P)Ac=A-B*k matlab 练习题和答案 23 eig(Ac)G=ss(Ac,B,C,D)G1=tf(G)t=0:0、01:3;step(G1,t);grid 采用鲁棒极点配置算法:A=-0、3 0、1-0、05;1 0、1 0;-1、5-8、9-0、05;B=2;0;4;C=1 2 3;D=0;P=-1-2-3;k=place(A,B,P)Ac=A-B*k eig(Ac)G=ss(Ac,B,C,D)G1=tf(G)matlab 练习题和答案 t=0:0、01:3;step(G1,t);g
36、rid 24 *(2)如果想将闭环系统的所有极点均配置到-1,怎样设计控制器,采用 Ackermann 算法配置,可以求解配置多重极点的问题。实验九 直流双闭环调速系统仿真 1、建立双闭环调速系统的模型;系统中采用三相桥式晶闸管整流装置,基本参数如书(”控制系统仿真与计算机辅助设计”)双闭环调速系统原理图 matlab 练习题和答案 为了实现转速与电流 2 种负反馈分别起作用,在系统中设置了 2 个调节器,分别就是电流调节 25 器 ACR(Current Regulator)与转速调节器 ASR(Speed Reg ulator),两者之间实行串级连接,其中转速调节器 ASR的输出作为电流调
37、节器 ACR的输入,再用电流调节器 A CR 的输出去控制晶闸管装置。从闭环结构上瞧,电流调节器在里面,叫做内环;转速调节器在外边,叫做外环。双闭环调速系统的原理图如图所示。2、利用 Simulink 建立仿真模型,并分析系统的动态性能。速度控制器 电流控制器 26 matlab 练习题和答案 输出电流波形 输出转速波形 系统仿真结果如图所示。设置双闭环控制的一个重要目的就就是要获得接近理想起动过程,因此在分析双闭环调速系统的动态性能时,首先要探讨它的起动过程,双闭环直流调速系统突加给定电压 U由静止状态起动时,转速与电流在起动过程中经历了三个阶段,根据仿真波形,也可瞧出起动过程分别经历了电流
38、上升、恒流升速、转速调节这三个阶段。在电流上升阶段,突加给定电压 U后,I上升,电机也开始起动,但由于机电惯性作用,转速不会很快增长,因而转速调节器 ASR 的输入偏差电压的数值较大,matlab 练习题和答案 强迫电流 I 迅速上升;而在恒流升速阶段,ASR 始终就是饱与的,转速环相当于开环,电流 I 保持恒定,因而系统的加速度恒定,转速呈线性增长;在转速调节阶段,当转速快上升到给定值时,转速调节器 ASR 的输入偏差很小,但其输出由于积分作用,电机仍在缓慢加速,与此同时,电流 I 迅速减小,直到 I=时,转速以一恒定速度输出,电流 I 保持 输出。从仿真波形中可以瞧出,IIll 电流 I 上升得非常快,几乎接近于突变状态,恒流升速阶段转速呈线性增长,其上升时间小,突出了系统的快速性设计要求;而在转速在上升到给定值时,电流I 迅速降低,转速也没有 27 明显的超调现象,最终稳定在额定转速附近,体现了控制系统的稳定性与准确性原则;整个 起动过程非常接近于理想状态,设计比较合理。28