黄工无刷电机学习
直播中

李慎梓

7年用户 1380经验值
私信 关注
[问答]

请问直流电机控制的单极性和双极性对比分析哪个好?

请问直流电机控制的单极性和双极性对比分析哪个好?

回帖(1)

王丹丹

2021-9-23 09:43:37
头一次听说双极性控制我很吃惊,这电路怎么能控制电机,别人讲的头头是道,我搭了个电路实际测试,先上图,原理图,搭的电路,还有电机(N20带编码器)。













void TIM8_PWM_Config(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
        TIM_TimeBaseInitTypeDef   TIM_TimeBaseInitStructure;
        TIM_OCInitTypeDef         TIM_OCInitStructure;
        TIM_BDTRInitTypeDef       TIM_BDTRInitStructure;
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8, ENABLE);
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;   //TIM8_1、TIM8_2的PWM输出
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOC, &GPIO_InitStructure);
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;   //TIM8_1N的PWM输出
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;   //TIM8_2N的PWM输出
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
       
        TIM_DeInit(TIM8);
        TIM_TimeBaseInitStructure.TIM_Prescaler=0;
        TIM_TimeBaseInitStructure.TIM_Period=5000-1;  //14.4KHz
        TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;
        TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;
        TIM_TimeBaseInit(TIM8, &TIM_TimeBaseInitStructure);
       
        TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;
        TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
        TIM_OCInitStructure.TIM_OutputNState=TIM_OutputNState_Enable;
        TIM_OCInitStructure.TIM_Pulse=0;
        TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;
        TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCNPolarity_High;
        TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Reset;
        TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCNIdleState_Reset;
        TIM_OC1Init(TIM8,&TIM_OCInitStructure);
        TIM_OC2Init(TIM8,&TIM_OCInitStructure);
       
        TIM_BDTRInitStructure.TIM_OSSRState=TIM_OSSRState_Enable;
        TIM_BDTRInitStructure.TIM_OSSIState=TIM_OSSIState_Enable;
        TIM_BDTRInitStructure.TIM_LOCKLevel=TIM_LOCKLevel_OFF;
        TIM_BDTRInitStructure.TIM_DeadTime=0x48;  //13.89ns*72=1us
        TIM_BDTRInitStructure.TIM_Break=TIM_Break_Disable;                     //刹车功能
        TIM_BDTRInitStructure.TIM_BreakPolarity = TIM_BreakPolarity_High;      //刹车输入高电平有效
        TIM_BDTRInitStructure.TIM_AutomaticOutput=TIM_AutomaticOutput_Enable;  //自动输出使能
        TIM_BDTRConfig(TIM8,&TIM_BDTRInitStructure);
       
        TIM_OC1PreloadConfig(TIM8,TIM_OCPreload_Enable);
        TIM_OC2PreloadConfig(TIM8,TIM_OCPreload_Enable);

        TIM_ARRPreloadConfig(TIM8,ENABLE);
  TIM_Cmd(TIM8,ENABLE);
        TIM_CCPreloadControl(TIM8,DISABLE);  //ENABLE
        TIM_CtrlPWMOutputs(TIM8,ENABLE);
}
测试结果如下:


1、PWM1固定50%占空比,PWM2小于50%反转,大于50%正转,
2、PWM2=100%,正转最大速度6310RPM,空载37.7mA,扭矩还行,堵转131mA,
3、PWM2=0,反转最大速度6550RPM,空载33.2mA,
4、PWM1=PWM2=50%,电机静止,电流24.2mA,
5、PWM2=2000,反转960RPM,空载电流36mA,扭矩非常小,堵转38.9mA,
6、占空比为0,电流为0。


7、PWM1=0,
    PWM2=1000,正转2350RPM,电流20.6mA
    PWM2=2000,正转5140RPM,电流28.6mA
    PWM2=3000,正转7830RPM,电流37.0mA
    PWM2=4000,正转10650RPM,电流45.4mA
    PWM2=5000,正转13500RPM,电流39.2mA,力矩最大,堵转0.44A。




双极性的最高速度达不到最高,输出力矩小,但是据说双极性电机反应快,
双极性适合低速,小扭矩,频繁启停的场合,比如平衡车,
底盘控制还是单极性效率更高,
互补PWM,可以通过把一路输出固定为0转换为单极性控制,其正反转性能一致,这样的实际意义就是可以用无刷电机的控制电路控制有刷电机。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分