传递函数,Z变换与差分方程之间的转化

 

目录

传递函数的形式

Z函数

差分方程形式


在我们进行PID控制器或现代控制理论设计时,经常遇到三者之间的转换,下面将阐述一下如何在MATLAB上操作。
注意!下面所有的“*”即半角单引号,都被替换成了星号*,所以务必注意!!
 

传递函数的形式

假设传递函数为:

G(s)=e^{-0.004s}\frac{400}{s^{2}+50s}
在matlab里面建立这个传递函数的命令就是:

sys=tf(400,[1,50,0],*inputdelay*,0.004);%inputdelay两边的*号改成半角单引号!!


Z函数

把传递函数离散化就得到Z函数,在matlab里面离散化命令是: 

dsys=c2d(sys,0.001,*z*);//z两边的*号改成半角单引号!!

 其中T=0.001s为采样时间。

G(z)=\frac{z^{-4}*(0.0001967z+0.0001935)}{z^2-1.951z+0.9512}\\ =\frac{z^{-4}*(0.0001967z^{-1}+0.0001935z^{-2})}{1-1.951z^{-1}+0.9512z^{-2}}\\ =\frac{Y(z)}{U(z)}                                                                         (2)
(2)式可写成:

z^{-4}*(0.0001967z^{-1}+0.0001935z^{-2})U(z)=(1-1.951z^{-1}+0.9512z^{-2})Y(z)                     (3)

当然离散化的方法有很多,比如双线性变换(也叫Tustin变换),变换子为:

s\Rightarrow \frac{2}{T}\frac{1-z^{-1}}{1+z^{-1}}

相应的代码为

dsys=c2d(sys,0.001,'tustin');

其他还有改进双线性变换的离散化方法。


差分方程形式

由(3)式可得

(0.0001967z^{-5}+0.0001935z^{-6})U(z)=(1-1.951z^{-1}+0.9512z^{-2})Y(z)                        (4)

利用Z变换的滞后性质:

Z[y(kT-nT)]=z^{-n}Y(z)

对前式进行变换(注意与Z的反变换不同),如左边的z^{-5}U(z)可写成u(k-5),右边的z^{-1}Y(z)可写成y(k-1)
可得:

0.0001967u(k-5)+0.0001935u(k-6) \\=y(k)-1.951y(k-1)+0.9512y(k-2)                                                 (5)
由(5)式得

y(k)\\ =-1.951y(k-1)+0.9512y(k-2)-0.0001967u(k-5)-0.0001935u(k-6)
即差分方程形式,下面就可以编程进行数值计算了。

  • 25
    点赞
  • 153
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
作者: 程金发 出版社: 厦门大学出版社 出版年: 2011-3 页数: 283 定价: 45.00元 丛书: 厦门大学南强丛书 ISBN: 9787561538470 内容简介 · · · · · · 《分数阶差分方程理论》的目的和内容是:首次独立提出了一种新的分数阶差分、分数阶和分,以及分数阶差分方程的定义,建立了分数阶差分方程的系统理论,需要特别指出的是,运用我们的这种定义,使得系统求解分数阶差分方程得以成功实现,当我们把分数差分方程看作是整数差分方程的推广时,自然期望经典差分方程理论的一些重要结果都尽可能地推广到分数阶差分方程中去,事实上,我们系统地完成了许多相应的工作。 目录 · · · · · · 总序 序言 前言 第一章 分数阶差分及分数阶和分的概念及其性质,莱及尼兹公式 第二章 分数阶和分及分数阶差分的Z变换公式 第三章 分数阶差分方程解的存在唯一性,解对初值的依赖性 第四章 显示解分数差分方程的方法 第五章 用待定系数法解(2,q)阶分数差方程 第六章 (k,q)分数阶差分方程Z变换方法求解 第七章 Z变换法解线性常系数分数阶差分方程 第八章 序列差分方程理论 第九章 分数阶差分方程组(约当矩阵法) 第十章 分数阶Green函数 第十一章 用Adomian分解法解线性分数阶差分方程及方程组 第十二章 Weyl型分数阶差分及分数阶和分的概念及其性质,莱布尼兹公式 第十三章 实变量的分数阶差分方程 参考文献 后记
将MATLAB中离散系统的传递函数转化差分方程的方法如下: 1. 首先,将传递函数表示为z变换形式。在MATLAB中,可以使用`tf`函数创建离散系统的传递函数对象。例如,假设传递函数为H(z),可以使用如下代码创建传递函数对象: `H = tf([b0, b1, b2], [1, a1, a2], Ts)` 其中,`[b0, b1, b2]`是传递函数的分子多项式系数,`[1, a1, a2]`是传递函数的分母多项式系数,`Ts`是采样时间。 2. 使用`c2d`函数将传递函数对象转化差分方程形式。`c2d`函数允许将连续系统或离散系统转化差分方程。例如,使用如下代码将传递函数对象H转化差分方程: `[num, denom] = tfdata(H, 'v')` `numD = num * Ts` `denomD = denom * Ts` `[A, B, C, D] = tf2ss(numD, denomD)` `sysD = ss(A, B, C, D, Ts)` 上述代码中,`tfdata`函数用于提取传递函数的分子和分母多项式系数,`* Ts`用于将传递函数离散化,`tf2ss`函数用于将离散系统转化为状态空间形式,最后使用`ss`函数创建相应的离散系统对象。 3. 最后,差分方程形式的传递函数可以通过离散状态空间模型sysD中的状态方程表示。一般形式如下: `x(k+1) = A * x(k) + B * u(k)` `y(k) = C * x(k) + D * u(k)` 其中,`x(k)`表示系统的状态向量,`u(k)`表示系统的输入向量,`y(k)`表示系统的输出向量,`A`、`B`、`C`、`D`分别为状态空间模型的矩阵。 在MATLAB中,可以进一步提取差分方程的系数以及状态变量对应的初始条件,并使用这些信息进行进一步的分析和设计。 通过上述步骤,我们可以将MATLAB中的离散系统传递函数转化差分方程,从而方便进行系统分析和控制设计。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值