智能车制作

标题: PWM初始化问题,改变周期寄存器,车子就不断抖动 [打印本页]

作者: 守一    时间: 2013-4-8 22:31
标题: PWM初始化问题,改变周期寄存器,车子就不断抖动
前段日子调试直立,在不加闭环的情况下,小车可以站立,但是会有抖动,学长说是因为滤波没有滤好,通过滤波小车直立情况有所好转,但是抖动一直无法消除,加P和加D都没有效果,通过观察发现在直立位置很小的范围内感觉电机反应不过来,角度变化1度,电机不会有变化,就是齿轮咬合的间隙电机没有反应,我就想到可能是PWM调节的占空比不够平滑,因为占空比寄存器最大是100,PWM周期10khz,再不改变频率的情况下,修改PWM预分频因子,改变占空比寄存器的数值范围,可是增大以后,就出现了一种始料不及的情况,电机会发出尖锐的鸣叫声,抖动还是无法消除,反复调试了好多次一直无法解决,按照我的理解,应该是PWM占空比改变不够平滑,因为,我是按照清华的方案做的,PD调节中改变寄存器的值时把float类型乘以占空比寄存器值转换成了uint类型,我担心数据转化过程会有精度丢失,就按照前面的方法修改,就是不明白为什么电机会发出尖锐的鸣叫声,望各位大神帮帮忙,解开我心中疑惑,在此表示不尽感激。
下面是pwm初始化程序,总线频率64M
/*
****************************************************************
*PWM初始化
*
*****************************************************************
*/
void PWM_Init(void)
{
    PWME     = 0X00;       //PWM使能关闭
    PWMPRCLK = 0X55;       //clockA,CLK B64分频:2M  
    PWMSCLA  = 0X02;       //对clock SA 进行2*PWMSCLA=64分频;pwm clock=clockA/2=1M;     
    PWMSCLB  = 0X02;       //clk SB=clk B/(2*pwmsclb)=1M                                            
   
    PWMCTL   = 0XF0;       //对 PWM 控制寄存器进行设置,各通道级联使用
    PWMCNT01 = 0X00;       //通道计数器清 0
                        
    PWMPOL   = 0XFF;       //上升沿翻转,开始输出高电平
    PWMCAE   = 0X00;       //左对齐输出
     
    PWMPER01 =  PWM_DUTY_CONST   ;        //per等于 100     周期0.1ms 频率    10khz
    PWMDTY01 = 0;          //dty等于 1000 初始化高电平时间1MS
                           
                        
    PWMPER23 = PWM_DUTY_CONST   ;        //per等于 10000 10MS
    PWMDTY23 = 0;          //dty等于 1000 初始化高电平时间1MS  
   
   
    PWMPER45 = PWM_DUTY_CONST   ;        //per等于 100     周期0.1ms 频率    10khz
    PWMDTY45 = 0;          //dty等于 1000 初始化高电平时间1MS
   
   
    PWMPER67 =  PWM_DUTY_CONST   ;        //per等于 100     周期0.1ms 频率    10khz
    PWMDTY67 = 0;          //dty等于 1000 初始化高电平时间1MS  
   
    PWME=0XFF;             //通道使能
                        
   
}

作者: toengineer    时间: 2013-4-10 10:05
中间小角度没有电压输出应该是没加死区电压吧

作者: 守一    时间: 2013-4-10 15:58
加死区电压了,但是没效果
作者: 红杏爱蓝颜    时间: 2013-4-11 18:05
不懂同求,@吉他手老师呀!!!大神们呢?
作者: 那年秋天    时间: 2013-5-10 23:52
toengineer 发表于 2013-4-10 10:05
中间小角度没有电压输出应该是没加死区电压吧

中间小角度怎么加四驱电压呀?求教
作者: toengineer    时间: 2013-5-11 09:04
那年秋天 发表于 2013-5-10 23:52
中间小角度怎么加四驱电压呀?求教

一点点加上去,而且要求你的电机输出要对称





欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2