本人最近在苦心研究PID,所以经常三更半夜在思考一些问题,基本搞清楚PID每个参数的控制规律,刚才我在想如果我用位置式PID中的PD进行电机调速或者温度控制估计会有些问题,假如我是电机PWM调速,设定转数是100,当前转数是0,规定0%占空比位0转速,100%占空比为100转数,那么假如我只要PD来控制,那么根据P比例规律,当转速到达100时,P项的结果肯定是0,而D项微分是误差变化率,当转数到达100时,D项肯定也为0,因为误差变化率已经为零了,所以PD的结果最终是0,然而我要维持100的转数,PWM的占空比必须是100%,但是现在PD的结果在转数到达100的时候输出控制量已经为0了,这个好像有矛盾啊! !
我觉得应该在PD过程中需要累加控制量,这样当误差为0的时候,不至于控制量也为0,而是维持在一个恒定控制量(100%占空比)
或者在PD中加入I积分项,因为积分项是误差的累积,所以当PD都为0的时候,积分作用可以保存恒定的控制量输出(100%占空比)。
我翻阅了很多调速和温控的,程序基本都是离不开I积分项。没发现单独用PD来控制的。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
想半天搞不懂的是,步进电机不是通过脉冲频率来控制的吗。如何用pwm占空比来控制转速呢?
PWM脉冲--->斩波恒流驱动器-->电机~~PWM用来控制流过电机的平均电流的~脉宽越大~流过电机的平均电流就越大,反之亦然,你就想着,PWM脉冲吧0到1和1到0的脉冲分解成很多很多级来逼近吧~PWM脉宽不是用来控制电机速度的~而是控制电机的平均电流~这个可以用来调节电流的大小,更重要的是,可以对电机进行细分驱动!因为细分就是调节电机相位间的电流大小按照正弦波变化~
简单的说:1.调节PWM脉宽是调节流过电机平均电流大小。
2.调节PWM脉宽变化的速度是调节电机转速的。
其实还有很多种驱动方式:脉冲+方向,PH/EN,PWM方式~很多雕刻机上用的就是脉冲+方向的驱动的~值管发脉冲就可以了,细分硬件内置的~TB6560就是这种驱动方式~还有很多驱动器是不带硬件细分的~所以需要外部实现~
我理解的是不是有问题啊??
调速的过程中并没有改变细分数,只不过是加快了PWM脉宽变化的速度而已啊,好好理解这段话,举个例子,1到100的数,你用5秒钟从1读到100的速度会比用10秒从1读到100的速度快把?但是个数还是没变的,还是100个数,我楼主位的举例并非是步进电机调速,我只是举个PWM调速的例子来说明PID的一些疑惑而已,楼主不要把他想到步进电机去了~
看完了这个帖子,感觉大有收获,非常感谢。
有两点疑问,希望能解惑一下
1.既然楼主是位置环和速度环串联带动步进电机,而且PWM的占空比等效电机电流。是不是说楼主在PID控制的过程中,一直控制步进电机的等效电流恒定的吗?还是说另外还有一环电流环来控制步进电机的等效电流。
2.步进电机随着转速的升高,内部反电动势增加,导致实际的有效电流变小,从而是电机力矩下降,对于这一点,楼主在这个PID控制中,如何克服的?
一周热门 更多>