MATLAB实现永磁同步电机控制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
永磁同步电机(PMSM)解决方案
MathWorks
目录
▪解决方案理念–基于模型的设计
▪解决方案1–控制(驱动)侧建模、验证以及代码生成▪解决方案2 –被控对象侧建模
▪所需产品和咨询服务一览表
基于模型的设计
In-the-Loop Testing (在环测试)
MIL主要考察模型的逻辑正确性。
SIL指的是将驱动器的部分通过Embedded Coder生成C代码,然
后将C代码编译后和电机模型联合测试。
SIL主要考察C代码生成
的正确性。
PIL指的是将驱动器的部分生成代码加载到处理器上,通过外围
接口和电机模型联合测试。
PIL主要考察C代码到汇编语言的编
译链接以及在处理器上执行的正确性。
HIL指的是将成品电机驱动器和在高速实时工控机上运行的电机
模型,通过实时总线进行联合测试。
HIL主要考察在实时环境下
电机驱动器的逻辑和性能。
做各级在环测试的理由:
1)减少对实物测试的依赖2)模拟各种难以模拟的工况3)增加开发效率
Model-in-the-loop
在建模和仿真的过程中可注意如下几点:
•可通过Simulink Check 进行模型的静态检测,例如MAAB、ISO26262、MISRA等检查规则•可通过Simulink Test进行模块级别单元测试,同时可通过Simulink Coverage检测模型的覆盖率•可通过Simulink Design Verifier进行模型死区检测和自动生成一些测试用例(用来补足模型的测试覆盖率)
Software-in-the-loop
Code
Generation
Compiled C Code
S-Function
(Windows DLL)
Processor-in-the-loop
Code
Generation
Hardware-in-the-loop
Code
Generation
Code
Generation
Wiring and
Signal Conditioning
代码生成
▪驱动部分生成代码(通过Embedded Coder)
▪MathWorks推荐使用非Hardware Support Package 方式作为最终生产环境–生成的代码为应用层代码,调用芯片(板卡)厂商自带驱动
–源代码集成有助于差错和通过相关安全认证
–Hardware Support Package主要用于前期验证
▪代码为标准C,可以和任何操作系统、调度模式紧密集成
▪效率高、可读性高、可靠性高
▪支持AUTOSAR
▪Embedded Coder通过IEC61508 、ISO26262、IEC62304、IEC50128、IEC61511认证
符合AUTOSAR标准的控制软件开发
▪AUTOSAR是一种汽车电子的标准架构,由ASW、RTE、BSW等层次组成。
Simulink可通过Embedder Coder产生符合AUTOSAR架构的代码,该代码直接调用RTE接口。
▪一般来说,Simulink支持两种开发模式:
–自上而下模式–指的是Simulink可以导入如Davinci Developer等基于标准AUTOSAR的架构工具的ARXML文件,然后在此基础上进行ASW内部的runnable的设计,在设计完成后可生成可调用RTE 的代码
–自下而上模式–指的是Simulink可以已经做好的控制模型,将原有的非AUTOSAR输入输出接口配置成AUTOSAR的输入输出接口,形成标准的ASW。
此后,可生成可调用RTE的代码
▪Simulink对AUTOSAR的支持可通过从网上下载AUTOSAR支持包来完成,无需额外的许可证支持。
▪MathWorks产品对于ISO26262标准的合规主要体现在第六章和第八章。
第六章为软
件部分,第八章为工具和支持过程。
▪在第六章中,ISO26262提出了15个表格。
每个表格中针对不同的ASIL等级,对一些软件开发过程中的技术做了不同层次的要
求。
用户需要证明其软件开发过程符合这
些要求。
MathWorks在IEC Certification
Kit中的Model-Based Design for ISO
26262文档中对于每一个表格都有相应的
技术应对。
▪第八章中,ISO26262对开发过程中使用到的软件做了一些规定。
MathWorks的Embedded Coder, Simulink Design Verifier, Simulink Check, Simulink Coverage, Simulink Test, PolySpace Bug Finder, PolySpace Code Prover 都被TUV严格做了以下审核和认证:
–SUV出具了对这些产品的工具认证报告
–MathWorks推荐了这些产品的使用流程
–TUV针对以上使用流程的若干使用场景做了TCL(工具置信度)的事先划分
▪在实际认证过程中,如果为TCL1则无需做额外的工具资格认定(tool qualification),例如Embedded Coder 如果严格按照MathWorks推荐的流程来使用,则为TCL1
▪如果为TCL2或者TCL3,则用户需要做工具资格认定,MathWorks提供了工具资格认定所需的测试用例,用户只需要运行即可
–用户须为以上被预认证过的产品提供一份TQP(Tool Qualification Package) 和CDT (Conformance Demonstration Template),用来说明该产品是如何被资格认定的。
MathWorks提供了文档模板
▪以上的证书、模板和测试用例都可在IEC Certification Kit中找到。
电机建模(被控对象建模)
▪MathWorks能提供三种不同精度的永磁同步电机被控对象模型:–线性模型–转矩和电流为线性方程
–非线性饱和模型–转矩和电流的关系为非线性饱和型
–饱和加空间谐波模型–转矩和电流的关系为饱和加空间谐波型
线性模型的建立
▪Simulink中的Simscape Power Systems以及Powertrain Blockset都提供了线性模型供设计参考。
▪线性模型所需参数:
▪如何获取参数:
非线性饱和模型的建立
▪Simulink中的Simscape Electronics以及Powertrain Blockset都提供了非线性饱和模型供设计参考。
用户可通过两种方式获取数据后填充这些模型(即填充Nonlinear Flux 和Current 表格)
▪这两种获取数据方式为电机台架测试(Dyno Testing)和有限元分析(FEA)
[]
d
i n
[]
q
i n
[]n
λ
[]n
λ
Z Z
[1]
n
λ-
[1]
n
λ-
[]
q
v n
[]
d
v n
Z
Z
[1]
i n-
[1]
i n-
()
3
[][][][][]
22
p
T n n i n n i n
=λ-λ
[]
e
T n
()
()
[][1][][1][1][1]
[][1][][1][1][1]
n n T v n R i n n n
n n T v n R i n n n
λ=λ-+--+ω-λ-
λ=λ-+---ω-λ-
i LookupTable
i LookupTable
Calculate Flux
Calculate Torque
[][1](1/)([][][1])
n n T J T n T n B n
ω=ω-+--ω-
[][]
e rm
n PP n
ω=⋅ω[]
L
T n
Z
[]
e
n
ω
[1]
e
n
ω-
Calculate Speed
饱和加空间谐波模型的建立
▪饱和加空间谐波模型的建立只有通过FEA的方式获得,MathWorks工程师为用户提供了:
–基本的饱和加空间谐波模型的Simulink模型框架
–通过不同FEA(ANSYS,JMAG等)工具获取数据后的处理脚本(处理导入数据至模型框架)
所需产品模块(一):电机驱动控制部分模块作用
Matlab 科学计算平台,内置各种基本数学函数,包括算法开发、数据计算与分析以及图像显示、界面开发,为基本模块
Simulink状态机、流程图仿真,主要用于逻辑算法建模Stateflow离散事件系统建模
Simulink Check建模规范检查
Simulink Coverage功能测试后模型和代码覆盖率检查
Simulink Test用来建立测试单元平台,构建和管理测试用例
Simulink Real-Time 提供实时仿真环境的软件部分,包括实时仿真内核与一系列板卡驱动,可以将模型编译下载到仿真机,实现实时仿真(需要Simulink Coder)
Simulink Design Verifier 基于形式化的方法识别模型设计错误(自动进行模型分析而不需要测试用例);基于覆盖度以及设置的功能需求生成测试用例;属性证明并在存在不满足属性时生成相应的测试用例
Polyspace Bug Finder源代码静态检查
Polyspace Code Prover 形式化的方法(基于代码分析不需要测试用例)证明源代码里是否存在运行时错误(run-time
所需产品模块(二):电机被控对象部分
模块作用
Simscape物理建模平台,提供了一些基础的元器件模块
Simscape Electronics 提供了为电路系统以及机电系统建模仿真的电路元器件库。
包括各种半导体器件、驱动电路、电机、放大器模块、逻辑元器件等等,可以用来开发各种机电系统,或者分析各种电路结构
Simscape Power Systems 提供用于建模和仿真电力系统的组件库和分析工具。
组件库包括电力组件的模型,如三相电机、电气驱动器,以及针对诸如柔性交流输电系统(FACT)和可再生能源系统等应用的组件。
谐波分析、总谐波失真(THD)计算、负荷流以及其他关键电力系统分析都自动化进行
Powertrain Blockset 提供了汽车动力系统中的物理模型库,控制系统参考设计库,以及整车仿真的示例
所需产品模块(三):代码生成部分
模块作用
MATLAB Coder将MATLAB脚本生成C/C++代码
Simulink Coder 将Simulink(Stateflow)模型生成C/C++代码(用于测试仿真)
Embedded Coder 将Simulink(Stateflow)模型生成C/C++嵌入式代码
咨询服务(一):电机控制模块C语言转MBD 描述:
选择一个大小合适的模块,例如速度控制、FOC、扭矩控制等。
MathWorks技术顾问帮助从传统的C语言开发模式转化成MBD。
服务描述预估天数(以服务部门具体计算为准)Simulink/Stateflow模块搭建10
20
基于模型的测试环境建立,测试用例建
立,测试覆盖率计算,
代码生成、系统集成10
10
符合AUTOSAR模型的建立与配置
(optional)
咨询服务(二):高精度电机模型建立
描述:
基于电机台架的测试数据和FEA数据,建立高精度电机模型,
然后与电机控制模型形成闭环控制。
可进行各级在环测试服务描述预估天数(以服务部门具体计算为准)线性电机模型的建立3
非线性饱和模型的建立10
饱和加空间谐波模型的建立15
与电机控制模型联调、形成闭环10
指导MIL/SIL/PIL/HIL20
咨询服务(三):ISO26262-6 流程咨询
描述:
在模型、代码生成、测试用例和覆盖度、各级在环测试的基础上,指导进行符合ISO26262-6标准的流程评估、修改和落地
具体时长待评估后定(半年以上)
关键活动
•Requirements traceability
•Requirements-based testing and coverage of models
•Model standards checking using Simulink Model Advisor
•Reviews, static analysis, and inspection of software and model architecture
•Test case generation and design analysis using Simulink Design Verifier
•Tool configuration and code generation using Embedded Coder
•Software-in-the-loop and processor-in-the-loop testing of generated and compiled code •Tool qualification using IEC Certification Kit (for ISO 26262)
•Generation of work products needed for ISO 26262 compliance
谢谢。