该配置为霍尔电机的位置环模式
该配置基于6.5寸、DC36V、15 对极、功率 250W - 350 W电机
1. 恢复默认值
odrv0.erase_configuration()
2. 主板参数配置
配置耗散电阻(如果有)
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 = 30.0
配置反向过流保护阈值
odrv0.config.dc_max_negative_current = -5.0
配置回充电流值
odrv0.config.max_regen_current = 0
保存配置
odrv0.save_configuration()
3. 电机参数配置
配置极对数
odrv0.axis0.motor.config.pole_pairs = 15
配置电机校准时的电流
odrv0.axis0.motor.config.calibration_current = 10
配置电机校准时的电压
扫描二维码关注公众号,回复:
13126815 查看本文章
odrv0.axis0.motor.config.resistance_calib_max_voltage = 5
配置为大电流电机
odrv0.axis0.motor.config.motor_type = MOTOR_TYPE_HIGH_CURRENT
配置电机运行的最大电流限制
odrv0.axis0.motor.config.current_lim = 20
配置电机电流采样范围
odrv0.axis0.motor.config.requested_current_range = 30
保存配置
odrv0.save_configuration()
4. 编码器参数配置
配置为霍尔编码器
odrv0.axis0.encoder.config.mode = ENCODER_MODE_HALL
配置编码器分辨率,6*15=90
odrv0.axis0.encoder.config.cpr = 90
配置编码带宽
odrv0.axis0.encoder.config.bandwidth = 100
保存配置
odrv0.save_configuration()
5. 控制器参数配置
位置环控制模式
odrv0.axis0.controller.config.control_mode = CONTROL_MODE_POSITION_CONTROL
电机最大转速
odrv0.axis0.controller.config.vel_limit = 20
位置环增益
如果电机抖动可以适当调整该值
odrv0.axis0.controller.config.pos_gain = 3
速度环增益
在位置环可不配置
odrv0.axis0.controller.config.vel_gain = 0.2
odrv0.axis0.controller.config.vel_integrator_gain = 0.1
配置为梯形轨迹模式
odrv0.axis0.controller.config.input_mode = INPUT_MODE_TRAP_TRAJ
配置梯形模式电机最大转速
odrv0.axis0.trap_traj.config.vel_limit = 10
配置梯形模式下的加/减速度
odrv0.axis0.trap_traj.config.accel_limit = 2
odrv0.axis0.trap_traj.config.decel_limit = 2
保存配置
odrv0.save_configuration()
6. 测试参数配置
电机校准
odrv0.axis0.requested_state = AXIS_STATE_MOTOR_CALIBRATION
odrv0.axis0.motor.config.pre_calibrated = True
编码器校准
odrv0.axis0.requested_state = AXIS_STATE_ENCODER_OFFSET_CALIBRATION
odrv0.axis0.config.startup_encoder_offset_calibration = True
配置闭环
odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
odrv0.axis0.config.startup_closed_loop_control = True
保存配置
odrv0.save_configuration()
odrv0.reboot()
7. 测试电机
odrv0.axis0.controller.input_pos = 50
odrv0.axis0.controller.input_pos = 0