【电机控制】OdriveFOC-无刷电机控制(指令篇——配置0.5.6版本!)

OdriveFOC-无刷电机控制(指令篇)


前言

现在硬件平台已搭建,软件已安装,接下来就是关键的给控制器下发指令,按照预想控制电机。
没有搭建好的同学可看前文:
【电机控制】OdriveFOC-无刷电机控制(硬件篇)
【电机控制】OdriveFOC-无刷电机控制(指令篇)
【电机控制】OdriveFOC-无刷电机控制(软件篇)

【电机控制】OdriveFOC无刷电机速度环位置环

提示:以下是本篇文章正文内容,下面案例可供参考

一、打开Odrivetool

1.Odrivetool

在开始菜单下(点击键盘上的windows键)输入cmd后Enter
请添加图片描述
在连接好Odrive的情况下,输入如下代码打开odrivetool

odrivetool

请添加图片描述
有蓝色字样表示成功连接


二、配置

1.报错处理

将配置重置为出厂默认值。

odrv0.erase_configuration()  

#取消超速报错

odrv0.axis1.controller.config.enable_overspeed_error = False

#电源吸收电流的能力 单位(A)

odrv0.config.dc_max_negative_current = -3 

请添加图片描述

2.设置编码器、电机参数

电机极对数,每个电机不一样,问店家参数

odrv0.axis0.motor.config.pole_pairs = 7  

设置编码器模式,我的是AS5047P,ABZ

odrv0.axis0.encoder.config.mode = ENCODER_MODE_INCREMENTAL

脉冲数为4000

odrv0.axis0.encoder.config.cpr = 4000

保存设置,下次重启不用重新设置

odrv0.save_configuration()

请添加图片描述

3.校准编码器、电机参数

校准电机参数,会出现滴的一声,然后电流滋滋声

odrv0.axis0.requested_state = AXIS_STATE_MOTOR_CALIBRATION

保存电机参数

odrv0.axis0.motor.config.pre_calibrated = True

校准编码器,会正转一圈,反转一圈

odrv0.axis0.requested_state = AXIS_STATE_ENCODER_OFFSET_CALIBRATION

查看是否报错(每一步都可以查看)

dump_errors(odrv0) 

请添加图片描述

Odrive校准电机编码器

三、闭环模式

1.进入闭环模式

输入指令,进入闭环(速度环、位置环、电流环都需要这一步!)

odrv0.axis0.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL

2.位置环

位置环设置

odrv0.axis0.controller.config.control_mode = CONTROL_MODE_POSITION_CONTROL	

设置转到第1圈的位置

odrv0.axis0.controller.input_pos = 1

3.速度环

速度环设置

odrv0.axis0.controller.config.control_mode = CONTROL_MODE_VELOCITY_CONTROL

速度环增益设置

odrv0.axis0.controller.config.vel_gain = 0.03

设置以速度为5运转

odrv0.axis0.controller.input_vel = 5

四、json配置(用现有例程直接用)

1.准备json文件

首先你需要准备好配置文件,这个文件的参数相当于例程,直接准备好的
请添加图片描述

配置文件下载链接

2.加载json文件

启动odrivetool

odrivetool

擦除配置

 odrv0.erase_configuration()

退出

quit

加载下载好的json文件(注意你自己的路径,这是我的路径,每个人不一样!)

odrivetool restore-config C:\Users\17802\Desktop\config.json

再启动odrivetool

odrivetool

请添加图片描述

3.配置电机参数

电机极对数,每个电机不一样,问店家参数

odrv0.axis0.motor.config.pole_pairs = 7  

设置编码器模式,我的是AS5047P,ABZ

odrv0.axis0.encoder.config.mode = ENCODER_MODE_INCREMENTAL

脉冲数为4000

odrv0.axis0.encoder.config.cpr = 4000

速度环增益设置(如果抖动就调小,我的一开始是0.5,非常抖,调到0.03平稳)

odrv0.axis0.controller.config.vel_gain = 0.03

电流限幅(看电机支持多少A,我的是10A,限幅如果是10A非常烫,因此设置5A)

odrv0.axis0.motor.config.current_lim = 5

保存设置(设置完毕后,必须保存!!)

odrv0.save_configuration()

请添加图片描述

4.控制指令

以速度5,位置10转动

odrv0.axis0.controller.config.vel_limit =5;odrv0.axis0.controller.input_pos = 10;

五、备用指令

将配置重置为出厂默认值。

odrv0.erase_configuration()  

重启

odrv0.reboot()

保存设置(设置完毕后,必须保存!!)

odrv0.save_configuration()

查看报错

dump_errors(odrv0)          

清除报错

dump_errors(odrv0, True)        

总结

本文仅仅简单介绍了OdriveFOC-无刷电机控制(指令篇),评论区欢迎讨论。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Kisorge

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

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

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

打赏作者

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

抵扣说明:

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

余额充值