PID里的PI调节器

本文介绍了一种用于控制的Int16PIControl函数,它通过PI运算实时计算测量值与目标值的误差,并结合比例(P)和积分(I)进行补偿,确保输出结果在预设范围内。函数还包括了限幅机制,以保持结果在最大和最小值限制内。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Int16 PIControl (Int16 targetCur, Int16 Current)
{
    Int16 Result = 0;            //PI运算结果
    Int32 curErr = 0;            //测量值和实际值的差
    Int32 portion_asP = 0;  //本次比例部分的值
    float  portion_asI = 0;    //本次积分部分的值
    Int32 max;

    curErr = (Int32)targetCur - (Int32)Current;
    portion_asP = ((float)curErr) * FL_EPC_PV_DX;
    portion_asI  = ((float)curErr) * FL_EPC_IV_DX;
    max = MAX;

    portion_asI += portion_asI_lastZL;
    portion_asI_lastZL = portion_asI; //保存这次的积分值


    if(portion_asI_lastZL < (-max))
        portion_asI_lastZL = -max;
    if(portion_asI_lastZL > max)
        portion_asI_lastZL = max;

    result = portion_asI + portion_asP;

    if(result < (-max))
        result = -max;
    if(result > max)
        result = max;

    return result;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值