- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在通过使用 H 桥控制电机速度来制造洗衣机。 H 桥 MOSFET 的信号由微 Controller PICAXE 14M2 控制。
电机与发电机和承载负载的铲斗相连。默认占空比为 25%。在 50% 时电机停止,超过 50% 时电机的旋转发生变化。
现在,我想做的是,当负载添加到铲斗时,电机应保持其速度,为了保持速度,我想控制占空比。
因此,如果负载增加,电机的阻力会增加,这意味着铲斗应该减速,从而使发电机产生更少的电压。
现在,我需要增加占空比,因此电机会增加速度以 catch 默认值。
很遗憾,我无法执行闭环功能。谁能帮帮我....
附言。我正在使用两个 12V 直流电机。一个作为电机旋转铲斗(也与其他电机耦合),另一个电机作为发电机获得反馈
谢谢。
我正在使用以下代码:
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
最佳答案
在我们查看您的控制算法之前,有一些问题需要用您的 PICAXE Basic 代码修复。你 gosub
到一个标签,它是程序的下一行;您正在使用 goto
跳出 for
循环;并且您使用 gosub
调用子例程,然后使用 goto
跳转到其他地方,而不是 return
从子例程返回。这些可能不会导致错误,但它们表明您还没有清楚地考虑您希望程序的流程是什么。
如果您的 for
循环没有被那些 goto
中断,它将执行 100 次然后结束,之后 pwm 输出将在您最后执行的任务中继续将其设置为但程序将不再执行任何操作。循环中没有 pause
或其他时间延迟,因此这将在几毫秒内发生。你为什么要循环 100 次?在最后一次循环后你想发生什么?
最后,您要增加或减少占空比以尝试加速或减速电机,但您没有检查是否没有将它降低到低于 0 或高于您希望它采用的最大值- 如果一个字节变量是 0,你将它减 1,它会循环到 255,依此类推。如果您查看 documentation for hpwm您会看到占空比值实际上在 0 到 1023 之间,因此无论如何您都希望为此使用字变量,而不是字节。
在我看来,你试图稳定速度的方式并不是最好的方法,但它应该会以某种方式起作用——如果你在你的循环中放置一个合适的时间延迟——所以尝试获取你的代码做它应该做的,然后看看它在实践中是如何工作的,以及你是否可以改进它。
我假设这是一项教育任务,因此您应该自己开发它,而不是在本网站上获得为您编写的解决方案,但如果您对该项目的硬件或软件有进一步的疑问,您将可能会在 PICAXE forum 上得到更好的答案,或者可能在 EE Stack Exchange 上.不过,请准备好发布您的硬件电路图,并具体解释您尝试过的内容以及发生的情况。
关于algorithm - 如何通过 PICAXE 14M2 控制占空比来保持直流电机速度(闭环反馈),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37486642/
我有一个 Thorlabs 直流电机 Controller ,可以使用以下 dmesg 日志检测到: usb 5-2: new full-speed USB device number 6 using
我是一名优秀的程序员,十分优秀!