首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >利用PICAXE 14M2控制占空比控制直流电机转速(闭环反馈)

利用PICAXE 14M2控制占空比控制直流电机转速(闭环反馈)
EN

Stack Overflow用户
提问于 2016-05-27 14:58:29
回答 1查看 251关注 0票数 1

我正在用H桥控制电机速度来制造洗衣机.H桥MOSFET的信号由微控制器Picaxe14M2控制.

电机与发电机和承担负载的水桶耦合。拖欠关税周期为25%。在50%的电机停止和大于50%时,电机的旋转发生变化。

现在,我想做的是,当负载增加到桶中时,电机应该保持它的速度,为了保持速度,我想控制占空比。

因此,如果负载增加,对电机的电阻就会增加,这意味着铲斗应该减速,使发电机产生较少的电压。

现在,我需要增加占空比,这样电机就可以加快速度,赶上默认值。

不幸的是,我无法执行闭环功能。有人能帮帮我吗..。

PS。我用的是两台12V直流电动机。其中一台作为马达转动水桶(它也与其他电机耦合),另一台作为发电机来获得反馈。

谢谢。

我使用以下代码:

代码语言:javascript
运行
复制
setfreq M32   ' 100 kHz Frequency

main:
if pinB.5 = 1 then goto Closeloop
goto main 

***************************************************************************

Closeloop:          

    symbol duty = b2
    let duty = 79
    gosub closeloop1

closeloop1:

    for b11 = 1 to 100
    hpwm 1,0,0,79,duty
    readadc C.4, b22    ` Read generated voltage from pin C.4

    IF b22 > 204 then gosub stepdown    'if Generated voltage > 4 V , stepdown the duty cycle

    IF b22 < 153 then gosub stepup      'if V< 3 V, stepup the duty cycle

stepup: ` Increase the duty (So speed is increased) if gernerated voltage is less than 3V

    duty = duty - 5 
    goto closeloop1 

stepdown:  ` Decrease the duty (So speed is reduced) if gernerated voltage is more than 4V

    duty = duty + 5 
    goto closeloop1

next b11
EN

回答 1

Stack Overflow用户

发布于 2016-05-28 20:32:12

在我们看您的控制算法之前,有一些问题需要用PICAXE基本代码来修复。您gosub到一个标签,这是程序的下一行;您使用goto跳出for循环;使用gosub调用子例程,然后使用goto跳转到其他地方,而不是return从子例程返回。这些可能不会导致错误,但它们表明您还没有清楚地考虑到您想要的程序流是什么。

如果您的for循环没有被那些goto的中断,它将执行100次,然后完成,在此之后,pwm输出将继续在您设置的最后职责,但程序将不再做任何事情。循环中没有pause或其他时间延迟,所以这将在毫秒内发生。为什么要循环100次,在最后一次循环之后想要发生什么?

最后,您要增加或降低负载系数,以尝试加速或减慢电机,但您没有检查是否将其降到低于0或高于您希望它获得的最大值--如果一个字节变量为0,并且您将它减少1,它将被包装为255,依此类推。如果您查看hpwm文档,您将看到工作因子值实际上介于0到1023之间,因此您需要使用一个单词变量,而不是一个字节。

在我看来,你试图稳定速度的方式并不是最好的方法,但它应该在某种程度上起作用--如果你在循环中加入了适当的时间延迟--所以试着让你的代码做它应该做的事情,然后看看它在实践中是如何工作的,以及你是否可以改进它。

我认为这是一项教育任务,所以您应该自己开发,而不是在这个站点上为您编写解决方案,但是如果您对该项目的硬件或软件有进一步的疑问,您可能会在PICAXE论坛上得到更好的答案,或者在EE堆栈交换上得到更好的答案。准备张贴你的硬件的电路图,并具体解释你尝试了什么和发生了什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37486642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档