PID 温度控制的实现(2)
时间:2025-07-07
时间:2025-07-07
ID 温度控制的实现
(3)
或者:
(4)
这样就可以让计算机或者单片机通过采样的方式实现PID 控制,具体的PID 控制又分为位置式PID 控制和增量式PID 控制,公式4 给出了控制量的全部大小,所以称之为全量式或者位置式控制;如果计算机只对相邻的两次作计算,只考虑在前一次基础上,计算机输出量的大小变化,而不是全部输出信息的计算,这种控制叫做增量式PID 控制算法,其实质就是求Δμ的大小,而 Δμk =μk -μk-1 ;所以将式4 做自减变换有:
(5)
其中
温度控制PID 算法设计
本设计利用了上面所介绍的位置式PID 算法,将温度传感器采样输入作为当前输入,然后与设定值进行相减得偏差ek,然后再对之进行PID 运算产生输出结果fOut,然后让fOut 控制定时器的时间进而控制加热器。为了方便PID 运算,首先建立一个PID 的结构体数据类型,该数据类型用于保存PID 运算所需要的P、I、D 系数,以及设定值,历史误差的累加和等信息:
typedef struct PID
{
float SetPoint; // 设定目标 Desired Value
float Proportion; // 比例系数 Proportional Const
float Integral; // 积分系数 Integral Const
float Derivative; // 微分系数 Derivative Const
int LastError; // 上次偏差
int SumError; // 历史误差累计值
} PID;
PID stPID; // 定义一个stPID 变量
下面是PID 运算的算法程序,通过PID 运算返回fOut,fOut 的值决定是否加热,加热时间是多少。
PID 运算的C 实现代码:
float PIDCalc( PID *pp, int NextPoint )
{
下一篇:红旗品牌发展历程