9 第九次课MATLAB
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[r,p,k]=residue(b,a) 三、状态空间描述 1. 将微分方程化为状态方程 2. 矩阵的对角化
四、模型的转换与连接 1. 数学模型的转换(见下表: )
对部分常用函数用法举例如下: (1) ss2tf—实现由状态空间描述到传递函数形式的转换。 [num,den]=ss2tf(A,B,C,D,iu) /iu指定第几个输入
例:对F(s)进行部分分式展开。
F (s)
程序如下: b=[2 0 9 1]; a=[1 1 4 4];
2 s 3 9 s 1 s3 s2 4 s4
r =0.0000 - 0.2500i 0.0000 + 0.2500i -2.0000 p =-0.0000 + 2.0000i -0.0000 - 2.0000i -1.0000 k=2
5 G(s) s3 62s11s6 s
(2) ss2zp—由状态空间形式转化为零极点增益形式。 [z,p,k]=ss2zp(A,B,C,D,iu)
例:已知二输入二输出系统的状态空间模型为:
1 1 0 A 6 11 6 6 11 5 1 0 0 C 0 1 0 0 0 B 0 1 0 0 2 0 D 0 2
1 1 0 A 6 11 6 6 11 5
Baidu Nhomakorabea
p=poly(r)
2. 传递函数的零点和极点
tf2zp( )
例:求下列传递函数的零点、极点和增益。
H (s)
程序如下: num=[1 11 30 0];
s 3 11s 2 30 s s 4 9 s 3 45 s 2 87 s 50
[t,x]=ode23('electsys',t0,tfinal,x0,tol,trace);
plot(t,x) title('Time Response of a RLC series ciruit');
xlabel('Time-sec');
text(8,1.05,'Capatitor Voltage'); text(8,0.05,'current'); vc=x(:,1); i=x(:,2); subplot(212); plot(vc,i)
title('current versus capatitor voltage');
xlabel('Capacitor Voltage'); ylabel('current');
subplot(111);
二、传递函数 1. 多项式和特征多项式的根 root(P) poly(r) poly2sym(p) 例:求多项式s6+9s5+31.25s4+61.25s3+67.25s2+14.75s+15的根
v=1; R=1.4; L=2; C=0.32;
xdot=[x(2)/C;1/L*(v-x(1)-R*x(2))]; 下面的M文件使用ode23对系统进行仿真。
SIMU.M
t0=0; tfinal=15; x0=[0.5,0]; tol=0.001; trace=0 subplot(211) %时间间隔为0~15 %初始化 %精度 %若非零则打印出每一步的计算值
num(1)/den =
1.1546e-014 s^2 + 1 s + 6 ------------------------s^3 + 6 s^2 + 11 s + 6 num(2)/den =
2 s^3 + 13 s^2 + 17 s + 6 ------------------------s^3 + 6 s^2 + 11 s + 6
例:将下列状态空间描述化为函数模型
1 1 0 ' A 6 11 6 B 0 0 1 6 11 5 C 1 0 0 D0
程序如下:
a=[0 1 –1;-6 –11 6;-6 –11 5];
b=[0 0 1]’; c=[1 0 0]; d=0 [num,den]=ss2tf(a,b,c,d) printsys(num,den)
(3) tf2ss—由传递函数形式转化为状态空间形式。 [A,B,C,D]=tf2ss(num,den) 例:已知系统传递函数如下所示: A = -6 1 0 B=1 0 0 C=0 0 1 D=0 0 0 -11 -6 0 0 1 0
求其状态空间模型。
G11 ( s) G21 ( s) G31 ( s)
[A,B,C,D]=feedback(A1,B1,C1,D1,A2,B2,C2,D2)
[A,B,C,D]=feedback(A1,B1,C1,D1,A2,B2,C2,D2,sign) [num,den]=feedback(num1,den1,num2,den2)
[num,den]=feedback (num1,den1,num2,den2,sign)
如将上题转换为传函 >> [num1,den1]=ss2tf(a,b,c,d,1); >> [num2,den2]= ss2tf(a,b,c,d,2); >> printsys(num1,den1) >> printsys(num2,den2)
z = -6.0000 -4.8860 Inf -0.6140 Inf -1.0000 p = -1.0000 -2.0000 -3.0000 k = 1.0000 2.0000
内容:
上次课回顾:
第五章 程序设计 第一节 M文件 1. matlab的工作模式 2. m文件的创建
3. M文件的特点与形式
第二节 控制语句 1. 循环语句 2. 选择语句 3. 分支语句switch-case-otherwise 4. 人机交互语句 第三节 函数变量及变量作用域
目录
§6.1 控制系统的数学描述与建模 §6.2 控制系统的分析方法 §6.3 SIMULINK仿真 §6.4 控制系统的设计方法
0 -2 -1 -5 2 0
对部分函数的用法举例如下: (1)append( )—将两个状态空间描述的动态特性连接在一起。 [A,B,C,D]=append(A1,B1,C1,D1,A2,B2,C2,D2) (2) series( )—将两个状态空间形式表示的系统进行串联。 [A,B,C,D]=series(A1,B1,C1,D1,A2,B2,C2,D2) (3) parallel( )—两个状态空间系统的并联。 [A,B,C,D]=parallel(A1,B1,C1,D1,A2,B2,C2,D2) [num,den]=parallel(num1,den1,num2,den2) (4) feedback( )—用于两个系统的反馈连接。
den=[1 9 45 87 50]; [z,p,k]=tf2zp(num,den) 例:已知系统的零点为-6,-5,0,极点为-3+4j,-3-4j,-2,-1,增益 为1,求其传递函数。 程序如下: z=[-6 –5 0]’; k=1; p=[-3+4*j,-3-4*j,-2,-1]’; [num,den]=zp2tf(z,p,k)
num = 0
0.0000 -1.0000 -5.0000
den =1.0000 6.0000 11.0000 6.0000 num/den =3.5527e-015 s^2 - 1 s - 5 ------------------------s^3 + 6 s^2 + 11 s + 6
转换后的传函:
§6.1 控制系统的数学描述与建模
一、微分方程 常微分方程是控制系统模型的基础。MATLAB提供了两个求解微 分方程数值解的函数,龙格—库塔法ode23、ode45(采用2阶和4阶龙 格—库塔公式)。 例:电路图如图所示,R=1.4Ω,L=2H,C=0.32F。初始状态:电感电流 为零,电容电压为0.5V。t=0时接入1V的电压。求0<t<15s时i(t)和v(t) 的值,并且画出电流和电容电压的关系曲线。 根据电流定律有: 1.4 Ω 2H
求其零极点模型。
程序如下: a=[0 1 –1;-6 –11 6;-6 –11 5]; b=[0 0 ;0 1;1 0]; c=[1 0 0;0 1 0]; d=[2 0;0 2]; [z,p,k]=ss2zp(a,b,c,d,1); [z,p,k]=ss2zp(a,b,c,d,2);
z = -0.4325 -1.0000 -2.7837 + 0.5854i Inf -2.7837 - 0.5854i Inf p = -1.0000 -2.0000 -3.0000 k = 2.0000 6.0000
2 s 6 s 2 11s 6
3
s 5 s 6 s 2 11s 6
3
s2 2s s 3 6 s 2 11s 6
程序如下: num=[0 0 –2;0 –1 –5; 1 2 0]; den=[1 6 11 6]; [A,B,C,D]=tf2ss(num,den) 2. 系统模型的连接(见下表: )
对部分函数用法举例如下: (1)gram( ),dgram( )—求系统可控、可观测的格来姆(Gram)矩阵。
Gc=gram(A,B,’c’)
Go= gram(A,B,’o’)
Gc=dgram(A,B,’c’)
Gc=dgram(A,B,’o’)
(2)ctrb( ),obsv( )—求系统的可控性和可观测性。
多项式系数以降幂次序排列在一个行向量中,用roots( )函数求根。
P=[1 9 31.25 61.25 67.25 14.75 15] r=roots(P)
例:多项式的根为-1,-2,-3+j4,-3-j4。求多项式方程。
r=[-1 –2 –3+j*4 –3-j*4] ans = poly2sym(p) x^4+9*x^3+45*x^2+87*x+50 例:求下列矩阵的特征方程的根。 A=[0 –1 –1 ;-6 –11 6;-6 –11 5] p=poly(A); r=roots(p); eig(A); poly2sym(p)
num(1)/den = 2 s^3 + 12 s^2 + 21 s + 7 ------------------------s^3 + 6 s^2 + 11 s + 6 num(2)/den = -8.8818e-015 s^2 + 6 s + 6 -------------------------s^3 + 6 s^2 + 11 s + 6
di R i L dt v0 vs , i C dv0 dt
令: x1=v0, 得: x1
1 C
x2=i
Vs=1V
0.32F
1 x2 L (vs x1 Rx 2 )
x2
方程的M文件定义如下: ELECTSYS.M function xdot=electsys(t,x)
3. 部分分式展开 把
P(s) Q( s)
[r,p,k]=residue(b,a)
an s n an1s n1 ... a1s a0
bm s m bm1s m1 ... b1s b0
分解为微分单元和的形式,即:
F ( s ) k s r1p1 s r2p2 ... s rmpm
例:两个子系统如下所示: g ( s)
2 s 2 5 s 1 s 2 2 s 3 5( s 2 ) s 10
u -
g(s) h(s)
y
h( s ) 按右图方式连接,求闭环系统的传递函数。
程序如下: numg=[2 5 1]; deng=[1 2 3]; numh=[5 10]; denh=[1 10]; [num,den]=feedback(numg,deng,numh,denh) num = 2 25 51 10 den = 11 57 78 40 五、控制系统的模型属性 MATLAB提供了许多用来分析控制系统模型属性的函数,例如常 用的可控性,可观测性、阻尼系数、自然频率等,如下表: