淘宝套装链接
B站视频链接
2021年3月31日前 入Q群(732557609)可抽奖oDrive主板!
B站视频 创客基地oDrive第二课 X2212电机配置
第1部分 硬件介绍
1.1 硬件清单
oDrive V3.6-56V 主板 1块
12V 2.0A电源适配器 1个
micro USB 线 1条
50W 2欧 耗散电阻 1个
编码器连接线 1条
MKS X2212电机 1个
MKS X2212是改装的X2212电机,增加了径向磁铁和TLE5012B编码器。
1.2 硬件连接
micro USB 线 一端连接oDrive主板,另一端连接PC;
耗散电阻 两端分别接到AUX接口;
电机三相线接入M0电机接口;
编码器连接线一端接主板J4-M0,另一端接电机编码器接口;
12V电源适配器连接主板DC接口,上电后PWR指示灯亮。
硬件连接如下图所示:
第2部分 参数配置
2.1 连接odrivetool
打开命令终端,输入odrivetool ,如下图所示。
2.2 恢复默认参数
进行配置前建议先恢复主板默认参数,并重新启动。
输入 odrv0.erase_configuration() ,按下回车键,如下图所示。
注:以下所有配置参数都在 In [x]: 后面输入。
2.3 主板参数配置
- 配置耗散电阻
我们使用50W 2Ω的耗散电阻,如果没有接耗散电阻,此项配置为0.0 。
odrv0.config.brake_resistance = 2.0 - 配置低压保护阈值
当电压低于保护阈值时,将停止电机并报错。
odrv0.config.dc_bus_undervoltage_trip_level = 8.0 - 配置过压保护阈值
当电压高于保护阈值时,将停止电机并报错。
odrv0.config.dc_bus_overvoltage_trip_level = 56.0 - 配置过流保护阈值
当电流高于保护阈值时,将停止电机并报错。
odrv0.config.dc_max_positive_current = 20.0 - 配置反向过流保护阈值
当电机制动在母线上产生的反向电流高于此值时,将停止电机并报错。
odrv0.config.dc_max_negative_current = -3.0 - 配置回充电流值
如果使用的电池供电,可以根据电池组承受的回充电流大小进行配置。使用开关电源供电时,此项配置为0。
odrv0.config.max_regen_current = 0
至此,主板参数配置完成。
保存配置参数
odrv0.save_configuration()
2.4 电机参数配置
- 配置电机极对数
转子极数除以2,就是电机极对数。
odrv0.axis0.motor.config.pole_pairs = 7 - 配置电机校准时的电流
此电流值在进行电机参数校准和编码器偏移校准时使用。
odrv0.axis0.motor.config.calibration_current = 5 - 配置电机校准时的电压
此电压值在进行电机参数校准和编码器偏移校准时使用。
odrv0.axis0.motor.config.resistance_calib_max_voltage = 2 - 配置电机类型
这里配置为大电流电机
odrv0.axis0.motor.config.motor_type = MOTOR_TYPE_HIGH_CURRENT - 配置电机运行的最大电流限制
odrv0.axis0.motor.config.current_lim = 15 - 配置电机电流采样范围
odrv0.axis0.motor.config.requested_current_range = 20
至此,电机参数配置完成。
保存配置参数
odrv0.save_configuration()
2.5 编码器参数配置
- 配置编码器类型
配置电机编码器类型为增量式编码器。
odrv0.axis0.encoder.config.mode = ENCODER_MODE_INCREMENTAL - 配置编码器分辨率
编码器分辨率 = 每圈步数4 = 40964 = 16384
odrv0.axis0.encoder.config.cpr = 16384 - 配置编码带宽
odrv0.axis0.encoder.config.bandwidth = 3000 - 配置编码器校准时电机运行电流
odrv0.axis0.config.calibration_lockin.current = 5 - 配置编码器校准时电流上升时间
odrv0.axis0.config.calibration_lockin.ramp_time = 0.4 - 配置电流上升时电机转动距离
odrv0.axis0.config.calibration_lockin.ramp_distance = 3.1415927410125732 - 配置编码器校准时电机加速度
odrv0.axis0.config.calibration_lockin.accel = 20 - 配置编码器校准时电机速度
odrv0.axis0.config.calibration_lockin.vel = 40
至此,编码器参数配置完成。
保存配置参数
odrv0.save_configuration()
2.6 控制器参数配置
- 配置控制模式
设置为位置控制模式
odrv0.axis0.controller.config.control_mode = CONTROL_MODE_POSITION_CONTROL - 配置电机最大转速
设置为 50 圈/秒
odrv0.axis0.controller.config.vel_limit = 50 - 配置位置环增益
odrv0.axis0.controller.config.pos_gain = 30 - 配置速度环增益
odrv0.axis0.controller.config.vel_gain = 0.02
odrv0.axis0.controller.config.vel_integrator_gain = 0.2 - 配置输入模式
配置为梯形轨迹模式
odrv0.axis0.controller.config.input_mode = INPUT_MODE_TRAP_TRAJ - 配置梯形模式电机转速
odrv0.axis0.trap_traj.config.vel_limit = 30 - 配置梯形模式电机加/减速度
odrv0.axis0.trap_traj.config.accel_limit = 5
odrv0.axis0.trap_traj.config.decel_limit = 5
至此,控制器参数配置完成。
保存配置参数,并重启主板。
odrv0.save_configuration()
odrv0.reboot()
2.7 测试参数配置
- 检测电机参数
odrv0.axis0.requested_state = AXIS_STATE_MOTOR_CALIBRATION
检测电机参数,执行这条命令后大约2秒,应听到电机发出“哔”声音。 - 设置预先校准
odrv0.axis0.motor.config.pre_calibrated = True
表示电机已校准下次重新启动后可以直接使用上次校准的结果。 - 编码器偏移校准
odrv0.axis0.requested_state = AXIS_STATE_ENCODER_OFFSET_CALIBRATION
电机将正向转一圈,再反向转一圈。
注意:等待电机停止转动后,再执行后续指令。 - 设置闭环运行模式
odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL - 设置启动运行模式
重新启动自动进行编码器校准,并进入闭环控制模式
odrv0.axis0.config.startup_encoder_offset_calibration = True
odrv0.axis0.config.startup_closed_loop_control = True
至此,测试参数配置完成。
保存配置参数,并重启主板。
odrv0.save_configuration()
odrv0.reboot()
至此,所有参数配置完成。
第3部分 电机控制测试
- 控制电机正向转50圈
odrv0.axis0.controller.input_pos = 50 - 控制电机反向转50圈
odrv0.axis0.controller.input_pos = 0 - 释放电机
odrv0.axis0.requested_state = AXIS_STATE_IDLE
第4部分 绘图仪测试
- 退出odrivetool,如下图所示
quit
- 启动绘图仪,如下图所示
odrivetool liveplotter
- 绘图仪窗口显示位置轨迹,如下图所示
创客基地oDrive第二课 X2212电机配置 到此结束。
对应的视频课程,可在Q群(732557609)下载,欢迎加入。
请继续关注后续课程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)