不知道你懂不懂控制。我大概给你讲一下。PID可以等效成双环PI控制。当然我也不知道你参数是怎么调的。总之PID参数调对了,可以直接送给PWM的duty cycle上。然后PWM生成器会根据duty cycle生成PWM的。所以PID的输出你可以认为就是那个duty cycle
duty cycle和输出电压是成正比的。相差一个比例系数。所以你可以等效的认为,PID输出的就是电机电压了(当然,相差一个比例系数)。
下面回到双环PI的问题。角速度的微分就是角速度的加速度。角速度的加速度就是电机的扭矩(这个就是牛顿定律拉,扭矩=加速度*转动惯性。当然,相差一个比例系数,就是转动惯性了)那么第一个PI的输出就是扭矩了。电机扭矩和电机电流成正比(差一个扭矩比例系数Kt),电机电流的微分就是?就是电压喽。因为电机里面是一个等效的电感。V=L di/dt这个是电感公式。那么第二个PI的输出就是电压了。
这两个PI等效成一个PID控制器。
总结一下, 角速度误差 =》PI =》扭矩 = 电流, 电流误差 =》 PI =》 电机电压=duty cycle
综合起来就是 角速度误差=》PID =》电机电压
不过单片机编起程序来的时候,还要考虑好多系数的转换,包括定浮点整数运算神马的,好烦的。加油!