控制系统数学模型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第 4 章 控制系统数学模型
1. 系统类型
根据系统自变量(时间)是连续变化还是离散变化, 系统分为连续系统和离散系统。 (1)连续系统:系统输入、输出信号都是连续时间信号。 (2)离散系统:系统输入、输出信号都是离散时间信号。 (3)混合系统:系统输入、输出信号包含连续信号和离 散信号。
2. 控制系统常用数学模型
2
的极点。
解: close all; num=[1 2 2]; den=[1 7 3 5 2]; [r p k]=residue(num,den); disp(‘system polar-point is’); p
第 5 章 时域分析法
5.3 MATLAB/Simulink在时域分析中的应用
时域响应应用举例
5.3.2 时域响应性能指标求取
调用单位阶跃响应函数step(),可以获得系统的单位阶跃 响应,当采用[y,t]=step(G)的调用格式时,通过对y,t的计 算,可以得到时域性能指标。
1. 峰值时间(timetopeak)
[Y,k]=max(y)
%求出y的峰值及相应的时间
timetopeak=t(k) %获得峰值时间
式中:z =[z1 z2 … zm ]是分子多项式零点向量。 p =[p1 p2 … pn ]是分母多项式极点向量。 k是传递函数的增益。
用zpk ( )命令可以建立零极点增益模型,或将传递函数 模型和状态空间模型转换为零极点增益模型。 zpk( )命令调用格式如下: ssys=zpk(z,p,k)
调用格式如下: r=roots(p)
例: C=[1 5 9 13 12]
Roots(C)= -3.0000 -1.6506 -0.1747 + 1.5469i -0.1747 - 1.5469i
应用实例
求传递函数
G( s )
( s 1 )( s2 2s 6 )2 s2( s 3 )( s3 2s2 3s 4 )
见:.\仿真程序 \4-2.m
例4-3 求
4.3 拉氏变换与控制系统模型
(t a) u(t b)
eat sin bt
t
2
c
os3t
见:.\仿真程序 \4-3.m
4.4 数学模型描述
1. 传递函数模型(Transfer Function model:TF)
G(s) bmsm bm1sm1 ... b1s1 b0 ansn an1sn1 ... a1 s1 a0
%传递函数分子、分母多项式系数。 %建立传递函数模型。 %从传递函数模型获取零极点增益。 %建立零极点增益模型 %从零极点模型获取状态空间模型 %建立状态空间模型
求得系统阶跃响应
step(sys_tf); grid on;
%求解系统阶跃响应。 %添加栅格。
例:已知连续系统的传递函数为:G(S) 3s4 2s3 5s2 4s 6
i(t) R ui (t)
L C
u0 (t)
L
di(t dt
)
R
i(t
)
u0
(t
)
ui
(t
)
i(t) C du0 (t) dt
LC
d
2u 0 (t ) dt 2
RC
du 0 (t dt
)
u
0
(t
)
u
i
(t)
例4-2 若上页图, R 1.6, L 2.1H,C 0.3F, 初始状态是电感电流为零,电容电压为0.2V ,t 0时 接入1.5V的电压,求0 t 10s时i(t),u0 (t)的值,并 画出电流与电容电压的关系曲线。
根据系统输入、输出与内部状态变量之间关系,控制 系统模型分为外部模型和内部模型。
时域:N阶微分方程
外部模型 频域:S传递函数
连续系统
控
内部模型:状态空间方程(N个一阶微分方程)
制
系
时域:N阶差分方程
统
外部模型
离散系统
频域:Z传递函数
内部模型: 状态空间方程
(N个一阶差分方程)
4.2 动态过程微分方程描述
n=n+1
end
risetime=t(n)
4. 调节时间(settlingtime)
C=dcgain(G)
%求取系统的终值
i=length(t)
% 求取仿真时间t序列的长度
while (y(i)>0.98*C)&(y(i)<1.02*C) %终值±2%内的时间
i=i-1
End
settlingtime=t(i)
MATLAB提供了一条函数residue( )可以求解有理分式的
部分分式展开,其基本调用格式为:(R,P,K)=residue(B,A)
其中B和A分别是降幂排列的该有理分式的分子和分母多 项式系数:R是求得的部分分式展开的各分式系数,P是 系统极点,K是常数项。
例:求
G(S)
s2 2s 2 s4 7s3 3s2 5s
while (y(i)>0.98*C)&(y(i)<1.02*C)
i=i-1
End
settlingtime=t(i)
5.3.3 二阶系统参数对时域响应性能的影响
典型二阶系统的结构如图:
其闭环传递函数G(s) 为: G(s)
n2
s2 2ns n2)
式中, 为n 无阻尼自由振荡角频率:简称:固有频率;
由分子和分母多项式系数可以唯一确定传递函数。
分子向量 num =[bm bm-1 … b1 b0 ] 分母向量 den =[an an-1 … a1 a0 ]
(numerator) (denominator)
用tf( )命令可以建立一个传递函数模型,或将零极点增益模型和 状态空间模型转换为传递函数模型。 tf( )命令调用格式如下: Sys=tf(num,den): 用于生成S传递函数。
2 . 超调量(percentovershoot)
C=dcgain(G)
%求取系统的终值
[Y,k]=max(y)
%求出y的峰值及相应的时间
percentovershoot=100*(Y-C)/C %计算超调量
3. 上升时间(risetime)
C=dcgain(G)
%求取系统的终值
n=1
while y(n)<C
-0.1747 - 1.5469i
4.6 系统模型转换及连接
1. 模型转换
传递函数模型 TF
zp2tf
零极点增益 模型 ZPK
tf2zp
tf2ss
ss2tf
zp2ss ss2zp
状态空间模型 SS
源自文库
三种模型之间可以相互转换。
例:已知某系统的零极点模型
G( s )
6( s 2 )
( s 1)( s 3 )( s 5 )
例5-1. 已知系统闭环传递函数为
G(
s
)
s2
1 0.4s
1
试求其单位阶跃响应和单位斜坡响应曲线。
例5-4. 已知单位负反馈系统,其开环传递函数为G1(s)
和G2(s)的串联,其中
G1(
s
)
(
s
s5 1)(s
3
)
s2 1 G2( s ) s2 4s 4 )
系统输入信号为r(t)=sin(t),用Simulink求系统输出响应。
卷积分函数conv( )可以用来进行多项式乘法,其调用格 式如下:
C=conv(A,B) 例:
(s+3)(S3+2s2+3s+4) C=conv([1,3],[1,2,3,4]) C=[1 5 9 13 12]
4.5 MATLAB/Simulink 在模型中的应用
2. 多项式求根函数roots( )
传递函数的部分分式展开
传递函数有时需要进行有理分式的分式展开。所谓部分
分式展开,就是将高阶的有理分式化为若干个一阶有理
分式之和的形式。如果传递函数G(s)不包含多重极点,
那么,将G(s)用部分分式展开后即可得到:
n
G(S) k
ri
其中,k是常数项,对于真分式来说 k=0;
i 1 s pi
r是各分式的系数,p是系统的极点。
动态微分方程描述的是被控量与给定量或扰动量之间的 函数关系,给定量和扰动量可看成是系统的输入,被控量看 成输出量。
建立微分方程时,一般从系统的环节着手,先确定各环 节的输入量和输出量,以确定其工作状态,并建立各环节的 微分方程,而后消去中间变量,最后得到系统的动态微分方 程。
对于比较复杂的系统,建立系统微分方程一般采用以下 步骤: (1)将系统划分为多个环节,确定各环节的输入及输出 信号,每个环节可考虑写一个方程。 (2)根据物理定律或通过实验等方法得出物理规律,列 出各环节的原始方程式,并考虑适当简化、线性化。 (3)将各环节方程式联立,消去中间变量,最后得出只 含有输入变量、输出变量以及参量的系统方程式。
g_tf=tf(num,den)
%建立传递函数模型
g_ss=ss(A,B,C,D)
%建立状态空间模型
例4-13:给定RLC网络如图所示,求该系统的模型。
求得系统传递函数模型 (推导见p104)
G(
s
)
s2
1 2s
2
clear all; num=[0,1]; den=[1 2 2]; sys_tf=tf(num,den) [z,p,k]=tf2zp(num,den) sys_zpk=zpk(z,p,k) [A,B,C,D]=zp2ss(z,p,k) sys_ss=ss(A,B,C,D)
的分子和分母多项式,并求传递函数的特征根。
解:
num=conv([1,1],conv([1,2,6],[1,2,6])); den=conv([1,0,0],conv([1,3],[1,2,3,4])); r=roots(den) 结果:num=[1 5 20 40 60 36]
den=[1 5 9 13 12 0 0] r=0 0 -3.0000 -1.6506 -0.1747 + 1.5469i
求出该系统的零、极点及增益。
s5 3s4 4s3 2s2 7s 2
解:num=[3,2,5,4,6]; den=[1,3,4,2,7,2]; w=logspace(-2,2); %采样点 [z,p,k]=tf2zp(num,den); disp(‘system zero-point is’); z disp(‘system polar-point is’); p disp(‘system gain is’); k
%求出y的峰值及相应的时间
timetopeak=t(k) %获得峰值时间
percentovershoot=100*(Y-C)/C %计算超调量
%计算上升时间
n=1
while y(n)<C
n=n+1
end
risetime=t(n)
%计算稳态响应时间(settlingtime)
i=length(t)
% 求取仿真时间t序列的长度
试求其传递函数模型和状态空间模型。
解:z=[-2];p=[-1,-3,-5];k=6 %系统的零极点向量和增益。
[num,den]=zp2tf(z,p,k) %零极点模型转换成传递函数。
[A,B,C,D]=zp2ss(z,p,k) %零极点模型转换成状态空间模型。
g_zpk=zpk(z,p,k)
%建立零极点模型
例:给定SISO系统传递函数为
G(s)
2s 1 3s2 4s1
1
使用MATLAB表示该传递函数 num =[2 1]; den =[3 4 1 ]; sys1=tf (num, den) get(sys1);
2. 零极点形式的数学模型(zero-pole-gain model:ZPK)
G(s) k (s z1)(s z2 )...( s zm ) (s p1)(s p2 )...( s pn )
为阻尼系数; T 1 为系统振荡周期。
n
系统的特征方程为: D(s) s2 2ns n2 0 特征根为: S1,2 n n 2 1 因此,二阶系统的两个极点为: p1,2 n n 2 1 在不同阻尼比下两个极点有不同特征根,因此其时域响应 特征也不同。
1. 零阻尼 ( ζ=0) 单位阶跃响应是一等幅振荡曲线
例5-5. 已知二阶传递函数为:
G( s )
3
( s 1 3i)( s 1 3i )
求系统的性能指标。
G=zpk([],[-1+3i,-1-3*i],3) %建立零极点模型
C=dcgain(G)
%求取系统的终值
[y,t]=step(G)
%求取阶跃响应
Plot(t,y)
grid
[Y,k]=max(y)
3. 状态空间模型(state-space model: SS)
.
X AX BU
.
Y CX DU
式中:X 为状态向量,U为输入向量,Y是输出向量。
调用格式如下: sys=ss(a,b,c,d)
4.5 MATLAB/Simulink 在模型中的应用
多项式处理相关的函数 1. 多项式乘法函数conv( ) (convolution卷积)
2. 欠阻尼(0< ζ<1) 单位阶跃响应是一衰减振荡曲线
1. 系统类型
根据系统自变量(时间)是连续变化还是离散变化, 系统分为连续系统和离散系统。 (1)连续系统:系统输入、输出信号都是连续时间信号。 (2)离散系统:系统输入、输出信号都是离散时间信号。 (3)混合系统:系统输入、输出信号包含连续信号和离 散信号。
2. 控制系统常用数学模型
2
的极点。
解: close all; num=[1 2 2]; den=[1 7 3 5 2]; [r p k]=residue(num,den); disp(‘system polar-point is’); p
第 5 章 时域分析法
5.3 MATLAB/Simulink在时域分析中的应用
时域响应应用举例
5.3.2 时域响应性能指标求取
调用单位阶跃响应函数step(),可以获得系统的单位阶跃 响应,当采用[y,t]=step(G)的调用格式时,通过对y,t的计 算,可以得到时域性能指标。
1. 峰值时间(timetopeak)
[Y,k]=max(y)
%求出y的峰值及相应的时间
timetopeak=t(k) %获得峰值时间
式中:z =[z1 z2 … zm ]是分子多项式零点向量。 p =[p1 p2 … pn ]是分母多项式极点向量。 k是传递函数的增益。
用zpk ( )命令可以建立零极点增益模型,或将传递函数 模型和状态空间模型转换为零极点增益模型。 zpk( )命令调用格式如下: ssys=zpk(z,p,k)
调用格式如下: r=roots(p)
例: C=[1 5 9 13 12]
Roots(C)= -3.0000 -1.6506 -0.1747 + 1.5469i -0.1747 - 1.5469i
应用实例
求传递函数
G( s )
( s 1 )( s2 2s 6 )2 s2( s 3 )( s3 2s2 3s 4 )
见:.\仿真程序 \4-2.m
例4-3 求
4.3 拉氏变换与控制系统模型
(t a) u(t b)
eat sin bt
t
2
c
os3t
见:.\仿真程序 \4-3.m
4.4 数学模型描述
1. 传递函数模型(Transfer Function model:TF)
G(s) bmsm bm1sm1 ... b1s1 b0 ansn an1sn1 ... a1 s1 a0
%传递函数分子、分母多项式系数。 %建立传递函数模型。 %从传递函数模型获取零极点增益。 %建立零极点增益模型 %从零极点模型获取状态空间模型 %建立状态空间模型
求得系统阶跃响应
step(sys_tf); grid on;
%求解系统阶跃响应。 %添加栅格。
例:已知连续系统的传递函数为:G(S) 3s4 2s3 5s2 4s 6
i(t) R ui (t)
L C
u0 (t)
L
di(t dt
)
R
i(t
)
u0
(t
)
ui
(t
)
i(t) C du0 (t) dt
LC
d
2u 0 (t ) dt 2
RC
du 0 (t dt
)
u
0
(t
)
u
i
(t)
例4-2 若上页图, R 1.6, L 2.1H,C 0.3F, 初始状态是电感电流为零,电容电压为0.2V ,t 0时 接入1.5V的电压,求0 t 10s时i(t),u0 (t)的值,并 画出电流与电容电压的关系曲线。
根据系统输入、输出与内部状态变量之间关系,控制 系统模型分为外部模型和内部模型。
时域:N阶微分方程
外部模型 频域:S传递函数
连续系统
控
内部模型:状态空间方程(N个一阶微分方程)
制
系
时域:N阶差分方程
统
外部模型
离散系统
频域:Z传递函数
内部模型: 状态空间方程
(N个一阶差分方程)
4.2 动态过程微分方程描述
n=n+1
end
risetime=t(n)
4. 调节时间(settlingtime)
C=dcgain(G)
%求取系统的终值
i=length(t)
% 求取仿真时间t序列的长度
while (y(i)>0.98*C)&(y(i)<1.02*C) %终值±2%内的时间
i=i-1
End
settlingtime=t(i)
MATLAB提供了一条函数residue( )可以求解有理分式的
部分分式展开,其基本调用格式为:(R,P,K)=residue(B,A)
其中B和A分别是降幂排列的该有理分式的分子和分母多 项式系数:R是求得的部分分式展开的各分式系数,P是 系统极点,K是常数项。
例:求
G(S)
s2 2s 2 s4 7s3 3s2 5s
while (y(i)>0.98*C)&(y(i)<1.02*C)
i=i-1
End
settlingtime=t(i)
5.3.3 二阶系统参数对时域响应性能的影响
典型二阶系统的结构如图:
其闭环传递函数G(s) 为: G(s)
n2
s2 2ns n2)
式中, 为n 无阻尼自由振荡角频率:简称:固有频率;
由分子和分母多项式系数可以唯一确定传递函数。
分子向量 num =[bm bm-1 … b1 b0 ] 分母向量 den =[an an-1 … a1 a0 ]
(numerator) (denominator)
用tf( )命令可以建立一个传递函数模型,或将零极点增益模型和 状态空间模型转换为传递函数模型。 tf( )命令调用格式如下: Sys=tf(num,den): 用于生成S传递函数。
2 . 超调量(percentovershoot)
C=dcgain(G)
%求取系统的终值
[Y,k]=max(y)
%求出y的峰值及相应的时间
percentovershoot=100*(Y-C)/C %计算超调量
3. 上升时间(risetime)
C=dcgain(G)
%求取系统的终值
n=1
while y(n)<C
-0.1747 - 1.5469i
4.6 系统模型转换及连接
1. 模型转换
传递函数模型 TF
zp2tf
零极点增益 模型 ZPK
tf2zp
tf2ss
ss2tf
zp2ss ss2zp
状态空间模型 SS
源自文库
三种模型之间可以相互转换。
例:已知某系统的零极点模型
G( s )
6( s 2 )
( s 1)( s 3 )( s 5 )
例5-1. 已知系统闭环传递函数为
G(
s
)
s2
1 0.4s
1
试求其单位阶跃响应和单位斜坡响应曲线。
例5-4. 已知单位负反馈系统,其开环传递函数为G1(s)
和G2(s)的串联,其中
G1(
s
)
(
s
s5 1)(s
3
)
s2 1 G2( s ) s2 4s 4 )
系统输入信号为r(t)=sin(t),用Simulink求系统输出响应。
卷积分函数conv( )可以用来进行多项式乘法,其调用格 式如下:
C=conv(A,B) 例:
(s+3)(S3+2s2+3s+4) C=conv([1,3],[1,2,3,4]) C=[1 5 9 13 12]
4.5 MATLAB/Simulink 在模型中的应用
2. 多项式求根函数roots( )
传递函数的部分分式展开
传递函数有时需要进行有理分式的分式展开。所谓部分
分式展开,就是将高阶的有理分式化为若干个一阶有理
分式之和的形式。如果传递函数G(s)不包含多重极点,
那么,将G(s)用部分分式展开后即可得到:
n
G(S) k
ri
其中,k是常数项,对于真分式来说 k=0;
i 1 s pi
r是各分式的系数,p是系统的极点。
动态微分方程描述的是被控量与给定量或扰动量之间的 函数关系,给定量和扰动量可看成是系统的输入,被控量看 成输出量。
建立微分方程时,一般从系统的环节着手,先确定各环 节的输入量和输出量,以确定其工作状态,并建立各环节的 微分方程,而后消去中间变量,最后得到系统的动态微分方 程。
对于比较复杂的系统,建立系统微分方程一般采用以下 步骤: (1)将系统划分为多个环节,确定各环节的输入及输出 信号,每个环节可考虑写一个方程。 (2)根据物理定律或通过实验等方法得出物理规律,列 出各环节的原始方程式,并考虑适当简化、线性化。 (3)将各环节方程式联立,消去中间变量,最后得出只 含有输入变量、输出变量以及参量的系统方程式。
g_tf=tf(num,den)
%建立传递函数模型
g_ss=ss(A,B,C,D)
%建立状态空间模型
例4-13:给定RLC网络如图所示,求该系统的模型。
求得系统传递函数模型 (推导见p104)
G(
s
)
s2
1 2s
2
clear all; num=[0,1]; den=[1 2 2]; sys_tf=tf(num,den) [z,p,k]=tf2zp(num,den) sys_zpk=zpk(z,p,k) [A,B,C,D]=zp2ss(z,p,k) sys_ss=ss(A,B,C,D)
的分子和分母多项式,并求传递函数的特征根。
解:
num=conv([1,1],conv([1,2,6],[1,2,6])); den=conv([1,0,0],conv([1,3],[1,2,3,4])); r=roots(den) 结果:num=[1 5 20 40 60 36]
den=[1 5 9 13 12 0 0] r=0 0 -3.0000 -1.6506 -0.1747 + 1.5469i
求出该系统的零、极点及增益。
s5 3s4 4s3 2s2 7s 2
解:num=[3,2,5,4,6]; den=[1,3,4,2,7,2]; w=logspace(-2,2); %采样点 [z,p,k]=tf2zp(num,den); disp(‘system zero-point is’); z disp(‘system polar-point is’); p disp(‘system gain is’); k
%求出y的峰值及相应的时间
timetopeak=t(k) %获得峰值时间
percentovershoot=100*(Y-C)/C %计算超调量
%计算上升时间
n=1
while y(n)<C
n=n+1
end
risetime=t(n)
%计算稳态响应时间(settlingtime)
i=length(t)
% 求取仿真时间t序列的长度
试求其传递函数模型和状态空间模型。
解:z=[-2];p=[-1,-3,-5];k=6 %系统的零极点向量和增益。
[num,den]=zp2tf(z,p,k) %零极点模型转换成传递函数。
[A,B,C,D]=zp2ss(z,p,k) %零极点模型转换成状态空间模型。
g_zpk=zpk(z,p,k)
%建立零极点模型
例:给定SISO系统传递函数为
G(s)
2s 1 3s2 4s1
1
使用MATLAB表示该传递函数 num =[2 1]; den =[3 4 1 ]; sys1=tf (num, den) get(sys1);
2. 零极点形式的数学模型(zero-pole-gain model:ZPK)
G(s) k (s z1)(s z2 )...( s zm ) (s p1)(s p2 )...( s pn )
为阻尼系数; T 1 为系统振荡周期。
n
系统的特征方程为: D(s) s2 2ns n2 0 特征根为: S1,2 n n 2 1 因此,二阶系统的两个极点为: p1,2 n n 2 1 在不同阻尼比下两个极点有不同特征根,因此其时域响应 特征也不同。
1. 零阻尼 ( ζ=0) 单位阶跃响应是一等幅振荡曲线
例5-5. 已知二阶传递函数为:
G( s )
3
( s 1 3i)( s 1 3i )
求系统的性能指标。
G=zpk([],[-1+3i,-1-3*i],3) %建立零极点模型
C=dcgain(G)
%求取系统的终值
[y,t]=step(G)
%求取阶跃响应
Plot(t,y)
grid
[Y,k]=max(y)
3. 状态空间模型(state-space model: SS)
.
X AX BU
.
Y CX DU
式中:X 为状态向量,U为输入向量,Y是输出向量。
调用格式如下: sys=ss(a,b,c,d)
4.5 MATLAB/Simulink 在模型中的应用
多项式处理相关的函数 1. 多项式乘法函数conv( ) (convolution卷积)
2. 欠阻尼(0< ζ<1) 单位阶跃响应是一衰减振荡曲线