CAD.docx
- 文档编号:23259000
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:41
- 大小:413.23KB
CAD.docx
《CAD.docx》由会员分享,可在线阅读,更多相关《CAD.docx(41页珍藏版)》请在冰豆网上搜索。
CAD
第一部分:
MATLAB必备基础知识、控制系统模型与转换、线性控制系统的计算机辅助分析
1.
代码如下:
rossler.m文件
functiondx=rossler(t,x,flag,a,b,c)
dx=[-x
(2)-x(3);x
(1)+a*x
(2);b+(x
(1)-c)*x(3)];
>>a=0.2;b=0.2;c=5.7;
>>x0=[0;0;0];
>>[t,y]=ode45('rossler',[0,100],x0,[],a,b,c);
>>figure;plot3(y(:
1),y(:
2),y(:
3)),grid
>>view(0,90)
运行结果为:
三维相轨迹
xoy平面投影
2.
代码如下:
c2exmobj.m文件:
functiony=c2exmobj(x)
y=x
(1)^2-2*x
(1)+x
(2);
c2exmcon.m文件:
function[c,ce]=c2exmcon(x)
ce=[];
c=[4*x
(1)^2+x
(2)^2-4]
>>A=[];B=[];Aeq=[];Beq=[];xm=[0,0];x0=[0
0];ff=optimset;ff.TolX=1e-10;ff.TolFun=1e-20;
>>[x,fopt,key,c]=fmincon('c2exmobj',x0,A,B,Aeq,Beq,xm,xM,'c2exmcon',ff)
运行结果为:
x=
1.00000
fopt=
-1
key=
1
c=
iterations:
1
funcCount:
7
stepsize:
0.5000
algorithm:
'medium-scale:
SQP,Quasi-Newton,line-search'
firstorderopt:
5.0248e-009
cgiterations:
[]
message:
[1x144char]
3.
(a)代码如下:
>>s=tf('s');G=(s^3+4*s+2)/s^3/(s^2+2)/((s^2+1)^3+2*s+5)
运行结果为:
Transferfunction:
s^3+4s+2
------------------------------------------------------
s^11+5s^9+9s^7+2s^6+12s^5+4s^4+12s^3
(b)代码如下:
>>z=tf('z',0.1);H=(z^2+0.568)/(z-1)/(z^2-0.2*z+0.99)
运行结果为:
Transferfunction:
z^2+0.568
-----------------------------
z^3-1.2z^2+1.19z-0.99
Samplingtime:
0.1
4.
答:
选择状态变量:
x1=y;x2=y,;x3=y,,;
代码如下:
>>A=[010;001;-5-4-13];B=[0;0;2];C=[100];D=0;
>>G=ss(A,B,C,D)
运行结果:
a=
x1x2x3
x1010
x2001
x3-5-4-13
b=
u1
x10
x20
x32
c=
x1x2x3
y1100
d=
u1
y10
Continuous-timemodel.
传递函数模型
代码如下:
>>GG=tf(G)
运行结果:
Transferfunction:
2
----------------------
s^3+13s^2+4s+5
零极点模型:
代码:
>>zpk(GG)
结果:
Zero/pole/gain:
2
-----------------------------------
(s+12.72)(s^2+0.2836s+0.3932)
5.
假设系统的采样周期为T=0.1秒
代码如下:
>>num=[1,2];den=[110.16];H=tf(num,den,'Ts',0.1)
运行结果:
Transferfunction:
z+2
--------------
z^2+z+0.16
Samplingtime:
0.1
6.
feedback.m函数
functionH=feedback(G1,G2,key)
ifnargin==2;key=-1;end,H=G1/(sym
(1)-key*G1*G2);H=simple(H);
代码如下:
>>symskpkiJs;G=(s+1)/(J*s^2+2*s+5);Gc=(kp*s+ki)/s;H=1;
>>GG=feedback(Gc*G,H)
运行结果:
GG=
(s+1)*(kp*s+ki)/(J*s^3+2*s^2+5*s+kp*s^2+s*ki+kp*s+ki)
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)
运行结果:
Transferfunction:
359.3s^3+3.732e004s^2+1.399e005s+127056
------------------------------------------------------------------------------
0.01s^6+2.185s^5+142.1s^4+2444s^3+4.389e004s^2+1.399e005s+127056
状态方程模型
代码如下:
>>ss(GG)
运行结果:
a=
x1x2x3x4x5x6
x1-218.5-111.1-29.83-16.74-13.34-6.059
x212800000
x30640000
x40032000
x5000400
x6000020
b=
u1
x18
x20
x30
x40
x50
x60
c=
x1x2x3x4x5x6
y1000.54831.781.6680.7573
d=
u1
y10
Continuous-timemodel.
零极点模型
代码如下:
>>zpk(GG)
Zero/pole/gain:
35933.152(s+100)(s+2.358)(s+1.499)
--------------------------------------------------------------------------
(s^2+3.667s+3.501)(s^2+11.73s+339.1)(s^2+203.1s+1.07e004)
(b)
假设系统的采样周期为T=0.1秒
传递函数模型
代码如下:
>>z=tf('z',0.1);G=(35786.7*z^2+108444*z^3)/(4*z+1)/(20*z+1)/(1+74.04*z);Gc=z/(1-z);H=z/(0.5-z);GG=feedback(G*Gc,H)
运行结果:
Transferfunction:
-108444z^5+1.844e004z^4+1.789e004z^3
---------------------------------------------------------------------
1.144e005z^5+2.876e004z^4+274.2z^3+782.4z^2+47.52z+0.5
Samplingtime:
0.1
状态方程模型
代码:
>>ss(GG)
运行结果:
a=
x1x2x3x4x5
x1-0.2515-0.004795-0.05473-0.05318-0.01791
x20.50000
x300.25000
x4000.062500
x50000.031250
b=
u1
x11
x20
x30
x40
x50
c=
x1x2x3x4x5
y10.39960.31750.05190.050430.01698
d=
u1
y1-0.9482
Samplingtime:
0.1
Discrete-timemodel.
零极点模型
>>zpk(GG)
Zero/pole/gain:
-0.94821z^3(z-0.5)(z+0.33)
-----------------------------------------------------------
(z+0.3035)(z+0.04438)(z+0.01355)(z^2-0.11z+0.02396)
Samplingtime:
0.1
8.
代码如下:
>>symss
>>H0=1/(s+1);H1=s/(s^2+2);G1=H0*H1;
>>H2=1/s^2;H3=50;G2=feedback(H2,H3);
>>H4=(4*s+2)/(s+1)^2;G3=H4/G2;
>>G4=(s^2+2)/(s^3+14);
>>G5=G3+G4;
>>GG=3*feedback(G1*G2,G5)
运行结果:
GG=
3/(s+1)*s/(s^2+2)/(s^2+50)/(1+1/(s+1)*s/(s^2+2)/(s^2+50)*((4*s+2)/(s+1)^2*(s^2+50)+(s^2+2)/(s^3+14)))
9.
离散化代码如下:
>>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);Gd1=c2d(G,0.01),Gd2=c2d(G,0.1),Gd3=c2d(G,1)
运行结果:
Transferfunction:
4.716e-005z^5-0.0001396z^4+9.596e-005z^3+8.18e-005z^2-0.0001289z+4.355e-005
--------------------------------------------------------------------------------------------------------------------
z^6-5.592z^5+13.26z^4-17.06z^3+12.58z^2-5.032z+0.8521
Samplingtime:
0.01
Transferfunction:
0.0003982z^5-0.0003919z^4-0.000336z^3+0.0007842z^2-0.000766z+0.0003214
-----------------------------------------------------------------------------------------------------------------
z^6-2.644z^5+4.044z^4-3.94z^3+2.549z^2-1.056z+0.2019
Samplingtime:
0.1
Transferfunction:
8.625e-005z^5-4.48e-005z^4+6.545e-006z^3+1.211e-005z^2-3.299e-006z+1.011e-007
----------------------------------------------------------------------------------------------------------------------
z^6-0.0419z^5-0.07092z^4-0.0004549z^3+0.002495z^2-3.347e-005z+1.125e-007
Samplingtime:
1
阶跃响应曲线代码:
>>step(Gd1,Gd2,Gd3)
运行结果:
阶跃响应曲线(T=0.01,0.1,1s)
10.
(a)
代码如下:
>>s=tf('s');G=1/(s^3+2*s^2+s+2);eig(G)
ans=
-2.0000
-0.0000+1.0000i
-0.0000-1.0000i
系统临界稳定
(b)
代码如下:
>>num=1;den=[63211];G=tf(num,den);eig(G)
ans=
-0.4949+0.4356i
-0.4949-0.4356i
0.2449+0.5688i
0.2449-0.5688i
系统不稳定,有一对共轭复根位于s右半平面
(c)
代码如下:
>>num=1;den=[11-3-12];G=tf(num,den);eig(G)
运行结果:
ans=
-2.0000
-1.0000
1.0000
1.0000
系统不稳定,有一对实根位于s右半平面
11.
(a)
代码如下:
>>z=tf('z');H=(-3*z+2)/(z^3-0.2*z^2-0.25*z+0.05);abs(eig(H))
运行结果:
ans=
0.5000
0.5000
0.2000
系统稳定
(b)
代码如下:
>>num=[3-0.39-0.09];den=[1-1.71.040.2680.024];G=tf(num,den,'Ts',0.1);abs(eig(G))
运行结果:
ans=
1.1939
1.1939
0.1298
0.1298
系统不稳定
12.
>>A=[-0.20.5000;0-0.51.600;00-14.385.80;000-33.3100;0000-10];B=[0;0;0;0;30];C=[];D=[];G=ss(A,B,C,D);eig(G)
ans=
-0.2000
-0.5000
-14.3000
-33.3000
-10.0000
所有根在s平面左半平面,系统稳定
13.
该状态方程的解析解
>>A=[-5200;0-400;-32-4-1;-320-4];x0=[1201]';symst;expm(A*t)*x0
ans=
-3*exp(-5*t)+4*exp(-4*t)
2*exp(-4*t)
18*exp(-4*t)-18*exp(-5*t)-18*t*exp(-4*t)+4*t^2*exp(-4*t)
10*exp(-4*t)-9*exp(-5*t)-8*t*exp(-4*t)
矩阵指数数值解
>>expm(A)
ans=
0.00670.023200
00.018300
-0.0145-0.00760.0183-0.0183
-0.0347-0.003800.0183
矩阵指数解析解
>>expm(A*t)
ans=
[exp(-5*t),2*exp(-4*t)-2*exp(-5*t),0,0]
[0,exp(-4*t),0,0]
[-6*exp(-4*t)+6*exp(-5*t)+3*t*exp(-4*t),2*t^2*exp(-4*t)-10*t*exp(-4*t)+12*exp(-4*t)-12*exp(-5*t),exp(-4*t),-t*exp(-4*t)]
[-3*exp(-4*t)+3*exp(-5*t),-4*t*exp(-4*t)+6*exp(-4*t)-6*exp(-5*t),0,exp(-4*t)]
14.
(a)
代码如下:
>>s=tf('s');G=(s+6)*(s-6)/s/(s+3)/(s+4+4j)/(s+4-4j);
>>rlocus(G)
运行结果:
系统不稳定,不存在稳定的K的范围。
(b)
代码如下:
>>s=tf('s');G=(s^2+2*s+2)/(s^4+s^3+14*s^2+8*s);rlocus(G)
运行结果:
当0 15. 采用1/3阶Padé近似拟合延迟项 代码如下: pade_app.m文件 functionGr=pade_app(c,r,k) w=-c(r+2: r+k+1)';vv=[c(r+1: -1: 1)';zeros(k-1-r,1)]; W=rot90(hankel(c(r+k: -1: r+1),vv));V=rot90(hankel(c(r: -1: 1))); x=[1(W\w)'];dred=x(k+1: -1: 1)/x(k+1); y=[c (1)x(2: r+1)*V'+c(2: r+1)];nred=y(r+1: -1: 1)/x(k+1); Gr=tf(nred,dred); paderm.m文件 function[n,d]=paderm(tau,r,k) c (1)=1;fori=2: r+k+1,c(i)=-c(i-1)*tau/(i-1);end Gr=pade_app(c,r,k);n=Gr.num{1}(k-r+1: end);d=Gr.den{1}; >>[n,d]=paderm(2,1,3);s=tf('s');G=(s-1)/(s+1)^5;rlocus(G*tf(n,d)) 运行结果: 由图得K∈(0,3.91)能够使得闭环系统稳定 根轨迹曲线 16. (a) 代码如下: >>s=tf('s');G=8*(s+1)/(s^2*(s+15)*(s^2+6*s+10));figure;bode(G),figure;nyquist(G),figure;nichols(G),grid >>[gm,pm,wcg,wcp]=margin(G) 运行结果: gm= 30.4686 pm= 4.2340 wcg= 1.5811 wcp= 0.2336 波特图 奈氏图 尼氏图 由奈氏图不包围(-1,j0)点及奈氏稳定判据可以得出,该系统稳定。 系统单位阶跃响应: 代码如下: >>step(feedback(G,1)) 响应曲线: 系统的单位阶跃响应曲线 闭环系统的阶跃响应曲线显示系统稳定。 (d) 假设系统采样周期为T=0.1秒 代码如下: >>z=tf('z',0.1);H=0.45*(z+1.31)*(z+0.054)*(z-0.957)/z/(z-1)/(z-0.368)/(z-0.99);figure;bode(H),figure;nyquist(H),figure;nichols(H),grid >>[gm,pm,wcg,wcp]=margin(H) 运行结果: Warning: Theclosed-loopsystemisunstable. gm= 0.9578 pm= -1.7660 wcg= 10.4641 wcp= 10.7340 波特图 奈氏图 尼氏图 由以上可知,系统不稳定 单位阶跃响应: 阶跃响应曲线 由阶跃响应曲线发散,因此系统不稳定。 17. 代码如下: >>s=tf('s');G=100*(1+s/2.5)/(s*(1+s/0.5)*(1+s/50));Gc=1000*(s+1)*(s+2.5)/((s+0.5)*(s+50));nyquist(G*Gc),grid 运行结果: 奈氏图 由奈氏图可得,曲线不包围(-1,j0)点,而开环系统不含有不稳定极点,所以根据奈氏稳定判据闭环系统是稳定的。 系统稳定 时域验证: 闭环系统阶跃响应 >>step(feedback(G*Gc,1)) 系统的阶跃响应曲线 显然系统阶跃响应稳定 第二部分: Simulink在系统仿真中的应用、控制系统计算机辅助设计、控制工程中的仿真技术应用 Simulink模块如下: >>plot(ScopeData.time,ScopeData.signals.values)%ScopeData为示波器默认的变量 运行结果: 微分方程数值解 代码如下: simdiff1.m文件 functiony=simdiff1(t,x) y=[x (2);x(3);x(4);exp(-3*t)+exp(-5*t)*sin(4*t+pi/3)-2*x (1)-4*x (2)-6*x(3)-5*x(4)]; >>x0=[1;1/2;1/2;0.2];[t,x]=ode45('simdiff1',[0,10],x0);plot(t,x(: 1)) 运行结果: 二者曲线完全一致. 3. Simulink框图 输出曲线及误差曲线 >>plot(tout,yout) 4. 5. Simulink框图 阶跃响应 >>plot(tout,yout) 将以上simulink模块输入改为sin(wt)可以得到频率响应曲线 提取总模型: 代码如下: >>[A,B,C,D]=linmod2('untitled4');G=ss(A,B,C,D);GG=tf(G) 运行结果: 1.119e011s^4+2.377e013s^3+1.404e015s^2+1.491e016s+4.386e016 ------------------------------------------------------------------------------------------------------------------- s^9+555.9s^8+1.234e005s^7+1.42e007s^6+9.199
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CAD