控制工程基础教案实验1典型环节的模拟(matlab应用于机械控制工程)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“机械控制工程基础答案”。
线性控制系统分析与设计 6.1.2传递函数描述法
MATLAB中使用tf命令来建立传递函数。语法:
G=tf(num,den)
%由传递函数分子分母得出 说明:num为分子向量,num=[b1,b2,…,bm,bm+1];den为分母向量,den=[a1,a2,…,an-1,an]。【例6.1续】将二阶系统描述为传递函数的形式。
num=1;den=[1 1.414 1];G=tf(num,den)
%得出传递函数 6.1.3零极点描述法
MATLAB中使用zpk命令可以来实现由零极点得到传递函数模型。语法:
G=zpk(z,p,k)
%由零点、极点和增益获得 说明:z为零点列向量;p为极点列向量;k为增益。【例6.1续】得出二阶系统的零极点,并得出传递函数。z=roots(num)
p=roots(den)
zpk(z,p,1)
程序分析:roots函数可以得出多项式的根,零极点形式是以实数形式表示的。部分分式法是将传递函数表示成部分分式或留数形式:
【例6.1续】将传递函数转换成部分分式法,得出各系数。
[r,p,k]=residue(num,den)
2.脉冲传递函数描述法
脉冲传递函数也可以用tf命令实现。语法:
G=tf(num,den,Ts)
%由分子分母得出脉冲传递函数
说明:Ts为采样周期,为标量,当采样周期未指明可以用-1表示,自变量用'z'表示。【例6.2续】创建离散系统脉冲传递函数。
num1=[0.5 0];den=[1-1.5 0.5];G1=tf(num1,den,-1)
3.零极点增益描述法
离散系统的零极点增益用zpk命令实现。语法:
G=zpk(z,p,k,Ts)
%由零极点得出脉冲传递函数 【例6.2续】使用zpk命令产生零极点增益传递函数。
G3=zpk([0],[0.5 1],0.5,-1)
6.2线性系统模型之间的转换 6.2.1连续系统模型之间的转换 控制系统工具箱中有各种不同模型转换的函数,如下表6.1所示为线性系统模型转换的函数。表6.1 线性系统模型转换函数表 函数
调用格式
功能
tf2
[a,b,c,d]=tf2(num,den)
传递函数转换为状态空间
tf2zp
[z,p,k]=tf2zp(num,den)
传递函数转换为零极点描述
2tf
[num,den]=2tf(a,b,c,d,iu)
状态空间转换为传递函数
2zp
[z,p,k]=2zp(a,b,c,d,iu)
状态空间转换为零极点描述
zp2
[a,b,c,d]=zp2(z,p,k)
零极点描述转换为状态空间
zp2tf
[num,den]=zp2tf(z,p,k)
零极点描述转换为传递函数
2.get命令和set命令
(1)get命令可以获取模型对象的所有属性 语法:
get(G)
%获取对象的所有属性值
get(G,’PropertyName’,…)
%获取对象的某些属性值 说明:G为模型对象名;’PropertyName’为属性名。(2)set命令用于修改对象属性名 语法:
set(G,’PropertyName’,PropertyValue,…)%修改对象的某些属性值
【例6.5】已知二阶系统的传递函数,获取其传递函数模型的属性,并将传递函数修改为。
num=1;den=[1 1.414 1];G=tf(num,den);
get(G)
set(G,'den',[1 2 1],'Variable','s')
G
%获取所有属性 %设置属性
6.3结构框图的模型表示 1.串联结构
SISO的串联结构是两个模块串联在一起,如图6.1所示。实现串联结构传递函数的命令:
G=G1*G2
G=series(G1,G2)2.并联结构
SISO的并联结构是两个模块并联在一起,如图6.2所示。实现并联结构传递函数的命令:
G=G1+G2
G=parallel(G1,G2)3.反馈结构
反馈结构是前向通道和反馈通道模块构成正反馈和负反馈,如图6.3所示。实现反馈结构传递函数的命令:
G=feedback(G1,G2,Sign)说明:Sign用来表示正反馈或负反馈,Sign=-1或省略则表示为负反馈。【例6.6】根据系统的结构框图求出整个系统的传递函数,结构框图如图6.4所示,其中,。
G1=tf(1,[1 2 1])
G2=tf(1,[1 1]);G3=tf(1,[2 1]);G4=tf(1,[1 0]);G12=G1+G2
G34=G3-G4 %并联结构 %并联结构
G=feedback(G12,G34,-1)%反馈结构
4.复杂的结构框图
求取复杂结构框图的数学模型的步骤:(1)将各模块的通路排序编号;
(2)建立无连接的数学模型:使用append命令实现各模块未连接的系统矩阵。G=append(G1,G2,G3,…)
(3)指定连接关系:写出各通路的输入输出关系矩阵Q,第一列是模块通路编号,从第二列开始的几列分别为进入该模块的所有通路编号;INPUTS变量存储输入信号所加入的通路编号;OUTPUTS变量存储输出信号所在通路编号。(4)使用connect命令构造整个系统的模型。Sys=connect(G,Q,INPUTS,OUTPUTS)如果各模块都使用传递函数,也可以用blkbuild命令建立无连接的数学模型,则第二步修改如下:
将各通路的信息存放在变量中:通路数放在nblocks,各通路传递函数的分子和分母分别放在不同的变量中;用blkbuild命令求取系统的状态方程模型。
【例6.7】根据图6.5所示系统结构框图,求出系统总的传递函数。方法一:使用append命令
(1)将各模块的通路排序编号,如图6.6所示。(2)使用append命令实现各模块未连接的系统矩阵
G1=tf(1,[1 0]);G2=tf(1,[1 1 0]);G3=tf(1,[1 1 0]);G4=tf(-2,1);G5=tf(-1,1);G6=tf(1,[1 0]);G7=tf(-1,[1 1]);Sys=append(G1,G2,G3,G4,G5,G6,G7)
程序分析:将每个模块用append命令放在一个系统矩阵中,可以看到Sys模块存放了七个模块的传递函数,为了节省篇幅在此未列出完整的Sys模块。(3)指定连接关系
Q=[1 6 5;
%通路1的输入信号为通路6和通路5 2 1 7;
%通路2的输入信号为通路1和通路7 3 2 0;
%通路3的输入信号为通路2 4 3 0;5 4 0;6 2 0;7 3 0;] INPUTS=1;%系统总输入由通路1输入
OUTPUTS=4;
%系统总输出由通路4输出 程序分析:Q矩阵建立了各通路之间的关系,共有7行;每行的第一列为通路号,从第二列开始为各通路输入信号的通路号;INPUTS变量存放系统输入信号的通路号;OUTPUTS变量存放系统输出信号的通路号。
(4)使用connect命令构造整个系统的模型
G =connect(Sys,Q,INPUTS,OUTPUTS)