单电阻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 代码实现࿱…...
年度征文 | 机器学习之心的2023
机器学习之心的2023 2023是极其复杂的一年。 生活上,养了很多宠物。 工作上,写了不少博客。 虽然遇见更多让人不开心的事情,但总体还是美好的。 愿大家新的一年健康平安,生活幸福! 机器学习是一项庞大的工程࿰…...
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引入样式 操作方法 将默认样式表文件导入到项目。样式文件已经放到资源里请自行下载(...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
Web后端基础(基础知识)
BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...
论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
yaml读取写入常见错误 (‘cannot represent an object‘, 117)
错误一:yaml.representer.RepresenterError: (‘cannot represent an object’, 117) 出现这个问题一直没找到原因,后面把yaml.safe_dump直接替换成yaml.dump,确实能保存,但出现乱码: 放弃yaml.dump,又切…...
用递归算法解锁「子集」问题 —— LeetCode 78题解析
文章目录 一、题目介绍二、递归思路详解:从决策树开始理解三、解法一:二叉决策树 DFS四、解法二:组合式回溯写法(推荐)五、解法对比 递归算法是编程中一种非常强大且常见的思想,它能够优雅地解决很多复杂的…...
解析“道作为序位生成器”的核心原理
解析“道作为序位生成器”的核心原理 以下完整展开道函数的零点调控机制,重点解析"道作为序位生成器"的核心原理与实现框架: 一、道函数的零点调控机制 1. 道作为序位生成器 道在认知坐标系$(x_{\text{物}}, y_{\text{意}}, z_{\text{文}}…...
GraphRAG优化新思路-开源的ROGRAG框架
目前的如微软开源的GraphRAG的工作流程都较为复杂,难以孤立地评估各个组件的贡献,传统的检索方法在处理复杂推理任务时可能不够有效,特别是在需要理解实体间关系或多跳知识的情况下。先说结论,看完后感觉这个框架性能上不会比Grap…...
