找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3973|回复: 0
收起左侧

位置式PID控制器

[复制链接]
ID:211120 发表于 2017-6-14 13:34 | 显示全部楼层 |阅读模式
/**************************************************************************
函数功能:位置式PID控制器
入口参数:编码器测量位置信息,目标位置
返回  值:电机PWM
说    明:根据位置式离散PID公式: pwm=Kp*e(k)+Ki*∑e(k)+Kd[e(k)-e(k-1)]
                        e(k)代表本次偏差
                        e(k-1)代表上一次的偏差
                        ∑e(k)代表e(k)以及之前的偏差的累积和;其中k为1,2,,k;
                        pwm代表输出

**************************************************************************/
int16_t PID_Ctrl (int16_t Target_val,int16_t Actual_val )
{
        Bias=Target_val-Actual_val;                                            // 计算偏差
        Integral_bias+=Bias;                                                  // 求出偏差的积分

        Pwm1 =Kp*Bias;                                                                                //

        Pwm2 =Ki*Integral_bias;                                                                //
        if (Pwm2>=5600) Pwm2=5600;
        else if(Pwm<=-5600)        Pwm2=-5600;

//        Pwm3 =Kd*(Bias-Last_Bias);                                               // 位置式PID控制器

        Pwm =Kdim*(Pwm1+Pwm2) +1200;
//        Pwm =Kdim*(Pwm1+Pwm2) +0x11a0;
        Last_Bias=Bias;                                                   // 保存上一次偏差
        return Pwm;                                             // 增量输出
}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表