STM32 Simulink 自动代码生成电机控制——记录一次电机初始位置检测及NS极的判断实验

news/2024/11/22 22:43:27/

目录

前言

 基本原理

仿真实现

代码生成及开发板验证


前言

之前做了脉振高频注入的仿真到代码生成开发板运行的实验,电机可以通过高频注入计算出角度,但是在初始位置检测的时候,尝试了不少方法但是效果一般,很容易反转,由于时间关系没有花太多时间和精力,最近又尝试了一种方法,效果还是比较明显在这里记录一下,所有算法层的代码都是自动生成的。STM32 Simulink 自动代码生成电机控制——脉振高频注入_高频注入代码_卡洛斯伊的博客-CSDN博客

 基本原理

在做高频注入的时候都会发现,注入高频信号进行角度估算后会收敛到某一个角度,如果不加磁极判断的话,收敛的角度可能会差\pi,就会造成反向收敛,也就是电机会反转。所以在启动的时候需要判断初始的位置角对不对。实现的方式是Q轴电流给0,D轴注入高频信号,这时候转子是不动的,通过高频注入可以提取出转子位置信息。再根据一个高频周期内D轴电流的最大值和最小值进行判断是否要加\pi

 

仿真实现

如下是反馈回来的Id, 提取出Id的最大值和最小值

 再配合状态机进行判断

 

代码生成及开发板验证

完整的启动过程如下,启动的时候高频注入收敛到了某一个角度,进行NS判断后得到的初始位置角基本已经和编码器的角度重合在一起了,紫色是编码器的角度。小电机自带霍尔,如果想要带编码器可以参考:记录为小电机安装一个5012编码器(多摩川协议)的过程_电机编码器的软件配置过程_卡洛斯伊的博客-CSDN博客

 如下,角度收敛后判断出不需要加\pi,不过角度和编码器的角度误差有大约十几度

 尝试其他位置,初始位置也能收敛到编码器的初始位置

 

 

 可以看看启动的演示视频

初始位置检测演示

总结

从实验波形来看,初始位置角的检测已经实现,连续几次也能正常启动,没有发生反转,不过还有不少优化空间,先记录一下。


http://www.ppmy.cn/news/75961.html

相关文章

[CTF/网络安全] 攻防世界 weak_auth 解题详析

[CTF/网络安全] 攻防世界 weak_auth 解题详析 弱认证弱认证绕过方法姿势Burp Suite 爆破 总结 题目描述:小宁写了一个登陆验证页面,随手就设了一个密码。 弱认证 weak_auth翻译:弱认证 这个术语通常用来描述一种较弱的安全认证方法或机制&am…

maven笔记

maven笔记 maven解决jar冲突的办法 排除A.jar中依赖的B.jar <dependency><groupId>xxx.xxx</groupId><artifactId>jarA</artifactId><version>0.0.1</version><exclusions><exclusion><groupId>xxx.xxx</grou…

PCA及其实现方法

引言 主成分分析(PCA)是一种广泛使用的数据降维技术,它可以将高维数据转换为低维数据,同时保留原始数据的主要信息.在这些信息中,我们可以找到特征向量和特征值,它们可以描述数据的主要结构. 在实际应用中,我们通常使用matlab来实现PCA算法.本文将介绍matlab中的PCA实现方法,…

Axure教程—单色折线图(中继器)

本文将教大家如何用AXURE中的中继器制作单色折线图 一、效果介绍 如图&#xff1a; 预览地址&#xff1a;https://d84rfm.axshare.com 下载地址&#xff1a;https://download.csdn.net/download/weixin_43516258/87814278 二、功能介绍 简单填写中继器内容即可动态显示值样…

动态生成表格的方法

动态生成表格的方法&#xff1a; 1&#xff09; 前台&#xff1a;<asp:Literal ID"Literal1" runat"server"></asp:Literal> 后台&#xff1a; string getHtml ""; for (int i 0; i < datatable.rows.count; i) …

如何自建个人音乐播放器Navidrome

文章目录 1. 前言2. Navidrome网站搭建2.1 Navidrome下载和安装2.1.1 安装并添加ffmpeg2.1.2下载并配置Navidrome2.1.3 添加Navidrome到系统服务 2.2. Navidrome网页测试 3. 本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4. 公网访问测试5. 结语 转…

彻底理解Promise和async/await

Promise 1.异步行为是为了优化因计算量大而时间长的操作. 2.pedding 待定: 表示尚未开始或正在进行中 fulfilled 解决: 表示已经成功完成 rejected 拒绝: 表示没有完成 3.从pedding状态切换到fulfilled状态或rejected状态后,状态就不会再改变.而且也不能保证promise比如会脱…

制造运营管理 (MOM) 的工作流驱动方法

介绍 “在企业中使用的任何技术的第一条规则是&#xff0c;应用于高效运营的自动化将放大效率。第二个是自动化应用于低效率的操作会放大低效率。” - 比尔盖茨 。 工作流是结构化的活动&#xff0c;主要涉及人与人或人与机器的交互&#xff0c;所有这些活动都旨在在不影响安…