PID---平衡车原理

位置PID

1.理论分析

位置闭环控制就是根据编码器的脉冲累加测量电机的位置信息,并与目标值进行比较,得到控制偏差,然后通过对偏差的比例积分微分进行控制,使偏差趋向于零的过程。

2.公式

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代表输出

3.结构框图

4.C语言实现

int Position_PID (int Encoder  ,  int Target)

  {

      static float Bias,  Pwm,  Integral_bias,  Last_Bias;

      Bias=Encoder-Target; //计算偏差

      Integral_bias+=Bias; //求出偏差的积分      

     Pwm=Position_KP*Bias+Position_KI*Integral_bias+Position_KD*(Bias-Last_Bias); //位置式           PID控制器    

   Last_Bias=Bias;       //保存上一次偏差

   return Pwm;           //输出

  }

直立环

1.理论

小车往那边倒,车轮就往哪边开,既可以保持车子的平衡。

2.公式

a=b1*θ+b2*θ; ——> 比例微分控制【PDout=Kp*Angle+Kd*( Angle-Angle_last)】

3.结构框图

直立环:让小车角度趋近0;

速度环:让电机速度趋近0;

速度环、串级PID

速度环输入:1.给定速度。2.速度反馈。

输出:角度值(直立环的期望速度输入)

直立环输入:1.给定角度(速度环输出)。2.角度反馈

输出:PWM(直接控制小车)

Vertical_out=Kp1*( real_Angle- expect_Angle)+Kd*D( real_Angle- expect_Angle)  

//直立PD控制器

Velocity_out =Kp2*(Encoder_ real- Encoder_ expect)+Ki*S(Encoder_ real- Encoder_ expect)

 //速度PI控制器

(NOTE:(1)Velocity_out = expect_Angle.(2)Kp1:Vertical_Kp.3Kp2:Velocity_Kp.

【中文】

直立环输出=Kp1*(真实角度-期望角度+机械中值)+Kd*角度偏差的微分     //角度偏差=真实角度-期望角度

速度环输出=Kp2*(反馈编码器值-期望编码器值)+Ki*编码器偏差的积分 //编码器偏差=反馈编码器值-期望编码器值

(NOTE:(1)速度环输出=直立环的期望角度。(2)Kp1:直立环Kp。(3)Kp2:速度环Kp。)

合并推导:

直立环输出Vertical_out=Kp1*(θ_r-θ_e)+Kd* (θ_r-θ_e)

速度环输出Velocity_out=Kp2*(E_r- E_e)+Ki*Σ(E_r- E_e)

因为:θ_e = Velocity_out

所以直立环输出Vertical_out =

= Kp1*{ θ_r-[ Kp2*(E_r- E_e)+Ki*Σ(E_r- E_e) ]}+Kd*(θ_r-θ_e)

= Kp1* θ_r- Kp1* Kp2*(E_r- E_e)- Kp1*Ki *Σ(E_r- E_e) +Kd*(θ_r-θ_e)

= Kp1* θ_r+ Kd*(θ_r-θ_e)- Kp1* [Kp2*(E_r- E_e)+ Ki *Σ(E_r- E_e)]

【中文】

=Kp1*真实角度+ Kd*角度偏差的微分-Kp1* [Kp2*编码器偏差- Ki *编码器偏差的积分]

串级PID控制算法是一种常用的控制策略,适用于需要精确控制的系统,例如平衡。串级PID算法的结构包括两个PID控制器,一个用于控制系统的主环路,另一个用于控制系统的从环路。 在平衡的串级PID算法中,主要有两个控制回路:速度环和姿态环。速度环用于控制的移动速度,姿态环用于控制平衡姿态。下面是串级PID算法的一般步骤: 1. 设定目标速度和目标姿态。 2. 通过速度传感器获取当前速度信息,计算速度误差。 3. 使用PID控制器计算速度环的输出控制信号。PID控制器根据速度误差、积分误差和微分误差来计算输出。 4. 将速度环的输出控制信号作为姿态环的参考输入。 5. 通过陀螺仪等传感器获取当前姿态信息,计算姿态误差。 6. 使用PID控制器计算姿态环的输出控制信号。PID控制器根据姿态误差、积分误差和微分误差来计算输出。 7. 将姿态环的输出控制信号作为电机驱动的控制信号,用于调节电机的输出功率和方向,以实现平衡控制的姿态。 8. 循环执行上述步骤,不断更新控制信号,使小保持平衡并达到目标速度和姿态。 需要注意的是,串级PID算法的参数调节是一个重要的环节,需要根据实际情况进行优化和调整,以获得良好的控制效果。此外,还可以结合其他控制策略和方法,如模糊控制、神经网络等,来进一步优化控制性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值