STM32电机控制固件架构

目录

一、应用程序剖析

二、面向现场的控制实现体系结构

1、参考计算循环

2、电流调节环路

3、安全回路


一、应用程序剖析

上图显示了由ST MC SDK构建的电机控制应用程序。首先,这样的应用程序是由电机控制工作台生成的软件项目,这要归功于STM32CubeMx。该软件项目由几个不同的部分组成,这些部分相互反应:

  • 这些部分中最重要的是应用程序。在这种情况下,该应用程序由ST Motor Control SDK的用户开发,它专注于最终应用程序的用途,将纯粹的电机控制方面留给ST MCSDK生成的代码。
  • UI库提供了用户在应用程序开发过程中可以从中受益的功能,以控制和调试它:它处理硬件功能,例如用于启动和停止电机的按钮,用于设置转子速度参考的电位器。更重要的是,它还提供调试功能,如电机控制协议套件,允许将电机控制应用与ST Motor Pilot工具或DAC功能连接。电机控制应用程序中是否存在 UI 库是可选的。它通常不会出现在最终应用程序中。
  • ST MCSDK固件的核心是电机控制库。该库由一组组件组成,每个组件都实现了 SDK 提供的一项功能。对于其中的大多数功能,提供了几个组件来实现它的不同变体。电机控制工作台的任务之一是选择用户应用所需的正确组件。
  • 为应用程序选择的“电机控制库”组件由“电机控制驾驶舱”部件使用。这部分实际上实现了电机驱动的核心算法。它将选定的组件集成在一起。电机控制驾驶舱的最后一个主要作用是充当电机和应用程序之间的主接口。
  • 应用程序和 UI 库都使用电机控制应用程序编程接口 (MC API) 来访问电机控制主控舱。MCAPI 是应用程序与系统其余部分之间的主接口。它提供了正确控制应用驱动的电机所需的所有功能。
  • 但是,有时,应用程序可能需要微调某些内部参数或获取比 MCAPI 所能提供的更详细的信息。对于这些情况,它可以使用“**MC 低级 API**”,它由电机控制应用程序的所有组件提供的接口功能组成。请参阅组件页面,了解 MC 低级 API 文档的入口点。
  • **STM32Cube 驱动程序**块表示项目中所需的 STM32 外设驱动程序 – HAL 或 LL,具体取决于用户的选择。电机控制库本身仅使用LL,硬件外设初始化可以使用HAL或LL。这些驱动程序被复制到为电机控制应用程序生成的软件项目中。

二、面向现场的控制实现体系结构

1、参考计算循环

需要应用程序设置的扭矩参考或转子速度参考作为输入。在后一种情况下,参考计算环路还执行转子速度调节。

该循环在名为“中频任务”的函数中实现,该函数在STM32 MCU的SysTick中断上执行。通常,中频任务的频率为 1 毫秒。但是,在电机控制工作台中,这可配置为低至 500 μs 和高达数毫秒的 ms。

500 μs 是电机控制工作台生成的电机控制应用程序的默认 SysTick 中断频率。而且,通常中频任务和参考计算循环每隔一个 SysTick 中断运行一次。

2、电流调节环路

电流调节环路是 FOC 实施的核心。

它的任务是测量流经电机相位的电流,并对其进行调节,使它们达到参考计算回路设置的参考值。为此,电流调节回路需要知道(在无传感器配置的情况下,这意味着:估计)受控电机转子的位置和速度。

电流调节环路通过克拉克和帕克变换实现了 FOC 算法的核心,即我d和我d电流调节和空间矢量脉冲宽度调制。当读取电机相电流时(它可以在ADC中断或DMA中断上),它会在中断环境中触发,并执行以下操作:

  • 读取IaIb 和 Ic 相电流
  • 计算转子的位置
  • 调节相电流,这将导致施加相电压
  • 使用占空比对PWM定时器进行编程

3、安全回路

安全循环在 SysTick 中断上运行,就像参考计算循环一样。但是,它在每次出现 SysTick 时都会运行,而后者并不总是如此。它的任务是评估许多故障条件,以确定它们是否处于活动状态。故障条件包括过流、欠压或过热条件。当检测到其中之一时,电机的运行将停止,并释放对其的任何最终控制。请参阅文档的 MC 状态机、命令和故障管理页面的故障部分。

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

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

相关文章

01 SQL基础 -- 初识数据库与安装

一、初识数据库 数据库是将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。该数据集合称为数据库(Database, DB)。用来管理数据库的计算机系统称为数据库管理系统(Database Management System, DBMS) 1.1 DBMS 的种类 DBMS 主要通过数据的保存格式…

【MySQL】数据库开篇

SueWakeup 个人主页:SueWakeup 系列专栏:学习技术栈 个性签名:保留赤子之心也许是种幸运吧 本文封面由 凯楠📸友情提供 目录 本系列传送门 1. 什么是数据库? 2. 为什么使用数据库 3. 数据库的分类 4. NoSQL 与关系…

android android.permission.MANAGE_EXTERNAL_STORAGE使用

android11 及以上版本&#xff0c;如果release版本要读取外部存储公共目录&#xff0c;即sdcard公共目录&#xff0c;需要在androidManifest.xml下申明 <uses-permission android:name"android.permission.MANAGE_EXTERNAL_STORAGE" /> 如果要发版到海外&…

【UE Niagara】光束发射模块学习

效果 步骤 1. 新建一个Niagara发射器&#xff0c;使用Empty模板&#xff0c;这里命名为“NE_Beam” 打开“NE_Beam”&#xff0c;添加条带渲染器 添加“Spawn Burst Instantaneous”模块&#xff0c;设置生成数量为100 添加一个“Beam Emitter Setup”模块 再添加一个“Spawn …

Linux C应用编程:MQTT物联网

1 MQTT通信协议 MQTT&#xff08;Message Queuing Telemetry Transport&#xff0c;消息队列遥测传 输&#xff09;是一种基于客户端-服务端架构的消息传输协议&#xff0c;如今&#xff0c;MQTT 成为了最受欢迎的物联网协议&#xff0c;已广泛应用于车联网、智能家居、即时聊…

sqoop:错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster(已解决)

1 报错信息 错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster 说明&#xff1a; 操作将数据库中的数据导入到HDFS中 执行sqoop import --connect jdbc:mysql://aaa01:3306/mysql --username root --password root --table test 时报了以下错误 2 报…

遥控小车电子方案

遥控小车的功能开发主要包括以下几个方面&#xff1a; 1.基本功能开发&#xff1a; 前进、后退、左转、右转&#xff1a;通过遥控器上的控制按钮&#xff0c;实现小车的前进、后退、左转和右转。加速、减速&#xff1a;通过遥控器上的油门控制按钮&#xff0c;实现小车的加速…

【深度学习】Fine-Grained Face Swapping via Regional GAN Inversion高保真换脸范式

文章目录 代码介绍实践效果 帮助、问询 代码 https://github.com/e4s2022/e4s 介绍 Fine-Grained Face Swapping via Regional GAN Inversion 提出一种新的高保真换脸范式&#xff0c;能够保留期望的微妙几何和纹理细节。从微观面部编辑的角度重新思考换脸任务&#xff0c;基…

Matlab 实时读取串口并绘图

Matlab 实时读取串口并绘图 Vofa Vofa 是一个很好的跨平台上位机软件&#xff0c;但是它无法保存数据&#xff0c;而且作者也并没有要继续更新的意思&#xff0c;保存数据功能应该是遥遥无期了。因此本文使用 Matlab 实时读取串口数据&#xff0c;并使用 plot 函数绘制。 vo…

洛谷P1305 新二叉树

Java 代码 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();char arr[][] new char[n][3];for (int i 0; i < n; i) {String strsc.next();char arr1[]str.toCharArray()…

Linux学习-网络UDP

网络 数据传输,数据共享 网络协议模型 OSI协议模型 应用层 实际发送的数据 表示层 发送的数据是否加密 会话层 是否建立会话连接 传输层 数据传输的方式&#xff08;数据报、流式&#…

hexo接入github Discussions评论系统

评论存储仓 可以是你的博客项目的(github)仓库&#xff0c;也可以单独新建一个评论存储仓库。 我的博客项目在gitee上&#xff0c;就以新建存储仓为例&#xff1a; 使用Discussions评论系统必须开通Discussions模块&#xff01; 安装giscus插件 https://github.com/apps/…

如何在香橙派AIpro开发板升级CANN软件包

香橙派AIpro开发板是香橙派联合昇腾精心打造的高性能AI开发板&#xff0c;开发者可以基于昇腾CANN软件栈能力&#xff0c;快速构建AI应用和业务&#xff0c;实现图像、视频等多种数据分析与推理计算。在之前的文章中&#xff0c;我们已经了解了如何搭建开发环境&#xff0c;并基…

通过调用Vcenter-Api获取Vcenter中服务器信息

通过调用Vcenter-Api获取Vcenter中服务器信息 文章目录 通过调用Vcenter-Api获取Vcenter中服务器信息1. 获取Vmware API帮助文档2. 获取访问凭证3. 获取服务器清单4. 获取服务器更多信息5. 获取虚机更多信息6. 获取磁盘信息7. 获取操作系统相关 1. 获取Vmware API帮助文档 htt…

SHAP安装问题

一、安装 pip install shap -i https://pypi.tuna.tsinghua.edu.cn/simple 二、遇到问题 1、提示报错如下&#xff1a; ModuleNotFoundError: No module named numba.core 安装numba&#xff1a; pip install numba -i https://pypi.tuna.tsinghua.edu.cn/simple 提示已经…

FPGA核心板在声呐系统中的应用

前言 声纳系统使用声脉冲来探测、识别和跟踪水下物体。一个完整的声纳系统是由一个控制和显示部件、一个发射器电路、一个接收器电路和同时能作为发射装置&#xff08;扬声器&#xff09;和探测装置&#xff08;高灵敏度麦克风&#xff09;的传感器组成。 声纳系统图 技术挑战…

python爬虫----BeautifulSoup(第二十天)

&#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; &#x1f388;&#x1f388;所属专栏&#xff1a;python爬虫学习&#x1f388;&#x1f388; ✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天…

Linux/October

October Enumeration Nmap 扫描发现对外开放了22和80端口&#xff0c;使用nmap详细扫描这两个端口 ┌──(kali㉿kali)-[~/vegetable/HTB/October] └─$ nmap -sC -sV -p 22,80 -oA nmap 10.10.10.16 Starting Nmap 7.…

基于Springboot的笔记记录分享网站(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的笔记记录分享网站&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…

华为OD技术面试-有序数组第K最小值

背景 2024-03-15华为od 二面&#xff0c;记录结题过程 有序矩阵中第 K 小的元素 - 力扣&#xff08;LeetCode&#xff09; https://leetcode.cn/problems/kth-smallest-element-in-a-sorted-matrix/submissions/512483717/ 题目 给你一个 n x n 矩阵 matrix &#xff0c;其…