Foc讲解,电机控制,odrive源码分析移植速成系列(HAL库,CUBEMXSTM32) 三,(1)代码编写(大体框架。drv8301配置,编码器校准)

一,大体框架

整体可以分为两部分,一部分为主函数,作为指令层去控制电机执行的阶段,另一部分作为执行层,在中断里面重复的进行采样计算输出。

主函数:

首先进行我外设的初始化,然后是编码器的校准,接着是相电感,相电阻的检测,最后置标志位,电机进入正式运行模式

中断函数:

第一个标志位,Motor_Control.is_aready_calibration是进行编码器校准                                            第二个标志位,Motor_Control.is_measureing_R是进行电阻检测                                                  第三个标志位,Motor_Control.is_mrasureing_I是进行电感检测                                                        第四个标志位,Motor_Control.is_get_RI获取了电阻电感之后进行闭环模式                                      在这些校准期间,foc_Calculate_Output_Current_()中的svpwm也是在一直计算,并且赋值CCR的,图形化显示也是在一直更新的。

二,drv8301的初始化配置

因为国内驱动器odrive和vesc在一直使用,所以简单介绍一下,具体原理就不具体说明了。在使用前最好要进行初始化一下的

直接调用Start函数即可,记得将第一行的EN_GATE引脚置高,然后我这个配置是20倍电流放大,16位数据结构,6路pwm输出 ,具体可以查看数据手册自行了解。

三,编码器校准

首先是要进行强拖

接着在这2秒内,进行补偿值记录或者编码器计数值清0

经过这几步其实就可以进入闭环了,但是为了电流环的参数更好一些,可以测量一下相电阻和相电感,代码逻辑不是很清晰,有问题请指正。

### 回答1: odrive是开源的机器人控制板,其原理图也是开源的。原理图是指描绘了电路板上各个元件之间连接关系和电气特性的图纸。odrive的原理图详细展示了其电路板的设计和布局。 odrive的原理图通过使用电路图软件绘制而成,其中包含了控制板上的主要元件,如处理器、传感器、驱动器等。它展示了这些元件之间是如何连接和交互的,以及它们在整个电路中扮演的角色。 odrive的原理图还指出了电路板上各个电气信号的路径和连接点。这是为了确保电气信号能够正确地传输和处理。通过查看原理图,用户可以了解到每个电路元件之间的电气关系,以及如何正确连接它们。 同时,odrive的原理图也可以用于进行电路板的调试和维修。当使用者出现问题时,可以通过查看原理图来判断是否有部件连接错误或电气信号传输出现异常。这有助于快速定位和解决问题。 总的来说,odrive的开源原理图使用户能够了解和定制机器人控制板的内部电路设计,并能够进行调试和维修。这为用户提供了更大的灵活性和控制权,同时也促进了开源社区的发展和分享精神。 ### 回答2: odrive是一个开源的电机驱动器平台,可以用来控制不同类型的电机。它的开源原理图可以帮助用户了解odrive的设计和工作原理。 odrive的电路板采用先进的电子元件和电机控制芯片,例如ARM微处理器,用于处理输入信号和执行控制算法。原理图包含了这些电子元件的连接和布局,并且清晰地显示了电路板上的每个电子元件之间的连接方式。 在odrive的原理图中,常见的元件包括电源模块、信号处理模块和功率放大模块。电源模块主要用于提供稳定的电源电压和电流给odrive系统的各个部分。信号处理模块用于处理输入信号,例如接收用户的控制指令或传感器的反馈信号。功率放大模块根据信号处理模块的输出信号来驱动电机。 除了这些基本模块之外,odrive的原理图还显示了一些附加的电子元件,例如温度传感器、电流传感器和编码器。这些传感器用于监测系统的工作状态和关键参数,并提供反馈信息给控制算法,以确保odrive系统的稳定运行。 通过查看odrive的原理图,用户可以了解odrive系统设计的细节和工作原理。它还可以为用户提供修改和优化系统的机会,使其适应不同的应用需求。这种开源的设计理念使得odrive能够被广泛用于各种领域,例如机器人技术、自动化设备和电动交通工具等领域。 ### 回答3: odrive是一种开源项目,它是一种用于实现电机控制的开源硬件和软件解决方案。它采用Arduino开发板和相应的电机驱动电路,通过对硬件和软件进行适当的配置和编程,实现了对电机的精确控制。 在odrive中,电机控制是通过Arduino开发板来实现的。Arduino开发板上集成了一个微控制器,它具有用于输入和输出的引脚,以及用于与硬件外设进行通信的通信接口。通过与电机驱动电路相连,Arduino开发板可以接收用户的输入信号,并将其转化为适合电机驱动的控制信号。 电机驱动电路是odrive中的另一个重要组成部分。它通常包括一个或多个功率电子器件,例如晶体管或MOSFET,以及用于控制功率电子器件的电路。电机驱动电路接收Arduino开发板发送的控制信号,并将其转化为适合电机的电流或电压信号,从而控制电机的转动。 除了硬件之外,odrive还有一个重要的组成部分是软件。odrive的软件部分通过编程控制Arduino开发板发送相应的控制信号,并接收电机的返回信号。通过使用适当的算法和控制策略,odrive可以实现对电机的精确控制,并实现各种功能,例如速度控制、位置控制和力矩控制等。 总结起来,odrive是一种通过Arduino开发板和电机驱动电路实现电机控制的开源项目。它通过软件的编程和硬件的设置,实现对电机的精确控制,并具有多种功能和可扩展性。它的开源原理图可以供用户参考和借鉴,以实现自己的电机控制应用。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值