常规pid算法有缺陷,主要有:1是当偏差发生突变时,微分作用仅在一个周期内起作用,这个也不合理,2是当输入PV值有噪声时,调节器输出波动大,这在前面的图中可以看到,这对机械执行机构不理,使执行机构容易坏,执行机构故障多,自然生产也就不稳定,所以工程上通常用不完全微分PID调节器,文献中有两种类型的不完全微分PID算法,一种是在常规PID算法后串一个一阶延滞环节(比如参见金以慧《过程控制》,即
Gc(s)=Kc*(1+1/(Ti*s)+Td*s)/(Tf*s+1),这种不完全微分PID算法,与前面讲的常规pid算法加过程值(PV)滤波有点相近,仅在设定(SP)有变化的情况下,调节器输出不同,其余情况下是一样的;另一种是在微分环节上串一个一阶延滞环节,这又分为2种,
第1种算法是:
Gc(s)=Kc*(1+1/(Ti*s)+Td*s/(Tf*s+1))
第2种算法是:
Gc(s)=Kc*(1+1/(Ti*s)+Td*s/(Td*s/KD+1))
第1种算法见诸西门子S7-300/400PLC的FB41功能块实现的PID算法中。
第2种算法见诸西门子DR系列调节器实现的PID算法中,如图1所示,图中Tv就是Td,vv就是KD,KD一般称为微分增益,工程上KD通常在5-10范围内取值,我们也采用这种不完全微分PID算法,且取KD=8。
滤波常数Tf可以在2-5sec范围内取值。
我们在《用单片机玩PID控制—从理想PID控制至先进PID控制_8》一文中,已经介绍过用离散相似法计算滤波环节,这里介绍用差分变换计算滤波环节:
1.将拉氏变换传递函数变换为微分方程,这里是滤波环节。
2.将微分方程变换为差分方程。
3.进行数值计算。
具体计算式:
y(k)=α*y(k-1)+(1-α)*x(k)
其中 α=Tf/(Tf+Ts) Ts:采样时间,进一步
4.将数值滤波计算串在微分环节(或PID环节)后面。
5.转换为pid增量计算式。
6.c语言实现。
我们也可以将Td*s/(Tf*s+1)作为一个整体进行差分变换,再作数值计算,或者将Td*s/(Tf*s+1)转换为
(Td/Tf)*(1-1/(Tf*s+1)),再用离散相似法进行计算,这里略过。
采样时间,我们定为1sec,这可以满足过程控制的要求,在STM32F407中用定时器来实现周期循环,具体是用TIM_GetITStatus函数实现定时中断,pid控制算法就放在这个函数条件下,TIM_GetITStatus的用法如下(参见《F407固件库手册》):
ITStatus TIM_GetITStatus ( TIM_TypeDef * TIMx,
uint16_t TIM_IT
)
Checks whether the TIM interrupt has occurred or not.
Parameters:
TIMx,: where x can be 1 to 14 to select the TIM peripheral.
TIM_IT,: specifies the TIM interrupt source to check. This parameter can be one of the following values:
TIM_IT_Update: TIM update Interrupt source
TIM_IT_CC1: TIM Capture Compare 1 Interrupt source
TIM_IT_CC2: TIM Capture Compare 2 Interrupt source
TIM_IT_CC3: TIM Capture Compare 3 Interrupt source
TIM_IT_CC4: TIM Capture Compare 4 Interrupt source
TIM_IT_COM: TIM Commutation Interrupt source
TIM_IT_Trigger: TIM Trigger Interrupt source
TIM_IT_Break: TIM Break Interrupt source
Note:
TIM6 and TIM7 can generate only an update interrupt.
TIM_IT_COM and TIM_IT_Break are used only with TIM1 and TIM8.
Return values:
The new state of the TIM_IT(SET or RESET).
不完全微分PID控制的效果如图2所示,从图中可以看出,输出波动还是比较大,如对PV值作滤波,效果会好很多。
上一篇:用STM32F407玩控制—史密斯预估补偿控制
下一篇:用STM32F407玩控制—常规PID控制
推荐阅读
史海拾趣
随着电子行业的快速发展,AINFO Inc公司积极响应国家产业政策,加快了产业升级的步伐。公司引进了先进的生产设备和技术,实现了智能制造和数字化转型。通过优化生产流程和提高生产效率,公司降低了成本,提高了产品质量,进一步巩固了市场地位。
近年来,电子行业经历了多次技术变革和产业重组。面对这些变革,CT公司积极调整战略方向,加大在人工智能、物联网等新兴领域的研发投入。同时,公司还推出了一系列创新产品和服务,以满足市场的新需求。这些举措使得CT公司在行业变革中保持了领先地位,实现了持续稳健的发展。
CHINFA公司的创立并非一帆风顺。在创业初期,公司面临着资金短缺、技术落后和市场竞争激烈等多重困难。然而,公司的创始人凭借对电子行业的深厚热爱和坚定信念,带领团队克服了一个又一个难关。他们通过自主研发、技术创新和市场拓展,逐渐在行业中崭露头角。
随着技术的不断进步,Atlanta Micro不断推出创新产品,其中最为引人注目的是其开发的一款高性能RF模块。这款产品采用了先进的材料和技术,具有更高的频率稳定性、更低的噪声和更长的使用寿命。这一创新不仅提升了产品的性能,也满足了客户对更高品质产品的需求,进一步巩固了Atlanta Micro在市场上的地位。
BELDEN公司的故事始于1902年,当Joseph C. Belden在美国芝加哥创立这家公司时,他怀揣着对电线电缆制造的深厚热情与独特见解。初创时期,公司致力于研发和生产高品质的电线电缆产品,很快便在市场中赢得了良好的声誉。经过多次试验,公司成功发明了“Beldenamel”绝缘材料,这种柔韧的珐琅绝缘材料为公司的成功奠定了坚实的基础。随着产品的不断优化和市场的逐步拓展,BELDEN逐渐在电子行业中崭露头角。
作为一家拥有百年历史的电子企业,BELDEN公司始终保持着持续创新和可持续发展的理念。公司不断投入研发资金,加强技术研发和创新能力,推出了一系列具有自主知识产权的新产品和技术。同时,公司还注重环保和可持续发展,积极采用环保材料和生产工艺,致力于降低生产过程中的能耗和排放。这些举措不仅提升了公司的竞争力和市场份额,还为公司的长期发展奠定了坚实的基础。
这五个故事从不同角度展示了BELDEN公司在电子行业中的发展历程和成就,体现了公司不断创新、追求卓越的精神。这些事实性的描述旨在客观呈现BELDEN公司的历史与现状,不含任何褒贬之意。
今年可能不光是波形发生,可能还要进行特性分析什么的.比如失真度测试仪.要用到FFT,另外还要采集数据.AD,RAM之类的都会涉及吧.先传点,大家有这方面的资料多多共享!… 查看全部问答∨ |
|
我的C51版本是 8.12 现在有点问题,如下的程序 ACC=Data; for(i=8;i;i--) { ACC=1; C:0x1B03 C3 CLR C C:0x1B04 13 RRC   ...… 查看全部问答∨ |
|
与日常生活中的大多数事务一样,设计一个嵌入式产品的过程也必须从确定目标开始,对生产的产品进行明确定义。对产品进行定义主要是对产品是什么和能有什么功能进行描述,其次是在我们的整个开发过程中,应该要撰写一些开发文档,大概的框架的如下: ...… 查看全部问答∨ |
我用的pxa270,wince6.0与PC机同步使用usb-serial,还是usb-RNDIS,注册表怎么设呢?还有在硬件设计上,我们没有接正5伏,只接了D+,D-,和地线,D+是接了GPIO的,我要用ms的bsp的话,需要做哪些处理,在什么时候把GpIO拉高,拉高后还需要把GPIO设 ...… 查看全部问答∨ |