单片机/DSP数字化控制与Z变换 满满的干货!
本帖最后由 mega99 于 2023-2-4 09:46 编辑回复本帖显示全部内容和下载附件
#申请原创#
我们知道,在利用单片机或者是DSP进行控制的时候,被控制量一般是模拟量,所以需要AD采样转换成数字量,
再通过数字量的变换处理去控制模拟量,这个过程实际就是数字信号处理的过程。这里讲下数字PID控制,在
网路上搜了下PID数字控制的相关资料,发现有部分的推导公式是错误的,而且没有一个采用Z变换来求解PID数字
控制序列信号,特别是在数字控制的离散化这块基本化是利用微分方程进行的,比喻 df(t)/dt ,那么数字离散成
f(n) - f(n-1) / T来近似(以下讲的都是右向序列,不对收敛ROC做讨论),下面我用Z的反变换来推导PID的数字控制序列,这些
方法可以推广到其他的数字控制中,实现从f(t)-->F(s)-->F(z)-->f(k) 数字化控制,而Z变换就是这个利器,这中间还涉及零极点
的数字化补偿,这里主要是利用逆向Z变换来求数字控制序列 x **** Hidden Message *****
通过本贴,你将彻底弄明白PID数字控制的原理
下图是经典的PID控制框图
本帖最后由 mega99 于 2023-1-26 14:34 编辑
对连续的模拟量f(t)采样,按理想的采样器完成模型建立就是f(t) * δT(t)
在时间轴上离散化就是f(kT) * δT(t - kT) ,这就是f(t)在 δT(t - kT)的作用下得到一系列的幅度为f(kT)冲激串,
这个冲激串是离散的信号
这就是我们采样后得到的序列信号,这些信号可以直接存在的计算机或者控制的内存单元x下图中es(t) = e(k) ,
这种离散信号可以直接存在x数组中,完成了数字化的采样
本帖最后由 mega99 于 2023-1-26 12:27 编辑
对于上式,两边取拉普拉斯变换就是离散的拉普拉斯信号,再映射到z平面就是z函数了
一般地,对一个模拟系统数字化控制,可以先求出系统的传递函数H(s)(这样更简单)
再通过s变换到z域,然后通过z函数求解差分方程,也就反变换求出序列信号f(k),根据上图①的
模拟PID控制函数,很容易得到下面的传递函数H(s)
本帖最后由 mega99 于 2023-1-26 12:34 编辑
通过后向差分,把H(s)转换成关于Z的H(z)函数 ,图④ 离散的拉普拉斯变换后是关于s的函数,现在要映射到关于z的平面上
令 z = e^(sT) ,实现了s-->z的映射
U(z)是一个关于z的幂级数
下面给出z的通项公式
本帖最后由 mega99 于 2023-1-26 15:53 编辑
通过④式反Z变换,得到关于u(k)的序列信号 图⑥
**** Hidden Message *****
本帖最后由 mega99 于 2023-1-29 13:42 编辑
对⑥式进行合并化简后为下图式子,这个式子在网络上大部分是对的,实际控制中
为了调试方便还是不要PID三项控制分开
本帖最后由 mega99 于 2023-1-29 13:42 编辑
转换成增量PID
学习学习 本帖最后由 mega99 于 2023-1-29 13:47 编辑
上式转换成增量PID
回复有附件**** Hidden Message *****
宇宙第一了。 好好学习! 谢谢分享。 学习了解一下,多谢楼主分享。 okokoklokokk 谢谢楼主 谢谢分享! 没有回复之前没有看到具体代码,希望回复以后能看到具体代码,还有能说下具体单片机型号。 了解一下 挺复杂的,有简化的吗?