SimpleFOC移植STM32(二)—— 开环控制

2023-05-16

目录

  • 注意事项
  • 一、硬件介绍
    • 1.1、硬件准备
      • 1.1.1、SimpleMotor方案
      • 1.1.2、SimpleFOCShield V2.0.3方案
    • 1.2、硬件连接
      • 1.2.1、原理图
      • 1.2.2、SimpleMotor接线
      • 1.2.3、STM32接线
  • 二、控制原理
    • 2.1、SVPWM
    • 2.2、极对数
    • 2.3、开环控制
  • 三、软件操作和程序下载
    • 3.1、Keil编译生成hex文件
    • 3.2、FlyMcu下载
    • 3.3、SimpleMotor准备
  • 四、程序演示
    • 4.1、开环速度控制
      • 4.1.1、打开工程
      • 4.1.2、修改参数
      • 4.1.3、编译下载
      • 4.1.4、串口发送指令
    • 4.2、开环位置控制
      • 4.2.1、打开工程
      • 4.1.2、修改参数
      • 4.1.3、编译下载
      • 4.1.4、串口发送指令

SimpleFOC的教程比较多,做了一个总的链接,欢迎点击阅读:SimpleFOC教程链接汇总

注意事项

  • 1、电机的三根线可以任意接在驱动器的ABC三相上,不用区分;
  • 2、开环控制最好选择Ω级的电机,尽量不要用mΩ级的航模电机,容易烧MOS和电机。开环控制在实际中也就启动时用用,这不是电机控制的一个常态。
  • 3、电机控制要尽快操作,不要停留时间太久,时刻注意电机和驱动器的发热情况,一旦过热立即断电。

一、硬件介绍

本节实验适合运行在SimpleMotor和SimpleFOCShield V2.0.3上。

1.1、硬件准备

1.1.1、SimpleMotor方案

序号名称数量
1驱动器1
2云台电机1
312V电源1
4USB转串口1

在这里插入图片描述
带编码器云台电机可以是AS5600,也可以是TLE5012B。
电机 购买链接:某宝购买
SimpleMotor 购买链接:某宝购买

1.1.2、SimpleFOCShield V2.0.3方案

序号名称数量
1STM32核心板1
2SimpleFOCShield V2.0.31
3云台电机1
412V电源1
55V电源1
6USB转串口1
7杜邦线若干

在这里插入图片描述
带编码器云台电机可以是AS5600,也可以是TLE5012B。
电机 购买链接:某宝购买
simpleFOCShield V2.0.3购买链接:某宝购买

1.2、硬件连接

1.2.1、原理图

在这里插入图片描述

1.2.2、SimpleMotor接线

在这里插入图片描述

在这里插入图片描述

1.2.3、STM32接线

对于SimpleFOCShield V2.0.3,需要杜邦线连接主板和驱动板,记得共地。
在这里插入图片描述
对照 Shield V2.0.3 的原理图:

STM32核心板V2.0.3
PA05
PA19
PA26
PB98
GNDGND

在这里插入图片描述

注意事项:
①、无刷电机的三根相线不用区分顺序,任意接在端子上即可,调整其中任意两根电机反转。
②、最好使用大电阻的云台电机(比如10Ω),如果使用mΩ级的航模电机,操作不当,容易烧毁驱动板MOS或者电机。
③、12V先不要上电,请继续阅读文章。

二、控制原理

2.1、SVPWM

  SVPWM的原理请看这篇文章:SimpleFOC(八)—— 理论+实践 深度分析SVPWM。
在这里插入图片描述
  Uq为交轴,Ud为直轴,角度angle_e1是电机的电角度。
  一般应用直接设置Ud=0,通过控制Uq来控制磁场大小,控制angle来控制磁场方向;
  开环控制中,直接设置Uq = voltage_limit,按照固定的速度递增angle就是速度模式;递增angle到设定值就是角度模式。
  闭环控制中,angle来自编码器,根据编码器计算实际速度和位置,如果速度大于设定值,PID调小Uq降低速度,如果速度小于设定值,程序调大Uq增加速度。

2.2、极对数

  无刷电机转子中磁铁的对数就是极对数。
在这里插入图片描述
  电机转子转一圈,称为360°(或者叫2Pi)机械角度,转子转过一对磁极,称为360°电角度。
  如上图的7对极,电机需要转7X360电角度 = 360机械角度。SVPWM控制的angle为电角度,而编码器读到的是机械角度,所以需要把机械角度转为SVPWM可用的电角度。

2.3、开环控制

  SVPWM+设定的角度angle = 开环控制,
在这里插入图片描述

三、软件操作和程序下载

3.1、Keil编译生成hex文件

选择生成hex文件。如果用STlink下载可忽略此步。
在这里插入图片描述

3.2、FlyMcu下载

如果用STlink下载可忽略此步。
在这里插入图片描述

3.3、SimpleMotor准备

在这里插入图片描述

- 如果用STlink下载,SWCLK接驱动板的SWK、SWDIO接驱动板的SWD,GND接GND。

- 如果用串口下载:
    1、USB转串口的TXD接驱动板的RX1,USB转串口的RXD接驱动板的TX1,GND接GND,
    2、按住Boot键不松手,按下RST键松开,然后再松开Boot键,单片机进入Boot模式,
        (如果你手头的驱动板Boot键是跳线帽,短接跳线帽相当于按住Boot键)
    3、点击FlyMcu的开始编程,等待下载完成。

四、程序演示

开环控制尽快操作,注意电机发热情况,发热严重要立即断电

1、电机抖动转不起来把voltage_limit设置的大一点,
2、电机发热严重的把voltage_limit设置的小一点,
3、voltage_limit设置越大,电机达到的最大转速越大,但是voltage_limit值越大电机发热就越严重,
4、电机能转就表示一切正常,记下当前的voltage_limit值,闭环控制中用于设置voltage_sensor_align,
5、可以学习下一章了,开环不是电机控制的常态,不要纠结太久。20211224

4.1、开环速度控制

4.1.1、打开工程

在这里插入图片描述

4.1.2、修改参数

- 选择controller=Type_velocity_openloop;
- 电源电压和极对数根据实际情况设置;电源电压增加voltage_limit也要相应的增大
- voltage_limit在不了解电机性能的情况下从小逐渐增加,每次修改后注意工作电流和电机发热;
- 如果电机抖动转不起来,增大voltage_limit;
- 如果电机能转但发热严重,减小voltage_limit。

4.1.3、编译下载

  FlyMcu通过串口下载或者STlink通过SWD接口下载。
  串口下载需先进入Boot模式,下载完以后按复位键运行。
在这里插入图片描述

4.1.4、串口发送指令

  常用的串口调试软件,在发送区敲回车,对应的16进制数据为0D 0A,也就是回车换行;Arduino IDE自带的串口监视器,输入指令点发送,只有16进制的0A。所以不能用Arduino IDE的软件给当前代码发送指令。
  发送指令,从低速开始逐渐增加,速度设置过快电机容易失步变成振动。速度单位为rad/s,6.28表示一圈每秒。
在这里插入图片描述

4.2、开环位置控制

4.2.1、打开工程

  和开环速度为同一个工程
在这里插入图片描述

4.1.2、修改参数

  选择controller=Type_angle_openloop;

4.1.3、编译下载

4.1.4、串口发送指令

  设定目标值,单位为rad,一圈=6.28rad。
在这里插入图片描述


本节源码下载:
链接:https://pan.baidu.com/s/1mvd5Wh1uBZz0FNXgE44tVA
提取码:d4q7

(完)

欢迎加入simpleFOC技术交流群:923734429 群已满根据提示添加新群 (入群申请写:CSDN)


请继续阅读相关文章:
SimpleFOC移植STM32(一)—— 简介
SimpleFOC移植STM32(二)—— 开环控制
SimpleFOC移植STM32(三)—— 角度读取
SimpleFOC移植STM32(四)—— 闭环控制
SimpleFOC移植STM32(五)—— 电流采样及其变换

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SimpleFOC移植STM32(二)—— 开环控制 的相关文章

  • @武汉人民,请收好这份名单

    1月27日 xff0c 武汉本地众多商户联合阿里巴巴旗下饿了么口碑 盒马 飞猪等业务 xff0c 从衣食住行各个角度 xff0c 为武汉一线医护人员提供安全 高品质的餐品及生活配套服务 首批100家餐厅已准备就绪 其中麦当劳 华莱士 大米先
  • java遍历泛型的方法

    一 List遍历 Java中List遍历有三种方法来遍历泛型 xff0c 主要为 xff1a 1 for循环遍历 2 iterator遍历 3 foreach遍历 package com gmail lsgjzhuwei import ja
  • java web文件下载功能实现

    需求 xff1a 实现一个具有文件下载功能的网页 xff0c 主要下载压缩包和图片 两种实现方法 xff1a 一 xff1a 通过超链接实现下载 在HTML网页中 xff0c 通过超链接链接到要下载的文件的地址 lt DOCTYPE htm
  • java创建线程的三种方式及其对比

    Java中创建线程主要有三种方式 xff1a 一 继承Thread类创建线程类 xff08 1 xff09 定义Thread类的子类 xff0c 并重写该类的run方法 xff0c 该run方法的方法体就代表了线程要完成的任务 因此把run
  • 'hibernate.dialect' must be set when no Connection available

    今天碰到的这个问题 xff0c 很无厘头 xff0c 网上搜索了很多 xff0c 都不靠谱 xff0c 还是靠自己 解决方法是在hibernate cfg xml中添加 lt property name 61 34 dialect 34 g
  • javascript动态插入html元素

    主要有是两种方案 xff1a 1 使用DOM span class hljs comment 使用createElement创建元素 span span class hljs keyword var span dialog 61 docum
  • python中switch语句用法

    python中是没用switch语句的 xff0c 这应该是体现python大道至简的思想 xff0c python中一般多用字典来代替switch来实现 coding utf 8 from future import division d
  • ROS的 sudo rosdep init 的报错终极解决方案

    ROS的 sudo rosdep init 的报错解决方案 安装ROS时sudo rosdep init指令报错 xff1a ERROR span class token operator span cannot download span
  • 图解Word2vec

    作者 xff1a 龙心尘 时间 xff1a 2019年4月 出处 xff1a https blog csdn net longxinchen ml article details 89077048 审校 xff1a 龙心尘 作者 xff1a
  • api 功能与实现的些许感想

    api 功能与实现 对于 api 功能的了解 xff0c 通过学习源码的实现便能做到 反之 xff0c 通过研究源码 xff0c 也能对api 功能有所了解 api 功能与实现的这种相互联系意味着我们不应该将 api 的功能与实现切割开 x
  • 浅谈驱动开发

    驱动开发没那么高大上 驱动开发在很多人眼中都是一项极具挑战性的任务 xff0c 可当你真正去开发一个驱动时 xff0c 你也许会发现它并没有看上去那样困难 xff0c 可对大多数人而言驱动开发是八竿子打不着的话题 xff0c 故而更增强了驱
  • 新冠病毒破解有了巨大突破,达摩院做了什么?

    阿里巴巴达摩院正在用AI算法抗击新型冠状病毒肺炎疫情 2月1日 xff0c 浙江省疾控中心上线自动化的全基因组检测分析平台 利用阿里达摩院研发的AI算法 xff0c 可将原来数小时的疑似病例基因分析缩短至半小时 xff0c 大幅缩短确诊时间
  • 免费AI训练平台“九天·毕昇”

    AI 训练平台 九天 毕昇 xff0c https jtedu cmri cn register token 61 ZDZiZDhmMDQtNmJiZC00M2ZkLWI3NjItMTU1MzNhZWRkNTYz 可以免费获取50小时计算资
  • 鸢尾花数据集使用

    from sklearn datasets import load iris 加载数据集iris 61 load iris print iris keys 数据的条数和维数n samples n features 61 iris data
  • 如何用python画K线图

    第一步 xff1a 导入相应的库 import tushare as ts import matplotlib pyplot as plt import numpy as np 第二步 xff1a 导入mpl finance py脚本文件
  • 单片机和ARM的区别

    1 软件方面 这应该是最大的区别了 引入了操作系统 为什么引入操作系统 xff1f 有什么好处嘛 xff1f 1 xff09 方便 主要体现在后期的开发 xff0c 即在操作系统上直接开发应用程序 不像单片机一样一切都要重新写 前期的操作系
  • 四旋翼无人机设计

    1主控制器电路设计 STM32F103RCT6是STM32家族中性能比较高端的单片机 xff0c 将单片机作为基于视觉的四旋翼路径跟踪系统的主控控制器芯片 xff0c 其内核主要是Cortex M3 处理速度快 xff0c 工作效率高 2
  • IP地址申请

    IP地址是校园网重要的网络资源 xff0c 在管理和使用过程中应当按规定进行设置和使用 大学校园网IP 地址由网络中心统一负责总体规划 分配和管理 xff0c 网络中心负责校园网IP地址的日常维护工作 xff0c 包括用户申请IP地址的审批
  • 图像处理库综述

    当需要做一些图像处理方面的学习和研究的时候 xff0c 首要任务就是选择一套合适的图像处理类库 xff0c 本文主要简单介绍下各家图像库的一些优缺点 OpenCV xff0c Intel IPP xff0c Halcon xff0c MAT
  • 核心显卡,集成显卡,独立显卡

    目前显卡已经有好几种了 xff0c 比如独立显卡 核心显卡 以及集成显卡等 xff0c 不同显卡的定位不同 核心显卡 主板集成显卡和独立显卡的区别如下 xff1a 处理器集成显卡就是指集成在cpu内部的显卡 xff0c 通常称为核心显卡 x

随机推荐

  • 遍历JavaScript对象的所有属性

    用来遍历指定对象所有的属性名称和值 obj 需要遍历的对象 author Jet Mah website http www javatang com archives 2006 09 13 442864 html function allP
  • 在VS环境下使用SVN

    由于我和同事要合作做一个小程序 xff0c 所以需要一个源代码管理的工具 在工作的时候我们由于是VS进行 net开发所以一般是使用TFS进行项目管理 但是我们在不同的项目组 xff0c 工作地点不一样 xff0c 而且现有的TFS服务器都是
  • 12小时上线“新冠肺炎同程查询工具”,开发者这样狙击疫情

    阿里妹导读 xff1a 2020开年极为复杂 面对新型肺炎的疫情 xff0c 我们每一个人都与国家命运紧密相连 全社会的力量都凝聚在一起 xff0c 众志成城 xff0c 共克时艰 有这么一群热爱代码的人 xff0c 用自己的方式提升效率
  • 35 个你也许不知道的 Google 开源项目

    Google是支持开源运动的最大公司之一 xff0c 它们现在总共发布有超过500个的开源项目 xff08 大部分都是利用它们的API来完成 xff09 xff0c 本文将列举一些有趣的开源项目 xff0c 其中很可能有不少你不知道的哦 文
  • Ubuntu 清除缓存 apt-get命令参数

    整理了Ubuntu Linux操作系统下apt get命令的详细说明 分享给大家 常用的APT命令参数 xff1a apt cache search package 搜索包 apt cache show package 获取包的相关信息 x
  • [code]使Ext.DatePicker只显示年月选择界面

    Ext override Ext DatePicker onRender function container position var m 61 39 lt table cellspacing 61 34 0 34 gt 39 39 lt
  • The BASEDIR environment variable is not defined correctly This environment variable is needed to run this program

    今天配一台服务器的时候 xff0c 启动tomcat莫名其妙的报错说 xff1a The BASEDIR environment variable is not defined correctly This environment vari
  • BIRT Viewer 参数设置详解

    BIRT作为一款功能强大的开源报表工具 xff0c 其版本的升级更新速度也非常快 xff0c 从1 0到2 0 xff0c 一直到最新的2 2 1版本 xff0c 无论从功能上还是性能上都得到了极大的提高和扩充 BIRT也提供了一个标准的J
  • [code]将Ext.DatePicker年份调到左边,月份调到右边

    Ext override Ext DatePicker createMonthPicker function if this monthPicker dom firstChild var buf 61 39 lt table border
  • ibatis配置log4j输出sql语句等日志信息

    整了一上午的ibatis xff0c 记得自己以前配置过log4j可以输出sql语句 xff0c 但是这次不知道咋了 xff0c 就是不输出 xff0c 找以前的项目还找不到 了 xff0c 上网上搜索了半天 xff0c 都是差不多的配置l
  • Dreamweaver 代码配色方案 DIY

    Dreamweaver 代码配色方案 DIY 最近刚换上隐形眼镜 xff0c 电脑上满屏的白花花的颜色 xff0c 看得我眼泪鼻涕直流 xff0c 无奈 xff0c 代码还是要看滴 xff0c 改造了一下Dreamweaver代码配色方案
  • xampp的apache启动失败

    xampp xff08 apache 43 mysql 43 php 43 perl xff09 是一个功能强大的建站集成软件包 许多人通过他们自己的经验认识到安装 Apache 服务器是件不容易的事儿 如果您想添加 MySQL PHP 和
  • 降级论

    几乎一年没有写博客了 xff0c 说没时间那是借口 xff0c 唯一的原因是 xff0c 年纪越大越发觉自己肤浅 有些想法还没提笔 xff0c 就发现很幼稚 xff0c 就不敢发出来贻笑大方了 这次先给大家说个小故事 xff1a 从前有三个
  • 阿里传奇工程师多隆的程序世界

    阿里妹导读 xff1a 写代码写到入定 xff0c 是一种什么样的体验 xff1f 11月29日 xff08 本周三 xff09 xff0c 阿里技术人纪录片系列 将带大家走进大神多隆的代码世界 在此之前 xff0c 我们先来重温一篇关于多
  • 将Sublime Text2 加入右键菜单

    在googleread里面看有人推荐sublime text2 说开发很方便 就下载一个试试 写html还真的挺爽 于是按照vim加入鼠标右键的方法 果然可以 这里和大家分享 1 运行中输入 regedit 打开注册表 2 在HKEY CL
  • PIXHAWK飞控最新控制部分源码详解与分析(v 1.8.0)

    px4控制源码中文注释及解读 作 者 xff1a chen honglin时 间 xff1a 2018 9 27联系方式 QQ 260437028 写在前面 xff1a 关于本篇文章 作者经过两天的啃代码 发现新版本与旧版本相差不小 而网络
  • PX4应用程序编写

    PX4应用程序编写 本文将较为详细的阐述如何自己写一个程序 xff0c 并且将其添加到编译脚本中去 本文所需基础 多线程编程 第一部分 xff1a 写一个自己的程序 在Firmware src moudle下 xff0c 创建一个文件夹 x
  • 计算机操作系统之系统调用

    目录 x1f4a8 什么是系统调用 xff0c 有何作用 xff1f x1f4a8 系统调用与库函数的区别 x1f4a8 系统调用背后的过程 x1f4a8 总结 我们将带着以下问题去学习什么是系统调用 什么是系统调用 xff0c 有何作用
  • SimpleFOC移植STM32(一)—— 简介

    目录 一 代码移植说明二 控制原理2 1 有感FOC控制原理2 2 有感FOC 不带电流采样 控制原理2 3 FOC heart function 三 适配硬件3 1 Bluepill3 2 SimpleMotor 四 程序架构五 演示功能
  • SimpleFOC移植STM32(二)—— 开环控制

    目录 注意事项一 硬件介绍1 1 硬件准备1 1 1 SimpleMotor方案1 1 2 SimpleFOCShield V2 0 3方案 1 2 硬件连接1 2 1 原理图1 2 2 SimpleMotor接线1 2 3 STM32接线