当前位置: 首页 > news >正文

单电阻FOC算法实现永磁同步电机的调整步骤和设置

  本文档介绍了使用 单电阻FOC 算法实现永磁同步电机(Permanent Magnet Synchronous Motor,PMSM)调整所需的步骤和设置。由于不同电机存在参数差异,因此需针对不同的电机和负载对该算法进行调整。该电机库已经在在落地扇和空净等风机应用上测试验证。

低压12VDC,24VDC开发板

图片

电动驱动开发板

调试方法及工具

调试工具

  通用工具:电源(直流电源、交流隔离电源)。

  测试工具:万用表、数字电桥、示波器、电流探头。

  仿真工具:JLink PRO。

  软件工具:J-Scope。

调试步骤

图片

图片

硬件测试

  1). 母线电压测量

  2). MCU供电电压测量

  3). 驱动芯片供电电压12V测量

  4). PWM例程输出测试PWM输出信号是否正常

  5). 测试运放、ADC采样口电压是否正常

芯片电源电压

     1). 芯片电电源电压:万用表测试电源5V对GND是否正常。

      2). 并用示波器观测电源的纹波是否符合标准。

运放端电压

     1). 万用表测试运放端电压是否为ADC参考电压的1/2;

      2).观察程序电流基准部分的值是否为2048(MCU的AD为12位,满量程是4096,代表AD参考电压的电压值)附近。

UVW三相输出

     1).为验证MCU输出和功率器件,需测试U、V、W三相输出是否正常。

      2).不接电机,让程序输出固定占空比。

      3).如若没有输出,可能原因:HVIC或MOS异常、芯片异常。

电压基准

     FOC的SVPWM模块中需采集母线电压进行计算,在高低压应用中,因电源电压与MCU的ADC最大采样电压不等,需根据实际情况将母线电压用分压方式来处理。

 电流基准

     根据硬件板上的采样电阻Rsample,运放放大倍数Amp,MCU的ADC参考电压Vs,可计算电流基准、最大采样电流、最小采样电流。一般设计电机运行最大电流在1/2的最大采样电流左右。

      在调节过程中,电机的电流不能超过最大采样电流,也不能小于最小采样电流。若出现超出情况,需根据实际情况重新配置采样电阻和运放放大倍数。

电机参数测量

 电机极对数MT_Pole_Pairs

     电机的极对数可从电机规范表中获取。也可通过以恒定的转速驱动电机(例如使用另一台电机拖动)并测量反电动势的频率获得,也可以通过快速的将转子转动一周,观察示波器上出现线电压峰值出现的次数即为电机的极数。使用测量得到的频率值,经过公式 1-1 的计算即可得出极对数。

图片

相电阻和相电感

     电机的相电阻和相电感的测量方法如下:

     • 相电阻 —— 用万用表测量永磁同步电机两相绕组间的直流电阻值。将测得的电阻值代入下列公式:MT_Phase_R = 电阻测量值/2

     • 相电感 —— 使用 LCR 表测量永磁同步电机 10 kHz 时两相绕组间的电感。将所测得的电感值代入下面的公式:MT_Phase_L = 电感测量值/2

配置电机硬件板参数

      驱动板硬件配置在Related_Parameter_Config.h中。硬件设计时,我们建议参考我们的DEMO板或参考设计配置电机驱动使用的PWM、AD等资源。如设计时有所改动,需按以下指引重新配置。

1) PWM配置

      MCU的各个引脚功能是复用的,需要进行配置才能进行使用。上图中就是对驱动电路中的三路PWM进行配置,需要按电路设计图一一对应,并按照MCU的软件库定义进行相应配置。

      开或关闭芯片的内部运放,根据电路设计进行配置。

图片

2) AD配置

图片

图片

电流采样参数

硬件参数:OPA_I_R1、 OPA_I_R2 以及 VDD  都位于 Related_Parameter_Config.h

文件中,其中OPA_I_RS表示电流检测电阻,VDD表示AD转换的参考电压。该文件中的参数根据硬件设计不同而有所变化。

图片

       运 算 放 大 器 用 来 放 大 电 流 检 测 信 号。用 户 应 根 据 硬 件 设 定 放 大 器 增 益 值,为Related_Parameter_Config.h文件中的OPA_Gain值,增益=内部运放选定增益10K/R22=10。

3)  母线电压分压参数

#define Divid_Resist_R1 10                   

#define Divid_Resist_R2 100

调速接口

PWM调速

电机性能参数配置

1) 开关频率配置

如下设定PWM频率为16KHZ,死区时间设定50个时钟周期,PWM

图片

电机基本参数设置

电机参数

MT_Phase_L

MT_Phase_RMT_Pole_Pairs

MT_Volt_Rated和MT_Power_Rated、

MT_Spd_Max

都位于Related_Parameter_Config.h文件中。

电机参数依赖于电机的规范,当测试不同的电机时,应当更新电机参数值。电机参数的设置如下所示。

图片


启动参数设置

图片

电机基本参数设置

        最高转速Set_SpeedMax为规格要求达到的转速,实际设定的最高转速可以比要求高;

      最低转速Set_SpeedMin:调速需要的最低转速,风扇的要求一般在100-200RPM之间。

1) 初始位置检测

预定位在Related_Parameter_Config.h文件:

图片

驱动器性能参数配置调试

1)  位置环调试

图片

图片

图片

2) 电流环调试

电流环PI参数调节

图片

图片

性能参数测试优化

图片

申明

       本文档中的信息仅是为了让系统和软件 实施者能够使用 SYNWIT 产品而提供。本文 档并未授予任何明示或默示的许可权以根据 本文档中的信息来设计或制造任何集成电路。SYNWIT 保留更改本文档所述任何产品 的权利,恕不另行通知。SYNWIT 不保证其产 品适合任何特定用途,不承担任何因为应用或 使用任何产品或电路而引起的责任,明确否认 任何及所有责任,包括但不限于附带或间接损 害赔偿。SYNWIT 数据手册和/或技术规格中 可能会提供“典型值”参数,这些参数因应用 而异,实际性能可能会随时间而改变。所有工 作参数,包括“典型值”,都必须由客户的技 术专家针对各种具体应用进行验证。

相关文章:

单电阻FOC算法实现永磁同步电机的调整步骤和设置

本文档介绍了使用 单电阻FOC 算法实现永磁同步电机(Permanent Magnet Synchronous Motor,PMSM)调整所需的步骤和设置。由于不同电机存在参数差异,因此需针对不同的电机和负载对该算法进行调整。该电机库已经在在落地扇和空净等风机…...

化学DS-1040 Tosylate 抑制剂 1335138-89-0科研用途

化合物1219962-49-8是一种小分子化合物,分子式为C15H25N3O4,相对分子质量为305.37。该化合物为白色至灰白色粉末,不溶于水,易溶于有机溶剂,如甲醇、乙醇等。 AT791是一种与细胞周期调控相关的蛋白激酶,参与…...

PaddlePaddle初使用

模型导出与预测 # -c 后面设置训练算法的yml配置文件 # -o 配置可选参数 # Global.pretrained_model 参数设置待转换的训练模型地址,不用添加文件后缀 .pdmodel,.pdopt或.pdparams。 # Global.save_inference_dir参数设置转换的模型将保存的地址。pytho…...

【FPGA】分享一些FPGA数字信号处理相关的书籍

在做FPGA工程师的这些年,买过好多书,也看过好多书,分享一下。 后续会慢慢的补充书评。 【FPGA】分享一些FPGA入门学习的书籍【FPGA】分享一些FPGA协同MATLAB开发的书籍 【FPGA】分享一些FPGA视频图像处理相关的书籍 【FPGA】分享一些FPGA高速…...

深度解析JavaScript面试热点:事件循环、上下文、箭头函数、变量作用域与ES6模块

JavaScript面试中经常涉及到事件循环、上下文、箭头函数、变量作用域以及ES6模块等核心概念。通过清晰的代码示例,我们深入讨论这些主题,揭示其中的关键细节。 事件循环(Event Loop) JavaScript开发者每天都与事件循环打交道&am…...

Javaweb之Mybatis的动态SQL的详细解析

3. Mybatis动态SQL 3.1 什么是动态SQL 在页面原型中,列表上方的条件是动态的,是可以不传递的,也可以只传递其中的1个或者2个或者全部。 而在我们刚才编写的SQL语句中,我们会看到,我们将三个条件直接写死了。 如果页面…...

物联网与智能家居:跨境电商与未来生活的融合

物联网(Internet of Things,IoT)和智能家居技术正迅速崛起,成为跨境电商领域的创新引擎。这两者的巧妙结合不仅为消费者提供更智能、便捷的生活方式,同时也为电商平台和制造商带来了全新的商机。本文将深入探讨物联网与…...

Java内存模型(JMM)是基于多线程的吗

Java内存模型(JMM)是基于多线程的吗 这个问题按我的思路转换了下,其实就是在问:为什么需要Java内存模型 总结起来可以由几个角度来看待「可见性」、「有序性」和「原子性」 面试官:今天想跟你聊聊Java内存模型&#…...

Linux离线安装MySQL(rpm)

目录 下载安装包安装MySQL检测安装结果服务启停MySQL用户设置 下载安装包 下载地址:https://downloads.mysql.com/archives/community/ 下载全量包如:(mysql-8.1.0-1.el7.x86_64.rpm-bundle.tar) 解压:tar -xzvf mysql-8.1.0-1.el7.x86_64.…...

用 Socket.D 替代原生 WebSocket 做前端开发

socket.d.js 是基于 websocket 包装的 socket.d 协议的实现。就是用 ws 传输数据,但功能更强大。 功能原生 websocketsocket.d说明listen有有监听消息send有有发消息sendAndRequest无有发消息并接收一个响应(类似于 http)sendAndSubscribe无…...

Transformer架构和对照代码详解

1、英文架构图 下面图中展示了Transformer的英文架构,英文架构中的模块名称和具体代码一一对应,方便大家对照代码、理解和使用。 2、编码器 2.1 编码器介绍 从宏观⻆度来看,Transformer的编码器是由多个相同的层叠加⽽ 成的,每个…...

大数的乘法

题目描述 求两个不超过100位的非负整数的乘积。 输入 有两行,每行是一个不超过100位的非负整数,没有多余的前导0。 输出 一行,相乘后的结果。 样例输入 Copy 123456789 123456789样例输出 Copy 15241578750190521 代码实现&#xff1…...

年度征文 | 机器学习之心的2023

机器学习之心的2023 2023是极其复杂的一年。 生活上,养了很多宠物。 工作上,写了不少博客。 虽然遇见更多让人不开心的事情,但总体还是美好的。 愿大家新的一年健康平安,生活幸福! 机器学习是一项庞大的工程&#xff0…...

13.Kubernetes应用部署完整流程:从Dockerfile到Ingress发布完整流程

本文以一个简单的Go应用Demo来演示Kubernetes应用部署的完整流程 1、Dockerfile多阶段构建 Dockerfile多阶段构建 [root@docker github]# git clone https://gitee.com/yxydde/http-dump.git [root@docker github]# cd http-dump/ [root@docker http-dump]# cat Dockerfile …...

多年后再用TB,谈项目管理工具

背景 最近启动一个小项目,多年未曾使用项目管理工具,依稀记得使用过Basecamp,Tower,worktitle,teambition等等,当然还有mantis,vs project等等。于是随便翻阅找个用,不小心翻了TB的牌子,竟然已是阿里旗下的…...

Spark MLlib ----- ALS算法

补充 在谈ALS(Alternating Least Squares)之前首先来谈谈LS,即最小二乘法。LS算法是ALS的基础,是一种数优化技术,也是一种常用的机器学习算法,他通过最小化误差平方和寻找数据的最佳匹配,利用最小二乘法寻找最优的未知数据,保证求的数据与已知的数据误差最小。LS也被用…...

ubuntu桥接方式上网

vmvare:VMware Workstation 17 Pro ubuntu: Ubuntu 14.04.6 LTS window10 下面是我的电脑配置 下面是ubuntu虚拟机的配置 vi /etc/network/interfaces 下面的gateway就是window -ipconfig 截图里的默认网关 auto lo iface lo inet loopbackauto eth0 iface eth0 inet stat…...

收到的字符串写入xml并且将这个xml写入.zip文件中

文章目录 1、将数据写入xml文件WriteToXmlFile2、将xml文件写入zip压缩文件AddToZip3、组合起来4、使用到的头文件和动态库 1、将数据写入xml文件WriteToXmlFile void CSMSLoginDlg::WriteToXmlFile(const std::string& responseData, const std::string& xmlFileName…...

【读书笔记】《白帽子讲web安全》跨站脚本攻击

目录 前言: 第二篇 客户端脚本安全 第3章 跨站脚本攻击(XSS) 3.1XSS简介 3.2XSS攻击进阶 3.2.1初探XSS Payload 3.2.2强大的XSS Payload 3.2.2.1 构造GET与POST请求 3.2.2.2XSS钓鱼 3.2.2.3识别用户浏览器 3.2.2.4识别用户安装的软…...

第九节 初始化项目

系列文章目录 目录 系列文章目录 前言 操作方法 总结 前言 初始化项目,导入默认reset.scss 、variables.scss及mixins.scss等并修改main.js引入样式 操作方法 将默认样式表文件导入到项目。样式文件已经放到资源里请自行下载(...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...