「计算机控制系统」3. 计算机控制系统的数学描述
差分方程
Z变换
脉冲传递函数
计算机控制系统的响应
文章目录
- 差分方程
-
- 基础知识
- 差分方程的解
- Z变换
-
- 定义与性质
- 求Z变换
-
- Z变换表
- 求Z反变换
- 用Z变换解差分方程
- 脉冲传递函数
-
- 脉冲传递函数与差分方程的相互转化
- 开环脉冲传递函数
- 闭环脉冲传递函数
- 计算机控制系统的响应
差分方程
基础知识
几种不同的差分:
前向差分和后向差分没有本质区别,在控制系统中一般用后向差分。
在连续系统中,用微分方程来描述系统的运动。而在离散系统,则使用差分方程:
差分方程是确定时间序列的方程,因为可以通过递推迭代的方法,用前项求后项:
离散系统的差分方程标准形式:(注意各系数的下标)
差分方程的解
解分为通解和特解。通解是与方程初始状态有关的解。特解是与外部输入有关的解。
解的求法:
求解特征方程,得到特征根:
- n个单根r1,r2,r3,⋯,rnr_1, r_2, r_3, \\cdots, r_nr1,r2,r3,⋯,rn,则通解
y(k)=c1r1k+c2r2k+⋯+cnrnky(k)=c_1 r_1^k+ c_2r_2^k+\\cdots+c_nr_n^ky(k)=c1r1k+c2r2k+⋯+cnrnk - 解rrr为mmm重根,其他为单根r1,r2,r3,⋯,rnr_1, r_2, r_3, \\cdots, r_nr1,r2,r3,⋯,rn,则通解:
y(k)=c11rk+c12krk+⋯+c1mkm−1rk+c1r1k+c2r2k+⋯+cnrnky(k)=c_{11} r^k+ c_{12}kr^k+\\cdots+c_{1m}k^{m-1}r^k+c_1 r_1^k+c_2r_2^k+\\cdots+c_nr_n^ky(k)=c11rk+c12krk+⋯+c1mkm−1rk+c1r1k+c2r2k+⋯+cnrnk
其中各系数根据初始条件来求:
对于后向差分,步骤类似:
Z变换
定义与性质
注意:
- 先采样,然后才有Z变换。多个不同的f(t)f(t)f(t),如果采样后f∗(t)f^*(t)f∗(t)相同,则Z变换相同
- z−1z^{-1}z−1代表信号滞后一个采样周期,可以称为单位延迟因子
- 书写时T可以省略,写作F(z)=∑k=0∞f(k)z−kF(z)=\\sum_{k=0}^{\\infty}f(k)z^{-k}F(z)=∑k=0∞f(k)z−k
性质:
这里只涉及一部分常用的性质。
- 线性性质
Z[af(kT)+bg(kT)]=aF(z)+bG(z)Z[af(kT)+bg(kT)]=aF(z)+bG(z)Z[af(kT)+bg(kT)]=aF(z)+bG(z) - 实位移定理
- 右位移:Z[f(kT−nT)]=z−nF(z)Z[f(kT-nT)]=z^{-n}F(z)Z[f(kT−nT)]=z−nF(z)
- 左位移:Z[f(kT+nT)]=zn[F(z)−∑k=0∞f(kT)z−k]Z[f(kT+nT)]=z^n[F(z)-\\sum_{k=0}^\\infty f(kT)z^{-k}]Z[f(kT+nT)]=zn[F(z)−∑k=0∞f(kT)z−k]
- n=1: Z[f(kT+T)]=z[F(z)−f(0)]Z[f(kT+T)]=z[F(z)-f(0)]Z[f(kT+T)]=z[F(z)−f(0)]
- n=2: Z[f(kT+2T)]=z2[F(z)−f(0)−f(T)z−1]Z[f(kT+2T)]=z^2[F(z)-f(0)-f(T)z^{-1}]Z[f(kT+2T)]=z2[F(z)−f(0)−f(T)z−1]
- 复位移定理
Z[e∓atf(kT)]=F(ze±aT)Z[e^{\\mp at}f(kT)]=F(ze^{\\pm aT})Z[e∓atf(kT)]=F(ze±aT) - 初值定理
如果极限limz→∞F(z)\\displaystyle\\lim_{z \\to \\infty} F(z)z→∞limF(z)存在,则有f(0)=limz→∞F(z)\\displaystyle f(0)=\\lim _{z\\to\\infty} F(z)f(0)=z→∞limF(z) - 终值定理
设系统稳定,则limk→∞f(kT)=limz→1(1−z−1)F(z)=limz→1(z−1)F(z)\\displaystyle \\lim_{k\\to \\infty}f(kT)=\\lim_{z\\to1}(1-z^{-1})F(z)=\\lim _{z\\to 1}(z-1)F(z)k→∞limf(kT)=z→1lim(1−z−1)F(z)=z→1lim(z−1)F(z)
求Z变换
-
级数求和法
即用定义硬算。
注意级数求和要附加收敛条件。 -
部分分式展开法
即先分解,然后查表,再通过线性性质得出Z变换
Z变换表
求Z反变换
-
长除法(幂级数展开法)
简单易行,但因为难以找出规律,所以一般只用来计算前几项。
步骤:分式除法,得到z的降幂序列。利用实位移性质写出对应的f(t)
写成f(kT)f(kT)f(kT)序列形式和f∗(t)f^*(t)f∗(t)时域函数形式都可以。注意省略号不要丢了。 -
部分分式展开法
先分解,后查表。
两个注意的地方:
1.先除z,再进行计算。
2.注意k的取值范围,选取原则是e−akTe^{-akT}e−akT是滞后的而不是超前的(非正幂) -
留数计算法
f(kT)=∑i=1nRes[F(z)zk−1]z→pi\\displaystyle f(kT)=\\sum_{i=1}^n \\text{Res} [F(z)z^{k-1}]_{z\\to p_i}f(kT)=i=1∑nRes[F(z)zk−1]z→pi
即F(z)F(z)F(z)的z反变换等于[F(z)zk−1][F(z)z^{k-1}][F(z)zk−1]在各个极点处留数之和。
例题:
用Z变换解差分方程
这个和用Laplace变换解微分方程是同样的思路。
脉冲传递函数
零初始条件下,线性定常系统,输出采样信号的Z变换与输入采样信号的Z变换之比,称为该系统的脉冲传递函数,或称Z传递函数
G(z)=C(z)R(z)\\displaystyle G(z)=\\frac{C(z)}{R(z)}G(z)=R(z)C(z)
注意:
- 先采样才有Z变换。因此要求输入、输出信号都为采样后信号。输出允许没有采样开关,但列写传递函数时必须设置虚拟采样开关,才能求出Z变换
- 传递函数与输入信号无关,但与采样周期有关
脉冲传递函数的求法:
- 求系统脉冲响应,即为G(s)G(s)G(s),求出:g(t)=L−1[G(s)]g(t)=\\mathscr{L}^{-1}[G(s)]g(t)=L−1[G(s)]
- 采样:g∗(t)=∑k=0∞g(kT)δ(t−kT)g^*(t)=\\sum_{k=0}^{\\infty}g(kT)\\delta(t-kT)g∗(t)=∑k=0∞g(kT)δ(t−kT)
- Z变换:G(z)=Z[g∗(t)]=∑k=0∞g(kT)z−kG(z)=Z[g^*(t)]=\\sum_{k=0}^{\\infty}g(kT)z^{-k}G(z)=Z[g∗(t)]=∑k=0∞g(kT)z−k
脉冲传递函数与差分方程的相互转化
开环脉冲传递函数
闭环脉冲传递函数
- 采样开关在误差通道:
- 一般情况
很多情况下,因为R没有采样,被合并到其他地方先串连再Z变换,变成RG的形式,无法写出C/R的函数,所以改为写输出的函数。
这里注意,开环传函的列写,从某个采样开关开始,按照回路依次列写,直到回到这个采样开关。不必从R开始。
计算机控制系统的响应
其实本质就是Z反变换
这里得到的输出的采样值。
如果想要得到输出值,可以采取如下的方法:
Y(s)=G(s)E∗(s)=G(s)R∗(s)1+GF∗(s)y(t)=L−1[Y(s)]\\begin{aligned} Y(s)=&G(s)E^*(s)\\\\ =&G(s)\\frac{R^*(s)}{1+GF^*(s)}\\\\ y(t)=& \\mathscr{L}^{-1}[Y(s)] \\end{aligned}Y(s)==y(t)=G(s)E∗(s)G(s)1+GF∗(s)R∗(s)L−1[Y(s)]