bldc 原理 方波控制_【百问百答】ST 电机控制实战问答合辑 | 连载之一

9b3c2e98b7e80d7df64e20cc4a279139.png

点击下方链接可以直接观看电机直播直播答疑

电堂​wx18257eb0e8c82435.h5.xiaoe-tech.com
9ae6e7a5d1bae338f27727c5ec28223b.png
电堂​wx18257eb0e8c82435.h5.xiaoe-tech.com
9ae6e7a5d1bae338f27727c5ec28223b.png

本次实战问答只讨论同步电机,不对步进电机做特别的讨论,希望有助于大家进行电机开发或者是电机应用。

0f4f2b58f8e5c7cb79692ff4dae7105b.png

Q1:STM32关于FOC控制或者在永磁同步电机上有哪些可用的库和工具,有没有关于弱磁

MTPV等算法的文档或者学习工具,或者是开发套件?

A1:今年ST推出FOCSDK 5.2版本,可以在ST官网上直接下载这个库。关于算法,请参考培

训文档(www.stmcu.com.cn “设计资源”中查找),原理请看UM1052。请大家充分

利用stmcu.com.cn,可自助解决MCU及相关应用难点,网站上的资源包括培训课件,

实战经验等。

Q2:在电机控制中,F407系列MCU有没有方法可以在线修改参数?不用每次都编译,不然调

PI很麻烦。

A2:在线修改可以使用RAM方式修改,如果您用的是自己程序,可以考虑仿真器或串口方式

修改定义好的变量数据,当调试好参数后回写到Flash中固化参数;如果使用

Workbench,可以在workbench调试界面上上修改相应参数,同样这个是修改RAM,

调试好后再回写入Flash中。这样就不需要每次都进行编译,浪费很多时间在编译上面。

Q3:伺服电机的分类,以及有主流的控制方法及使用方法?

A3:伺服电机大体可分为直流伺服电机和交流伺服电机。控制方法如果采用矢量控制,当前

主要有DTC控制和FOC控制。

Q4:自主搭建电机驱动,软硬件如何设置?F030系列如何做FOC?

A4:实际上您自主搭建的电机驱动的硬件,可以与MCSDK workbench匹配使用,注意参数

配置。Workbench就是为大家提供配置的便利,包括板子参数、电机参数、控制策略等

等,都可以做直接配置。F030是支持FOC的。

Q5:电机的参数(电感,电阻)对位置估算的结果影响多大?为什么我用错误的电感和电阻

值电机也能转,而且位置输出没发现异常?

A5:电机的参数对位置估算的结果是有影响的,即会影响无传感观测器参数,也会影响电流

环PID的设定,还很可能影响电流稳定度等;当然在观测技术是上有一定阈值调整。有些

参数稍微调整也可以运行,但是最好能够使用正确的电感电阻值。

Q6:永磁同步和BLDC应用领域的区别?BLDC如何正确的检测换向点?BLDC与PMSM的转

矩脉动产生的原因分别是什么?如何减小这一现象对精度和稳定性的影响呢?如何计算

BLDC与PMSM的效率差别呢?

A6:永磁同步和BLDC可以看成是同一种电机,只是叫法不同而已。如果BLDC矢量控制无过

零点检测,六步方波控制方法需要检测过零点。如果是FOC,可以利用观测器的方式来

观测出你现在的一个转阻位置。

这两个电机实际相同,只是电机工艺做法差异所导致的,转矩脉动和控制方法有关。

Q7:开环运行到闭环运行需要哪些步骤,有哪些注意事项?

A7:大致步骤是定位,开环,闭环;需要注意设定开环速度以及驱动电流,还有设定最小切

入速度,一般在额定速度的10%以上。

Q8:这个电机库支持高频注入算法吗?效果如何?

A8:目前FOC 5.0不支持高频注入算法,以前的4.3版本是支持的。后续这个算法会加进来。

Q9:如何使用开源或免费的编译器进行相关设计?有无相关例程?

A9:参考培训文档,可以在http://www.stmcu.com.cn上下载。参考例程在Cube库和标

准库里都有。

Q10:凸极BLDC想要从任意位置平稳启动无反转,有什么好的策略可以使用?高频注入利用

凸极性,对于隐极BLDC,有没有好的评估转子位置的方案,希望启动无抖动无反转噪

音低。

A10:这个问题涉及当前最热门且研究最多的无传感的部分。无传感策略,ST有两种方式:一

是观测器的方式,由开环转闭环,启动时会有一些抖动,或者是一些反转,因为要做一

次定位;如果无反转,是在静止的时候,抓到转子的位置,采用无传感方式,ST采用高

频注入加观测器方式来实现。高频注入,目前市场有非常多开发好的算法。各有特长,

好的算法要靠时间或者是精力来实现,基本可以实现无抖动,无反转。

Q11:5.0的库相对于之前的库新增哪些特性?二次开发需要考虑哪些设想?

A11:5.0库是针对前一代有结构上的变化,ST的开发力度历来是非常大的,如果客户二次开

发,可以在它的库基础上,非常便利地实现自己的一些想法,可以进行一些库的修改代

码。也可以直接用接口代码,调用API的方式,针对简单应用足够了。

Q12:BLDC最低电压能做到几伏,低电压的转速可以做的很高吗?BLDC用在吸尘器上是要做

恒功率还是其他?

A12:BLDC有些可以低到5V,当然最低电压需要和电机厂商联系,转速部分与电机本体相

关;恒转速和恒功率都可以实现。

Q13:请问交轴直轴怎么理解,同样是电流产生的力矩和磁通怎么实现分别控制的?被控量只

有一个电流,是怎么实现力矩,磁通解耦合控制的?

A13:直轴可理解为永磁体磁场方向。交轴垂直于永磁体磁场方向的轴,即垂直于直轴,它是

一个动轴。直轴电流是用于叠合磁场,交轴电流相当于一个旋转量,当旋转量持续为90

度时,这时候力是最大的。电流解耦合后有两个量,id,iq,分别控制这两个量

Q14:ST是否有方波切正弦的启动方案,可直接重载启动?

A14:已有客户在ST的电机库上实现。方波切正弦,切起来应该问题不是很大,这是一个通用

方式。

Q15:在FOC控制方面,STM32有哪些库与工具让初学者快速入门,STM32对于浮点运算怎

么处理的?

A15:F0、F1产品系列,即M0、M3核上面没有这种浮点处理单元。F3、F4这类高端MCU的

平台上,有浮点算法。所以可以直接在F3、F4等高端MCU上直接使用浮点运算。在电

机库里你会发现,除高频注入以外的基础控制算法,都是以定点的方式实现。所以可以

兼容从F0到F7、H7等产品系列。

Q16:电机电流如何判定是否堵转?

A16:最直接的方法就是电机没有速度了,或者低速震荡、并且电流很大的情况下,就判断为

堵转。在ST的FOC电机库里,有两种方式来提供这个判断:一是所谓的速度(时速),

没有任何速度的时候,就判断为堵转;二是在无传感方面,如果正弦震荡,可检查是否

有反电动势,不转的时候,反电动势就没有了,这样可以从另外一个角度检测堵转。

Q17:加位置环应该怎么来添加?项目开发需要三个环同时工作,位置环电流环和速度环,有

编码器,定位刚性能保证吗?

A17:通常在做过程震荡,一般是两个环路比较好控制,比如说的力矩环+速度环,或者力矩

环+位置环,这种方式比较好。如果三环在一起,会有很多变量是纠结在一起,不方便

开发。

Q18:相对于传统DSP、FPGA等手段,STM32在控制电机方面的优势是什么?

A18:从字面上理解,传统的DSP就是数字信号处理,FPGA是现场可编程门阵列。FPGA非常

好,基本可实现所有的数字控制,但其开发有一定门槛,在电路设计不够好时,可能会

存在一些风险。应该说,有些SOC是在FPGA的仿真验证之后,才重新设计实现的。传

统DSP的设计初衷是为了数字运算,具有较快的数字运算或数据处理性能。当然,现在

DSP和MCU实际上有些相近,没有特别分明的界限,它既可做数据处理也可实现一些

控制功能。但性价比是客户考量点,有赖于客户的评估。当前ST的部分芯片性能已经非

常高了,比如低端伺服已经不用FPGA,换成高性能ST芯片;随着芯片工艺提高,干扰

性对客户硬件处理要求也提高。

Q19:BLDC启动过程怎么调节?

A19:无传感的是开环启动,定位后V/F启动,电流闭环,速度开环整个一个过程。

Q20:弱磁原理是什么?

A20:简单说就是Id需要被控制,通常情况是ID等于0的控制。现在要作为一个ID控制,进行

一些弱磁的配比,可根据电压方程来做。请访问官网http://stmcu.com.cn上的培训文档,有

各种公式可以算出来,较为详细。

Q21:STM32应用于电机控制器,除了开发流程更快一些之外,还有其他的优势吗?成本?

维护?二次开发?

A21:STM32芯片性价比非常高,资源非常丰富,产品的生态系统非常强大。用户可以在很

多途径上得到ST的特别多的生态系统支持,不仅仅是芯片文档,还有多种路径的技术支

持帮助用户解决问题。STM32生态系统非常到位,这一点是众所周知的。

Q22:有霍尔无刷电机换相时脉动,导致噪音,如何有效去除?STM32单片机6路PWM和

IR2136连接,中间需要加小电阻吗?

A22:如果MCU直接接驱动桥,需要加一个小电阻,一是防止干扰,二来保护芯片。如果采

用方波控制,即有传感的方式,需要进行电流补偿;如果是FOC,需要做电角度修正,

因为FOC在霍尔信号这个边缘要做一次同步,同步的准确度与否或者是这个突然同步的

过程中会产生脉动,这是要做一定的补偿的。

Q23:我发现很多书上关于电磁转矩的解释不合理,能基于原理实际分析一下电磁转矩产生的

原理吗?

A23:实际就是内外磁场(定子、转子)的叉乘带来电磁转矩。当两路的磁场方向不一样时,

之间的有一定夹角,就会产生一个转矩。

Q24:请讲解弱磁控制、前馈控制的代码函数讲解和应用,不同内核芯片的代码移植?

A24:电机算法实际上独立于芯片而存在的,如果你熟悉一种算法,可以用到很多的MCU或

者芯片上去。弱磁控制实际上根据电压方程来做的;前馈控制是两轴之间,电可转磁,

磁可以转电,两者之间的耦合性带来了前馈控制。

Q25:如何解决电机对电路的干扰问题?

A25:电机的硬件电路设计有讲究;转速快速的话可以考虑加入PID中的微分量,同时注意反

充电保护。电机控制实际上是软硬件的结合。

4c2ea780f148ee76765f175f74270b76.png

点击链接观看更多相关课程

电堂科技​c.51diantang.com

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

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

相关文章

android动画编辑软件,ALM视频动画编辑

ALM视频动画编辑app手机端中最为专业,强大的视频编辑工具,丰富的功能堪比pc级别,并且实用流畅不卡顿,操作简单明了,上手容易,视频效果出色,更多丰富素材内容使用!下载ALM视频动画编辑app开始体验吧!ALM视频动画编辑介绍ALM视频动画编辑神器为你提供非常高…

openhub_介绍OpenHub框架

openhub本文介绍OpenHub框架 -基于Apache Camel的新的开源集成解决方案。 本文回答了一些问题,为什么您应该关心另一个集成框架,强弱属性以及如何使用OpenHub启动新项目。 OpenHub框架是Apache Camel,但经过改进…… 当然,您只能…

Oracle 数据库的替代变量问题(即 set define off/on 的用法)

在 SQL*Plus 中默认的 & 表示替代变量,也就是说,只要在命令中出现该符号,SQL*Plus 就会要你输入替代值。这就意味着你无法将一个含有该符号的字符串输入数据库或赋给变量,如字符串 SQL&Plus 系统会理解为以 SQL 打头的字符…

console react 去除_vue或react项目生产环境去掉console.log的操作

在开发环境写了很多console.log/info/debug,在生产环境需要去掉这些console。如果手动删除未免也太累了,再说以后想再开发还得重新写console。事实上webpack提供了删除console的插件,在vue-cli3里面是这样用的:首先安装terser-webpack-plugin…

mfc 弹簧_弹簧和线程:事务

mfc 弹簧为了能够在我们的线程中使用事务,我们需要了解事务如何在spring中工作。 spring中的事务信息存储在ThreadLocal变量中。 因此,这些变量特定于单个线程上正在进行的事务。 当涉及由单个线程运行的动作时,事务将在分层调用的Spring组件…

MacBook 如何通过命令终端进入 U 盘内的目录

U 盘通常是在目录 /Volumes 下,输入命令 cd /Volumes/U 盘名称,如下: liaowenxiongdeMacBook-Air:/ root# cd /Volumes/大白菜U盘 liaowenxiongdeMacBook-Air:大白菜U盘 root# ls .Trashes DBC System Volume Information进入目录后&am…

Html调用窗口,等待HTML调用window.print()之前写窗口

我有这样的尝试是把一些内容到一个弹出窗口,然后JavaScript代码连接到打印:等待HTML调用window.print()之前写窗口$(".print_friendly_popup").click(function() {var target $(this).data(print-target);var left (screen.width/2)-(500/2)…

spring 导出csv_Spring批处理CSV处理

spring 导出csv总览 我们将讨论的主题包括使用Spring Batch进行批处理的基本概念,以及如何将数据从CSV导入数据库。 0 – Spring Batch CSV处理示例应用程序 我们正在构建一个应用程序,演示用于处理CSV文件的Spring Batch的基础。 我们的演示应用程序将…

python强制结束函数_为什么Python没有 main 函数?终于有人给出了正确答案!

毫无疑问,Python中没有所谓的 main 入口函数,但在网上经常有文章提到“Python中的main函数”和“建议编写main函数”等。他们的目的可能是模仿真实的 main 函数,但是经常有很多人被误导(或误解)并编写非常繁琐的代码。…

MacOS 如何显示/隐藏文件

文章目录显示/隐藏文件快捷键修改“访达”属性修改文件隐藏属性设置特殊文件名实现隐藏使用命令设置文件隐藏属性显示/隐藏文件 快捷键 按下 Shift Command . 可以显示隐藏型的文件,再按下 Shift Command . 则不显示隐藏型的文件 修改“访达”属性 defaults…

html标签的嵌套规则有哪些,html 标签的嵌套规则

如何在 Visual Studio 中使用 Git 同步代码到 CodePlex开源社区不管在国内还是国外都很火热,微软也曾因为没有开源而倍受指责,但是随着 .Net framework.ASP.Net MVC等框架的逐渐开源,也让大家看到了微软开源的步伐.CodePlex 则是 ...【android】Android am命令使用一.开启Activ…

lombok_Lombok–您绝对应该尝试一下

lombokLombok在Java生态系统中并不是什么新鲜事物,但是我必须承认,在尝试它之前或在我“很确信”尝试之前,我总是低估了它的价值。 我发现添加一个库来生成代码的价值并不高,这些库可以被当今的任何现代IDE轻松生成。 因此&#x…

不相关子查询的工作方式是_课题组工作|Nucleic Acids Research|基于表达密度谱的特征子空间分离及相关单细胞转录组分群新算法...

大家好!为大家分享本课题组近期发表在Nucleic Acids Research的文章,题目为 “Entropy subspace separation-based clustering for noise reduction (ENCORE) of scRNA-seq data”,文章提出了一种基于表达密度谱的特征选择方法,能…

Mac OS 使用命令(scp/sftp)将本地文件上传到远程 Linux 服务器主机或者从远程主机下载文件到本地主机

文章目录一、使用 scp 命令(一)将本地的文件上传(上载/复制)到远程主机的指定目录下(二)将本地主机的目录内容(含目录本身)上传到远程主机指定的目录下1.将本地主机桌面上的目录 www…

java 9 module_Java 9:欢迎来到Module World

java 9 moduleJava 9已于9月21日正式发布,Eclipse从Eclipse Oxygen.1a(4.7.1a)支持Java 9,让我们进入模块世界。 从此处下载Java 9,并将其添加到Eclipse Installed JRE中,如下所示 就是这样,…

python提取html正文为txt,python 提取html文本的方法

假设我们需要从各种网页中提取全文,并且要剥离所有HTML标记。通常,默认解决方案是使用BeautifulSoup软件包中的get_text方法,该方法内部使用lxml。这是一个经过充分测试的解决方案,但是在处理成千上万个HTML文档时可能会非常慢。通…

Mac OS 通过配置窗口来连接远程主机

点击连接后,就跳到命令终端窗口中,输入远程主机 root 用户的登录密码,则完成连接。

温度补偿计算公式_一种工业用温度测量模块的设计与实现

一种工业用温度测量模块的设计与实现罗伯特侯0 引言温度是工业生产中最重要的参数之一,因此温度测量设备在工业领域不可或缺。热电偶是工业场合中应用最广泛的温度传感器,它的主要特点是测温范围宽,价格低,同时结构简单,坚固耐用。笔者采用高集成度、高精…

taskexecutor_弹簧和线程:TaskExecutor

taskexecutor在Web应用程序中使用线程并不罕见,尤其是当您必须开发长期运行的任务时。 考虑到spring,我们必须格外注意并使用它已经提供的工具,而不是生成我们自己的线程。 我们希望线程由spring管理,因此能够在没有任何影响的情…

Linux 命令之 find -- 查找文件和目录/搜索文件和目录

文章目录命令介绍语法格式常用选项文件类型参考示例(一)在当前目录及其子目录下搜索内容中含有“140.206.111.111”的所有文件(二)列出当前目录及其子目录下所有文件和目录(三)在指定目录下查找特定名称的文…