• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

如何选择L298N驱动减速直流电机的PWM频率

hlwhlw 2015-07-16 浏览量:5659
L298N作为自平衡小车的电机驱动,驱动减速直流电机,用PWM对L298N进行调速,PWM频率选择多大比较好?    频率太低,电机会发出声音;频率太高,又会出现占空比与转速线性度不好的问题。

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 频率的选择主要看你的中断间隔了,

    假设你的程序每50us进入一次中断,那么就是说每50us进行一次PWM调制。这样你的PWM频率就是20KHz。

    如果你的程序写的很多,那么你就可以设定更长的中断周期,而相应的PWM调制频率就会降低。
    一般的PWM调节频率保持在10K-50K都是可以接受的。
    不知到我的回答是否让您满意呢。
    • 发布于 2015-07-16
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:4
  •  选择多大的频率占空比与转速线性度比较好,而电机又不发出声音呢?

    • 发布于2015-07-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 关于你这个问题,我分享一篇文章你看看:

    如何确定直流电机驱动的 PWM 频率

                          —— 圆梦小车改进中的个人感悟

    在“圆梦小车强身健体啦”一文中,提到了新的电机在原来的驱动程序下不能正常工作
    之事,本文将详述其*委。

    一、问题的来由
           此问题在我第一次涉及直流电机驱动时就遇到了,可翻遍所有资料,都没有给我一个完美的答复,因为我一直觉得应该根据电机的特性来选择 PWM 的频率。
    直流小电机的特性差别很大,一般遥控玩具的电机通常为 1A 以下,这是为了降低驱动电路的成本,通常使用 8050、8550 就可以驱动。
    而遥控模型级别的电机不同,它们的目标是速度,所以电机通常动辄 10A,甚至几十安都有,读者可以去搜索一下模型用的电调(电子调速器,也是 PWM 控制模式),那些指标都是 50A、90A、130A 等等,第一次我看了都“晕”!看看照片,哪个不是一堆 MOS 管并联?所以价格也不菲,通常都成百上千。
    一般用于工业控制的减速电机则不然,由于有很大的减速比,且电压一般为 12V,所以电流通常很小,在几百毫安级别,正常工作只有几十毫安,这是由于他们要求低功耗,增加可靠性。
           而电机控制的 PWM 模式讨论似乎针对第二类的较多。因为 PWM 控制对于遥控模型的重要程度较高。而遥控玩具一般不调速,H 桥只是为了换向。工业控制由于减速后转速已很低,不再迫切需要调速了,直接用通断控制已能满足大多数的要求。
    似乎只是由于“机器人比赛”才将小电流直流电机的调速引入。由于比赛机器人的特殊性,产生了一种中间状态的需求:
           >  它们不像遥控模型那样追求速度,但想要类似于遥控模型的操控特性;
           >  它们不满足于遥控玩具那种简单的控制,却要相当于遥控玩具电机那样的电流;
           >  因为机器人比赛不像赛车,穷其全力一搏,只求瞬间辉煌;它需要有一定时间去做一些蕴含智慧的活动,而不是四肢发达的“莽汉”,所以要有一定的“耐力”。

    二、少而“模糊”的答案
    在写“寻迹小车 FollowMe”一文时,我找了许多资料,但没有找到一篇可以帮我释疑解惑的。下面就是几篇我所找到的文章摘录:
           1)有的这样说:“PWM 控制的基本电路与ON/OFF 控制相同,电路构成也很简单,施加在电机上的 PWM 信号一般为几千赫至几十千赫”(摘自《机器人控制电子学》P76 *1)。
           2)有的这样说:“PWM 控制对频率的要求一般不是太高。从 50Hz 到 1000Hz 的频段,电机都可以正常工作。”(摘自《机器人探索 —— 工程实践指南》P129 *2)
           3)只有这篇描述的略详细(摘自《机器人设计与控制》P183 *3):


           此段文字提到了我所关注的问题:电机特性对PWM频率的影响。可是它的结论和建议却给我带来了更多的困惑!(看红线所标注的)
    读者可以对照一下,这三篇内容就相互“冲突”的厉害,也许读者认为我是断章取义,作者也许在前或后有先决条件,那可以帮我仔细看看原作,但愿能有所发现。
           4)我以前文章中推荐过多次的《电动机的单片机控制》一书对直流电机驱动描述的相当详细,可唯独没有阐述如何确定 PWM 的频率,只是留了一道思考题:
    “ 4、PWM 频率如何选择?”(摘自书中 P149 *4)。
    郁闷!是否此问题简单到不用描述了?!
           5)还有一本我推荐过的书 ——《直流电动机实际应用技巧》,书中也只是泛泛的说了一下:(摘自书中 P122 *5)


           文中所说“脉冲列驱动”就是指 PWM;电器时间常数 te 为电机等效电感 La 与等效电阻Ra 之比(摘自书中的描述,P121  *5),至于如何确定这两个值不太清楚。
    这段和第三篇中所描述的比较一致。似乎都是说 PWM 频率越高越好。我在网上还看到有这样的言论:频率越高的PWM调速器档次越高!
           正是这些“模糊、混乱”的概念导致我“无所适从”,所以在“寻迹小车 FollowMe”中,编写程序时将 PWM 值和 PWM 的频率都交给使用者确定,期望读者能摸索出合适的选择,并找出选择的依据。但一直没有看到我想要的反馈,自己略作尝试也未能得出清晰的结论,所以在设计圆梦小车时就放弃了 PWM 频率改变的功能,使用定频方式(7200Hz)。用在当时的 130 电机上没有发现什么明显不妥,也就不再深究了。

    三、问题再次显现 
           这次减速箱装配好后,我满怀希望的替换下原来的 130 电机,并且用直流电源先试了一下,感觉不错(详见“圆梦小车强身健体啦”一文)。立马装上控制部分,发控制命令;本想“秀”一下,用较低的 PWM 值,因为我认为减速比加大后,力矩应该增加,低 PWM 值也应能启动。可实际效果让我大失所望,用“走直线”模式测试,基准 PWM50 启动不了,加到 100 才勉强能走,到 200 才算比较流畅。此时,我脑子里立马掠过一个念头:“坏了,几万块钱要打水漂了!”。
    冷静一会儿才想起可能是 PWM 频率的问题。又将上面看过的资料再次研读一番,而且拆了一个电机测量电阻和电感。但第三篇中的那段话还是让我不得其解:


           如果为了满足文中的不等式,PWM 频率不是越高越好吗?何来“所允许的最高 PWM 信号频率”?应该是最低频率才对吧?不知原文是如何描述的。
    但按基本的电学常识分析,不可能频率越高越好,因为电机的线圈肯定有电感,且电流越小的电机由于匝数多,电感量会越大。基于电工学常识,电感中的电流不能突变,其感抗与频率成正比。
           所以当施加过高频率的电压后,由于感抗作用,可能电流很小。
           而电机的力矩产生于磁场作用,而磁场的强弱与电流成正比,所以过小的电流将大大降低磁力,从而导致电机“无力”。
           这就像十字路口的红绿灯,假设各方向占 50%的通行时间,如果所设间隔恰当,就能保证最佳的通行效果,如果一味缩短周期,直到小于汽车的启步时间,即使仍保持 50%的比例,那路口也将完全无法通行。这和电机上施加过高频率的电压应该是一样的。
           我觉得在新电机上遇到的现象就是这个原因,可遍寻不到依据,只是从 LEGO 的 RCX 技术资料上看到:RCX 的PWM 频率是 125Hz!我觉得 LEGO 的电机和这次选择的电机参数类似,所以下决心修改 PWM 频率。


           上图为网页截图,注意红线所标信息以及图示,说明小于 1000Hz 的 PWM 频率还是可以使用的。

    四、实施 
           好在STC12LE5412AD 所提供的 PCA 比较灵活,程序只需略作修改即实现了。原来 PWM 信号是使用 PCA 的 PWM 模式产生的,好处是不需要软件干预,只要向相应的寄存器中赋值即可;缺点是频率变化较单一,靠改变 PCA 计数器的信号分频,只有两种选择 —— Fosc/12 或者 Fosc/2 。 对应 MCU 振荡器频率 22.1184MHz,只有两个 PWM 频率可选:43200Hz 和 7200Hz。
           由于此次是需要降低频率,所以可以用软件干预方式实现,即:
    使用 PCA 的比较器模式,允许匹配中断,在中断中产生 PWM 信号,通过不断加载新的比较值控制 PWM 的频率。PCA 初始化如下:


           按此模式,只要 PWM 信号的周期不大于:
           1/(22.1184MHz/12) * 65536  = 3.5ms ,即频率不低于 28Hz 都可以实现。
           中断中产生 PWM信号的处理如下:


           以上为一个电机的处理,另一个电机完全相同。
           变量 g_uiMotorLTime[2] 用于存放 PWM 信号的高低电平时间,两个单元之和为 PWM 的周期。
           变量g_uiMotorLTimeCmp 是高低电平时间的累计值,作为 PCA 通道的比较值,通过其控制 PCA 的中断。程序中作了一些防护,主要是占空比低于一定值后输出恒为“0”,高于一定值后输出恒为“1”。具体可看所附程序(查找“0805”即可找到所有为此修改的地方)。
    以下为设置的常量,通过修改这些值,可方便的改变 PWM 频率和限定值:


           读者可修改上述参数方便地实现不同的 PWM 频率,观察对电机特性的影响。

    五、效果 
           以下所做测量只是两个 PWM 频率的对比:7200Hz  vs 125Hz。
           为了方便测量,在原来的 PC 机控制界面增加了一个定时输出功能,可以设定小车的运行时间,利用 PC 定时期到时发出停止命令。界面如下:


           之所以选用直接的 PWM 输出而不用原来的走直线功能,是因为走直线程序中小车会根据偏移不断改变 PWM 值,这样的结果就不真实了。
    由于电机的差异,所以左右电机的 PWM 值略有不同,以使小车走的接近直线。

    测试结果如下:
      
    PWM 频率 :125Hz
      
    PWM 频率:7200Hz

    左 PWM
    右 PWM
    距离 cm
    时间秒
    速度
      
    cm/s
    左 PWM
    右 PWM
    距离 cm
    时间秒
    速度
      
    cm/s
    250
    235
    174
    4
    43.5
    250
    235
    174
    4
    43.5
    208
    195
    164
    4
    41
    205
    195
    140
    4
    35
    160
    140
    172
    5
    34.4
    157
    143
    120
    5
    24
    110
    90
    151
    6
    25.1
    108
    93
    86
    6
    14.3
    77
    60
    150
    10
    15
    77
    67
    75
    10
    7.5
    注:小车程序中 PWM 值 250 为 100%!

           从上表中可以看出,在 PWM 值比价大的时候,两个频率的速度差别不大;随着 PWM 值降低,速度差明显变大,我认为是前述原因所致,因为随着 PWM 值降低,有效驱动脉冲宽度逐渐缩小,导致电机无法得到有效的能量,所以其出力自然不足。
    可以肯定,125Hz 不是最佳频率,只能说比 7200Hz 好,什么频率更好?如何确定之?有待读者共同探讨。
    —————————       收笔于:2008 年 6 月 20 日星期五
    参考资料:
    1、  《机器人控制电子学》科学出版社 ISBN7-03-013168-1
    2、  《机器人探索——工程实践指南》 电子工业出版社 ISBN7-5053-9911-X
    3、  《机器人设计与控制》科学出版社 ISBN5-03-012843-5
    4、  《电动机的单片机控制》北京航空航天大学出版社 ISBN 7-81077-175-2
    5、  《直流电动机实际应用技巧》科学出版社 ISBN 7-03-017498-4
    6、Lego RCX 电机 PWM 信息:http://www.jopdesign.com/lego/index.jsp
    • 发布于2015-12-01
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

如何选择L298N驱动减速直流电机的PWM频率