第五章-matlab在自动控制原理中的应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
借助多项式乘法函数conv来处理: 》num=4*conv([1,2],conv([1,6,6],[1,6,6])); 》den=conv([1,0],conv([1,1],conv([1,1],conv([1,1], [1,3,2,5]))));
s3 + 11s2 + 30s 零极点增益模型: G( s) = 4 3 2 s + 9 s + 45 s + 87s + 50 》num=[1,11,30,0];
•
对象名称
属性名称 den
意 义 传递函数分母系数 传递函数分子系数 传递函数变量 增益 极点 零极点增益模型变量 零点 系数矩阵 系数矩阵 系数矩阵 系数矩阵 系数矩阵 状态变量名
属性值的变量类型 由行数组组成的单元阵列 由行数组组成的单元阵列 s、z、p、k、z-1中之一 二维矩阵 由行数组组成的单元阵列 s、z、p、k、z-1中之一 由行数组组成的单元阵列 二维矩阵 二维矩阵 二维矩阵 二维矩阵 二维矩阵 字符串单元向量
二、零极点增益模型
• 零极点模型实际上是传递函数模型的另一种表现形式, 其原理是分别对原系统传递函数的分子、分母进行分解 因式处理,以获得系统的零点和极点的表示形式。
(s − z1 )(s − z2 )...(s − zm ) G(s) = K (s − p1 )(s − p2 )...(s − pn )
• 2.LTI对象 •
为了对系统的调用和计算带来方便。根据软件 工程中面向对象的思想,MATLAB通过建立专用的 数据结构类型,把线性时不变系统(LTI)的各种模型 封装成为统一的LTI对象。 MATLAB 控制系统工具箱中规定的 LTI 对象包 含了三种子对象: ss 对象、 tf 对象和 zpk 对象。每 个对象都具有其属性和方法,通过对象方法可以存 取或者设置对象的属性值。
•
• 属性说明:(1)当系统为离散系统时,给出了系统的采样周期 Ts。Ts=0或缺省时表示系统为连续时间系统;Ts=-1表示系 统是离散系统,但它的采样周期未定。 • • (2) 输入时延Td仅对连续时间系统有效,其值为由每个 输入通道的输入时延组成的时延数组,缺省表示无输入时延。 (3)输入变量名InputName 和输出变量名 OutputName 允 许用户定义系统输入输出的名称,其值为一字符串单元数 组,分别与输入输出有相同的维数,可缺省。 (4)Notes 和用户数据 Userdata 用以存储模型的其它信 息,常用于给出描述模型的文本信息,也可以包含用户需要 的任意其它数据,可缺省。
2.LTI模型的转换函数
表 模型检测函数
函数名及 调用格式 isct(sys) isdt(sys) isempty(sys) isproper issiso(sys) size(sys) 功 能 判断LTI对象sys是否为连续时间系统。若是,返回1;否 则返回0 判断LTI对象sys是否为离散时间系统。若是,返回1;否 则返回0 判断LTI对象sys是否为空。若是,返回1;否则返回0 判断LTI对象sys是否为特定类型对象。若是,返回1;否 则返回0 判断LTI对象sys是否为SISO系统。若是,返回1;否则返 回0 返回系统sys的维数
表 生成LTI模型的函数
函数名称及基本格式 dss(a, b, c, d, …) filt(num, den, …) ss(a, b, c, d, …) tf(num, den, …) zpk(z, p, k, …) 功 能 生成(或将其它模型转换为)描述状态空间模型 生成(或将其它模型转换为)DSP形式的离散传递函数 生成(或将其它模型转换为)状态空间模型 生成(或将其它模型转换为)传递函数模型 生成(或将其它模型转换为)零极点增益模型
• 按系统性能分:线性系统和非线性系统;连续系统 和离散系统;定常系统和时变系统;确定系统和不 确定系统。 1、线性连续系统:用线性微分方程式来描述,如果 微分方程的系数为常数,则为定常系统;如果系数 随时间而变化,则为时变系统。我们所讨论的系统 主要以线性定常连续系统为主。 2、线性定常离散系统:离散系统指系统的某处或多 处的信号为脉冲序列或数码形式。这类系统用差分 方程来描述。 3、非线性系统:系统中有一个元部件的输入输出特 性为非线性的系统。
K为系统增益,zi为零点,pj为极点 �在MATLAB中零极点增益模型用[z,p,K]矢量组表示。 即: �z=[z1,z2,…,zm] �p=[p1,p2,...,pn] �K=[k] �函数tf2zp()可以用来求传递函数的零极点和增益。
三、部分分式展开 • 控制系统常用到并联系统,这时就要对系统函 数进行分解,使其表现为一些基本控制单元的 和的形式。 • 函数[r,p,k]=residue(b,a)对两个多项式的比进行 部分展开,以及把传函分解为微分单元的形式。 • 向量b和a是按s的降幂排列的多项式系数。部 分分式展开后,余数返回到向量r,极点返回到 列向量p,常数项返回到k。 • [b,a]=residue(r,p,k)可以将部分分式转化为多项 式比p(s)/q(s)。
典型系统的生成
1.随机生成N阶稳定的连续状态空间模型函数rss( ) 格式:sys = rss(N,P,M) 功能:随机生成 N 阶稳定的连续状态空间模型,该 系统具有 M 个输入, P 个输出。缺省是 P=M=1 ,即 sys=rss(N)。 2. 随机生成N阶稳定的连续线性模型系数函数 rmodel( ) 格式:[num,den]=rmodel(N,P) 功能:生成一个N阶连续的传递函数模型系统, 该系统具有P个输出。
部分分式展开: 》num=[2,0,9,1]; 》den=[1,1,4,4]; [r,p,k]=residue(num,den) 》 r= p= 0.0000-0.2500i 0.0000+0.2500i -2.0000 0.0000+2.0000i 0.0000-2.0000i -1.0000
2s3 + 9s + 1 G(s) = 3 2 s + s + 4s + 4
》den=[1,9,45,87,50]; [z,p,k]=tf2zp(num,den) 》 z= p= k= 0 -6 -5 -3.0000+4.0000i -3.0000-4.0000i -2.0000 -1.0000 1
s(s + 6)(s + 5) G(s) = 结果表达式: (s + 1)(s + 2)(s + 3 + 4 j )(s + 3 − 4 j )
tf对象 (传递函数)
num variable k
p zpk对象 (零极点增益) variable z a b ss对象 (状态空间) c d e StateNam e
LTI模型的建立及转换函数
在MATLAB的控制系统工具箱中,各种 LTI 对象模型的 生成和模型间的转换都可以通过一个相应函数来实现。
一、连续系统的传递函数模型
连续系统的传递函数如下:
C(s) b1sm + b2sm−1 + ... + bn s + bm+1 G(s) = = n n −1 R(s) a1s + a2s + ... + an s + an+1
对线性定常系统,式中s的系数均为常数,且 a1不等于零,这时系统在MATLAB中可以方便 地由分子和分母系数构成的两个向量唯一地确 定出来,这两个向量分别用num和den表示。 num=[b1,b2,…,bm,bm+1] den=[a1,a2,…,an,an+1] 注意:它们都是按s的降幂进行排列的。
• P150 • 例10-5,10-6,10-7
LTI 对象属性的设置与转换 LTI对象属性的设置与转换
1.LTI对象属性的获取与设置 表 对象属性的获取和修改函数
函数名称及基本格式 ’, 数值, …) get(sys, ‘PropertyName PropertyName’ ’, 数值, …) set(sys, ‘PropertyName PropertyName’ ssdata, dssdata(sys) tfdata(sys) zpkdata(sys) class 功 能 获得LTI对象的属性 设置和修改LTI对象的属性 获得变换后的状态空间模型参数 获得变换后的传递函数模型参数 获得变换后的零极点增益模型参数 模型类型的检测
k= 2
− 0.25i 0.25i − 2 + + 结果表达式:G( s) = 2 + s − 2i s + 2i s + 1
• P146 • 例10-1,10ຫໍສະໝຸດ Baidu2,10-3 • 自动控制原理教材 • P131 • 例3-16
控制系统的描述与LTI对象
在MATLAB的Control System Toolbox(控制系统工 具箱)中提供了许多仿真函数与模块,用于对控制系统 的仿真和分析。 1.控制系统的模型及转换 线性控制系统是一般线性系统的子系统。在 MATLAB中,对自动控制系统的描述采用三种模型: 状态空间模型(ss)、传递函数模型(tf)以及零极点增益 模型 (zpk) 。模 型 转 换 函 数 : ss2tf , ss2zp , tf2ss , tf2zp,zp2ss和zp2tf。
第五章 MATLAB在自动控制原理的应用
5.1 控制系统的传递函数模型 5.2 控制系统的时域分析 5.3 控制系统的根轨迹 5.4 控制系统的频域分析 5.5 系统的状态空间分析函数 5.6 极点配置和观测器设置 5.7 最优控制系统设计
第五章 控制系统的数学描述与建模
� 控制系统的数学模型在控制系统的研究中有着相当重要的 地位,要对系统进行仿真处理,首先应当知道系统的数学 模型,然后才可以对系统进行模拟。同样,如果知道了系 统的模型,才可以在此基础上设计一个合适的控制器,使 得系统响应达到预期的效果,从而符合工程实际的需要。 �在线性系统理论中,一般常用的数学模型形式有:传 递函数模型(系统的外部模型)、状态方程模型(系统 的内部模型)、零极点增益模型和部分分式模型等。这 些模型之间都有着内在的联系,可以相互进行转换。
5.1 控制系统的传递函数模型
• 微分方程是控制系统模型的基础,一般来讲,利 用机械学、电学、力学等物理规律,便可以得到 控制系统的动态方程,这些方程对于线性定常连 续系统而言是一种常系数的线性微分方程。 • 如果已知输入量及变量的初始条件,对微分方程 进行求解,就可以得到系统输出量的表达式,并 由此对系统进行性能分析。 • 通过拉氏变换和反变换,可以得到线性定常系统 的解析解,这种方法通常只适用于常系数的线性 微分方程,解析解是精确的,然而通常寻找解析 解是困难的。MATLAB提供了ode23、ode45等微 分方程的数值解法函数,不仅适用于线性定常系 统,也适用于非线性及时变系统。
[ 例 5-4] 生 成 离 散 系 统 的 零 极 点 模 型 。 MATLAB源程序为: z={[] ,-0.5}; p={0.3,[0.1+2i,0.2-2i]}; k=[2,3]; s6=zpk(z,p,k,-1)
• 运行结果为:
• Zero/pole/gain from input 1 to output: ←从第 1 输入端口至 输出的零极点增益 • 2 • ------• (z-0.3) • Zero/pole/gain from input 2 to output: ←从第 2 输入端口至 输出的零极点增益 • 3 (z+0.5) • ------------------------• (z-(0.1+2i)) (z-(0.2-2i)) • Sampling time: unspecified • 表明该系统为双输入单输出的离散系统。
12s3 + 24s2 + 20 举例:传递函数描述 1)G( s) = 4 2s + 4s3 + 6s2 + 2s + 2
》num=[12,24,0,20];den=[2 4 6 2 2];
4(s + 2)(s2 + 6s + 6)2 2) G( s) = s(s + 1)3 (s3 + 3s2 + 2s + 5)
s3 + 11s2 + 30s 零极点增益模型: G( s) = 4 3 2 s + 9 s + 45 s + 87s + 50 》num=[1,11,30,0];
•
对象名称
属性名称 den
意 义 传递函数分母系数 传递函数分子系数 传递函数变量 增益 极点 零极点增益模型变量 零点 系数矩阵 系数矩阵 系数矩阵 系数矩阵 系数矩阵 状态变量名
属性值的变量类型 由行数组组成的单元阵列 由行数组组成的单元阵列 s、z、p、k、z-1中之一 二维矩阵 由行数组组成的单元阵列 s、z、p、k、z-1中之一 由行数组组成的单元阵列 二维矩阵 二维矩阵 二维矩阵 二维矩阵 二维矩阵 字符串单元向量
二、零极点增益模型
• 零极点模型实际上是传递函数模型的另一种表现形式, 其原理是分别对原系统传递函数的分子、分母进行分解 因式处理,以获得系统的零点和极点的表示形式。
(s − z1 )(s − z2 )...(s − zm ) G(s) = K (s − p1 )(s − p2 )...(s − pn )
• 2.LTI对象 •
为了对系统的调用和计算带来方便。根据软件 工程中面向对象的思想,MATLAB通过建立专用的 数据结构类型,把线性时不变系统(LTI)的各种模型 封装成为统一的LTI对象。 MATLAB 控制系统工具箱中规定的 LTI 对象包 含了三种子对象: ss 对象、 tf 对象和 zpk 对象。每 个对象都具有其属性和方法,通过对象方法可以存 取或者设置对象的属性值。
•
• 属性说明:(1)当系统为离散系统时,给出了系统的采样周期 Ts。Ts=0或缺省时表示系统为连续时间系统;Ts=-1表示系 统是离散系统,但它的采样周期未定。 • • (2) 输入时延Td仅对连续时间系统有效,其值为由每个 输入通道的输入时延组成的时延数组,缺省表示无输入时延。 (3)输入变量名InputName 和输出变量名 OutputName 允 许用户定义系统输入输出的名称,其值为一字符串单元数 组,分别与输入输出有相同的维数,可缺省。 (4)Notes 和用户数据 Userdata 用以存储模型的其它信 息,常用于给出描述模型的文本信息,也可以包含用户需要 的任意其它数据,可缺省。
2.LTI模型的转换函数
表 模型检测函数
函数名及 调用格式 isct(sys) isdt(sys) isempty(sys) isproper issiso(sys) size(sys) 功 能 判断LTI对象sys是否为连续时间系统。若是,返回1;否 则返回0 判断LTI对象sys是否为离散时间系统。若是,返回1;否 则返回0 判断LTI对象sys是否为空。若是,返回1;否则返回0 判断LTI对象sys是否为特定类型对象。若是,返回1;否 则返回0 判断LTI对象sys是否为SISO系统。若是,返回1;否则返 回0 返回系统sys的维数
表 生成LTI模型的函数
函数名称及基本格式 dss(a, b, c, d, …) filt(num, den, …) ss(a, b, c, d, …) tf(num, den, …) zpk(z, p, k, …) 功 能 生成(或将其它模型转换为)描述状态空间模型 生成(或将其它模型转换为)DSP形式的离散传递函数 生成(或将其它模型转换为)状态空间模型 生成(或将其它模型转换为)传递函数模型 生成(或将其它模型转换为)零极点增益模型
• 按系统性能分:线性系统和非线性系统;连续系统 和离散系统;定常系统和时变系统;确定系统和不 确定系统。 1、线性连续系统:用线性微分方程式来描述,如果 微分方程的系数为常数,则为定常系统;如果系数 随时间而变化,则为时变系统。我们所讨论的系统 主要以线性定常连续系统为主。 2、线性定常离散系统:离散系统指系统的某处或多 处的信号为脉冲序列或数码形式。这类系统用差分 方程来描述。 3、非线性系统:系统中有一个元部件的输入输出特 性为非线性的系统。
K为系统增益,zi为零点,pj为极点 �在MATLAB中零极点增益模型用[z,p,K]矢量组表示。 即: �z=[z1,z2,…,zm] �p=[p1,p2,...,pn] �K=[k] �函数tf2zp()可以用来求传递函数的零极点和增益。
三、部分分式展开 • 控制系统常用到并联系统,这时就要对系统函 数进行分解,使其表现为一些基本控制单元的 和的形式。 • 函数[r,p,k]=residue(b,a)对两个多项式的比进行 部分展开,以及把传函分解为微分单元的形式。 • 向量b和a是按s的降幂排列的多项式系数。部 分分式展开后,余数返回到向量r,极点返回到 列向量p,常数项返回到k。 • [b,a]=residue(r,p,k)可以将部分分式转化为多项 式比p(s)/q(s)。
典型系统的生成
1.随机生成N阶稳定的连续状态空间模型函数rss( ) 格式:sys = rss(N,P,M) 功能:随机生成 N 阶稳定的连续状态空间模型,该 系统具有 M 个输入, P 个输出。缺省是 P=M=1 ,即 sys=rss(N)。 2. 随机生成N阶稳定的连续线性模型系数函数 rmodel( ) 格式:[num,den]=rmodel(N,P) 功能:生成一个N阶连续的传递函数模型系统, 该系统具有P个输出。
部分分式展开: 》num=[2,0,9,1]; 》den=[1,1,4,4]; [r,p,k]=residue(num,den) 》 r= p= 0.0000-0.2500i 0.0000+0.2500i -2.0000 0.0000+2.0000i 0.0000-2.0000i -1.0000
2s3 + 9s + 1 G(s) = 3 2 s + s + 4s + 4
》den=[1,9,45,87,50]; [z,p,k]=tf2zp(num,den) 》 z= p= k= 0 -6 -5 -3.0000+4.0000i -3.0000-4.0000i -2.0000 -1.0000 1
s(s + 6)(s + 5) G(s) = 结果表达式: (s + 1)(s + 2)(s + 3 + 4 j )(s + 3 − 4 j )
tf对象 (传递函数)
num variable k
p zpk对象 (零极点增益) variable z a b ss对象 (状态空间) c d e StateNam e
LTI模型的建立及转换函数
在MATLAB的控制系统工具箱中,各种 LTI 对象模型的 生成和模型间的转换都可以通过一个相应函数来实现。
一、连续系统的传递函数模型
连续系统的传递函数如下:
C(s) b1sm + b2sm−1 + ... + bn s + bm+1 G(s) = = n n −1 R(s) a1s + a2s + ... + an s + an+1
对线性定常系统,式中s的系数均为常数,且 a1不等于零,这时系统在MATLAB中可以方便 地由分子和分母系数构成的两个向量唯一地确 定出来,这两个向量分别用num和den表示。 num=[b1,b2,…,bm,bm+1] den=[a1,a2,…,an,an+1] 注意:它们都是按s的降幂进行排列的。
• P150 • 例10-5,10-6,10-7
LTI 对象属性的设置与转换 LTI对象属性的设置与转换
1.LTI对象属性的获取与设置 表 对象属性的获取和修改函数
函数名称及基本格式 ’, 数值, …) get(sys, ‘PropertyName PropertyName’ ’, 数值, …) set(sys, ‘PropertyName PropertyName’ ssdata, dssdata(sys) tfdata(sys) zpkdata(sys) class 功 能 获得LTI对象的属性 设置和修改LTI对象的属性 获得变换后的状态空间模型参数 获得变换后的传递函数模型参数 获得变换后的零极点增益模型参数 模型类型的检测
k= 2
− 0.25i 0.25i − 2 + + 结果表达式:G( s) = 2 + s − 2i s + 2i s + 1
• P146 • 例10-1,10ຫໍສະໝຸດ Baidu2,10-3 • 自动控制原理教材 • P131 • 例3-16
控制系统的描述与LTI对象
在MATLAB的Control System Toolbox(控制系统工 具箱)中提供了许多仿真函数与模块,用于对控制系统 的仿真和分析。 1.控制系统的模型及转换 线性控制系统是一般线性系统的子系统。在 MATLAB中,对自动控制系统的描述采用三种模型: 状态空间模型(ss)、传递函数模型(tf)以及零极点增益 模型 (zpk) 。模 型 转 换 函 数 : ss2tf , ss2zp , tf2ss , tf2zp,zp2ss和zp2tf。
第五章 MATLAB在自动控制原理的应用
5.1 控制系统的传递函数模型 5.2 控制系统的时域分析 5.3 控制系统的根轨迹 5.4 控制系统的频域分析 5.5 系统的状态空间分析函数 5.6 极点配置和观测器设置 5.7 最优控制系统设计
第五章 控制系统的数学描述与建模
� 控制系统的数学模型在控制系统的研究中有着相当重要的 地位,要对系统进行仿真处理,首先应当知道系统的数学 模型,然后才可以对系统进行模拟。同样,如果知道了系 统的模型,才可以在此基础上设计一个合适的控制器,使 得系统响应达到预期的效果,从而符合工程实际的需要。 �在线性系统理论中,一般常用的数学模型形式有:传 递函数模型(系统的外部模型)、状态方程模型(系统 的内部模型)、零极点增益模型和部分分式模型等。这 些模型之间都有着内在的联系,可以相互进行转换。
5.1 控制系统的传递函数模型
• 微分方程是控制系统模型的基础,一般来讲,利 用机械学、电学、力学等物理规律,便可以得到 控制系统的动态方程,这些方程对于线性定常连 续系统而言是一种常系数的线性微分方程。 • 如果已知输入量及变量的初始条件,对微分方程 进行求解,就可以得到系统输出量的表达式,并 由此对系统进行性能分析。 • 通过拉氏变换和反变换,可以得到线性定常系统 的解析解,这种方法通常只适用于常系数的线性 微分方程,解析解是精确的,然而通常寻找解析 解是困难的。MATLAB提供了ode23、ode45等微 分方程的数值解法函数,不仅适用于线性定常系 统,也适用于非线性及时变系统。
[ 例 5-4] 生 成 离 散 系 统 的 零 极 点 模 型 。 MATLAB源程序为: z={[] ,-0.5}; p={0.3,[0.1+2i,0.2-2i]}; k=[2,3]; s6=zpk(z,p,k,-1)
• 运行结果为:
• Zero/pole/gain from input 1 to output: ←从第 1 输入端口至 输出的零极点增益 • 2 • ------• (z-0.3) • Zero/pole/gain from input 2 to output: ←从第 2 输入端口至 输出的零极点增益 • 3 (z+0.5) • ------------------------• (z-(0.1+2i)) (z-(0.2-2i)) • Sampling time: unspecified • 表明该系统为双输入单输出的离散系统。
12s3 + 24s2 + 20 举例:传递函数描述 1)G( s) = 4 2s + 4s3 + 6s2 + 2s + 2
》num=[12,24,0,20];den=[2 4 6 2 2];
4(s + 2)(s2 + 6s + 6)2 2) G( s) = s(s + 1)3 (s3 + 3s2 + 2s + 5)