控制工程基础教案实验1典型环节的模拟(matlab应用于机械控制工程)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[z,p,k]=ss2zp(a,b,c,d,iu)
状态空间转换为零极点描述
zp2ss
[a,b,c,d]=zp2ss(z,p,k)
零极点描述转换为状态空间
zp2tf
[num,den]=zp2tf(z,p,k)
零极点描述转换为传递函数
2. get命令和set命令
(1) get命令可以获取模型对象的所有属性
【例6.5】已知二阶系统的传递函数,获取其传递函数模型的属性,并将传递函数修改为。
num=1;
den=[1 1.414 1wk.baidu.com;
G=tf(num,den);
get(G)%获取所有属性
set(G,'den',[1 2 1],'Variable','s')%设置属性
G
6.3结构框图的模型表示
1.串联结构
SISO的串联结构是两个模块串联在一起,如图6.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,…)
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
脉冲传递函数也可以用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所示为线性系统模型转换的函数。
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续】得出二阶系统的零极点,并得出传递函数。
实现串联结构传递函数的命令:
G=G1*G2
G=series(G1,G2)
2.并联结构
SISO的并联结构是两个模块并联在一起,如图6.2所示。
实现并联结构传递函数的命令:
G=G1+G2
G=parallel(G1,G2)
3.反馈结构
反馈结构是前向通道和反馈通道模块构成正反馈和负反馈,如图6.3所示。
实现反馈结构传递函数的命令:
(3)指定连接关系:写出各通路的输入输出关系矩阵Q,第一列是模块通路编号,从第二列开始的几列分别为进入该模块的所有通路编号;INPUTS变量存储输入信号所加入的通路编号;OUTPUTS变量存储输出信号所在通路编号。
(4)使用connect命令构造整个系统的模型。
Sys=connect(G,Q,INPUTS,OUTPUTS)
表6.1线性系统模型转换函数表
函数
调用格式
功能
tf2ss
[a,b,c,d]=tf2ss(num,den)
传递函数转换为状态空间
tf2zp
[z,p,k]=tf2zp(num,den)
传递函数转换为零极点描述
ss2tf
[num,den]=ss2tf(a,b,c,d,iu)
状态空间转换为传递函数
ss2zp
如果各模块都使用传递函数,也可以用blkbuild命令建立无连接的数学模型,则第二步修改如下:
将各通路的信息存放在变量中:通路数放在nblocks,各通路传递函数的分子和分母分别放在不同的变量中;用blkbuild命令求取系统的状态方程模型。
【例6.7】根据图6.5所示系统结构框图,求出系统总的传递函数。
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]);
方法一:使用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]);
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)
线性控制系统分析与设计
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续】将二阶系统描述为传递函数的形式。
语法:
get(G)%获取对象的所有属性值
get(G,’PropertyName’,…)%获取对象的某些属性值
说明:G为模型对象名;’PropertyName’为属性名。
(2) set命令用于修改对象属性名
语法:
set(G,’PropertyName’,PropertyValue,…) %修改对象的某些属性值
z=roots(num)
p=roots(den)
zpk(z,p,1)
程序分析:roots函数可以得出多项式的根,零极点形式是以实数形式表示的。
部分分式法是将传递函数表示成部分分式或留数形式:
【例6.1续】将传递函数转换成部分分式法,得出各系数。
[r,p,k]=residue(num,den)
2.脉冲传递函数描述法
状态空间转换为零极点描述
zp2ss
[a,b,c,d]=zp2ss(z,p,k)
零极点描述转换为状态空间
zp2tf
[num,den]=zp2tf(z,p,k)
零极点描述转换为传递函数
2. get命令和set命令
(1) get命令可以获取模型对象的所有属性
【例6.5】已知二阶系统的传递函数,获取其传递函数模型的属性,并将传递函数修改为。
num=1;
den=[1 1.414 1wk.baidu.com;
G=tf(num,den);
get(G)%获取所有属性
set(G,'den',[1 2 1],'Variable','s')%设置属性
G
6.3结构框图的模型表示
1.串联结构
SISO的串联结构是两个模块串联在一起,如图6.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,…)
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
脉冲传递函数也可以用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所示为线性系统模型转换的函数。
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续】得出二阶系统的零极点,并得出传递函数。
实现串联结构传递函数的命令:
G=G1*G2
G=series(G1,G2)
2.并联结构
SISO的并联结构是两个模块并联在一起,如图6.2所示。
实现并联结构传递函数的命令:
G=G1+G2
G=parallel(G1,G2)
3.反馈结构
反馈结构是前向通道和反馈通道模块构成正反馈和负反馈,如图6.3所示。
实现反馈结构传递函数的命令:
(3)指定连接关系:写出各通路的输入输出关系矩阵Q,第一列是模块通路编号,从第二列开始的几列分别为进入该模块的所有通路编号;INPUTS变量存储输入信号所加入的通路编号;OUTPUTS变量存储输出信号所在通路编号。
(4)使用connect命令构造整个系统的模型。
Sys=connect(G,Q,INPUTS,OUTPUTS)
表6.1线性系统模型转换函数表
函数
调用格式
功能
tf2ss
[a,b,c,d]=tf2ss(num,den)
传递函数转换为状态空间
tf2zp
[z,p,k]=tf2zp(num,den)
传递函数转换为零极点描述
ss2tf
[num,den]=ss2tf(a,b,c,d,iu)
状态空间转换为传递函数
ss2zp
如果各模块都使用传递函数,也可以用blkbuild命令建立无连接的数学模型,则第二步修改如下:
将各通路的信息存放在变量中:通路数放在nblocks,各通路传递函数的分子和分母分别放在不同的变量中;用blkbuild命令求取系统的状态方程模型。
【例6.7】根据图6.5所示系统结构框图,求出系统总的传递函数。
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]);
方法一:使用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]);
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)
线性控制系统分析与设计
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续】将二阶系统描述为传递函数的形式。
语法:
get(G)%获取对象的所有属性值
get(G,’PropertyName’,…)%获取对象的某些属性值
说明:G为模型对象名;’PropertyName’为属性名。
(2) set命令用于修改对象属性名
语法:
set(G,’PropertyName’,PropertyValue,…) %修改对象的某些属性值
z=roots(num)
p=roots(den)
zpk(z,p,1)
程序分析:roots函数可以得出多项式的根,零极点形式是以实数形式表示的。
部分分式法是将传递函数表示成部分分式或留数形式:
【例6.1续】将传递函数转换成部分分式法,得出各系数。
[r,p,k]=residue(num,den)
2.脉冲传递函数描述法