控制系统仿真_薛定宇第二章_MATLAB语言程序设计基础
控制系统计算机辅助设计:MATLAB语言与应用(第2版)薛定宇-课后习题答案

第1章控制系统计算机辅助设计概述第2章 MATLAB语言程序设计基础第3章线性控制系统的数学模型第4章线性控制系统的计算机辅助分析第5章 Simulink在系统仿真中的应用第6章控制系统计算机辅助设计第1章控制系统计算机辅助设计概述【1】已阅,略【2】已阅,略【3】已经掌握help命令和Help菜单的使用方法【4】区别:MATLAB语言实现矩阵的运算非常简单迅速,且效率很高,而用其他通用语言则不然,很多通用语言所实现的矩阵运算都是对矩阵维数具有一点限制的,即使限制稍小的,但凡维数过大,就会造成运算上的溢出出错或者运算出错,甚至无法处理数据的负面结果【5】【8】(1)输入激励为正弦信号(2)输入激励为脉冲模拟信号(3)输入激励为时钟信号(4) 输入激励为随机信号(5) 输入激励为阶跃信号δ=0.3δ=0.05δ=0.7结论:随着非线性环节的死区增大,阶跃响应曲线的范围逐渐被压缩,可以想象当死区δ足够大时,将不再会有任何响应产生。
所以可以得到结论,在该非线性系统中,死区的大小可以改变阶跃响应的幅值和超调量。
死区越大,幅值、超调量将越小,而调整时间几乎不受其影响第2章 MATLAB语言程序设计基础【1】>> A=[1 2 3 4;4 3 2 1;2 3 4 1;3 2 4 1]A =1 2 3 44 3 2 12 3 4 13 24 1>> B=[1+4i,2+3i,3+2i,4+i;4+i,3+2i,2+3i,1+4i;2+3i,3+2i,4+i,1+4i;3+2i,2+3i,4+i,1+4i]B =1.0000 + 4.0000i2.0000 +3.0000i 3.0000 + 2.0000i4.0000 + 1.0000i4.0000 + 1.0000i 3.0000 + 2.0000i 2.0000 + 3.0000i 1.0000 + 4.0000i2.0000 +3.0000i 3.0000 + 2.0000i4.0000 + 1.0000i 1.0000 + 4.0000i3.0000 + 2.0000i 2.0000 + 3.0000i4.0000 + 1.0000i 1.0000 + 4.0000i>> A(5,6)=5A =1 2 3 4 0 04 3 2 1 0 02 3 4 1 0 03 24 1 0 00 0 0 0 0 5∴若给出命令A(5,6)=5则矩阵A的第5行6列将会赋值为5,且其余空出部分均补上0作为新的矩阵A,此时其阶数为5×6【2】相应的MATLAB命令:B=A(2:2:end,:)>> A=magic(8)A =64 2 3 61 60 6 7 579 55 54 12 13 51 50 1617 47 46 20 21 43 42 2440 26 27 37 36 30 31 3332 34 35 29 28 38 39 2541 23 22 44 45 19 18 4849 15 14 52 53 11 10 568 58 59 5 4 62 63 1>> B=A(2:2:end,:)B =9 55 54 12 13 51 50 1640 26 27 37 36 30 31 3341 23 22 44 45 19 18 488 58 59 5 4 62 63 1∴从上面的运行结果可以看出,该命令的结果是正确的【3】>> syms x s; f=x^5+3*x^4+4*x^3+2*x^2+3*x+6f =x^5 + 3*x^4 + 4*x^3 + 2*x^2 + 3*x + 6>> [f1,m]=simple(subs(f,x,(s-1)/(s+1)))f1 =19 - (72*s^4 + 120*s^3 + 136*s^2 + 72*s + 16)/(s + 1)^5m =simplify(100)【4】>> i=0:63; s=sum(2.^sym(i))s =0615【5】>> for i=1:120if(i==1|i==2) a(i)=1;else a(i)=a(i-1)+a(i-2);endif(i==120) a=sym(a); disp(a); endend[ 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465, , , , , 5, 1, 6, 7, 3, 70, 03, 73, 76, 49, , 074, 099, 173, 272, 2445, 3717, 6162, 9879, 6041, 55920, 81961, 37881, 19842, 106, 177565, 035288, 212853, 248141, 0460994, , 1170129, 1879264, 8065, , , , 00884757, , 0, 5, 6, 1, 0, 88, , 673, 58, 931, , 120, , 029, 4, 2, 9905, 3072, 2977, 46049, 69026, 15075, 40, 99176, 083277, 082453, 165730, 248183, 7576, 62096, , 4738105, 5814114, 9, 186333, , 284885, 9, 3488322, 9, 0, 0]【6】>>k=1;for i=2:1000for j=2:iif rem(i,j)==0if j<i, break;endif j==i, A(k)=i; k=k+1; break; endendendenddisp(A);Columns 1 through 132 3 5 7 11 13 17 19 23 29 31 37 41 Columns 14 through 2643 47 53 59 61 67 71 73 79 83 89 97 101 Columns 27 through 39103 107 109 113 127 131 137 139 149 151 157 163 167 Columns 40 through 52173 179 181 191 193 197 199 211 223 227 229 233 239 Columns 53 through 65241 251 257 263 269 271 277 281 283 293 307 311 313 Columns 66 through 78317 331 337 347 349 353 359 367 373 379 383 389 397 Columns 79 through 91401 409 419 421 431 433 439 443 449 457 461 463 467 Columns 92 through 104479 487 491 499 503 509 521 523 541 547 557 563 569 Columns 105 through 117571 577 587 593 599 601 607 613 617 619 631 641 643 Columns 118 through 130647 653 659 661 673 677 683 691 701 709 719 727 733 Columns 131 through 143739 743 751 757 761 769 773 787 797 809 811 821 823 Columns 144 through 156827 829 839 853 857 859 863 877 881 883 887 907 911 Columns 157 through 168919 929 937 941 947 953 967 971 977 983 991 997【7】说明:h和D在MATLAB中均应赋值,否则将无法实现相应的分段函数功能syms x; h=input(‘h=’); D=input(‘D=’);y=h.*(x>D)+(h.*x/D).*(abs(x)<=D)-h.*(x<-D)【10】function y=fib(k)if nargin~=1,error('出错:输入变量个数过多,输入变量个数只允许为1!');endif nargout>1,error('出错:输出变量个数过多!');endif k<=0,error('出错:输入序列应为正整数!');endif k==1|k==2,y=1;else y=fib(k-1)+fib(k-2);endend【13】【14】>> t=[-1:0.001:-0.2,-0.1999:0.0001:0.1999,0.2:0.001:1];y=sin(1./t);plot(t,y);grid on;【15】(1) >> t=-2*pi:0.01:2*pi;r=1.0013*t.^2;polar(t,r);axis('square')(2) >> t=-2*pi:0.001:2*pi;r=cos(7*t/2);polar(t,r);axis('square')(3) >> t=-2*pi:0.001:2*pi;r=sin(t)./t;polar(t,r);axis('square')(4) >> t=-2*pi:0.001:2*pi;r=1-cos(7*t).^3;polar(t,r);axis('square')【17】(1)z=xy>> [x,y]=meshgrid(-3:0.01:3,-3:0.01:3);z=x.*y;mesh(x,y,z);>> contour3(x,y,z,50);(1)z=sin(xy)>> [x,y]=meshgrid(-3:0.01:3,-3:0.01:3);z=sin(x.*y);mesh(x,y,z);>> contour3(x,y,z,50);第3章线性控制系统的数学模型【1】(1) >> s=tf('s');G=(s^2+5*s+6)/(((s+1)^2+1)*(s+2)*(s+4))Transfer function:s^2 + 5 s + 6--------------------------------s^4 + 8 s^3 + 22 s^2 + 28 s + 16(2) >> z=tf('z',0.1);H=5*(z-0.2)^2/(z*(z-0.4)*(z-1)*(z-0.9)+0.6)Transfer function:5 z^2 - 2 z + 0.2---------------------------------------z^4 - 2.3 z^3 + 1.66 z^2 - 0.36 z + 0.6Sampling time (seconds): 0.1【2】(1)该方程的数学模型>> num=[6 4 2 2];den=[1 10 32 32];G=tf(num,den)Transfer function:6 s^3 + 4 s^2 + 2 s + 2------------------------s^3 + 10 s^2 + 32 s + 32(2)该模型的零极点模型>> G=zpk(G)Zero/pole/gain:6 (s+0.7839) (s^2 - 0.1172s + 0.4252)-------------------------------------(s+4)^2 (s+2)(3)由微分方程模型可以直接写出系统的传递函数模型【5】(1) >> P=[0;0;-5;-6;-i;i];Z=[-1+i;-1-i];G=zpk(Z,P,8)Zero/pole/gain:8 (s^2 + 2s + 2)-------------------------s^2 (s+5) (s+6) (s^2 + 1)(2) P=[0;0;0;0;0;8.2];Z=[-3.2;-2.6];H=zpk(Z,P,1,'Ts',0.05,'Variable','q')Zero/pole/gain:(q+3.2) (q+2.6)---------------q^5 (q-8.2)Sampling time (seconds): 0.05【8】(1)闭环系统的传递函数模型>> s=tf('s');G=10/(s+1)^3;Gpid=0.48*(1+1/(1.814*s)+0.4353*s/(1+0.4353*s));G1=feedback(Gpid*G,1)Transfer function:7.58 s^2 + 10.8 s + 4.8--------------------------------------------------------------0.7896 s^5 + 4.183 s^4 + 7.811 s^3 + 13.81 s^2 + 12.61 s + 4.8 (2)状态方程的标准型实现>> G1=ss(G1)a =x1 x2 x3 x4 x5 x1 -5.297 -2.473 -2.186 -0.9981 -0.7598x2 4 0 0 0 0 x3 0 2 0 0 0 x4 0 0 2 0 0x5 0 0 0 0.5 0b =u1x1 2x2 0x3 0x4 0x5 0c =x1 x2 x3 x4 x5y1 0 0 0.6 0.4273 0.3799d =u1y1 0Continuous-time state-space model.(3)零极点模型>> G1=zpk(G1)Zero/pole/gain:9.6 (s^2 + 1.424s + 0.6332)--------------------------------------------------------(s+3.591) (s^2 + 1.398s + 0.6254) (s^2 + 0.309s + 2.707)【11】>> Ga=feedback(s/(s^2+2)*1/(s+1),(4*s+2)/(s+1)^2);Gb=feedback(1/s^2,50);G=3*feedback(Gb*Ga,(s^2+2)/(s^3+14))Transfer function:3 s^6 + 6 s^5 + 3 s^4 + 42 s^3 + 84 s^2 + 42 s---------------------------------------------------------------------------s^10 + 3 s^9 + 55 s^8 + 175 s^7 + 300 s^6 + 1323 s^5 + 2656 s^4 + 3715 s^3+ 7732 s^2 + 5602 s + 1400【13】c1=feedback(G5*G4,H3)=G5*G4/(1+G5*G4*H3)c2=feedback(G3,H4*G4)=G3/(1+G3*H4*G4)c3=feedback(c2*G2,H2)=c2*G2/(1+c2*G2*H2)=G3*G2/(1+G3*H4*G4+G3*G2*H1)G=feedback(G6*c1*c3*G1,H1)=G6*c1*c3*G1/(1+ G6*c1*c3*G1*H1)=G6*G5*G4*G3*G2*G1/(1+G3*H4*G4+G3*G2*H1+G5*G4*H3+G5*G4*H3*G3*H4*G4+G5*G4* H3*G3*G2*H1+G6*G5*G4*G3*G2*G1*H1)【14】>> s=tf('s');c1=feedback(0.21/(1+0.15*s),0.212*130/s);c2=feedback(c1*70/(1+0.0067*s)*(1+0.15*s)/(0.051*s),0.1/(1+0.01*s));G=(1/(1+0.01*s))*feedback(130/s*c2*1/(1+0.01*s)*(1+0.17*s)/(0.085*s),0.0044/(1+0.01*s)) Transfer function:0.004873 s^5 + 1.036 s^4 + 61.15 s^3 + 649.7 s^2 + 1911 s---------------------------------------------------------------------------4.357e-014 s^10 + 2.422e-011 s^9 +5.376e-009 s^8 +6.188e-007 s^7+ 4.008e-005 s^6 + 0.001496 s^5 + 0.03256 s^4 + 0.4191 s^3+ 2.859 s^2 + 8.408 s 第4章线性控制系统的计算机辅助分析【1】(1) >> num=[1];den=[3 2 1 2];G=tf(num,den);eig(G)ans =-1.00000.1667 + 0.7993i0.1667 - 0.7993i分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的(2) >> num=[1];den=[6 3 2 1 1];G=tf(num,den);eig(G)ans =-0.4949 + 0.4356i-0.4949 - 0.4356i0.2449 + 0.5688i0.2449 - 0.5688i分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的(3) >> num=[1];den=[1 1 -3 -1 2];G=tf(num,den);eig(G)ans =-2.0000-1.00001.00001.0000分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的(4) >> num=[3 1];den=[300 600 50 3 1];G=tf(num,den);eig(G)ans =-1.9152-0.14140.0283 + 0.1073i0.0283 - 0.1073i分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的(5) >> s=tf('s');G=0.2*(s+2)/(s*(s+0.5)*(s+0.8)*(s+3)+0.2*(s+2));eig(G)ans =-3.0121-1.0000-0.1440 + 0.3348i-0.1440 - 0.3348i分析:由以上信息可知,系统的所有极点都在s域的左半平面,因此系统是稳定的【2】(1) >> num=[-3 2];den=[1 -0.2 -0.25 0.05];H=tf(num,den,'Ts',0.5);abs(eig(H)')ans =0.5000 0.5000 0.2000分析:由以上信息可知,所有特征根的模均小于1,因此该系统是稳定的(2) >> num=[3 -0.39 -0.09];den=[1 -1.7 1.04 0.268 0.024];H=tf(num,den,'Ts',0.5);abs(eig(H)')ans =1.1939 1.1939 0.1298 0.1298分析:由以上信息可知,由于前两个特征根的模均大于1,因此该系统是不稳定的(3) >> num=[1 3 -0.13];den=[1 1.352 0.4481 0.0153 -0.01109 -0.001043];H=tf(num,den,'Ts',0.5);abs(eig(H)')ans =0.8743 0.1520 0.2723 0.2344 0.1230分析:由以上信息可知,所有特征根的模均小于1,因此该系统是稳定的(4) >> num=[2.12 11.76 15.91];den=[1 -7.368 -20.15 102.4 80.39 -340];H=tf(num,den,'Ts',0.5,'Variable','q');abs((eig(H))')ans =8.2349 3.2115 2.3415 2.3432 2.3432分析:由以上信息可知,所有特征根的模均大于1,因此该系统是不稳定的【3】(1) >> A=[-0.2,0.5,0,0,0;0,-0.5,1.6,0,0;0,0,-14.3,85.8,0;0,0,0,-33.3,100;0,0,0,0,-10];eig(A)ans =-0.2000-0.5000-14.3000-33.3000-10.0000分析:由以上信息可知,该连续线性系统的A矩阵的所有特征根的实部均为负数,因此该系统是稳定的(2)>>F=[17,24.54,1,8,15;23.54,5,7,14,16;4,6,13.75,20,22.5589;10.8689,1.2900,19.099,…-4-3.5-3-2.5-2-1.5-1-0.50x 10-6P ole-Zero Map Real Axis (seconds -1)I m a g i n a r y A x i s (s e c o n d s -1)21.896,3;11,18.0898,25,2.356,9];abs(eig(F)') ans =63.7207 23.5393 12.4366 13.3231 19.7275分析:由以上信息可知,该离散系统的F 矩阵的所有特征根的模均大于1,因此该系统是不稳定的 【4】>> A=[-3 1 2 1;0 -4 -2 -1;1 2 -1 1;-1 -1 1 -2]; B=[1 0;0 2;0 3;1 1];C=[1 2 2 -1;2 1 -1 2];D=[0 0;0 0];G=ss(A,B,C,D); tzero(G)pzmap(G)ans =-3.6124-1.2765结论:∴可以得到该系统的 零点为-3.6124、-1.2765 分析:由以上信息可知,【5】>> s=tf('s');Gc=sscanform(G,'ctrl') Go=sscanform(G,'obsv') a =x1 x2 x3 x4 x1 0 1 0 0 x2 0 0 1 0 x3 0 0 0 1 x4 -0.4 -1.4 -4.3 -4.3 b =u1 x1 0 x2 0 x3 0 x4 1 c =x1 x2 x3 x4 y1 0.4 0.2 0 0 d =u1 y1 0Continuous-time state-space model. a =x1 x2 x3 x4x1 0 0 0 -0.4x2 1 0 0 -1.4x3 0 1 0 -4.3x4 0 0 1 -4.3b =u1x1 0.4x2 0.2x3 0x4 0c =x1 x2 x3 x4y1 0 0 0 1d =u1y1 0Continuous-time state-space model.【9】(1)>> num=[18 514 5982 36380 122664 222088 185760 40320];den=[1 36 546 4536 22449 67284 118124 109584 40320];[R1,P1,K1]=residue(num,[den 0]);[R1,P1]ans =-1.2032 -8.0000-1.0472 -7.00000.2000 -6.00000.7361 -5.0000-2.8889 -4.00002.2250 -3.0000-2.0222 -2.00003.0004 -1.00001.0000 0>> [n,d]=rat(R1);sym([n./d]')ans =[ -379/315, -377/360, 1/5, 53/72, -26/9, 89/40, -91/45, 7561/2520, 1][阶跃响应的解析解]y(t)=(-379/315)*e-8t+(-377/360)*e-7t+(1/5)*e-6t+(53/72)*e-5t+(-26/9)*e-4t+(89/40)*e-3t+ (-90/45)*e-2t+(7561/2520)*e-t+1(2) >> num=[18 514 5982 36380 122664 222088 185760 40320];den=[1 36 546 4536 22449 67284 118124 109584 40320];[R2,P2,K2]=residue(num,den);[R2,P2]ans =9.6254 -8.00007.3306 -7.0000-1.2000 -6.0000-3.6806 -5.000011.5556 -4.0000-6.6750 -3.00004.0444 -2.0000-3.0004 -1.0000>> [n,d]=rat(R2);sym([n./d]')ans =[ 3032/315, 887/121, -6/5, -265/72, 104/9, -267/40, 182/45, -7561/2520][脉冲响应的解析解]y(t)=(3032/315)*e-8t+(887/121)*e-7t+(-6/5)*e-6t+(-265/72)*e-5t+(104/9)*e-4t+(-267/40)*e-3t+(182/45)*e-2t+(-7561/2520)*e-t(3) >> syms t;u=sin(3*t+5);Us=laplace(u)Us =(3*cos(5) + s*sin(5))/(s^2 + 9)>> s=tf('s');Us=(3*cos(5)+s*sin(5))/(s^2+9);num=[18 514 5982 36380 122664 222088 185760 40320];den=[1 36 546 4536 22449 67284 118124 109584 40320];G=tf(num,den); Y=Us*G;num=Y.num{1}; den=Y.den{1};[R3,P3,K3]=residue(num,den); [R3,P3]ans =1.1237 -8.00000.9559 -7.0000-0.1761 -6.0000-0.6111 -5.00002.1663 -4.0000-1.1973 - 0.0010i 0.0000 + 3.0000i-1.1973 + 0.0010i 0.0000 - 3.0000i-1.3824 -3.00000.8614 -2.0000-0.5430 -1.0000>> [n,d]=rat(R3);sym([n./d]')ans =[109/97, 282/295, -59/335, -965/1579, 951/439, - 449/375 + (18*i)/17981, - 449/375 - (18*i)/17981, -1663/1203, 317/368, -82/151]Linear Simulation Results Time (seconds)A m p l i t u d e [正弦信号时域响应的解析解]y(t)=(109/97)*e -8t +(282/295)*e -7t +(-59/335)*e -6t +(-965/1579)*e -5t +(-449/375)*e -4t +(-1663/1203)*e -3t +(317/368)*e -2t +(-82/151)*e -t -2.3947sin(3t)[输出波形]>> num=[18 514 5982 36380 122664 222088 185760 40320];den=[1 36 546 4536 22449 67284 118124 109584 40320]; G=tf(num,den); t=[1:.1:20]';u=sin(3*t+5); lsim(G,u,t);分析:由解析解可知,输出信号的稳态部分是振荡的,并且其幅值与相位始终 在到达稳态的时候保持不变,因此 右图所示的输出波形与解析解所得的结论是一致的【10】(1)因为PI 或PID 控制器均含有Ki/s 节,则当Kp →∞,即|e(t)|一环节后,如果要求|e(t)|→0(2)不稳定系统能用PI 或PID 在积分控制中,控制器的输出与输入误差信号的积分成正比关系。
控制系统计算机辅助设计---MATLAB语言与应用

系统可控性判定
MATLAB 求解
2021/6/22
控制系统计算机辅助设计---MATLAB语言与应用
29
Gram 矩阵满足 Lyapunov 方程 对偶问题
2021/6/22
控制系统计算机辅助设计---MATLAB语言与应用
30
Kalman 规范分解
2021/6/22
控制系统计算机辅助设计---MATLAB语言与应用
61
例4-12 带有复数极点的系统 阶跃响应解析解 解析解
2021/6/22
控制系统计算机辅助设计---MATLAB语言与应用
62
解析解的进一步化简
基于 Euler 公式的化简
其中 新 MATLAB 函数
2021/6/22
控制系统计算机辅助设计---MATLAB语言与应用
63
新 MATLAB 函数清单
38
得出 Leunberge 变换矩阵
编写 leunberge.m 函数
2021/6/22
控制系统计算机辅助设计---MATLAB语言与应用
39
MATLAB 函数清单
2021/6/22
控制系统计算机辅助设计---MATLAB语言与应用
40
2021/6/22
控制系统计算机辅助设计---MATLAB语言与应用
56
解析解求解 解析解求解结果
稳定性
2021/6/22
控制系统计算机辅助设计---MATLAB语言与应用
57
连续系统的解析解法
无重根时部分方式展开
2021/6/22
控制系统计算机辅助设计---MATLAB语言与应用
58
由 Laplace 反变换求解析解 有重根时 相应项的解析解为
《MATLAB Simulink与控制系统仿真(第3版)》的课件 第2章 MATLAB计算基础

2.9 MATLAB程序设计
MATLAB程序类型包括三种:一种是在命令窗口下执行的脚本 M文件;另外一种是可以存取的M文件,即程序文件;最后一 种是函数(function)文件。脚本M文件和程序文件中的变量都 将保存在工作区中,这一点与函数文件是截然不同的。
laplace变换函数的格式为:
L=laplace(F) ilaplace拉氏反变换函数的常用格式为:
F=ilaplace(L) MATLAB提供了符号运算工具箱(Symbolic Math Toolbox),
可方便地进行Z变换和Z反变换,进行Z变换的函数是ztrans,进 行Z反变换的函数是iztrans。
2.3.3 MATLAB命令窗口
2.3.4 MATLAB工作空间
2.3.5 MATLAB文件管理
2.3.6 MATLAB帮助使用
2.4 MATLAB数值计算
控制系统仿真是系统仿真的一个重要分支,它是一门涉及自 动控制理论、计算数学、计算机技术、系统辨识、控制工程 以及系统科学的综合性新型学科。它为控制系统的分析、计 算、研究、综合设计以及控制系统的计算机辅助教学等提供 了快速、经济、科学及有效的手段。
控制系统仿真就是以控制系统模型为基础,采用数学模型替 代实际控制系统,以计算机为工具,对控制系统进行实验、 分析、评估及预测研究的一种技术与方法。
控制系统仿真通过控制系统的数学模型和计算方法,编写程 序运算语句,使之能自动求解各环节变量的动态变化情况, 从而得到关于系统输出和所需要的中间各变量的有关数据、 曲线等,以实现对控制系统性能指标的分析与设计。
控制系统仿真 答案 薛定宇 第二版

第一部分:MATLAB 必备基础知识、控制系统模型与转换、线性控制系统的计算机辅助分析(4学时)1.2.3.答:(a)>> s=tf('s');G=(s^3+4*s+2)/(s^3*(s^2+2)*((s^2+1)^3+2*s+5))Transfer function:s^3 + 4 s + 2------------------------------------------------------s^11 + 5 s^9 + 9 s^7 + 2 s^6 + 12 s^5 + 4 s^4 + 12 s^3(b)>> num=[1 0 0.568];den=[1 -1.2 1.19 -0.99];H=tf(num,den,'Ts',0.1)Transfer function:z^2 + 0.568-----------------------------z^3 - 1.2 z^2 + 1.19 z - 0.99Sampling time: 0.14.设y(t)=x1;A=[0,1,0;0,0,1;-13,-4,-5];B=[0;0;2];C=[1,0,0];D=0;G=SS(A,B,C,D)a =x1 x2 x3x1 0 1 0x2 0 0 1x3 -13 -4 -5b =u1x1 0x2 0x3 2c =x1 x2 x3y1 1 0 0d =u1y1 0Continuous-time model.传递函数模型:对式子两联进行拉氏变换,G(s)=2/(s^3+13*s^2+4*s+5)对分子分母进行分解因式处理5.进行Z变换6.s=tf('s');syms J Kps Ki;G=(s+1)/(J*s^2+2*s+5);Gc=(Kps+Ki)/s;H=1;GG=feedback(G*Gc,H) 7.(a)s=tf('s');G=(211.87*s+317.64)/((s+20)*(s+94.34)*(s+0.1684));Gc=(169.6*s+400)/s/(s+4);H=1/(0. 01*s+1);GG=feedback(G*Gc,H)Transfer function:359.3 s^3 + 3.732e004 s^2 + 1.399e005 s + 127056----------------------------------------------------------------------------------0.01 s^6 + 2.185 s^5 + 142.1 s^4 + 2444 s^3 + 4.389e004 s^2 + 1.399e005 s + 1270568.Ga=feedback(1/s^2,50);G1=feedback((1/(s+1))*(s/(s^2+2)),(4*s+2)/((s+1)^2));G2=feedback(Ga* G1,(s^2+2)/(s^3+14));G=3*G2Transfer function:3 s^6 + 6 s^5 + 3 s^4 + 42 s^3 + 84 s^2 + 42 s-----------------------------------------------------------------------------------------------------s^10 + 3 s^9 + 55 s^8 + 175 s^7 + 300 s^6 + 1323 s^5 + 2656 s^4 + 3715 s^3 + 7732 s^2 + 5602 s + 14009.>> s=tf('s');G=(s+1)^2*(s^2+2*s+400)/(s+5)^2/(s^2+3*s+100)/(s^2+3*s+2500)Transfer function:s^4 + 4 s^3 + 405 s^2 + 802 s + 400-------------------------------------------------------s^6 + 16 s^5 + 2694 s^4 + 34040 s^3 + 393225 s^2+ 2.695e006 s + 6.25e006>> step(G)s=tf('s');G=(s+1)^2*(s^2+2*s+400)/(s+5)^2/(s^2+3*s+100)/(s^2+3*s+2500);G1=c2d(G,0.01)Transfer function:4.716e-005 z^5 - 0.0001396 z^4 + 9.596e-005 z^3 + 8.18e-005 z^2 - 0.0001289 z + 4.355e-005 ------------------------------------------------------------------------------------------z^6 - 5.592 z^5 + 13.26 z^4 - 17.06 z^3 + 12.58 z^2 - 5.032 z + 0.8521>> step(G1)Sampling time: 0.01>> s=tf('s');G=(s+1)^2*(s^2+2*s+400)/(s+5)^2/(s^2+3*s+100)/(s^2+3*s+2500);G1=c2d(G,0.1) Transfer function:0.0003982 z^5 - 0.0003919 z^4 - 0.000336 z^3+ 0.0007842 z^2 - 0.000766 z + 0.0003214-------------------------------------------------------z^6 - 2.644 z^5 + 4.044 z^4 - 3.94 z^3 + 2.549 z^2- 1.056 z + 0.2019Sampling time: 0.1>> step(G1)>> s=tf('s');G=(s+1)^2*(s^2+2*s+400)/(s+5)^2/(s^2+3*s+100)/(s^2+3*s+2500);G1=c2d(G,1) Transfer function:8.625e-005 z^5 - 4.48e-005 z^4 + 6.545e-006 z^3+ 1.211e-005 z^2 - 3.299e-006 z + 1.011e-007-------------------------------------------------------z^6 - 0.0419 z^5 - 0.07092 z^4 - 0.0004549 z^3+ 0.002495 z^2 - 3.347e-005 z + 1.125e-007Sampling time: 1>> step(G1)10.(a)>> s=tf('s');G=1/(s^3+2*s^2+s+2);eig(G)ans =-2.00000.0000 + 1.0000i0.0000 - 1.0000i临界稳定(b)>> s=tf('s');G=1/(6*s^4+3*s^3+2*s^2+s+1);eig(G) ans =-0.4949 + 0.4356i-0.4949 - 0.4356i0.2449 + 0.5688i0.2449 - 0.5688i不稳定(c)>> s=tf('s');G=1/(s^4+s^3-3*s^2-s+2);eig(G)ans =-2.0000-1.00001.00001.0000不稳定11.(a)>> z=tf('z');G=(-3*z+2)/(z^3-0.2*z^2-0.25*z+0.05);abs(eig(G))ans =0.50000.50000.2000稳定(b)z=tf('z');G=(3*z^2-0.39*z-0.09)/(z^4-1.7*z^3+1.04*z^2+0.268*z+0.024);abs(eig(G)) ans =1.19391.19390.12980.1298不稳定12.求矩阵A的特征根,判断其特征根是否全具有负实部,则稳定13.14.15.16.17.第二部分:Simulink 在系统仿真中的应用、控制系统计算机辅助设计、控制工程中的仿真技术应用(4 学时)3.4.5.6.7.8.9.。
控制系统计算机辅助设计-MATLAB语言和应用

2018/10/16
控制系统计算机辅助设计-MATLAB语言与应用
11
我国较有影响的控制系统仿真与计算机辅助设计 成果是中科院系统科学研究所韩京清研究员等主 持的国家自然科学基金重大项目开发的CADCSC 软件。 清华大学孙增圻、袁曾任教授的著作和程序。 以及北京化工学院吴重光、沈成林教授的著作和 程序等。
控制系统计算机辅助设计-MATLAB语言与应用
13
2018/10/16
系统仿真领域有很多自己的特性,如果能选择一种 能反映当今系统仿真领域最高水平,也是最实用的 软件或语言介绍仿真技术,使得读者能直接采用该 语言解决自己的问题,将是很有意义的。
实践证明,MATLAB 就是这样的仿真软件,由于 它本身卓越的功能,已经使得它成为自动控制、航 空航天、汽车设计等诸多领域仿真的首选语言。 所以在本书中将介绍基于 MATLAB/Simulink的控 制系统仿真与设计方法及其应用。
控制系统计算机辅助设计-MATLAB语言与应用
2
2018/10/16
1.1 控制系统计算机辅助设计 技术的发展综述
早期的控制系统设计可以由纸笔等工具容易地计算 出来,如 Ziegler 与 Nichols 于1942年提出的 PID 经 验公式就可以十分容易地设计出来。
随着控制理论的迅速发展,光利用纸笔以及计算器 等简单的运算工具难以达到预期的效果,加之在计 算机领域取得了迅速的发展,于是很自然地出现了 控制系统的计算机辅助设计 (computer-aided control system design , CACSD)方法。
控制系统计算机辅助设计-MATLAB语言与应用
18
2018/10/16
matlab 控制系统仿真

摘要MATLAB语言是一种十分有效的工具,能容易地解决在系统仿真及控制系统计算机辅助设计领域的教学与研究中遇到的问题,它可以将使用者从繁琐的底层编程中解放出来,把有限的宝贵时间更多地花在解决科学问题上。
MATLAB GUI 是MATLAB的人机交互界面。
由于GUI本身提供了windows基本控件的支持,并且具有良好的事件驱动机制,同时提供了MATLAB数学库的接口,所以GUI 对于控制系统仿真的平台设计显得十分合适。
GUI对于每个用户窗口生成.fig和.m 文件。
前者负责界面的设计信息,后者负责后台代码的设计。
本文所做的研究主要是基于MATLAB GUI平台,结合控制系统基础理论和MATLAB控制系统工具箱,实现了用于控制系统计算机辅助分析与设计的软件。
本软件主要功能:实现传递函数模型输入、状态方程模型输入、模型装换、控制系统稳定性分析、系统可观性可控性判断,绘制系统奈奎斯特图、波特图、根轨迹图以及零极点分布图。
在继续完善的基础上能够用于本科自动控制原理教程的教学实验和一般的科学研究。
关键词:控制系统;MATLAB GUI;计算机辅助设计AbstractMATLAB language is a very effective tool,and can be easily resolved in the system simulation and control system of teaching in the field of computer-aided design and research problems,it could be the bottom of the user from tedious programming liberate the limited spend more valuable time to solve scientific problems.The MATLAB GUI is the interactive interface.As the GUI itself provides the basic control windows support,and has a good mechanism for event-driven,while providing the MATLAB Math Library interface,the GUI for control system simulation platform for the design of it is suitable. GUI window generated for each user. Fig and.M file. The former is responsible for the design of the interface information,which is responsible for the design of the background code.Research done in this article is mainly based on MATLAB GUI platform,the basis of combination of control system theory and MATLAB Control System Toolbox,the realization of control systems for computer-aided analysis and design software. The main functions of the software: the realization of transfer function model input,the state equation model input,the model fitted for the control system stability analysis,system observability controllability judgments、rendering the system Nyquist diagram、Bode plots、root locus and Pole-zero distribution. While continuing to improve based on the principle of automatic control can be used for undergraduate teaching course experiments and scientific research in general.Key words:Control System;MATLAB GUI; Computer-assistant design目录第1章概述 (1)1.1 论文选题背景和意义 (1)1.2 计算机辅助分析与设计在控制系统仿真中的发展现状 (1)1.3 本文主要内容 (3)第2章控制系统与MATLAB语言 (4)2.1 控制系统理论基础 (4)2.2 MATLAB语言与控制系统工具箱 (5)第3章 MATLAB GUI简介及应用 (9)3.1 MATLAB GUI (9)3.2 软件设计步骤 (10)第4章仿真系统测试与演示 (16)4.1 控制系统的模型输入 (16)4.2 控制系统的稳定性分析 (19)4.3 控制系统可控可观性分析 (20)4.4 控制系统频率响应 (23)4.5 控制系统时域响应 (27)4.6 控制系统根轨迹绘制 (28)结论 (31)参考文献 (32)致谢 (33)第1章概述1.1 论文选题背景和意义自动控制原理是自动控制专业和自动化专业的主要课程之一,是研究自动控制技术的基础理论课,是必修的专业基础课程。
第2章 MATLAB语言_必备的基础知识

例如
2018/12/9
17
2.2.2 矩阵的逻辑运算
逻辑变量:
当前版本有逻辑变量 对 double 变量来说,非 0 表示逻辑 1
逻辑运算(相应元素间的运算)
与运算 或运算 非运算 异或运算
2018/12/9
18
2.2.3 矩阵的比较运算
各种允许的比较关系 >, >=, <, <=, ==,~=, find(), all(), any() 实例
65
【例2-22】求解
2018/12/9
66
2018/12/9
67
linprog( ) 、quadprod()
2018/12/9
68
最优曲线拟合方法
2018/12/9
69
【例2-23】用最小二乘拟合方法拟合函数的待定系数
2018/12/9
70
2018/12/9
71
多项式拟合函数
2018/12/9
【例2-6】 可以计算两个多项式的积 用 varargin 实现任意多个多项式的积
2018/12/9
39
2.5 二维图形绘制
2.5.1 二维图形绘制基本语句
构造向量:
2018/12/9
40
2018/12/9
41
2018/12/9
42
【例2-7】
2018/12/9
43
【例2-8】
2018/12/9
如
2018/12/9
54
【例】矩阵
和指数函数
的指数
2018/12/9
55
2、方程求解问题及MATLAB实现
控制系统的MATLAB仿真与设计(第2版)全套课件完整版电子教案最新板

1.1 MATLAB 简介
二、MATLAB 平台的组成
➢ Matlab语言 Matlab是一种高级编程语言,它提供了多种数据类型、丰富的运算符 和程序控制语句供用户适用。用户可以根据需求,按照Matlab语言 的约定,编程完成特定的工作。
➢ Matlab集成工作环境
Matlab集成工作环境包括程序编辑器、变量查看 器、系统仿真器和帮助系统等。用户在集成工作环 境中可以完成程序的编辑、运行和调试,输出和打 印程序的运行结果。
1.2 MATLAB的安装和使用
一、MATLAB 的安装
(1)将安装盘放入光驱中,找到setup.exe文件,双击它开始安装(或机 器自动执行安装文件)。
(2)安装过程中,用户按照向导的提示进行操作即可,其中比较重要的输 入和选项包括:
➢ 授权序列号 需要输入软件供应商提供的授权序列号才能继续完成安装工作。
➢ Notetbook工具 Notebook能够使用户在Word环境中使用 MATLAB的各种资源,为用户营造容文字处理、科 学计算、工程设计于一体的完美的工作环境。用 Notebook制作的M-Book文档不仅拥有Word的 全部字处理功能,而且具备MATLAB的数学运算能 力和计算结果可视化的能力。
例如:A=[1 2 3;4 5 6;7 8 9]一条语句实现了对3x3矩阵的输入。
2.数值算法稳定可靠,库函数十分丰富。
Matlab具有强大的数值计算能力,它提供的众多数学
计算的函数调用方便,稳定可靠。
例如:e=eig(A)
%求矩阵A的特征值
[L,U]=lu(A) %求矩阵A的LU分解,
polyder(b)
控制系统的MATLAB 仿真与设计(第2版)
第一章 MATLAB基础
《控制系统计算机辅助设计MATLAB语言与应用第2版》薛定宇_课后习题答案

【17】
(1)z=xy
>>[x,y]=meshgrid(-3:0.01:3,-3:0.01:3);
z=x.*y;
mesh(x,y,z);
>> contour3(x,y,z,50);
(1)z=sin(xy)
>> [x,y]=meshgrid(-3:0.01:3,-3:0.01:3);
【2】
相应的MATLAB命令:B=A(2:2:end,:)
>>A=magic(8)
A=
642361606757
955541213 515016
174746 202143 4224
4026273736 303133
323435 292838 3925
4123224445191848
491514 5253 11 10 56
【10】
function y=fib(k)
if nargin~=1,error('出错:输入变量个数过多,输入变量个数只允许为1!');endﻭif nargout>1,error('出错:输出变量个数过多!');end
if k<=0,error('出错:输入序列应为正整数!');endﻭifk==1|k==2,y=1;ﻭelsey=fib(k-1)+fib(k-2);endﻭend
858 5954 62 631
>>B=A(2:2:end,:)
B =
955 541213515016
40262737 36303133
41232244451918 48
858 5954 62631
控制系统的MATLAB仿真课件(99页)

x1 1 x2 0 x3 0 x4 0 c=
x1 x2 x3 x4 y1 6 12 6 10 d=
u1 y1 0 Continuous-time model.
19
第7章
控制系统的MATLAB仿真
由以上数据可写出系统的状态空间模型为:
?
?? 2 ? 3 ? 1 ? 1?
?1?
? ??X?(t)?
series()函数命令还可以将多个环节按两两串联的形式多 次递归调用加以连接,进行等效化简。
sys= series(sysl,sys2命) 令可以用命令 sys=sys1*sys2* …*sysn取代,不仅省掉“series(”)字符,且 可以实现多个环节的串联等效传递函数的求取。
23
第7章
控制系统的MATLAB仿真
形式之一。控制系统的环节串联及其化简就是模块方框图模 型的串联及其化简。可以用MATLAB 的函数命令series(将) 串 联模块进行等效变换。
使用series(函) 数命令不必做多项式的乘除运算即可实现 两个环节传递函数的串联连接。如果令sys1= tf(num1,den1) , sys2= tf(num2,den2) ,其命令格式为: sys= series(sysl,sys2)
zp2tf
将系统零极点增益模型转换为传递函数模型
15
第7章
控制系统的MATLAB仿真
【例7.2】 已知某系统的传递函数为: G (s)? 12s3 ? 24s2 ? 12s ? 20 2s4 ? 4s3 ? 6s2 ? 2s ? 2
试用MATLAB 语言求出该系统的传递函数模型、状态空 间模型和零极点增益模型。
22
第7章
控制系统的MATLAB仿真
第2章 MATLAB语言程序设计基础 基于MATLABSimulink的系统仿真技术与应用(第2版

命名为a和b版
MATLAB语言环境操作界面
➢ 命令窗口、当前目录窗口、命令历史记录窗口、 工作空间窗口;可以只使用命令窗口
MATLAB的联机帮助与电子版手册
➢ Help | MATLAB Help ➢ 全套PDF文件
➢ 函数调用语句
语句结构 一般对应于*.m函数 同一函数可以有不同的调用格式
Saturday, 2010-10- 9, 07:07:26
Slide <#> (of 42)2章:MATLAB语言程序设计基础 薛定宇、陈阳泉《基于MATLAB/Simulink的系统仿真技术与应用》清华大学出版社,2010
冒号表达式
举例 复数矩阵的输入
MATLAB语句
矩阵变换成符号型
Saturday, 2010-10- 9, 07:07:26
Slide <#> (of 42)2章:MATLAB语言程序设计基础 薛定宇、陈阳泉《基于MATLAB/Simulink的系统仿真技术与应用》清华大学出版社,2010
1.2.3 多维数组的定义
2.3.4 矩阵元素的数据变换
1.2.3 矩阵的MATLAB表示
复数矩阵为MATLAB的基本变量单元 矩阵输入
MATLAB输入语句
扩展矩阵
无需预先定义维数
Saturday, 2010-10- 9, 07:07:26
Slide <#> (of 42)2章:MATLAB语言程序设计基础 薛定宇、陈阳泉《基于MATLAB/Simulink的系统仿真技术与应用》清华大学出版社,2010
Saturday, 2010-10- 9, 07:07:26
控制系统计算机辅助设计_MATLAB语言与应用(第2版)薛定宇_课后复习题答案

第1章控制系统计算机辅助设计概述第2章 MATLAB语言程序设计基础第3章线性控制系统的数学模型第4章线性控制系统的计算机辅助分析第5章 Simulink在系统仿真中的应用第6章控制系统计算机辅助设计第1章控制系统计算机辅助设计概述【1】/已阅,略【2】已阅,略【3】已经掌握help命令和Help菜单的使用方法【4】区别:MATLAB语言实现矩阵的运算非常简单迅速,且效率很高,而用其他通用语言则不然,很多通用语言所实现的矩阵运算都是对矩阵维数具有一点限制的,即使限制稍小的,但凡维数过大,就会造成运算上的溢出出错或者运算出错,甚至无法处理数据的负面结果【5】【8】(1)输入激励为正弦信号(2)输入激励为脉冲模拟信号(3)输入激励为时钟信号(4) 输入激励为随机信号(5) 输入激励为阶跃信号δ=0.3δ=0.05δ=0.7结论:随着非线性环节的死区增大,阶跃响应曲线的围逐渐被压缩,可以想象当死区δ足够大时,将不再会有任何响应产生。
所以可以得到结论,在该非线性系统中,死区的大小可以改变阶跃响应的幅值和超调量。
死区越大,幅值、超调量将越小,而调整时间几乎不受其影响第2章 MATLAB语言程序设计基础【1】>> A=[1 2 3 4;4 3 2 1;2 3 4 1;3 2 4 1]A =1 2 3 44 3 2 12 3 4 13 24 1>>B=[1+4i,2+3i,3+2i,4+i;4+i,3+2i,2+3i,1+4i;2+3i,3+2i,4+i,1+4i;3+2i,2+3i,4+i,1+4i]B =1.0000 + 4.0000i2.0000 +3.0000i 3.0000 + 2.0000i4.0000 + 1.0000i4.0000 + 1.0000i 3.0000 + 2.0000i 2.0000 + 3.0000i 1.0000 + 4.0000i2.0000 +3.0000i 3.0000 + 2.0000i4.0000 + 1.0000i 1.0000 + 4.0000i3.0000 + 2.0000i 2.0000 + 3.0000i4.0000 + 1.0000i 1.0000 + 4.0000i >> A(5,6)=5A =1 2 3 4 0 04 3 2 1 0 02 3 4 1 0 03 24 1 0 00 0 0 0 0 5∴若给出命令A(5,6)=5则矩阵A的第5行6列将会赋值为5,且其余空出部分均补上0作为新的矩阵A,此时其阶数为5×6【2】相应的MATLAB命令:B=A(2:2:end,:)>> A=magic(8)A =64 2 3 61 60 6 7 579 55 54 12 13 51 50 1617 47 46 20 21 43 42 2440 26 27 37 36 30 31 3332 34 35 29 28 38 39 2541 23 22 44 45 19 18 4849 15 14 52 53 11 10 568 58 59 5 4 62 63 1>> B=A(2:2:end,:)B =9 55 54 12 13 51 50 1640 26 27 37 36 30 31 3341 23 22 44 45 19 18 488 58 59 5 4 62 63 1∴从上面的运行结果可以看出,该命令的结果是正确的【3】>> syms x s; f=x^5+3*x^4+4*x^3+2*x^2+3*x+6f =x^5 + 3*x^4 + 4*x^3 + 2*x^2 + 3*x + 6>> [f1,m]=simple(subs(f,x,(s-1)/(s+1)))f1 =19 - (72*s^4 + 120*s^3 + 136*s^2 + 72*s + 16)/(s + 1)^5m =simplify(100)【4】>> i=0:63; s=sum(2.^sym(i))s =615【5】>> for i=1:120if(i==1|i==2) a(i)=1;else a(i)=a(i-1)+a(i-2);endif(i==120) a=sym(a); disp(a); endend[ 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887, 9227465, 14930352, 24157817, 39088169, 63245986, 102334155, 165580141, 267914296, 433494437, 701408733, 1134903170, 1836311903, 2971215073, 4807526976, 7778742049, , , , , , 5, 7, 2, 9, 1, 20, 61, 81, 42, 723, 565, 288, 853, 141, 0994, 9135, 0129, 9264, 9393, 28657, 78050, 06707, 84757, 91464, , , , , , 8, 5, 3, 8, 31, 89, 20, 09, 29, 738, 167, 905, 072, 977, 6049, 9026, 5075, 4101, 9176, 83277, 82453, 65730, 48183, 413913, 662096, 076009, 738105, 814114, 0552219, 6366333, 6918552, 3284885, 0203437, 93488322, 23691759, 17180081, 40871840]【6】>>k=1;for i=2:1000for j=2:iif rem(i,j)==0if j<i, break;endif j==i, A(k)=i; k=k+1; break; endendendenddisp(A);Columns 1 through 132 3 5 7 11 13 17 19 23 29 31 37 41 Columns 14 through 2643 47 53 59 61 67 71 73 79 83 89 97 101 Columns 27 through 39103 107 109 113 127 131 137 139 149 151 157 163 167 Columns 40 through 52173 179 181 191 193 197 199 211 223 227 229 233 239 Columns 53 through 65241 251 257 263 269 271 277 281 283 293 307 311 313 Columns 66 through 78317 331 337 347 349 353 359 367 373 379 383 389 397 Columns 79 through 91401 409 419 421 431 433 439 443 449 457 461 463 467 Columns 92 through 104479 487 491 499 503 509 521 523 541 547 557 563 569 Columns 105 through 117571 577 587 593 599 601 607 613 617 619 631 641 643 Columns 118 through 130647 653 659 661 673 677 683 691 701 709 719 727 733 Columns 131 through 143739 743 751 757 761 769 773 787 797 809 811 821 823 Columns 144 through 156827 829 839 853 857 859 863 877 881 883 887 907 911 Columns 157 through 168919 929 937 941 947 953 967 971 977 983 991 997【7】说明:h和D在MATLAB中均应赋值,否则将无法实现相应的分段函数功能syms x; h=input(‘h=’); D=input(‘D=’);y=h.*(x>D)+(h.*x/D).*(abs(x)<=D)-h.*(x<-D)【10】function y=fib(k)if nargin~=1,error('出错:输入变量个数过多,输入变量个数只允许为1!');endif nargout>1,error('出错:输出变量个数过多!');endif k<=0,error('出错:输入序列应为正整数!');endif k==1|k==2,y=1;else y=fib(k-1)+fib(k-2);endend【13】-1-0.500.51-1-0.8-0.6-0.4-0.200.20.40.60.81【14】>> t=[-1:0.001:-0.2,-0.1999:0.0001:0.1999,0.2:0.001:1]; y=sin(1./t); plot(t,y);grid on;-1-0.8-0.6-0.4-0.20.20.40.60.81-1-0.8-0.6-0.4-0.200.20.40.60.81【15】(1) >> t=-2*pi:0.01:2*pi; r=1.0013*t.^2;polar(t,r);axis('square')90270180(2) >> t=-2*pi:0.001:2*pi; r=cos(7*t/2);polar(t,r);axis('square')2700902701800(3) >> t=-2*pi:0.001:2*pi;r=sin(t)./t;polar(t,r);axis('square')90180【17】(1)z=xy>> [x,y]=meshgrid(-3:0.01:3,-3:0.01:3);z=x.*y;mesh(x,y,z);>> contour3(x,y,z,50);-2-112-22-10-5510(1)z =sin(xy )>> [x,y]=meshgrid(-3:0.01:3,-3:0.01:3); z=sin(x.*y);mesh(x,y,z);>> contour3(x,y,z,50);-2-112-22第3章 线性控制系统的数学模型【1】(1) >> s=tf('s');G=(s^2+5*s+6)/(((s+1)^2+1)*(s+2)*(s+4)) Transfer function:s^2 + 5 s + 6--------------------------------s^4 + 8 s^3 + 22 s^2 + 28 s + 16(2) >> z=tf('z',0.1);H=5*(z-0.2)^2/(z*(z-0.4)*(z-1)*(z-0.9)+0.6) Transfer function:5 z^2 - 2 z + 0.2---------------------------------------z^4 - 2.3 z^3 + 1.66 z^2 - 0.36 z + 0.6 Sampling time (seconds): 0.1【2】(1)该方程的数学模型>> num=[6 4 2 2];den=[1 10 32 32];G=tf(num,den)Transfer function:6 s^3 + 4 s^2 + 2 s + 2------------------------s^3 + 10 s^2 + 32 s + 32(2)该模型的零极点模型>> G=zpk(G)Zero/pole/gain:6 (s+0.7839) (s^2 - 0.1172s + 0.4252)-------------------------------------(s+4)^2 (s+2)(3)由微分方程模型可以直接写出系统的传递函数模型【5】(1) >> P=[0;0;-5;-6;-i;i];Z=[-1+i;-1-i];G=zpk(Z,P,8)Zero/pole/gain:8 (s^2 + 2s + 2)-------------------------s^2 (s+5) (s+6) (s^2 + 1)(2) P=[0;0;0;0;0;8.2];Z=[-3.2;-2.6];H=zpk(Z,P,1,'Ts',0.05,'Variable','q')Zero/pole/gain:(q+3.2) (q+2.6)---------------q^5 (q-8.2)Sampling time (seconds): 0.05【8】(1)闭环系统的传递函数模型>> s=tf('s');G=10/(s+1)^3;Gpid=0.48*(1+1/(1.814*s)+0.4353*s/(1+0.4353*s));G1=feedback(Gpid*G,1)Transfer function:7.58 s^2 + 10.8 s + 4.8-------------------------------------------------------------- 0.7896 s^5 + 4.183 s^4 + 7.811 s^3 + 13.81 s^2 + 12.61 s + 4.8(2)状态方程的标准型实现>> G1=ss(G1)a =x1 x2 x3 x4 x5x1 -5.297 -2.473 -2.186 -0.9981 -0.7598x2 4 0 0 0 0x3 0 2 0 0 0x4 0 0 2 0 0x5 0 0 0 0.5 0b =u1x1 2x2 0x3 0x4 0x5 0c =x1 x2 x3 x4 x5y1 0 0 0.6 0.4273 0.3799d =u1y1 0Continuous-time state-space model.(3)零极点模型>> G1=zpk(G1)Zero/pole/gain:9.6 (s^2 + 1.424s + 0.6332)--------------------------------------------------------(s+3.591) (s^2 + 1.398s + 0.6254) (s^2 + 0.309s + 2.707)【11】>> Ga=feedback(s/(s^2+2)*1/(s+1),(4*s+2)/(s+1)^2);Gb=feedback(1/s^2,50);G=3*feedback(Gb*Ga,(s^2+2)/(s^3+14))Transfer function:3 s^6 + 6 s^5 + 3 s^4 + 42 s^3 + 84 s^2 + 42 s---------------------------------------------------------------------------s^10 + 3 s^9 + 55 s^8 + 175 s^7 + 300 s^6 + 1323 s^5 + 2656 s^4 + 3715 s^3+ 7732 s^2 + 5602 s + 1400【13】c1=feedback(G5*G4,H3)=G5*G4/(1+G5*G4*H3)c2=feedback(G3,H4*G4)=G3/(1+G3*H4*G4)c3=feedback(c2*G2,H2)=c2*G2/(1+c2*G2*H2)=G3*G2/(1+G3*H4*G4+G3*G2*H1)G=feedback(G6*c1*c3*G1,H1)=G6*c1*c3*G1/(1+ G6*c1*c3*G1*H1)=G6*G5*G4*G3*G2*G1/(1+G3*H4*G4+G3*G2*H1+G5*G4*H3+G5*G4*H3*G3*H4*G4+G5*G4*H3*G3* G2*H1+G6*G5*G4*G3*G2*G1*H1)【14】>> s=tf('s');c1=feedback(0.21/(1+0.15*s),0.212*130/s);c2=feedback(c1*70/(1+0.0067*s)*(1+0.15*s)/(0.051*s),0.1/(1+0.01*s));G=(1/(1+0.01*s))*feedback(130/s*c2*1/(1+0.01*s)*(1+0.17*s)/(0.085*s),0.0044/(1+ 0.01*s))Transfer function:0.004873 s^5 + 1.036 s^4 + 61.15 s^3 + 649.7 s^2 + 1911 s--------------------------------------------------------------------------- 4.357e-014 s^10 + 2.422e-011 s^9 + 5.376e-009 s^8 + 6.188e-007 s^7+ 4.008e-005 s^6 + 0.001496 s^5 + 0.03256 s^4 + 0.4191 s^3+ 2.859 s^2 + 8.408 s 第4章线性控制系统的计算机辅助分析【1】(1) >> num=[1];den=[3 2 1 2];G=tf(num,den);eig(G)ans =-1.00000.1667 + 0.7993i0.1667 - 0.7993i分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的(2) >> num=[1];den=[6 3 2 1 1];G=tf(num,den);eig(G)ans =-0.4949 + 0.4356i-0.4949 - 0.4356i0.2449 + 0.5688i0.2449 - 0.5688i分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的(3) >> num=[1];den=[1 1 -3 -1 2];G=tf(num,den);eig(G)ans =-2.0000-1.00001.00001.0000分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的(4) >> num=[3 1];den=[300 600 50 3 1];G=tf(num,den);eig(G)ans =-1.9152-0.14140.0283 + 0.1073i0.0283 - 0.1073i分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的(5) >> s=tf('s');G=0.2*(s+2)/(s*(s+0.5)*(s+0.8)*(s+3)+0.2*(s+2));eig(G)ans =-3.0121-1.0000-0.1440 + 0.3348i-0.1440 - 0.3348i分析:由以上信息可知,系统的所有极点都在s域的左半平面,因此系统是稳定的【2】(1) >> num=[-3 2];den=[1 -0.2 -0.25 0.05];H=tf(num,den,'Ts',0.5);abs(eig(H)')ans =0.5000 0.5000 0.2000分析:由以上信息可知,所有特征根的模均小于1,因此该系统是稳定的(2) >> num=[3 -0.39 -0.09];den=[1 -1.7 1.04 0.268 0.024];H=tf(num,den,'Ts',0.5);abs(eig(H)')ans =1.1939 1.1939 0.1298 0.1298分析:由以上信息可知,由于前两个特征根的模均大于1,因此该系统是不稳定的(3) >> num=[1 3 -0.13];den=[1 1.352 0.4481 0.0153 -0.01109 -0.001043];H=tf(num,den,'Ts',0.5);abs(eig(H)')ans =0.8743 0.1520 0.2723 0.2344 0.1230分析:由以上信息可知,所有特征根的模均小于1,因此该系统是稳定的(4) >> num=[2.12 11.76 15.91];den=[1 -7.368 -20.15 102.4 80.39 -340];H=tf(num,den,'Ts',0.5,'Variable','q');abs((eig(H))')ans =8.2349 3.2115 2.3415 2.3432 2.3432分析:由以上信息可知,所有特征根的模均大于1,因此该系统是不稳定的【3】(1) >>-4-3.5-3-2.5-2-1.5-1-0.50x 10-6P ole-Zero Map Real Axis (seconds -1)I m a g i n a r y A x i s (s e c o n d s -1)A=[-0.2,0.5,0,0,0;0,-0.5,1.6,0,0;0,0,-14.3,85.8,0;0,0,0,-33.3,100;0,0,0,0,-10]; eig(A) ans =-0.2000 -0.5000 -14.3000 -33.3000 -10.0000分析:由以上信息可知,该连续线性系统的A 矩阵的所有特征根的实部均为负数,因此该系统是稳定的(2)>>F=[17,24.54,1,8,15;23.54,5,7,14,16;4,6,13.75,20,22.5589;10.8689,1.2900,19.099,…21.896,3;11,18.0898,25,2.356,9];abs(eig(F)') ans =63.7207 23.5393 12.4366 13.3231 19.7275分析:由以上信息可知,该离散系统的F 矩阵的所有特征根的模均大于1,因此该系统是不稳定的【4】>> A=[-3 1 2 1;0 -4 -2 -1;1 2 -1 1;-1 -1 1 -2]; B=[1 0;0 2;0 3;1 1];C=[1 2 2 -1;2 1 -1 2];D=[0 0;0 0];G=ss(A,B,C,D); tzero(G)pzmap(G)ans =-3.6124-1.2765结论:∴可以得到该系统的 零点为-3.6124、-1.2765分析:由以上信息可知,系统的特征根的实部均位于s 域的左半平面,因此该系统是稳定的>> s=tf('s');G=0.2*(s+2)/(s*(s+0.5)*(s+0.8)*(s+3)+0.2*(s+2)); Gc=sscanform(G,'ctrl')Go=sscanform(G,'obsv')a =x1 x2 x3 x4x1 0 1 0 0x2 0 0 1 0x3 0 0 0 1x4 -0.4 -1.4 -4.3 -4.3b =u1x1 0x2 0x3 0x4 1c =x1 x2 x3 x4y1 0.4 0.2 0 0d =u1y1 0Continuous-time state-space model.a =x1 x2 x3 x4x1 0 0 0 -0.4x2 1 0 0 -1.4x3 0 1 0 -4.3x4 0 0 1 -4.3b =u1x1 0.4x2 0.2x3 0x4 0c =x1 x2 x3 x4y1 0 0 0 1d =u1y1 0Continuous-time state-space model.(1)>> num=[18 514 5982 36380 122664 222088 185760 40320];den=[1 36 546 4536 22449 67284 118124 109584 40320];[R1,P1,K1]=residue(num,[den 0]);[R1,P1]ans =-1.2032 -8.0000-1.0472 -7.00000.2000 -6.00000.7361 -5.0000-2.8889 -4.00002.2250 -3.0000-2.0222 -2.00003.0004 -1.00001.0000 0>> [n,d]=rat(R1);sym([n./d]')ans =[ -379/315, -377/360, 1/5, 53/72, -26/9, 89/40, -91/45, 7561/2520, 1][阶跃响应的解析解]y(t)=(-379/315)*e-8t+(-377/360)*e-7t+(1/5)*e-6t+(53/72)*e-5t+(-26/9)*e-4t+(89/40)*e-3t +(-90/45)*e-2t+(7561/2520)*e-t+1(2) >> num=[18 514 5982 36380 122664 222088 185760 40320];den=[1 36 546 4536 22449 67284 118124 109584 40320];[R2,P2,K2]=residue(num,den);[R2,P2]ans =9.6254 -8.00007.3306 -7.0000-1.2000 -6.0000-3.6806 -5.000011.5556 -4.0000-6.6750 -3.00004.0444 -2.0000-3.0004 -1.0000>> [n,d]=rat(R2);sym([n./d]')ans =[ 3032/315, 887/121, -6/5, -265/72, 104/9, -267/40, 182/45, -7561/2520][脉冲响应的解析解]y(t)=(3032/315)*e-8t+(887/121)*e-7t+(-6/5)*e-6t+(-265/72)*e-5t+(104/9)*e-4t+(-267/40) *e-3t+Linear Simulation ResultsA m p l i t u d e(182/45)*e -2t +(-7561/2520)*e -t(3) >> syms t;u=sin(3*t+5); Us=laplace(u) Us =(3*cos(5) + s*sin(5))/(s^2 + 9) >> s=tf('s');Us=(3*cos(5)+s*sin(5))/(s^2+9);num=[18 514 5982 36380 122664 222088 185760 40320]; den=[1 36 546 4536 22449 67284 118124 109584 40320]; G=tf(num,den); Y=Us*G; num=Y.num{1}; den=Y.den{1};[R3,P3,K3]=residue(num,den); [R3,P3] ans =1.1237 -8.0000 0.9559 -7.0000 -0.1761 -6.0000 -0.6111 -5.00002.1663 -4.0000 -1.1973 - 0.0010i 0.0000 +3.0000i -1.1973 + 0.0010i 0.0000 - 3.0000i -1.3824 -3.0000 0.8614 -2.0000 -0.5430 -1.0000 >> [n,d]=rat(R3); sym([n./d]') ans =[109/97, 282/295, -59/335, -965/1579, 951/439, - 449/375 + (18*i)/17981, - 449/375 - (18*i)/17981, -1663/1203, 317/368, -82/151] [正弦信号时域响应的解析解]y(t)=(109/97)*e -8t+(282/295)*e -7t+(-59/335)*e -6t+(-965/1579)*e -5t+(-449/375)*e -4t+(-1663/1203)*e -3t +(317/368)*e -2t +(-82/151)*e -t-2.3947sin(3t) [输出波形]>> num=[18 514 5982 36380 122664 222088 185760 40320]; den=[1 36 546 4536 22449 67284 118124 109584 40320];G=tf(num,den); t=[1:.1:20]';u=sin(3*t+5); lsim(G,u,t);分析:由解析解可知,输出信号的稳态 部分是振荡的,并且其幅值与相位始终 在到达稳态的时候保持不变,因此 右图所示的输出波形与解析解所得的结论是一致的【10】(1)因为PI 或PID 控制器均含有Ki/s 项,这是一个对误差信号的积分环节,假设去掉这一环节,则当Kp →∞,即|e(t)|很小也会存在较大扰动,这会影响到系统的动态特性;当加入这一环节后,如果要求|e(t)|→0,则控制器输出u(t)会由Ki/s 环节得到一个常值,此时系统可以获得较好的动态特性,因此这两个控制器可以消除闭环系统的阶跃响应的稳态误差(2)不稳定系统能用PI 或PID 控制器消除稳态误差。
计算机仿真技术薛定宇教材

[U,S,V]=svd(A) 例:a =
98
68
[u,s,v]=svd(a)
u=
0.7705 -0.6375
0.6375 0.7705
s=
15.5765 0
0
1.5408
2020/12/7
求矩阵A的奇异值及 分解矩阵,满足 U*S*V’=A,其中U、 V矩阵为正交矩阵 (U*U’=I),S矩阵 为对角矩阵,它的对 角元素即A矩阵的奇 异值。
>>a=[1 2 3;4 5 6]'
>>b=[1+2i 2-7i].'
a=
b=
14
1.0000 + 2.0000i
25
2.0000 - 7.0000i
36
>>b=[1+2i 2-7i]'
b = 1.0000 - 2.0000i
2020/12/7
2.0000 + 7.0000i23
2、四则运算与幂运算
单元数组:矩阵的每个元素不是数值,而是 可以存储任意类型的信息
类与对象:自行编写包含各种复杂详细信息 的变量,即类变量,变量可包含各种下级的 信息,也可重新定义运算
符号变量:区别与常规数值变量,便于公式 推导和解析求解
2020/12/7
7
补充:数值型数据的显示格式
任何MATLAB的语句的执行结果都可以 在屏幕上显示,同时赋值给指定的变量,没 有指定变量时,赋值给一个特殊的变量ans, 数据的显示格式由format命令控制。
2020/12/7
30
消除子块:如果将矩阵的子块赋值为空矩阵[ ], 则相当于消除了相应的矩阵子块。
2、矩阵的大小
控制系统CAD 第2章 MATLAB语言基础

MATLAB 语言简介MA TLAB 语言——当今国际上科学界(尤其自动控制领域) 最具影响力、最有活力的软件。
它起源于矩阵运算,已经发展成一种高度集成的交互式计算机语言。
它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。
由于其特色,它在各国高校与研究单位的控制系统仿真中起着重大的作用。
MATLAB 语言由美国Math Works公司开发,其最新版为MA TLAB 7.11 (2010.9.3)MA TLAB 语言起源MA TLAB 语言首创者Cleve Moler 在数值分析,特别是在数值线性代数的领域中很有影响。
他曾在密西根大学、斯坦福大学和新墨西哥大学任数学与计算机科学教授。
1980年Moler 在讲授线性代数课程时,发现了用其他高级语言编程极为不便,便构思并开发了MA TLAB, 这一软件利用了当时数值线性代数领域最高水平的EISPACK 和LINPACK两大软件包中可靠的子程序,用Fortran语言编写了集命令翻译、科学计算于一身的一套交互式软件系统。
交互式语言⏹交互式语言:指人们给出一条命令,立即就可以得出该命令的结果。
⏹该语言无需像C语言那样,首先要求使用者去编写源程序,然后对之进行编译、连接,最终形成可执行文件。
这无疑会给使用者带来了极大的方便。
⏹早期的MA TLAB是用Fortran语言编写的,只能作矩阵运算和简单绘图;内部函数也只提供了几十个。
Moler等人成立了MathWorks的公司。
84 年推出了MA TLAB 的商业版本。
当时的MA TLAB 版本已经用C 语言作了完全的改写,其后又增添了丰富多彩的图形图像处理、多媒体功能、符号运算和它与其他流行软件的接口功能,使MA TLAB 的功能越来越强大。
MA TLAB 功能和发展⏹92 年推出了4.0 版本, 可以配合Windows 使用。
⏹94 年推出的4.2 版本扩充了功能,尤其在图形界面设计方面更提供了新的方法。
第 2章 matlab语言程序设计基础

2013-10-21 高等应用数学问题的 MATLAB 求解 liyw0816@
25
矩阵的代数运算
矩阵表示
矩阵转置
数学表示
MATLAB 求解
高等应用数学问题的 MATLAB 求解 liyw0816@
26
2013-10-21
矩阵加减法
注意其一为标量的情形 数学表示
2013-10-21
从 format long 和 format long e 中自动 选择最佳记述方式 近似有理数表示
高等应用数学问题的 MATLAB 求解 liyw0816@
3.14159265358979 355/113
15
format hex
format + format bank
format long format long e
format short e 5位科学记数形式表示
3.1416e+00
3.14159265358979e+00
format short g 从 format short 和 format short e 中自动 3.1416 选择最佳记述方式 format long g format rat
含义 计算结果的缺省变量 名 机器零阀值 无穷大,如1/0 虚单元i=j= √ -1 预定义 变量 含义
预定义变 量 ans eps Inf或inf i或j
NaN或 不是一个数(Not a Number), nan 如0/0,∞/∞ nargin 函数输入宗量数目 nargout 函数输入宗量数目 realmax 最大正实数
myvar201
变量名中不得包含空格、标点,但可包含下连 符。
《控制系统仿真与CAD》课程教学大纲

《控制系统仿真与CAD》课程教学大纲一、课程基本信息二、理论教学内容及基本要求1 控制系统仿真与计算机辅助设计概述(1.5学时)1.1 为什么采用MATLAB语言?1.2 课程的主要结构1.3 控制系统计算机辅助设计方法概述2 MATLAB 必备基础知识(2.5学时)2.1 MATLAB 语言程序设计基础了解MATLAB 数据结构并掌握基本语句结构,包括直接赋值语句和函数调用语句。
了解并掌握循环语句结构、条件语句结构、开关语句结构以及与众不同的试探语句。
2.2 MATLAB 语言图形绘制方法掌握二维图形和三维图形绘制命令与函数与各种图形的绘制方法,可以将实验结果和仿真结果用可视的形式显示出来。
2.3 图形用户界面设计技术3 科学运算问题的MATLAB求解(4学时)掌握MATLAB 语言在线性代数问题、微分方程问题及最优化问题中的应用,系统地了解数学运算问题的MATLAB 求解方法。
4 线性控制系统的数学模型(7学时)4.1 线性连续系统的数学模型输入了解基本的数学模型,并掌握这些模型在MATLAB 环境下的表示方法及多变量系统的表示方法。
4.2 线性离散系统的数学模型输入了解基本的数学模型,并掌握这些模型在MATLAB 环境下的表示方法。
4.3 系统模型的相互转换掌握基于MATLAB 的系统模型转换方法,如连续与离散系统之间的相互转换和状态方程转换成传递函数模型的方法,以及转换成状态方程模型的各种实现方法。
4.4 方框图模型的化简了解三类典型的连接结构:串联、并联和反馈连接,并掌握模块输入、输出从一个节点移动到另一个节点所必需的等效变换及复杂系统的等效变换和化简。
4.5 线性系统的模型降阶了解线性系统的模型降阶的原理与实现。
4.6 线性系统的模型辨识了解线性系统的模型辨识的原理与实现。
5 线性控制系统的计算机辅助分析(5学时)5.1 线性系统定性分析了解系统稳定性的判定方法和系统的可控性和可观测性等系统性质的分析,并掌握其他的各种标准型实现。
控制系统CAD——基于MATLAB语言第2章 MATLAB的基础知识

-0.1667 0 0
(3)矩阵特征值运算
矩阵条件数cond( ) 矩阵的秩rank() 矩阵特征值eig ( )
矩阵范数norm( ) 矩阵的迹trace ( ) 矩阵奇异值svd ( )
例2-7 分别计算矩阵a的有关特征参数。输入以下 MATLAB语句
a=[1 2 3;4 5 6;7 8 0] [cond(a),norm(a),rank(a)]
在MATLAB中,冒号“:”是很有用的算子,经常 用它来生成向量。语句
>>a=i:k:j;
它生成一个从i到j步长为k的行向量a。如果增量 为负值,可以得一个递减顺序的向量,增量为l 时可以忽略。 (3)数据的输入输出格式 MATLAB用通常的十进制数表示常数、小数和负数。 与通常的数学表示一样,还可以使用以10为幂的常 数以及虚数,MATLAB接受各种合法的数据输入。
注意 矩阵的四则运算必须复合矩阵的维数要 求,否则会给出矩阵维数错误提示。
例2-3 矩阵加法与乘法。输入以下MATLAB语句
a=[1 2 1;2 2 1;3 1 2]; b=[3 3 1;3 2 1;1 4 3]; c=a+b d=a*b
运行程序,得到结果:
c= 4 5 4 d= 10 13 14 5 4 5 11 14 19 2 2 5 6 7 10
(4)常用操作命令
clc clear 清除命令窗口的内容,对工作环境中的全部变量无任何影响 清除工作空间的所有变量
clear all
save load close close all what which
清除工作空间的所有变量、函数和MEX文件
将工作空间里的变量保存到磁盘文件 将磁盘文件里的变量加载到工作空间 关闭当前的Figure窗口 关闭所有的Figure窗口 列出当前目录下所有的M文件 显示出某个 MATLAB函数的路径
《控制系统CAD与仿真-MATLAB语言及应用》,MATLAB程序设计教程

控制系统 CAD 就是根据给定的系统性能指标要求,借助计算机对系统的控制器进行 设计。显然,控制系统的计算机仿真是控制系统的计算机辅助设计的一个部分。这一过程 包括:建立数学模型;根据性能指标和控制算法编程求解控制器参数;对系统校正前后进 行仿真,并验证控制器的实际控制效果;修改控制器参数或结构,直到仿真结果满足设计 要求。
控制系统 CAD 技术是对复杂控制系统进行分析和设计的重要方法和手段。在进行控 制系统的分析与综合的过程中,除了要进行理论分析外,还要对系统的特性进行实验研究, 研究系统的固有的动态特性,验算设计的控制器能否达到预期的性能指标,这个过程是设 计-实验-修改设计-再实验的过程。对于那些在实际运行过程中风险很大或者实验费用 昂贵的系统,一般不允许对设计好的系统进行直接实验或者反复实验,而没有经过实验验 证的系统是无法投入使用的,这样只有借助于计算机才能对系统进行仿真实验研究。所谓 控制系统的计算机仿真就是以控制系统的数学模型为基础,借助计算机对控制系统的动态 特性进行实验研究。
变量查看器
图 1-2 程序编辑/调试器窗口
4
在 MATLAB 中,工作空间(Workspace )是一个重要的感念。工作空间指运行 MATLAB
的程序或命令所生成的所有变量和 MATLAB 提供的常量构成的空间,是一个比较抽象的
概念。启动 MATLAB 后,会自动建立一个工作空间,工作空间在 MATLAB 运行期间一直
3
数,同时历史命令窗口记录了曾经执行过的命令,并可以重新执行或者转存为 M 文件。在 工作空间窗口可以观测当前工作空间中的变量情况,从操作台窗口可以寻求相关的帮助信 息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
控制系统仿真与CAD 国家级精品课程
2014-12-31
24/70 24
2.4.4 匿名函数与inline函数
不用编写*.m,定义函数的方法
可以动态地定义函数,在科学运算中有用 二者功能重复,后者远差于前者,不再使用
匿名函数: 举例
控制系统仿真与CAD 国家级精品课程
2014-12-31
控制系统仿真与CAD 国家级精品课程
2014-12-31
3/70 3
2.1.1 常量与变量
常量(保留字符串)
eps: 机器的浮点运算误差限,默认值 i和j:虚数单位,-1的平方根,i=sqrt(-1) Inf: 无穷大量,-Inf为负无穷大 NaN:不定式(Not a Number) pi:圆周率p的双精度浮点表示
25/70 25
2.5 二维图形绘制
可以绘制出各种二维曲线 可以由数据绘图,也可以由格式绘图 本节主要内容
基本二维图形绘制语句 带有其他选项的绘图函数 二维曲线的标注方法 在MATLAB图形上添加文字标注 特殊图形绘制函数及举例 隐函数的曲线绘制
控制系统仿真与CAD 国家级精品课程
符号型数据结构
syms 命令申明符号变量
控制系统仿真与CAD 国家级精品课程
2014-12-31
5/70 5
vpa(A) 显示符号变量
例2-1 显示e的前300位 其他数据结构
int8() 、int16() 、int32() 、uint16() 和 uint32() 字符串型数据:MATLAB字符串是用单引号括起来的 多维数组:三维数组是一般矩阵的直接拓展。 单元数组:多变量系统的频域响应数据存储 类与对象:传递函数对象、状态方程对象
控制系统仿真与CAD 国家级精品课程
2014-12-31
44/70 44
2.7.2 句柄图形学及句柄对象属性
图形用户界面编程主要是对各个对象属性 读取和修改的技术 窗口是一个对象,其上面的每个控件也都 是对象,每个对象都有自己的属性 双击对象则可以打开对象属性浏览器 还可以使用set和get函数设置、读取属性
2014-12-31
34/70 34
子窗口分割
子窗口分割 不同子窗口下绘制不同的曲线 例2-24
控制系统仿真与CAD 国家级精品课程
2014-12-31
35/70 35
2.5.5 隐函数的曲线绘制
隐函数绘制函数ezplot()
例2-25
用底层语言难以绘制
参数方程
控制系统仿真与CAD 国家级精品课程
控制系统仿真与CAD 国家级精品课程
2014-12-31
43/70 43
2.7.1 图形界面设计工具Guide
在命令窗口给出guide命令可以启动图形 用户界面设计程序,得出如下选项
建立一个默认的空白界面(Blank
GUI) 带有一些控件的界面(GUI with Uicontrols) 带有坐标轴和菜单的界面(GUI with Axes and Menu) 基本模态对话框(Modal Question Dialog 打开现有的GUI (Open Existing GUI)
11/70 11
2.2.4 ollect()、numden()、expand()、factor()
例2-5
变量替换
控制系统仿真与CAD 国家级精品课程
2014-12-31
12/70 12
例2-6 双线性变换
基本数论运算
取整:floor()、ceil()、round()、fix() 其他:rat()、rem()、gcd()、lcm()、factor()、isprime()
2014-12-31
19/70 19
2.4.1 函数的基本结构
函数结构
特别函数
变元个数:nargin、nargout 变元内容:varargin、varargout
控制系统仿真与CAD 国家级精品课程
2014-12-31
20/70 20
例2-16 脚本变函数
选择变元 函数改写:*.m文件
国家级精品课程
控制系统仿真与CAD
第二章 MATLAB 语言程序设计基础
东北大学信息学院 薛定宇
第二章 MATLAB 语言程序设计基础
MATLAB 语言程序设计基础
数据结构与语句结构 基本运算语句 程序流程 函数的编写与技巧
MATLAB语言绘图
二维与三维绘图
MATLAB语言的图形用户界面设计
例2-18 阶乘
例2-19 不适合递归调用的问题:Fibonacci数列
计算量巨大
控制系统仿真与CAD 国家级精品课程
2014-12-31
23/70 23
可变输入、输出个数
利用 varargin、varargout 例2-20
现有函数(多项式乘法):conv(p1,p2) 期望编任意多个多项式相乘:convs(p1,p2,…) 程序实现
控制系统仿真与CAD 国家级精品课程
2014-12-31
6/70 6
2.1.3 MATLAB的基本语句结构
两种赋值语句:
直接赋值语句:赋值变量=赋值表达式
语句结构 后面加分号不显示结果 无返回变量,结果传给 ans
函数调用语句
语句结构
[返回变量列表]=funname(输入变量列表)
plot() 函数的扩展
t 是向量,y 是矩阵,能同时绘制多条曲线
t, y 是同样维数的矩阵,能绘制多条曲线 多组 t, y 值
控制系统仿真与CAD 国家级精品课程
2014-12-31
28/70 28
绘图语句选项
双纵坐标曲线绘制
控制系统仿真与CAD 国家级精品课程
2014-12-31
29/70 29
控制系统仿真与CAD 国家级精品课程
2014-12-31
9/70 9
2.2 基本数学运算
基本代数运算
矩阵转置:A’、A.’ 加减乘除:A+B、A-B、A*B、A\B、B/A 矩阵翻转:flipud(A)、fliplr(A)、rot90(A) 矩阵乘方:A^x 点运算:A.*B、A.^2、A.^A Kronecker乘积:kron(A,B)
2014-12-31
38/70 38
2.6.2 三维曲面的绘制方法
三维网格徒手画表面图绘制函数
例2-27
控制系统仿真与CAD 国家级精品课程
2014-12-31
39/70 39
其他图形
例2-28 分段函数
控制系统仿真与CAD 国家级精品课程
2014-12-31
40/70 40
网格和曲面图其他绘制函数
一般对应于*.m函数 同一函数可以有不同的调用格式
控制系统仿真与CAD 国家级精品课程
2014-12-31
7/70 7
例2-2
无需预先定义维数
例2-3
控制系统仿真与CAD 国家级精品课程
2014-12-31
8/70 8
2.1.4 冒号表达式与子矩阵提取
基本语句 例2-4 子矩阵提取 例2-5
例2-17 编程实例:Hilbert矩阵
生成 矩阵 如果只给一个输入变元,生成方阵
控制系统仿真与CAD 国家级精品课程
2014-12-31
21/70 21
编程:核心部分 如何处理一个变元
完整程序
控制系统仿真与CAD 国家级精品课程
2014-12-31
22/70 22
递归调用编程结构
例2-8 取整
控制系统仿真与CAD 国家级精品课程
2014-12-31
13/70 13
例2-9 有理化
Hilbert矩阵
例2-10
最大公约数、最小公倍数、因式分解
控制系统仿真与CAD 国家级精品课程
2014-12-31
14/70 14
2.3 MATLAB编程:流程控制语句
循环结构
控制系统仿真与CAD 国家级精品课程
2014-12-31
10/70 10
点运算举例
矩阵的逻辑运算
逻辑运算: &、|、~、xor()
矩阵的比较运算
运算符:>、<、==、>=、<=、~= 函数:find()、any()、all()
控制系统仿真与CAD 国家级精品课程
2014-12-31
42/70 42
2.7 MATLAB图形用户界面设计技术
图形界面的优劣往往决定着软件的档次 MATLAB的图形用户界面(Graphical User Interface, GUI)设计技术对设计出良好的通用 软件十分重要 本节主要内容
图形界面设计工具Guide 句柄图形学及句柄对象属性 菜单系统设计 界面设计举例与技巧 工具栏设计
2014-12-31
36/70 36