Makerbase SimpleFOCShield V3.2 第二课 闭环测试
第一部分 硬件介绍
1.1 硬件清单
序号 | 品名 | 数量 |
---|---|---|
1 | SimpleFOCShield V3.2 | 1 |
2 | 2808航模电机 | 1 |
3 | 12V电源适配器 | 1 |
4 | AS5600编码器和配线 | 1 |
5 | USB Type-B数据线 | 1 |
1.2 硬件跳线
SimpleFOCShield V3.2主板背面跳线如下图:
1.3 硬件连接
1、SimpleFOCShield主板插入Arduino uno主板;
2、连接电源线和电机的三相线;
3、使用Type-B数据线连接主板与PC;
4、连接编码器的线,本示例以AS5600编码器的I2C接口为例。
AS5600编码器I2C接口与SimpleFOCShield V3.2主板接口对应关系如下表:
序号 | AS5600编码器(I²C接口) | SimpleFOCShield V3.2 |
---|---|---|
1 | 5V(3.3V共用) | 3.3V |
2 | GND | GND |
3 | SCL | SCL |
4 | SDA | SDA |
硬件连接如下图所示:
第二部分 软件配置
2.1软件准备
Arduino 版本:1.8.13
官方下载链接:项目首页 - arduino-esp32:Arduino core for the ESP32 - GitCode
企鹅群下载:732557609(群号)
2.2安装库
SimpleFOC库版本:2.2.1
安装步骤请参考《Makerbase SimpleFOCShield V3.2 第一课 基本测试》
第三部分 闭环电机控制
3.1 闭环位置控制
1、点击“文件”→“示例”→“Simple FOC”→“motor_control”→“position_motor_control”→”magnetic_sensor”→“angle_control”,打开官方闭环位置控制示例;
2、根据电机和电源修改以下参数
①第十三行,用//注释掉该行代码;
②第十五行,删除//,取消注释该行代码;
③第二十行,根据选用电机的极对数,修改为BLDCMotor motor = BLDCMotor(7);
④第二十一行,根据选用的PWM接口,修改为BLDCDriver3PWM driver = BLDCDriver3PWM(6, 10, 5, 8);
⑤第四十一行,根据供电电压修改driver.voltage_power_supply = 12的值,因本例使用DC12V电源,故没有修改;
⑥修改PID参数(在使用其他电机或想实现更好的控制效果时请自行调整PID参数)
第五十六行,修改为motor.PID_velocity.P = 0.021f;
第五十七行,修改为motor.PID_velocity.I = 0.12f;
第六十行,修改电压限制motor.voltage_limit = 0.5;(航模电机建议值为1~0.5,云台电机建议值为4以下)
第六十七行,修改为motor.P_angle.P = 30;
3、编译上传代码;
4、上传成功后,点击“工具”→“串口监视器”;
5、在命令窗口输入“T+数字”的指令并发送,即可控制电机闭环位置运动。
例如输入“T3.14”(弧度制),控制电机运动到180°的位置,输入“T62.8”(弧度制),控制电机运动到3600°的位置;
3.2 力矩控制模式
1、点击“文件”→“示例”→“Simple FOC”→“motor_control”→“torque_control”→”magnetic_sensor”→“voltage_control”,打开官方力矩控制示例;
2、修改代码
①第十二行,用//注释掉该行代码;
②第十四行,删除//,取消改行代码的注释;
③第十九行,修改为BLDCMotor motor = BLDCMotor(7);
④第二十行,修改为BLDCDriver3PWM driver = BLDCDriver3PWM(6, 10, 5, 8);
⑤第二十六行,初始电机电压值修改为较为安全的值float target_voltage = 1;
⑥第三十九行,根据供电电压修改driver.voltage_power_supply 的值;
3、编译上传代码;
4、打开串口监视器,本示例通过设置电机电压的方式来控制电机的扭矩,输入“T+数字”的指令设置电机电流,例如输入“T2”,就是设置电机的电压为2V;
3.3 闭环速度控制
1、点击“文件”→“示例”→“Simple FOC”→“motor_control”→“velocity_motion_control”→”magnetic_sensor”→“velocity_control”,打开官方闭环速度控制示例;
2、根据实际情况修改代码
①根据选用的编码器和接口选择启用16、18或19行代码中的其中一行;
②根据电机的极对数修改BLDCMotor motor = BLDCMotor()中的值;
根据选用的SimpleFOCShield 背部跳线写入三个对应的PWM接口和使能接口;
③根据需要设置速度初始值target_velocity;
④根据供电电压设置voltage_power_supply的值
⑤根据选用的电机设置合适的PID参数,如果电机校准后产生震动或来回摆动的情况,可能就是还没有调整到合适的PID参数;
⑥output_ramp:输出斜率,用于减小输入到力矩控制环的最大变化量。output_ramp越大,PID引起Uq变化的速度更快;output_ramp越小,PID引起Uq变化的速度更慢,通常不需要做修改;
Tf:低通滤波器时间常数。值越小滤波效果越差,通常不需要做修改;
3、编译上传代码;
4、打开串口监视器;
5、通过发送“T+数字”的指令设置电机闭环速度控制运行的速度;
Makerbase SimpleFOCShield V3.2 第二课 闭环测试,到此结束。
请继续关注后续课程。
欢迎加入 创客基地 电机控制企鹅群 讨论电机控制相关问题:732557609
欢迎光临 创客基地 B站 了解技术资料:
https://space.bilibili.com/393688975
欢迎光临 创客基地 tb店 采购产品:
https://makerbase.taobao.com/