Odrive无刷驱动器 开发过程学习记录(2)——电机系统的参数配置和校准

Odrive无刷驱动器 开发过程学习记录(2)

——电机系统的参数配置和校准

开发说明:

*ODrive 硬件版本: v3.6-56V

ODrive 硬件内部固件版本: fw-v0.5.1

odrivetool版本: 0.5.1.post0 (pip install odrive==0.5.1.post0)*

配置环境: windows10

上次在windows环境下,将odrive的基础配置进行了详细的讲解,本次文章将进行电机参数的配置,并使电机进入闭环控制状态。
首先按下述方式连接好odrive:
在这里插入图片描述
连接流程:24V电源——USB接口——功率耗散电阻——盘式无刷电机——编码器

配置主要经过四大步骤:
1.配置电机限制值以及硬件参数
2.编码器配置
3.参数保存
4.点击校准

一、 电机基础配置

1.Win+R打开运行框, 输入cmd打开命令终端

在这里插入图片描述

2.Odrive连接电脑,并电源供电,PWR灯亮

3.在命令终端输入“odrivetool”,打开Odrive工具

在这里插入图片描述打开后显示已连接 Odrive驱动器

4.进行电机限制值配置

 - 1.设置限制电流
odrv0.axis0.motor.config.current_lim = ?   (A)

该命令作用是:设置无刷电机运行时的最大电流

例如:本次设置M0电机最大电流为10A,则输入:
odrv0.axis0.motor.config.current_lim = 10

电机电流限制
odrv0.axis0.motor.config.current_lim 单位为 [A]
出于安全考虑,ODrive固件内部默认电流限制设置为10A。 这是相当小的,但是对于初次调试驱动器是有好处的。 配置完 ODrive 后,可以将其增加到60A以提高性能。 请注意:重新设置电流限制值后需要重新设置电流采样范围

 - 2.设置电流采样
odrv0.axis0.motor.config.requested_current_range = ? (A)

该命令作用是:odrive电流采样就只会采样范围以内的电流值。
这个值通常可以设置相比限制电流值更大一些。

例如:本次设置M0电机电流采样值为90A,则输入:
odrv0.axis0.motor.config.current_lim = 90

 - 3.电机转速限制值
odrv0.axis0.controller.config.vel_limit = ? (turn/s)

该命令作用是:控制电机最大转速,电机将被限制为该转速,
电机转速超过此值将报错。可以改成感觉合适的值,
或者可以最大调到超过电机本身最大转速的值,
那么电机将以它本身最大速度去响应控制。

例如:本次设置M0电机转速限制值为2000.0 (turn/s),则输入:
odrv0.axis0.controller.config.vel_limit = 2000.0

 - 4.电机校准电流限制值
 odrv0.axis0.motor.config.calibration_current = ? (A)

该命令作用是:此值为电机在校准过程中,运行通过的最大电流值。
同样可以改成感觉合适的值,如果您使用的是小功率电机(即15A额定电流),
则可能需要将此值适当调小。

5.设置相关硬件参数

 - 1.功率耗散电阻的电阻值
 odrv0.config.brake_resistance = ? (Ohm)

该命令作用: 耗散电阻就是刹车电阻,如果不使用设置为0。
请注意,您的接线和螺钉端子中可能会有一些额外的电阻。
因此,如果使用时遇到问题,
则可能需要将此参数在功率耗散电阻阻值的基础上增加约0.05欧姆。

例如:本次M0电机使用耗散电阻为3.35 (Ohm)(加入额外电阻),则输入:
odrv0.config.brake_resistance = 3.35

 - 2.永磁电机中的磁极对数(磁钢个数除以2)
 odrv0.axis0.motor.config.pole_pairs = ? 

该命令作用是: 设置无刷电机中磁极对数,
这是电机固有参数,可以通过数磁极数或者电机厂家提供的磁极参数获得。

下图为本次使用电机的参数。

在这里插入图片描述
例如:因为定子极数为28 ,28 / 2 = 14,极对数为14,则输入:
odrv0.axis0.motor.config.pole_pairs = 14

 - 3.选择电机类型
 odrv0.axis0.motor.config.motor_type = ? 
 
 当前支持两种类型的电机:
 大电流电机(MOTOR_TYPE_HIGH_CURRENT)
 云台电机(MOTOR_TYPE_GIMBAL)。

注意:不要把非小电流云台电机配置为 MOTOR_TYPE_GIMBAL ,这样可能会使电机或 ODrive 过热。
博主就因设置错误导致烧掉Odrive的mos管!

本次选用的是大电流电机,则输入:
odrv0.axis0.motor.config.motor_type = MOTOR_TYPE_HIGH_CURRENT

二、编码器的配置

 - 1.使用编码器 cpr
odrv0.axis0.encoder.config.cpr = ? (编码器每转计数)

该命令作用:
设置编码器每转计数 [CPR],这是每转产生的脉冲数(PPR)值的4倍。
通常,这在编码器的手册中会有说明。

例如:本次编码器使用cpr = 16384 ,则输入:
odrv0.axis0.encoder.config.cpr = 16384

如果不使用编码器,则设置无传感器模式运行

三、保存设置

输入代码:
odrv0.save. confguratin()

作用:将所有带有 .config 的参数保存到 ODrive 内部 FLASH 中,以便 ODrive 在重启后配置的参数仍然有效。

参数设置一览:

在这里插入图片描述
配置完成之后,你可以直接输入命令查看,你的参数设置是否正确:
在这里插入图片描述
输入命令回车,就会输出当前命令设置的参数值。

输入代码:odrv0.reboot() 或者 对重新Odrive上电一次,
检测并完成设置项目的保存

在这里插入图片描述

四、电机校准

 - 1.进行电机特性测量和编码器校准
odrv0.axis0.requested_state = AXIS_STATE_FULL_CALIBRATION_SEQUENCE

该命令输入后,大约2秒钟后,应听到电机发出哔声。 
然后电机将在一个方向上缓慢旋转几秒钟,然后在另一方向上缓慢旋转几秒钟。

这个过程是在做什么?
ODrive 首先测量电机的电气特性(即电机相电阻和相电感),然后进行编码器偏移校准。

Odrive无刷驱动器电机校准视频

 - 2.保存校准结果
odrv0.axis0.motor.config.pre_calibrated =True

输入此命令后,校准结果就会被Odrive保存。
 - 3.使用此命令进入位置控制状态
 odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL

每次重启后,都可以输入此命令来进入位置控制状态。

此时 ODrive 将保持电机转子的位置。如果用手去扭动电机轴,电机会试图阻止转子被扭动,您可以调高odrv0.axis0.motor.config.current_lim,
这样电机将能提供更大的扭力去对抗您的旋转。如果电机进入闭环运行后开始抖动,或在您用手去扭动电机轴后开始抖动,您需要降低控制器增益。

本次电机系统的参数配置和校准完成,下面将设置电机PID与位置控制指令。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东西南北有菜鸟_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值