PID 算法

本文探讨了在单片机环境下如何处理浮点数运算的限制,通过使用定点数运算和移位技巧提高运算速度。同时,介绍了遇限消弱积分和积分分离法在控制系统中的应用,以减少超调和波动。此外,还提到了离散化公式在控制算法中的作用,并分析了微分控制对系统动态性能的影响。最后,鉴于快速傅立叶变换(FFT)的计算复杂性,推荐了ATMEGA328单片机作为处理浮点运算的理想选择。
摘要由CSDN通过智能技术生成

由于单片机的处理速度和RAM资源的限制,一般不采用浮点数运算,而将所有参数全部用整数,运算到最后再除以一个2的N次方数据(相当于移位),作类似定点数运算,可大大提高运算速度,根据控制精度的不同要求,当精度要求很高时,注意保留移位引起的“余数”做好余数补偿。

遇限消弱积分:一旦控制变量进入饱和区将只执行削弱积分项的运算而停止进行增大积分项的运算。具体地说,在计算时,将判断上一个时刻的控制量Ui-1是否已经超出限制范围,如果已经超出,那么将根据偏差的符号,判断系统是否在超调区域,由此决定是否将相应偏差计入积分项积分分离法:在基本PD控制中,当有较大幅度的扰动或大幅度改变给定值时,由于此时有较大的偏差,以及系统有惯性和滞后,故在积分项的作用下,往往会产生较大的超调量和长时间的波动。特别是对于温度、成份等变化缓慢的过程,这一现象将更严重。为此可以采用积分分离措施,即偏差较大的时,取消积分作用:当偏差较小时才将积分作用投入。

离散化公式:

Δu(t)=q0e(t)+q1e(t-1)+q2e(t-2)

当|e(t)|≤ β 时

q0=Kp(1+T/Ti+Td/T)

q1=-Kp(1+2Td/T)

q2=Kp Td /T

当le(t)l>时

q0= Kp(1+Td/T)

q1=-Kp(1+2Td/T)

q2=Kp Td/T

u(t)= u(t-1)+ Δu(t)

微分控制对系统性能的影响:微分作用可以改善动态特性,Td偏大时,超调量较大,调节时间较短。Td偏小时,超调量也较大,调节时间也较长。只有Td合适,才能使超调量较小,减短调节时间。

由于快速傅立叶变换F算法设计大量的浮点运算,由于一个浮点占用四个字节,所以要占用大量的内存,同时浮点运算时间很慢,所以采用普通的8位 M一般难以在一定的时间内完成运算,所以综合内存的大小以及运算速度,采用位的单片机ATMEGA328它拥有较大的RM并且时钟频率高达M,所

以对于浮点运算不论是在速度上还是在内存上都能够很快的处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霖䨎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值