这个 你可以仔细分析一下 , 你是为了实现二次出水温度恒定是吧!
假设, 你的设定温度是 60度, 当前二次温度反馈是 56度, 调节阀 开度是 40%, 在外部温度变化很小的情况下, 经过若干个PID 周期运算, 温度会 越来越接近 60度 , 也就是说 偏差 越小,无限接近与0 (收敛), 这是PID 调节的理想情况,
但是, 可能就是因为 外部环境温度的变化 , 使得 PID 调节变得 趋于发散 ,所以这时候就要适当的 对外部温度的影响做补偿;
例如 : 温度在常温20 度时, PID 调节温度误差在 正负0.5度(假设是正常), 当环境温度围绕着 20度(这时相当于一个基准点) 变化时, 10 ~ 45 变化, 相对于基准点温度 是 -10~ 15 度变化, 变化区间是35度, 把这个线性变化 按一定比例系数(这个系数可根据具体要求调整) 叠加在负反馈信号上 , 在假设 t0 此刻检测到的 温度值是 52度(△8度), 当前调节阀开度是 48%(可调节范围20%~60%),外部温度是12度,这时把外部温度因素考虑进去. 12度相对于 20度基准点 是偏离了 -8度, 假设取一个系数 0.04, -8*0.04== -0.32; 这个值就是温度补偿, △8度- (-0.32) == 8.32 , 这个值就是补偿后的 负反馈, 原来是输出48%, 这时可能就输出 49% . 试想 此时 当外温度为 35度时 温度偏差为 35-20==15度, 15 * 0.04==0.6 ; △8度- (+0.6) = 7.4 , 这时补偿是减小了PID 的输出, 符合基本补偿原理,(提示补偿不要搞反了);
我前面只说了比例项(打个比方) , 具体多少很多参数有关 , 积分项+微分项+比例项, 每一项都要把补偿加进去.
这个 你可以仔细分析一下 , 你是为了实现二次出水温度恒定是吧!
假设, 你的设定温度是 60度, 当前二次温度反馈是 56度, 调节阀 开度是 40%, 在外部温度变化很小的情况下, 经过若干个PID 周期运算, 温度会 越来越接近 60度 , 也就是说 偏差 越小,无限接近与0 (收敛), 这是PID 调节的理想情况,
但是, 可能就是因为 外部环境温度的变化 , 使得 PID 调节变得 趋于发散 ,所以这时候就要适当的 对外部温度的影响做补偿;
例如 : 温度在常温20 度时, PID 调节温度误差在 正负0.5度(假设是正常), 当环境温度围绕着 20度(这时相当于一个基准点) 变化时, 10 ~ 45 变化, 相对于基准点温度 是 -10~ 15 度变化, 变化区间是35度, 把这个线性变化 按一定比例系数(这个系数可根据具体要求调整) 叠加在负反馈信号上 , 在假设 t0 此刻检测到的 温度值是 52度(△8度), 当前调节阀开度是 48%(可调节范围20%~60%),外部温度是12度,这时把外部温度因素考虑进去. 12度相对于 20度基准点 是偏离了 -8度, 假设取一个系数 0.04, -8*0.04== -0.32; 这个值就是温度补偿, △8度- (-0.32) == 8.32 , 这个值就是补偿后的 负反馈, 原来是输出48%, 这时可能就输出 49% . 试想 此时 当外温度为 35度时 温度偏差为 35-20==15度, 15 * 0.04==0.6 ; △8度- (+0.6) = 7.4 , 这时补偿是减小了PID 的输出, 符合基本补偿原理,(提示补偿不要搞反了);
我前面只说了比例项(打个比方) , 具体多少很多参数有关 , 积分项+微分项+比例项, 每一项都要把补偿加进去.
内容的回复:那积分项+微分项+比例项岂不是定不住,那这个系统能调的出来吗。
-------------------------------------
我是说 Mn(PID输出) = Mp + Mt + Md (比例+积分+微分) 每一项值计算完了后 加补偿,
假设补偿为△C, 那么 Mn = (Mp+ △C) + (Mt + △C) + (Md+△C)
= △C * (Mp + Mt + Md ), 而且每一项 △C的系数都不同;
你嫌麻烦的话, 直接给 Mn 加 △C 补偿就可以了, 例如 , Mn = Mn + △C; // 这也可能会"粗"一点, 相当于粗调;