...Min cheetah机械狗设计(三)】|腿部电机控制器代码程序详细解析_百度...
发布网友
发布时间:2024-10-23 04:06
我来回答
共1个回答
热心网友
时间:2024-10-23 04:55
【导读】上一篇文章重点分析了腿部控制器的核心程序FOC算法,但是没有分析整个控制器的代码流程,会让人比较迷糊,本文是对上一篇文章的一个补充,将对控制器的整个程序进行一个大概的解析,让大家从一个宏观的视角来看电机控制器程序的执行过程,程序解读将从main函数开始。
开源程序代码:
一、电机控制器命令流程框图
电机控制器的功能是执行FOC算法来对电机进行控制:
1、接收指令
位置指令: 16bit、速度指令: 12bit、kp: 12bit、kd: 12bit、前馈转矩: 12bit
2、反馈信息
位置信息: 16bit、速度信息: 12bit、电流(力矩): 12bit
3、PC调试机命令下发
6个关节的位置和速度。
二、代码解析1、开头部分
1)这个三相高带宽的电机控制程序是用来控制机器人的
2)程序编写的作者和参与者
3)固件库文件所在的网址
4)程序是用 STM32F446编写的,也可以用其他STM32的MCU编写
5)三项逆变器用的是TI的TI DRV8323芯片
2、设备的模式定义
复位模式,校准编码器模式,电机运行模式,电机参数设置模式,编码器输出模式
3、用户数据以及编码器查询表数据
4、结构体初始化
一些数据需要存储的位置,GPIO初始化,FOC控制器结构体实例化,温度观测器,串口接口,和PC机串口通信
5、CAN通信、SPI通信和DRV832x 芯片配置
CAN通信的设置(引脚,发送和接收),SPI通信配置,DRV832x 芯片配置,AM5147磁编码器配置。
6、一些变量和标志位
7、mian函数入口
8、CAN通信指令解析及状态反馈
9、一些打印调试信息
10、进入转矩模式
11、进入三相线序校准和编码器线性校准程序
这个在上一篇文章已经具体对order_phases(&spi,&gpio,&controller,&prefs)和calibrate(&spi,&gpio,&controller,&prefs);这两个核心函数进行了分析,请参见专栏上一篇文章。
12、中断函数周期运行FOC算法
中断函数,FOC算法就是在这个中断中以40 kHz的频率反复执行
三、结束
下一章将开始机械狗的运动学和动力学部分分析,属于机械狗上层规划的部分,设计大量的数学知识,运动控制算法等,对此感兴趣的请自行恶补基础知识(*^_^*)。