带编码器的直流电机速度控制PID控制L298N驱动器

117次(过去30天)
道尔顿沙丘
道尔顿沙丘 2019年3月18日
我尝试使用Simulink/MATLA金宝appB创建一个带有反馈的PID控制来控制直流电机的速度。直流电机有两个编码器输出,这是我困惑的( 电机连接 ).我知道编码器是用于反馈的,但我不确定这些引脚去哪里。我还用了 L298N驱动程序 对于PWM。我也有一个Arduino Mega,我不完全确定我是否需要?我想我可能需要编码器的Mega,但我希望只使用一个Arduino组件,所以L298N和Mega都是必要的吗?或者两者都使速度控制变得更容易吗?对于使用feedba的PID控制,Simulink中的方框图看起来如何来自编码器的ck?任何资源和提示都将不胜感激。金宝app
谢谢,
道尔顿

答复(3)

阿卡什Khadse
阿卡什Khadse 2019年3月28日
编辑:阿卡什Khadse 2019年3月28日
嗨,道尔顿,
据我所知,这个电机包含一个双通道正交编码器,它有四个连接器,其余两个连接器是用于电机供应。在下图中,大头针 马达+ 马达- 是用来连接电机电源电压源的吗 传感器电压+ 地面 为连接传感器输入电压。但是,请注意 马达- 地面 不应连接在一起。可从引脚感应输出 一个频道 B通道 .这个输出将以脉冲的形式出现。
在Arduino程序中,您必须维护一个计数器变量,因为这种增量编码器不提供角度或速度的绝对值。您需要轮询这两个通道,并决定是增加还是减少计数。此计数的校准将取决于编码器的规格。请阅读以下内容有关编码器操作的更多信息,请参阅第页:
您可以使用HCTL 2022解码器IC来避免这个过程,直接读取角度值。这将节省您的计算开销,但使电路更复杂。请参考我的一个项目的电路图。
关于硬件要求,您需要L298N来驱动电机和Arduino Mega来实现PID控制器。或者,您可能需要使用适当的解码器IC。

Pradeep KS
Pradeep KS 2019年4月10日
嗨,道尔顿,
在19a版本中,Simulink Arduino支持包中有一个新的模块来处理Ar金宝appduino引脚上的中断。金宝app请参考 //www.tatmou.com/help/金宝appsupportpkg/arduino/ref/externalinterrupt.html 有关块如何工作的更多详细信息。
以下链接中给出了一个参考示例:
对于您的情况,您需要将编码器通道A和通道B连接到Arduino硬件上支持中断模式的2个数字输入引脚。金宝app
在外部中断块,选择数字输入引脚号码和触发模式(上升或下降)。将Interrupt块输出连接到一个函数调用子系统,每当你从编码器得到一个脉冲时,该子系统就增加计数器。

贝内迪克特·穆勒
贝内迪克特·穆勒 2021年6月24日
你解决了这个项目并让马达运转了吗?只是问一下,因为我的大学正在进行一个类似的项目

社区

更多答案请参阅电力电子控制

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始打猎吧!