免费咨询热线
13621929115全文约4744字,1段视频,你将看到以下内容:模型仿真与实际应用之间的区别MBD拉近模型仿真与实际应用之间的距离基于Stateflow构建电机控制状态机下期预告1 模型仿真与实际应用之间的区别MBD(Model-Based Design,基于模型的设计)是通过模型生成代码的,所有我们有必要弄清楚模型展品展具模型仿真与实际应用之间的区别。
仿真模型与实际应用之间的区别本质上是理论与实践之间的差别,其中的差别可以说是两个完全不同的话题上期文章给了一本参考书《现代永磁同步电机控制原理及MATLAB仿真》,关于永磁无刷电机的数学理论和模型仿真,这本书讲的很全面。
对电机控制理论还有所欠缺的,可以先学习和实现书中的一些展品展具模型算法和数学建模
永磁无刷电机的模型仿真参考书 - From Internet这里又给大家更新三篇与电机控制实践相关的文章它们是由NXP的工程师编写的电机控制应用笔记,可以在NXP官网找到,也可以在对话框中回复关键词“NXP应用笔记
”,即可收到相应资源这三篇应用笔记分别是:3-Phase Sensorl展品展具模型ess PMSM Motor Control Kit with S32K1443-Phase Sensorless BLDC Motor Control Kit with S32K144。
3-phase Sensorless Single-Shunt Current-Sensing PMSM Mot展品展具模型or Control Kit with MagniV MC9S12ZVM
NXP电机控制应用笔记 - From autoMBD前两篇分别以PMSM和BLDC为主题,介绍如何实现无感FOC控制;第三篇讲的是单电阻无感控制方案,实现的也是FOC算法,软件实现上是有一些区别的,也要复杂一些。
Tips:第三篇展品展具模型是基于MagniV MC9S12ZVM的,而不是S32K144,参考这篇文章时,主要学习的是单电阻电机控制方案,这个方案也是完全可以移植到S32K1xx系列上的无感控制比有感控制要复杂,将无感的方案稍加改造就可以做出有感的控制方案,所以这三篇应用笔记是很有实践参考价值的。
这三篇应用笔记给的都是纯代码展品展具模型开发的方案,即介绍了工程实践中如何从数学原理一步一步实现电机控制,主要内容包括:电机控制数学原理电流、电压采样输入和驱动输出MCU模块资源的使用底层驱动配置和初始化电机控制软件架构(状态机、电机控制库、MCAT等)
下面的这个框图可以较为全面的展示第1~4点在电机控制中的实际体现:系统从外部硬件(电机展品展具模型、逆变器、预驱芯片)起,经过信号采集,再到MCU的外设模块(白色方块),再到底层驱动(SDK Driver/橙色方块),然后进入到FOC的软件算法部分(绿色方块),而FOC的输出经底层驱动、再到外设模块(FTM模块)输出到预驱芯片,从而实现控制。
第5点则是调度上述过程的状态机,关于第5点后文会更一步展品展具模型的讲解。
NXP电机控制软硬件框图 - From NXP从这五点我们就能引出我们要讨论的问题:模型仿真与实际应用之间的区别到底有哪些?简单的说,模型仿真只能触及上述的第1点;如果对建模有更深入的研究,第2点也能做仿真,这部分实际上和硬件电路设计有关,所以很少有在模型仿真中考虑这一点;第3、4、5点就是展品展具模型完全的非理论了,与嵌入式、编程和芯片有较强的关联,是实实在在的实践过程。
所以,在袁雷的《现代永磁同步电机控制原理及MATLAB仿真》中是完全不包括第2~5点的内容的以电流采样电阻为例,实际应用场景中,为了测量电流信号的方向,一般会对采样电阻进行偏置处理NXP开发的DEVKIT驱动板相电流采样电阻为例展品展具模型,其电路设计如下图所示:。
DEVKIT驱动板相电流采样电阻 - From NXP可以看到,偏置电压为参考电压的一半,所以最终输入到芯片ADC的电压是以偏置电压为中心对称的根据大于偏置电压还是小于偏置电压,可以判定电流是正方向还是负方向。
所以在信号处理中还需要将这个偏置电压减去关于电流采样,还有布置方展品展具模型式的不同,常见的采样电阻布置方式有以下这些:三电阻下桥臂采样/相电流采样双电阻下桥臂采样/相电流采样单电阻母线采样Tips:这里列举了常见采样电阻布置方式,一般应用中下桥臂采样较多,相电流采样多用于高性能、高效率电机控制的场合,而单电阻母线采样是成本最低,但采样方式最复杂的。
不同的布置方式,采集的电展品展具模型流是不同的,而控制算法是需要全部的三相电流的三个采样电阻可以直接得到三相电流信号,如何通过一个电阻或者两个电阻得到三相电流数据,也是有方法的双电阻相对来说较为简单,根据三相电流和为零。
,可以直接求解出第三相电流单电阻采样的场景要复杂很多,具体可以参考上述的第三篇应用笔记以上关于电流采样的所有方法,在展品展具模型模型仿真中都没有考虑,只是一根信号线连接到控制器,这就是理论仿真和实践的巨大区别所在,如下图所示(摘自袁雷的《现代永......仿真》):。
仿真模型示例 - From 袁雷Tips:因为我们要使用MBD的开发方法,所以这里不再深入详细展开讲其他的区别,以后有需要的地方再做提示,有兴趣的读者可以自行参展品展具模型阅上述三篇NXP的应用笔记当我们了解了所有。
理论与实践之间的区别,辅以嵌入式开发和编程的基础,一个简单的电机控制项目就可以实现即使是一个产品级的电机控制软件,也只是再补充通信、故障诊断、功能安全等其他需求的功能复杂度可能会高很多,但开发和设计的本质框架就是这样的。
2 MBD拉近模型仿真与实际应用之间展品展具模型的距离如果要更加严谨地说,上面讨论的也只是电机控制算法部分的工程实践一个完整的产品应用,硬件设计和软件设计硬件设计可以交给硬件工程师,我们把重点放在软件设计上
电机控制的硬件 - From NXP上面三篇应用笔记中提到的电机控制实现方案,是属于软件设计的一部分传统的开发中,就需要将选定的电机控制方案转展品展具模型化为一行行的代码,这就又涉及到数学(理论)到编程语言(实践)之间的转换。
入门门槛高,同时效率也较低Tips:以我自己的经历为例,上述应用笔记内容的代码实现过程,我是完整的走过一遍的我从对嵌入式一无所知,到学习嵌入式的基本模块和开发方法,再到能写一些基本的嵌入式代码,花费了3个月的时间,然后又花了差不展品展具模型多1个月的时间,才实现了一个简单的电机控制嵌入式程序。
这还是我对电机控制理论有了足够的基础之后的开发效率但利用MBD的开发方法,我们可以大大简化这一步骤模型我们是比较容易得到的,利用模型直接生成代码,能有效地缩近理论和实践直接的距离更多MBD相关的内容,请参考本公众号。
前面几期内容,或者在对话框中回展品展具模型复关键词“MBD入门”。
MBD的开发流程 - From ST如果读了上述三篇应用笔记,就可以发现,嵌入式软件设计很多是可以通过建模的方式实现的。这里简单的把软件设计分为五类,它的软硬件层级如下图所示(软件为虚线框部分):
电机软硬件层级示例 - From autoMBD下面是这五类软件关于MBD建模实展品展具模型现的分析:底层驱动,MCU、硬件电路强相关底层驱动是和芯片和硬件电路设计紧密相关的,比如硬件引脚(Pin脚、外设、端口等)使用的不一样,底层驱动的配置也就不一样了。
对于底层驱动我们需要特殊处理,详见MBD闲谈 第03期:MBD的“禁区”——底层驱动原则上底层驱动是可以通过芯片厂商提供的MBD硬件支持展品展具模型包来实现的,但从灵活性和效率的角度来说,目前建议通过专门的底层驱动配置工具来配置底层驱动,例如NXP适用于S32K1系列的配置工具Processor Expert。
数字信号处理,硬件电路弱相关数字信号处理(Digital Signal Processing,DSP)是将真实世界中的物理量(模拟量,例展品展具模型如电流、电压等)转换为控制器需要的量的过程还是以电流采样为例,在前文给的电流采样电路基础上,ADC读到的电压实际上是一个12 bit的整数,需要将其进行偏置消除以及物理量转换等操作,有必要的话会需要进行滤波处理。
可以看到,这个过程和硬件电路设计有一定的联系,硬件设计的不一样,处理的细节可能存在一定的展品展具模型差异但基本的信号处理方法是相通的,例如滤波器、积分、微分、移位运算、逻辑运算等这一过程是可以通过建模的方式实现,并且信号处理越复杂,模型的优势就更明显,毕竟模型很容易搭建,代码写起来就很费劲了。
所以我们可以把软件设计中的这一部分纳入到MBD中,通过建模的方式自动生成代码电机控制算法,硬件电路弱相关数展品展具模型据信号处理后,将得到的数据传递到电机控制算法中控制算法中一般包括坐标变换、PI控制器、FOC、SVPWM等环节。
电机控制算法会得到一个控制输出量,一般是三相的占空比这些环节使用Simulink内置的模块,或者使用芯片厂商提供的MBD硬件支持包,是可以很方便快捷的实现的这部分如果要编写代码,对初学者来展品展具模型说,甚至对有一定编程基础的人来说,都算是不小的挑战。
此外建模可以很方便地调整控制算法的结构,开发初期这是很常见的手写代码的话,每一次调整结构就需要重复工作一遍,效率很低因此电机控制算法部分是很适合通过建模生成代码来实现的这里解释一下电机控制算法为什么是硬件电路弱相关。
一般来说,通用的电机控制算法是可展品展具模型以做到与硬件电路无关的但在某些场景下,例如有的芯片具有硬件加速模块,或者使用一些特殊的控制算法(无感和有感就有硬件上的差异),可能会影响控制算法的执行,所以电机控制算法和硬件有一定的关联。
状态机,与硬件电路无关状态机是与硬件电路完全无关的,而且在Simulink中提供的Stateflow是专门用于状展品展具模型态控制建模的工具,用它开发状态机效率可以提高一个档次所以状态机使用MBD来实现也是毫无问题的。
其他软件,例如通信、失效检查等,暂时我们不考虑这部分内容从上面的分析来看,除开底层驱动,其他软件部分均可以通过MBD建模的方式实现,并且能大大提高效率下图是较为常见的V型开发流程,参考这个流程就可以开发一个展品展具模型基于MBD的电机控制软件。
V型开发流程 - From ST3 基于Stateflow构建电机控制状态机前面讲了这么多内容,总得要有实践来证明。
实践是检验真理的唯一标准 - From Internet关于使用MBD开发方法来开发一个电机控制软件,我建议从上层开始,即先构建状态机,再深入到控制算法建模、展品展具模型数字信号处理,最后进行底层驱动的集成Tips。
:由于平时要上班,这部分只能利用的空闲时间完成,所以开发过程会比较慢我会一部分一部分地做,并在这个公众号中分享给大家,欢迎大家关注首先关于Stateflow的使用方法,在我收集的资源中,刘杰教授出版的三本专著是由专门介绍的。
在对话框选择MBD->资源可以展品展具模型收到相关分享连接,也可以在对话框中直接回复关键词“资源”。这三本专著的路径如下图所示:
刘杰教授出版的三本专著路径 - From autoMBD不了解Stateflow的可以先学习它的使用方法这一期分享的是使用Stateflow构建一个电机控制的状态机我们看看状态机长什么样,下图是摘自NXP PMSM展品展具模型 无感控制算法的状态机(详情参见上文给出的应用笔记): 。
NXP电机控制状态机 - From NXP状态机有两个很重要的元素:状态(State)和事件(Event),状态之间的切换是通过事件触发的实际上了解了状态机,也就了解了电机的运行情况,也就有了电机控制算法的基本框架。
状态机的设计也不是唯一的,展品展具模型可以根据自己的需求自行设计。以我的观点来看NXP设计的这个状态机就比较简单,只是比较初级地实现功能。下图是我在Simulink中利用Stateflow构建的状态机:
Stateflow构建状态机 - From autoMBD从上图中我们可以看到,电机控制状态有四个,不同的状态执行不同的功能:Initi展品展具模型al,执行初始化过程,包括变量初始化、FOC初始化、预驱初始化等,MCU上电后自动进入此状态;
Ready,初始化完成,进入可以启动的状态;Run,该状态包含两个子状态,即Calibration和NormalRun,分别实施电流、电压传感器校准工作和正常运行时的算法计算工作;FAULT,故障状态,任何展品展具模型时候检查到故障,进入此状态。
我也为该状态机构建了一个简单的测试模型,该模型可以在不同的状态点亮不同的LED指示灯,如下图所示:
下面这个视频展示了该模型运行时的状态(时长约 1min 9 s):该状态机将会是今后MBD开发电机控制算法的基础,目前也只是初级版本,以后可能还会有更多的调整我会将该模型上传展品展具模型到GitHub仓库中,供大家参考,对话框中回复关键词“。
MBD电机控制”可收到相关链接4 下期预告下一期有两个可能的话题二选一:一是关于控制论的一些经验分享,也是一些电机控制建模的经验总结;另一个就是接着今天的内容,进一步介绍如何在状态机的基础上构建电机控制算法,包括数据处理。
我发现我分享的资源越来展品展具模型越多,也越来越乱,近期我将对资源进行一次整理查看往期文章可以找到作者的联系方式,获取文章提到的资源,也可以直接发私信联系作者欢迎与我交流,写下你的留言,或者给我发私信,我会及时回复。
Copyright © 2002-2020 上海润之模型设计有限公司 版权所有 展示模型,展品模型,展厅模型,展示道具,展厅展品,展品道具,模型定制,模型公司,上海模型公司 备案号:沪ICP备20018260号