《控制系统计算机辅助设计:MATLAB语言与应用(第2版)》薛定宇_课后习题答案

第1章控制系统计算机辅助设计概述第2章MATLAB语言程序设计基础

第3章线性控制系统的数学模型

第4章线性控制系统的计算机辅助分析第5章Simulink在系统仿真中的应用第6章控制系统计算机辅助设计

第1章控制系统计算机辅助设计概述

【1】

https://www.360docs.net/doc/f719063326.html,/

已阅,略

【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 4

4 3 2 1

2 3 4 1

3 2

4 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.0000i

2.0000 +

3.0000i 3.0000 + 2.0000i

4.0000 + 1.0000i

4.0000 + 1.0000i 3.0000 + 2.0000i 2.0000 + 3.0000i 1.0000 + 4.0000i

2.0000 +

3.0000i 3.0000 + 2.0000i

4.0000 + 1.0000i 1.0000 + 4.0000i

3.0000 + 2.0000i 2.0000 + 3.0000i

4.0000 + 1.0000i 1.0000 + 4.0000i

>> A(5,6)=5

A =

1 2 3 4 0 0

4 3 2 1 0 0

2 3 4 1 0 0

3 2

4 1 0 0

0 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 57

9 55 54 12 13 51 50 16

17 47 46 20 21 43 42 24

40 26 27 37 36 30 31 33

32 34 35 29 28 38 39 25

41 23 22 44 45 19 18 48

49 15 14 52 53 11 10 56

8 58 59 5 4 62 63 1

>> B=A(2:2:end,:)

B =

9 55 54 12 13 51 50 16

40 26 27 37 36 30 31 33

41 23 22 44 45 19 18 48

8 58 59 5 4 62 63 1

∴从上面的运行结果可以看出,该命令的结果是正确的

>> syms x s; f=x^5+3*x^4+4*x^3+2*x^2+3*x+6

f =

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)^5

m =

simplify(100)

【4】

>> i=0:63; s=sum(2.^sym(i))

s =

18446744073709551615

【5】

>> for i=1:120

if(i==1|i==2) a(i)=1;

else a(i)=a(i-1)+a(i-2);end

if(i==120) a=sym(a); disp(a); end

end

[ 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, 12586269025, 20365011074, 32951280099, 53316291173, 86267571272, 139583862445, 225851433717, 365435296162, 591286729879, 956722026041, 1548008755920, 2504730781961, 4052739537881, 6557470319842, 10610209857723, 17167680177565, 27777890035288, 44945570212853, 72723460248141, 117669030460994, 190392490709135, 308061521170129, 498454011879264, 806515533049393, 1304969544928657, 2111485077978050, 3416454622906707, 5527939700884757, 8944394323791464, 14472334024676221, 23416728348467685, 37889062373143906, 61305790721611591, 99194853094755497, 160500643816367088, 259695496911122585, 420196140727489673, 679891637638612258, 1100087778366101931, 1779979416004714189, 2880067194370816120, 4660046610375530309, 7540113804746346429, 12200160415121876738, 19740274219868223167, 31940434634990099905, 51680708854858323072, 83621143489848422977, 135301852344706746049, 218922995834555169026, 354224848179261915075, 573147844013817084101, 927372692193078999176, 1500520536206896083277, 2427893228399975082453, 3928413764606871165730, 6356306993006846248183, 10284720757613717413913, 16641027750620563662096, 26925748508234281076009, 43566776258854844738105, 70492524767089125814114, 114059301025943970552219, 184551825793033096366333, 298611126818977066918552, 483162952612010163284885, 781774079430987230203437, 1264937032042997393488322, 2046711111473984623691759, 3311648143516982017180081, 5358359254990966640871840]

>>

k=1;

for i=2:1000

for j=2:i

if rem(i,j)==0

if j

if j==i, A(k)=i; k=k+1; break; end

end

end

end

disp(A);

Columns 1 through 13

2 3 5 7 11 13 17 19 23 29 31 37 41 Columns 14 through 26

43 47 53 59 61 67 71 73 79 83 89 97 101 Columns 27 through 39

103 107 109 113 127 131 137 139 149 151 157 163 167 Columns 40 through 52

173 179 181 191 193 197 199 211 223 227 229 233 239 Columns 53 through 65

241 251 257 263 269 271 277 281 283 293 307 311 313 Columns 66 through 78

317 331 337 347 349 353 359 367 373 379 383 389 397 Columns 79 through 91

401 409 419 421 431 433 439 443 449 457 461 463 467 Columns 92 through 104

479 487 491 499 503 509 521 523 541 547 557 563 569 Columns 105 through 117

571 577 587 593 599 601 607 613 617 619 631 641 643 Columns 118 through 130

647 653 659 661 673 677 683 691 701 709 719 727 733 Columns 131 through 143

739 743 751 757 761 769 773 787 797 809 811 821 823 Columns 144 through 156

827 829 839 853 857 859 863 877 881 883 887 907 911 Columns 157 through 168

919 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)

-1

-0.5

00.51

-1

-0.8-0.6-0.4-0.200.20.40.60.8

1function y=fib(k)

if nargin~=1,error('出错:输入变量个数过多,输入变量个数只允许为1!');end if nargout>1,error('出错:输出变量个数过多!');end if k<=0,error('出错:输入序列应为正整数!');end if k==1|k==2,y=1;

else y=fib(k-1)+fib(k-2);end end 【13】

>> 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.2

0.2

0.4

0.6

0.8

1

-1-0.8-0.6-0.4-0.200.20.40.60.8

1

【15】

(1) >> t=-2*pi:0.01:2*pi; r=1.0013*t.^2;

polar(t,r);axis('square')

90

270

180

2700

(2) >> t=-2*pi:0.001:2*pi;

r=cos(7*t/2);

polar(t,r);axis('square')

90

270

1800

(3) >> t=-2*pi:0.001:2*pi;

r=sin(t)./t;

polar(t,r);axis('square')

90

180

(4) >>

【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);

-10

-5

5

10

(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.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)由微分方程模型可以直接写出系统的传递函数模型

(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.7598

x2 4 0 0 0 0 x3 0 2 0 0 0 x4 0 0 2 0 0 x5 0 0 0 0.5 0 b =

u1

x1 2

x2 0

x3 0

x4 0

x5 0

x1 x2 x3 x4 x5

y1 0 0 0.6 0.4273 0.3799

d =

u1

y1 0

Continuous-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)

>> 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.0000

0.1667 + 0.7993i

0.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.4356i

0.2449 + 0.5688i

0.2449 - 0.5688i

分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的

(3) >> num=[1];den=[1 1 -3 -1 2];

G=tf(num,den);

eig(G)

ans =

-2.0000

-1.0000

1.0000

1.0000

分析:由以上信息可知,系统的极点有2个是在s域的右半平面的,因此系统是不稳定的

(4) >> num=[3 1];den=[300 600 50 3 1];

G=tf(num,den);

eig(G)

ans =

-1.9152

-0.1414

0.0283 + 0.1073i

0.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,因此该系统是不稳定的

相关文档
最新文档