电机调速控制模块说明文档

电机调速控制模块说明文档

图1-1总览图片

  • 概述
  • 本电机控制模块是用于精确控制直流无刷电机运行、以及转速的关键组件,它能够实现对电机的启动、停止、调速、转向等操作,并提供多种保护功能,以确保电机的安全稳定运行。

驱动方式:支持方波驱动以及foc驱动(磁场定向控制)

二、技术参数

  1. 输入电源:[具体电压范围]

驱动工作电压范围为 12V-48V,超过 36V建议减少热插拔;

  1. 最大相电流:[具体功率范围]

即能采样的最大电流的 80%。建议此值不要超过 98%。(目前还没有确定)

  1. 调速范围:[具体调速范围]

输出端转速=ERPM/极对数/减速比     最高转速=0.57735*(电源电压/(极对数*减速比*转子磁链)

三、硬件组成:

主控部分:主要包括MCU STM32F405RGT6(最小系统微控制单元)外设主要有测温模块、无线通讯接口模块、编码器接口模块、USB驱动模块、ADC电压采集模块、CAN通讯模块TJA1051T、显示屏模块N096-1608TBBIG11-H13。

驱动组成:栅极驱动控制器DRV8301DCAR,AD8418WBRZ电流采集模块、半桥驱动模块IPT007N06N

供电组成:主控供电12v-5v-3.3v采用TPS5430DDAR参考电路,电机供电24v,采集电流模块采用独立3.3v供电。Tips:后续针对不同外设提供单独文档

四、应用场景

(双足机器人)

(四足机器人)

(双足轮机器人)

(线驱机械臂)

(外骨骼机器人)

(云台相机)

五、使用说明

产品主要使用方式是通过上位机来VESC tool控制,也可使用其他家或自行开发

材料准备

烧录器(ST-LINK)、可调电源、无刷电机一个(有感和无感电机),编码器控制板一块、准备1条TYPEC数据线,电机供电香蕉头以及高温线特软硅胶线12AWG(红,黑)XT60接口以及线

连接上位机需要下载USB驱动,

接下来进行固件烧录,该过程需要烧录两个固件,一个叫Bootloader固件,一个叫APP固件,Bootloader是用来烧录APP应用程序的,每次STM32上电,都要执行Bootloader程序,然后才执行APP固件内部的应用程序。

上电前进行测试:

将VESC的电源输入连接至直流可调电源(没有可调电源,直接接电池也行,就是有些危险),将可调电源设置为12V限流200ma,限制电流的目的是为了防止电机控制板爆炸冒烟 ,以防万一还要用万用表量一量电源输入两端是否短路,5V和GND之间是否短路,3.3v和GND之间是否短路确认没问题后才可以上电。

Tips:上位机控制软件控制可参考官方控制文档(这步最重要)

第一次校准是查看电机是否可以自由转动,调试时先解决空载状态下得校准

【通用设置】
电机方向设置invert motor direction,若配置后发现电机输出端方向正反不对,可通过更改此参数实现反向。

电机端传感器设置sensor port mode,若电机端的位置传感器为磁编码器,则选择AS5047 encoder,若电机使用的是线性霍尔,则选择Sin/Cos,若电机是开关霍尔,则选择Hall sensor以此类推。

【电流设置】

DRV8301参数保持16,然后根据不同电机的性能不同,选择不同范围的相电流和母线电流,目前产品最新设置情况如下:

【转速范围设置】

转速范围设置的是电转速范围,电转速、电机实际转速、减速后的转速之间的关系如下:

电转速=电机实际转速*电机极对数

减速后的转速=电机实际转速/减速比=电转速/(电机极对数*减速比)

这里设置的最大电转速是电机处于60V时的转速,获取办法如下:可先随意设置一个较大的值,如100000erpm,然后按后续步骤配置到电机编码器校准,然后控制电机的电流环,使电机转速达到最大(95%),然后记录此时使用的电压V,电机电转速W,则最大电转速=W*60/V/0.95

【高级设置-Advance】
更改最小占空比为0%,更改热敏电阻阻值为3380k

【FOC设置】

校准电机的电阻、电感,磁链等参数。第六步是下载保持电机参数。

【电机控制参数配置】

Ki  kp  kd

【输出端编码器校准】

1、在terminal输入框输入get_enc_cal_val 180 2。
2、电机电机占空比模式20%(或10%,15%)转动电机。

3.可以点击页面Realtime Data——rotor position——encoder,观看编码器数据,若是编码器没有锋刺,即可停止。

4.停止:在terminal输入 get_enc_cal_val 180 3,电机即停止。

全部连接完成后通过上位机观察电压、电流是否正常,转速以及温度是否正常,是否可以完成编码器校准,能否通过指令完成控制。

六、CAN 通信

电机完成校准、标定以及参数设置后,即可以使用,控制使用 CAN 标准帧

格式,固定波特率为 1Mbps,按功能可分为接收帧和反馈帧,接收帧为接收到的

控制数据,用于实现对电机的命令控制;反馈帧为电机向上层控制器发送电机的

状态数据。根据电机选定的不同模式,其接收帧帧格式定义以及帧 ID 各不相同,

但各种模式下的反馈帧是相同的。

七、如果电机无法启动,或者启动异常可参考

1.首先需排除电机线圈是否烧毁,齿轮是否卡死:

电机断电状态下,手动转动电机输出端,若在转动过程中有明显的阻尼,则电机线圈烧毁概率最大;若输出端完全无法转动以及转动过程中有异常的齿轮摩擦异响,则说明减速齿轮部分有问题。

2.其次判断电机硬件驱动是否损坏。常见硬件问题有:电机DRV损坏,电机固件丢失,电源短路,CAN通信失败等问题。上位机会直接显示工作状态)

   电机DRV损坏特征:电机测试过程中,无论发送任何控制指令,电机都无法转动,连接上VESC上位机时能看到报错信息。

   电机固件丢失:此问题出现的概率很低,出现现象是:电机上电以后,红色LED指示灯常亮。正常情况下红色LED灯不会亮,只要红色LED亮了,就说明电机有问题了,但是具体问题不一定固件丢失,需要进一步分析。

   电源短路:这种情况大概率是焊接电源线的时候有焊锡锡珠把电源短路了,电源焊盘连锡等问题。

   CAN通信失败:在假设参数配置没问题的情况下,先检查电源板和驱动板CAN排针连线处是否正常,可用万用表测量连线是否有断路,以及CANH之间CANL是否短路。

3.初步判断硬件与机械结构没问题的情况下,检测软件参数是否正确。

   首先连接电机,上传电机参数,然后测试基本的控制模式。测试一台新电机,第一步一定要先上传电机参数,以免忘记导致默认参数将电机参数覆盖。上传电机参数的两个按键建议多点几次,防止上传失败。

   电机参数上传成功后,可点击占空比模式等测试电机是否能正常转动。若转动异常及时点击STOP按钮,使电机停下来。则说明电机参数配置有问题或驱动有一定概率有问题。

八、注意事项

本产品使用应该远离强磁环境,否则会影响电机编码器数据,造成电机转动异常!本产品使用应保证其稳定在 70℃以内,超过 70℃电机会警报,超过 100℃电机会强行宕机,进入待机状态,无法进行控制,待温度正常后恢复正常。本产品在大扭矩工作状态时,会产生较多热量,注意避免被烫伤。本产品在调试或工作时,应保证外壳被固定。注意接线牢固,避免接触不良。冬天天气干燥,注意静电干扰,避免损耗驱动。

  • 后续

1.是验证所有硬件功能,(包括驱动移植部分验证屏幕,can通讯模块、编码器模块验证)

自己可以完成

2.是基于CAN通讯的三种模式开发力位混控制、伺服位置控制模式、伺服位置控制模式

电流力矩控制模式、电机刹车模式

自己完成不了

3.是完成电机参数实测,功耗实测,负载实测

电压 V

母线电流 A

输出功率 W

扭矩 Nm

转速 rpm

相电流 A

效率

扭矩/相电流

附录部分重要参数说明

电机参数

1.相电阻(R)

相与相之间的电阻值,单位为 mR

2.相电感(L)

相与相之间的电感值,单位为 uH

3.磁链(λ)

永磁体磁场磁链值,单位为 Wb

4.粘滞系数

电机的粘滞系数,仅供参考使用,未使用到,单位为 N*m*s/rad

5.转动惯量

电机的转动惯量,辨识时尽量保持空载,单位为 kg*m^2

驱动参数

1.极对数

电机转子的极对数

2.减速比

外接齿轮箱的减速比,表明电机经过多少的减速进行输出

3.CAN ID

用于 CAN 通讯的电机标识 ID,最终发送使用的要根据模式附

加偏移值

4.CAN 通讯超时周期数设置,计量单位为 50us

加速度

5.电机加速度设定值,单位 Krad/s^2

减速度

6.电机减速度设定,单位 Krad/s^2,尽量与加速度值一致

7.限速

电机的理论最大速度,为系统计算值,如有减速箱,此值为减

速前的值,单位 rad/s

8.过流

电机相电流峰值的过流限定百分比值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/874506.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot中如何使用Spring Security安全框架

在Spring Boot中使用Spring Security的基本步骤如下&#xff1a; 1&#xff0c;添加Spring Security依赖到你的 pom.xml 文件中&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security<…

如何学习Python:糙快猛的大数据之路(学习地图)

在这个AI和大数据主宰的时代,Python无疑是最炙手可热的编程语言之一。无论你是想转行还是提升技能,学习Python都是一个明智之选。但是,该如何开始呢?今天,让我们聊聊"糙快猛"的Python学习之道。 什么是"糙快猛"学习法? "糙快猛"学习法,顾名思…

Spark SQL----JOIN

Spark SQL----JOIN 一、描述二、语法三、参数四、Join类型4.1 Inner Join4.2 Left Join4.3 Right Join4.4 Full Join4.5 Cross Join4.6 Semi Join4.7 Anti Join 五、例子 一、描述 SQL连接用于根据join criteria组合来自两个关系的行。以下部分描述了整个join语法&#xff0c;…

OpenGL笔记十四之GLM数学库的配置与使用

OpenGL笔记十四之GLM数学库的配置与使用 —— 2024-07-20 中午 bilibili赵新政老师的教程看后笔记 code review! 文章目录 OpenGL笔记十四之GLM数学库的配置与使用1.旋转变换运行效果2.平移变换运行效果3.缩放变换运行效果4.复合变换&#xff1a;先旋转 再平移运行效果5.复合…

OpenTeleVision复现及机器人迁移

相关信息 标题 Open-TeleVision: Teleoperation with Immersive Active Visual Feedback作者 Xuxin Cheng1 Jialong Li1 Shiqi Yang1 Ge Yang2 Xiaolong Wang1 UC San Diego1 MIT2主页 https://robot-tv.github.io/链接 https://robot-tv.github.io/resources/television.pdf代…

八股文之java基础

jdk9中对字符串进行了一个什么优化&#xff1f; jdk9之前 字符串的拼接通常都是使用进行拼接 但是的实现我们是基于stringbuilder进行的 这个过程通常比较低效 包含了创建stringbuilder对象 通过append方法去将stringbuilder对象进行拼接 最后使用tostring方法去转换成最终的…

c++线程传参

在C中&#xff0c;可以使用std::thread的构造函数来向线程传递参数。这里有一个示例&#xff1a; #include <iostream> #include <thread>// 定义一个被线程调用的函数 void threadFunc(int arg1, double arg2, std::string arg3) {std::cout << "arg1…

filebeat把日志文件上传到Es中配置(ES7版本)

默认的filebeat配置会把所有的索引都放到一个文件中&#xff0c;通过摸索发现可以自定义索引的名字、模板、生命周期 &#xff08;重点注意&#xff09;该配置文件只适应于ES版本是7&#xff0c;不适应于8的版本&#xff0c;两个版本的配置文件差异很大 /app/logs/info.log日…

glibc: getifaddrs_internal 占用大量cpu

Samples: 60K of event cpu-clock:pppH, Event count (approx.): 15027000000Overhead Command Shared Object Symbol - 34.84% arping libc-2.28.so [.] getifaddrs_internal getifaddrs_internal__GI___getifaddrs

独立开发者系列(31)——fastadmin项目的二次开发

在前面构建项目的fastadmin入门 里面&#xff0c;我们已经能快速搭建该体系和根据数据表建立最简单的CURD项目。类似练手的图书管理系统&#xff0c;内部项目修改管理&#xff0c;也对系统进行了简单的部署。这梳理拿到真正项目的开发流程。 默认的开发目录和代码程序运行的是p…

【Linux系统化学习】数据链路层

目录 数据链路层解决的问题 以太网 认识局域网 以太网帧格式 两个问题 认识MAC地址 认识MTU ARP协议 ARP协议的作用 ARP数据报格式 ARP协议的工作流程 数据链路层解决的问题 对于TCP/IP四层协议来说&#xff0c;数据链路层才是真正从传送数据进行跑腿办事情的&…

设计模式简述(一)

定义&#xff1a;设计模式指的是在软件开发过程中&#xff0c;经过验证的&#xff0c;用于解决在特定环境下&#xff0c;重复出现的&#xff0c;特定问题的解决方案。创建型设计模式关注对象的创建过程&#xff0c;提供了更灵活、可扩展的对象创建机制。结构型设计模式用于解决…

excel批量新建多个同类型的表格

背景引入 比如&#xff0c;一个企业有多个部门&#xff0c;现在需要按照某一个excel表模板收集各个部门的信息&#xff0c;需要创建数十个同类型表格&#xff0c;且标题要包含部门名称。 1.修改模板表格标题 在一个文件夹下面放入需要发放给各个部门的表格&#xff0c;将标题…

微软蓝屏事件暴露的网络安全问题

目录 1.概述 2.软件更新流程中的风险管理和质量控制机制 2.1.测试流程 2.2.风险管理策略 2.3.质量控制措施 2.4.小结 3.预防类似大规模故障的最佳方案或应急响应对策 3.1. 设计冗余系统 3.2. 实施灾难恢复计划 3.3. 建立高可用架构 3.4. 类似规模的紧急故障下的响应…

Kotlin泛型实化

内联函数 reified实现 1. 内联函数 内联函数中的代码会在编译的时候自动被替换到调用它的地方&#xff0c;这样的话也就不存在什么泛型擦除的问题了&#xff0c;因为代码在编译之后会直接使用实际的类型来替代内联函数中的泛型声明。 2. reified关键字 在Kotlin中&#xff0…

秒杀优化: 记录一次bug排查

现象 做一人一单的时候&#xff0c;为了提升性能&#xff0c;需要将原来的业务改造成Lua脚本加Stream流的方式实现异步秒杀。 代码改造完成&#xff0c;使用Jmeter进行并发测试&#xff0c;发现redis中的数据和预期相同&#xff0c;库存减1&#xff0c;该用户也成功添加了进去…

React前端面试每日一试 1.虚拟DOM是什么?

** 虚拟DOM&#xff08;Virtual DOM&#xff09;是什么&#xff1f; 虚拟DOM其实是React中的一个核心概念&#xff0c;它是一种编程概念&#xff0c;指的是在内存中以JavaScript对象的形式表示UI结构。当组件状态发生变化时&#xff0c;React首先会创建一个新的虚拟DOM&#…

【Node】npm i --legacy-peer-deps,解决依赖冲突问题

文章目录 &#x1f356; 前言&#x1f3b6; 一、问题描述✨二、代码展示&#x1f3c0;三、运行结果&#x1f3c6;四、知识点提示 &#x1f356; 前言 npm i --legacy-peer-deps&#xff0c;解决依赖冲突问题 &#x1f3b6; 一、问题描述 node执行安装指令时出现报错&#xff…

【车辆轨迹处理】python实现轨迹点的聚类(一)——DBSCAN算法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、单辆车轨迹的聚类与分析1.引入库2.聚类3.聚类评价 二、整个数据集多辆车聚类1.聚类2.整体评价 前言 空间聚类是基于一定的相似性度量对空间大数据集进行分组…

Hopfield 网络简介

引入 Hopfield网络的概念 Hopfield 网络的应用 Hopfield 网络由于能够非常有效地存储和检索信息&#xff0c;因此在各个领域都很有用。 尽管它们如今并不像用于一般机器学习任务的其他类型的人工神经网络那样常见&#xff0c;但它们仍然具有重要的特定应用&#xff1a; 1.联…