第3章 控制系统数学模型及其转换

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例:用MATLAB语句表示传函 解: 法1: z=-1; p=[-2,-3]; k=1; sys=zpk(z,p,k) 法2: s=zpk('s'); sys=(s+1)/((s+2)*(s+3))
Zero/pole/gain: (s+1) -------------(s+2) (s+3)
区别:zpk;)
第3章 控制系统数学模型及其转换
主讲人:王宏楠
第3章 控制系统数学模型及其转换
3.1 控制系统常用数学模型 3.2 控制系统数学模型的相互转换 3.3 系统模型的连接 3.4 模型实现
3.1 控制系统常用数学模型(LTI模型)
• • • • 传递函数模型 零极点增益模型 状态空间模型 部分分式模型
#2: ----------------(s+3) (s+4) (s+5)
例:给定一零极点增益模型
用MATLAB语句表示该传函。 解: z={0;-0.5}; p={0.3;[0.1,0.9]}; k=[1;2]; sys=zpk(z,p,k,[])
Zero/pole/gain from input to output... z #1: ------(z-0.3) 2 (z+0.5) #2: -----------------(z-0.1) (z-0.9) Sampling time: unspecified
[num,den]=tfdata(sys,'v'): 提取传函中的分子分母多项式 [z,p,k]=zpkdata(sys,'v'): 提取零极点增益模型的参数z,p,k [A,,B,C,D]=ssdata(sys,'v'): 提取状态空间模型参数A,B,C,D
s^3 + 2 s + 5 #2: ----------------------------3 s^3 + 5 s^2 + 2 s + 1
例: 若一采样周期为1s 的离散传递函数为:
用MATLAB语句表示该传递函数。
解: num={[1,1],[1,0];1,2}; den={[1,2,1],[1,0,2];[2,1],[1,1]}; sys=tf(num,den,1)
例:已知单输入双输出的零极点增益模型
用MATLAB语句表示该传函。 解: Zero/pole/gain from input to output... z={-12;[-1,-2]}; 3 (s+12) p={[-3,-4,-5]; [-3,-4,-5]}; #1: ----------------k=[3;4]; sys=zpk(z,p,k) (s+3) (s+4) (s+5)
3.1.3 状态空间模型(state space model)
线性定常系统的状态空间表达式为:
其中,x为状态变量,u为输入变量,y为输出变量 MATLAB中可采用ss函数来建立状态空间模型,其常用 调用格式为: ① sys=ss(A,B,C,D) 生成连续的状态空间模型。 ② sys= ss(A,B,C,D,Ts) 生成离散的状态空间模型,Ts为采样时间。 ③ sys_ss=ss(sys) 将其它模型转换成状态空间模型。
① sys=tf(num,den):生成连续传递函数。
② sys=tf(num,den,Ts):生成离散传递函数,Ts为采样时间。当 Ts=[ ]或Ts=-1时,表示采样时刻未指定。
③ sys=tf(num,den,’Property1’,Value1,’Property2’ ,Value2,…, ’ PropertyN’,ValueN):生成具有LTI模型属性的连续传递函数。
z,p必须同为cell矩阵 增益k只能是普通矩阵
4 (s+1) (s+2) #2: ----------------(s+3) (s+4) (s+5)
例:已知单输入双输出的零极点增益模型
用MATLAB语句表示该传函。
解: Zero/pole/gain from input to output... z={[];[-1,-2]}; 3 p={[-3,-4,-5]; [-3,-4,-5]}; #1: ----------------(s+3) (s+4) (s+5) k=[3;4]; sys=zpk(z,p,k) 4 (s+1) (s+2)
s^2 + 5 s + 6 Transfer function from input 2 to output... num和den必须同为cell矩阵 #1: s + 1 s+1 #2: ------s+2
例: SIMO系统的传递函数为:
用MATLAB语句表示该传递函数。 解: num={[3,2];[1,0,2,5]}; Transfer function from input to output... 3s+2 den={[3,5,2,1];[3,5,2,1]}; #1: ----------------------------sys=tf(num,den) 3 s^3 + 5 s^2 + 2 s + 1
若传函为
s=zpk('s'); sys=(s+1)/(s^2+5*s+6)
Zero/pole/gain: (s+1) -------------(s+3) (s+2)
而对于传函
s=tf('s'); sys=(s+1)/((s+2)*(s+3))
Transfer function: s+1 ---------------s^2 + 5 s + 6
Transfer function from input "u" to output "y": 1.3 s^2 + 2.5 exp(-2*s) * -------------------------s^3 + 0.5 s^2 + 1.2 s
当传递函数的分子、分母由若干个多项式的乘积表示 时,应先采用多项式乘法运算函数 conv 函数求得分子、分 母多项式的系数向量,该函数的调用格式为: c=conv(a,b) 其中 a,b分别为两个多项式系数构成的向量,c为 a, b相乘 后的多项式系数构成的向量。
Transfer function: 4 s^3 + 32 s^2 + 72 s + 48 ----------------------------------------s^5 + 4 s^4 + 5 s^3 + 7 s^2 + 5 s
cell矩阵 又称为细胞矩阵,是MATLAB的一种特殊数据类型, 它里面的元素可以是任意类型的变量,而不必是统一的类 型。用大括号{ }表示。 cell矩阵A中的第i行、第j列的元素表示为A{i,j}或A{s}。 >> A={1,[2,3,4,5];sym('a'),'hello'}; >> A{1,2} 或 A{3} ans = 将cell矩阵中的某个元素赋 2 3 4 5 给变量 a 时,变量 a 的数据 >> B=A{2,2} 类型是由cell矩阵中该元素 B= 的内容决定的。 hello
Transfer function from input 1 to output... z+1 #1: ---------------z^2 + 2 z + 1 1 #2: ---------2z+1 Transfer function from input 2 to output... z #1: ---------z^2 + 2 2 #2: -------z+1 Sampling time: 1
3.1.2 零极点增益模型(zero-pole-gain model) 连续系统传递函数为:
离散系统传递函数为:

MATLAB中采用zpk函数来建立零极点增益模型。 z=[z1,z2,…,zm]为分子多项式零点向量, p=[p1,p2,…,pn]为分母多项式极点向量。
其调用格式为:
① sys=zpk(z,p,k): 生成连续的零极点增益模型。 ② sys= zpk(z,p,k,Ts): 生成离散的零极点增益模型,Ts为采样时间。 当Ts=[ ]或Ts=-1时,表示采样时刻未指定。 ③ sys=zpk(z,p,k, ’Property1’, Value1, ’Property2’ , Value2,…, ’PropertyN’, ValueN) 生成具有LTI模型属性的连续零极点增益模型。 ④sys=zpk(z,p,k,Ts , ’Property1’, Value1, ’Property2’ , Value2,…, ’PropertyN’, ValueN) 生成具有LTI模型属性的离散零极点增益模型。 ⑤ sys=zpk(‘s’): 用于生成s域的零极点增益模型。 ⑥ sys=zpk(‘z’, Ts): 用于生成z域的零极点增益模型, 采样周期为Ts。 ⑦ sys_zpk=zpk(sys): 将其它模型转换成零极点增益模型(s→s, z→z)。
例:用MATLAB语句表示模型
a=
解: A=[0 1 0;0 0 1;-5 -20 -1]; B=[0;0;1]; C=[1 0 0]; D=0; sys=ss(A,B,C,D)
x1 x2 x3 x1 0 1 0 x2 0 0 1 x3 -5 -20 -1 b= u1 x1 0 x2 0 x3 1 c= x1 x2 x3 y1 1 0 0 d= u1 y1 0 Continuous-time model.
3.1.1 传递函数模型(transfer function model) 连续系统传递函数为:
离散系统传递函数为:
MATLAB中可采用 tf 函数建立传递函数。 设 num=[b0,b1,…,bm]为分子多项式系数组成的向量, den=[a0,a1,…,an]为分母多项式系数组成的向量。
其调用格式为:
Transfer function: 6 s^3 + 12 s^2 + 6 s + 10 ---------------------------------s^4 + 2 s^3 + 3 s^2 + s + 1
例:给定系统的输入为u,输出为y,传递函数为:
用MATLAB语句表示该传递函数。 解: ‘outputname’, ‘inputdelay’,‘inputname’ num=[1.3,0,2.5]; 之间没有严格的逻辑顺序 den=[1,0.5,1.2,0]; sys=tf(num,den,'inputdelay',2,'inputname','u','outputname','y')
例: MIMO系统的传递函数为:
用MATLAB语句表示该传递函数。
解: Transfer function from input 1 to output... 1 num={1,[1,1];1,[1,1]}; #1: -----s+1 den={[1,1],1;[1,5,6],[1,2]}; 1 #2: ---------------sys=tf(num,den)
>> conv([1,2],[1,6,6]) ans = 1 8 18 12 当相乘的多项式多于两个时,需采用函数的嵌套。
>>conv([1,0],conv([1,1],[1,3,2,5])) ans = 1 4 5 7 5 0
例:给定SISO系统的传递函数为:
用MATLAB语句表示该传递函数。 解: num=4*conv([1,2],[1,6,6]); den=conv([1,0],conv([1,1],[1,3,2,5])); sys=tf(num,den)
⑦ sys_tf=tf(sys): 将其它模型转换成传递函数的形式(s→s,z→z)
例:给定SISO系统的传递函数为: 用MATLAB语句表示该传递函数。 解: 法1: num=[6,12,6,10]; den=[1,2,3,1,1]; sys=tf(num,den) 法2: s=tf('s'); sys=(6*s^3+12*s^2+6*s+10)/(s^4+2*s^3+3*s^2+s+1)
④ sys=tf(num,den,Ts ,’Property1’,Value1,’Property2’ ,Value2,…, ’ PropertyN’,ValueN):生成具有LTI模型属性的离散传递函数。 ⑤ sys=tf(‘s’):用于生成s域的有理传递函数 ⑥ sys=tf(‘z’, Ts):用于生成z域的有理传递函数,且采样周期为Ts
相关文档
最新文档