来源 | 前瞻情报部

作者 | 汽车软件

进圈 | “动力总成测试群”,关注本公众号后,添加文末主编微信,备注“进圈”

前言

纯电动汽车和混合动力汽车是新能源汽车产业发展的重要方向,同时,泛亚“电动化、智能化、网联化、数字化”战略的提出,使得未来车载汽车电子电气架构系统的开发越来越复杂。汽车开放系统架构 AUTOSAR 代表的层次化、模块化、平台化技术则是汽车电子软件开发的重要趋势。在电动汽车的三大电控系统中(电机控制、电池管理、整车控制),电机控制作为核心之一,其软件架构的研究设计对于汽车电控系统的开发有重要意义。本报告以电动汽车用驱动电机作为研究对象,以 AUTOSAR 开发架构为基础,对电机驱动控制系统软件架构设计与开发进行探究,并在此基础上对电机过调制控制算法以及旋变软解码技术进行详细研究。

电动汽车的电机控制软件基于 AUTOSAR开发的意义 

在电动汽车的三大电控单元中,电机驱动控制作为其中的核心,其性能高低对汽车动力性和操纵性有直接的影响。和传统电机调速系统和伺服电机系统相比较,车用驱动电机系统的开发除了高功率密度、宽调速范围等性能需求外,对于安全性和可靠性也有着更高的要求。提高车用电机控制软件的可复用性,增强系统软件的可配置性,改善系统软件的可靠性与稳定性对于车用电机控制系统开发有着重要意义。

旋变解码研究 

对于电机矢量控制而言,往往需要获取电机的转子位置角度,角度的测量常用的方法有磁性编码器、光电码盘、电涡流传感器和旋转变压器等。其中,磁编码器是基于磁阻效应或霍尔效应的轴角传感器,输出信号是基于转子位置的正余弦函数,其结构简单鲁棒性强,不受潮湿环境影响,但受高温和气隙限制;光电码盘体积小,分辨率高,抗电磁干扰能力强,但转速受限,最高可测转速在 3000rpm 左右;电涡流传感器灵敏度高,响应速度快,受环境影响较小,但其精度有限;旋转变压器可靠性高,不同环境适应能力强,不受温度和振动等因素影响,因此广泛应用于电梯、雷达、机载仪器等伺服系统和工业自动化领域。旋转变压器输出一组包含转子位置信息的正余弦信号,需要对此信号进行适当的处理,才能得到相应的转子位置。对于旋转变压器输出模拟信号的处理可以由专用的集成电路将其转换为数字信号,即 RDC电路,又称为旋变解码芯片,目前常见的有美国AD公司的AD2S(AD2S1210)系列芯片以及日本多摩川公司的 AU6802系列芯片,它们可以产生激励信号发送给旋变的激励绕组,然后将返回绕组的模拟信号处理得到转子位置信号,以编码器或 SPI 等形式输出。除此之外,还有一种方法是利用 DSP和外围调理电路产生激励信号并对旋变输出的信号进行调制、滤波等处理以及角度辨识算法得到转子位置信号。采用 DSP 对角度信号处理省去了专用的解码芯片,极大地降低了开发成本。常见的角度辨识算法有反三角函数法、标定查表法、基于锁相环的角度跟踪观测器法。其中,反三角函数法实现简单,但引入了一个除法,一个反正切运算,占用资源较多,而且不能利用整个输出信号的波形;标定查表法需要利用传感器对旋变信号标定,将旋变输出信号对应的角度值存储起来,以供查表使用;基于锁相环的角度跟踪观测器法包含二阶角度观测器和三阶角度观测器,二阶角度观测器法具有一定的滤波作用,提高抗干扰能力,能够同时估算出电机的转子位置和转速值。当转速变化(升降速)时,二阶观测器解算出的转子位置角会有稳态误差,采用三阶角度观测器具有更好的瞬态检测性能,常用于电机启动加速时的转子位置观测。

基于 AUTOSAR 的电机驱动控制系统开发

本节主要研究AUTOSAR 标准对电机控制系统软件进行软件分层,包括应用层、基础软件层和实时运行环境。其中,应用层通过MATLAB/Simulink 搭建电机控制模型并生成软件代码,基础软件层通过调用英飞凌底层驱动软件包编程实现外设功能模块驱动,实时运行环境通过自定义接口函数实现不同软件层之间的数据交流和服务调用。

电机控制软件架构

传统的电机控制,尤其在自动化领域,软件开发分层不明显,软件和硬件之间的嵌套关系耦合严重,这就使得软件在开发过程中一旦遇到问题和缺陷,难以确定问题产生的原因在于硬件驱动程序还是软件算法设计,影响软件开发效率,提高开发成本,同样也会使软件存在潜在的风险。AUTOSAR 是以软件分层和模块划分的方式实现软硬件分离的汽车开放式架构标准,将系统软件架构划分为应用软件层(APP)、基础软件层(BSW)和实时运行环境层(RTE)。如下图所示:在电机控制系统中,与电机控制功能相关的电机控制算法、电机状态检测、安全监控等功能可作为应用程序与 AUTOSAR 架构中的应用软件层相对应,应用软件层中又将不同的功能模块以软件组件 SWC的形式进行封装,便于设计者的进一步开发。基础软件层对应于与电机控制相关的如控制器外设驱动、通信服务和中断服务等,将控制器硬件功能以模块化进行封装,有利于其在不用硬件平台间的移植。应用软件层与基础软件层之间的数据交流和服务调用则是通过实时运行环境层实现,RTE 相当于虚拟功能总线,使得开发者在设计应用软件时可以不必考虑底层硬件和通信网络,专注于功能软件的设计。下图为本文对电动汽车驱动电机 ECU 软件架构的分层设计。下文将在此架构的基础之上对每层软件进行详细设计。

应用层软件设计(ASW)

应用层软件是电机控制算法及其安全监控等功能的具体实现,需要先确定系统的输入和输出数据,系统所包含的软件组件 SWC 及其系统约束等。本系统的 ECU 即为电机控制器,并且根据相应功能可将其软件组件划分为:电机控制算法 SWC、数据解算 SWC、安全监控功能 SWC等软件组件,如图 2.3 所示,同时需要确定各软件组件的数据输入和输出以及软件组件之间的数据交流和服务调用。在应用软件层 APP 中,软件组件划分的目的是通过功能模块划分减少耦合,有利于系统软件的更新与升级。

完成各个软件组件设计后,需要设计其中的运行实体RE(Runnable Entity),运行实体是软件组件的最小代码片段,是软件组件功能的具体实现。其中,数据解算软件组件SWC中,输入数据包括从基础软件层获得的电流采样、转子位置传感器信号等,需要通过电流计算、转速和转子位置解算的运行实体RE得到相应的电机相电流、转速和转子位置等信号。电机控制算法SWC包含电机控制策略,本文采用的电机控制算法为磁场矢量定向控制FOC(Field Oriented Control,FOC),控制框图如图 2.4 所示,将此框图进行功能划分不同层次,分别与应用层 APP、基础软件层 BSW 和实时运行环境层 RTE 的分层架构相对应。可以看出,分层架构的划分实现了电机控制软硬件的分离,使得软件开发者可以专注于系统软件设计而无需考虑硬件相关问题。安全监控 SWC 则是针对电机过流保护、过温保护、转子位置监测等运行实体的设计。后续若需要进行功能的添加和升级只需要对相应的软件组件和运行实体进行添加和修改即可,从而可以避免由于软件之间交叉耦合带来的复杂性问题。

应用软件层的设计是利用 Matlab/Simulink 环境建模,按照所设计的软件组件及其运行实体搭建模型,利用Simulink/Configuration Parameters-Code Generation 进行相应配置生成软件代码,然后可在 Tasking 编译器中将相应的代码文件添加到系统工程中。

基础软件层设计(BSW)

基础软件层向应用层软件提供基础设施服务,包括外设驱动服务、内存管理服务、通信服务等,是连接应用层与微控制器之间的桥梁。本系统为驱动电机控制系统,其基础软件层结构框图如图 2.5 所示,包含外设驱动、服务和通信等。其中,外设驱动是将微控制器的各个功能外设进行封装,供开发者调用,如与电机控制相关的 PWM 驱动、ADC 驱动、CAN 驱动、IO驱动等;服务包括存储服务以及与系统服务相关的看门狗、定时器等;另外还包含与数据通信相关的通信协议的设计等。本文以英飞凌 AURIX 系列三核单片机 TC297 为硬件开发平台,基于英飞凌底层驱动软件对系统基础软件层进行相关开发与设计。其中,AURIX 系列芯片是英飞凌推出的满足汽车行业标准(如 AUTOSAR 标准、ISO26262)的高性能 32 位微控制器,集成三个 CPU 内核,主频 300MHz,可应用于汽车发动机控制、电动/混合动力汽车、底盘、制动系统、电动助力转向系统和先进辅助驾驶系统等各类场合。本文选用的 TC297 单片机具有丰富的外设资源和强大的数据处理能力,完全可以满足车用电机控制需求。系统与电机控制相关的控制器外设模块包括 CCU6、GTM、ADC、GPIO、ASCLIN等,主要用于实现 PWM 驱动、AD 采样、IO 信号输入输出、通信等功能。其中,CCU6是一个具有特定应用模式的16位高分辨率捕获和比较单元,主要用于AC驱动控制。特殊操作模式支持使用霍尔传感器或反电动势检测的无刷DC电机。此外,支持多相电机的块整流和控制机制。它也支持同步启动几个定时器,这是包含多个CCU6模块的设备的一个重要特性。永磁同步电机的控制需要六路 PWM波来驱动三相逆变器,则可以利用定时器 CCU6 的多路定时器T12输出模块生成三相六路中心对称的 PWM 波。另外,为满足三相电流的同步采样,还需一个定时器作为同步触发信号 Trigger 来触发 AD 采样,这样CCU6 模块一共需要T12、T13两个定时器。VADC 模数转换模块包含 8 个独立的转换单元,每个转换单元含有 8 个输入采样通道,AD采样转换时间小于 1μs。在电机控制中,三相电流需进行同步采样,而 VADC 模块的同步转换功能可支持多达四个采样通道的同步转换。因此,可利用 VADC 的转换单元进行同步采样转换,以实现电机相电流的同步采样。同时,AD 采样频率也要与 PWM 频率一致,采用硬件触发 AD采样可以降低软件开销,减轻 CPU 负载率,则可利用上文 T13设计中预留的 Trigger作为触发信号触发 AD 采样。底层驱动软件为 TC297 各个外设功能模块的寄存器配置以结构体和功能函数的形式进行封装,从一个定时器到三相驱动 PWM 波的产生,都可以通过手动编写寄存器实现,把相关 PWM输出的寄存器配置以结构体和功能函数的形式进行封装,供开发者调用,通过调用 CCU6 模块PWM 配置的结构体和函数,并将相关参数赋值,如频率、死区时间、互补通道对数等,即可完成对电机控制所需的 PWM 波配置。在进行 AD 电流采样配置时,利用 VADC 模块初始化函数可实现对 AD 采样的转换单元和采样通道的初始化配置,包括与电流采样相关的同步转换通道的设置以及 AD 采样结果中断的设置。我们将旋转变压器的解码工作封装成一个CDD模块,主要处理旋变解码芯片的反馈数据结算工作。

基运行时环境设计(RTE))

在完成了应用层软件和基础软件层的设计之后,需在实时运行环境层定义相关接口函数,实现应用层软件组件之间以及应用层与基础软件层之间数据的传输与调用。首先需要明确应用层软件的输入输出数据以及定义相应的数据类型,各个软件组件的输入输出相关数据均列出,在 Matlab/Simulink 搭建模型后,生成的程序代码则将输入输出数据以结构体形式封装;基础软件层中的输入输出数据则是在底层软件中相关结构体进行定义。完成各软件层数据定义后,在中断服务程序中将相应输入输出数据进行赋值即可实现应用层与基础软件层之间的数据传输。其中,应用层软件通过在 Matlab/Simulink 中搭建各个运行实体模型并完成相关仿真测试,进行代码生成,基础软件层利用底层驱动软件驱动进行设计实现对各个外设驱动初始化,并且包含对通信协议和中断服务等进行相应配置;数据通信和服务调用通过在实时运行环境层定义相关接口函数实现。通过上述方法完成基于 AUTOSAR 电机控制软件的具体设计实现。最后,将各层软件导入 Tasking 开发环境中,并在编译器中对所有程序进行集成编译、链接生成可执行文件,将生成的可执行文件添加到调试软件 劳特巴赫/UDE 中对软件进行调试、分析,根据分析结果可对软件进一步优化。

《电池管理系统》技术资料已发放,请关注本公众号后联系主编获取↓↓↓

autosar架构详细介绍_【技术】基于AUTOSAR的电机驱动系统分析相关推荐

  1. autosar架构详细介绍_基于MATLAB环境搭建满足AUTOSAR标准的模型高级培训班

    一.课程目标 1.加深对AUTOSAR标准的认识和理解 2.能够在MATLAB平台上搭建满足AUTOSAR标准要求的应用层软件模型 3.掌握建模过程中的关键概念并能够灵活运用 4.掌握一些高级建模技巧 ...

  2. cad如何打开stp文件_stp文件怎么打开_CAD打开stp文件详细介绍_酷下载

    stp文件是基于ASCII格式的STEP应用协议版本,一般来说是用AutoCAD和CATIA软件打开,但是很多用户不知道,今天小编就给大家带来了CAD打开stp文件详细介绍. 什么是STP文件 CAT ...

  3. 渡神纪帧数测试软件,渡神纪芬尼斯崛起配置要求高吗 渡神纪配置要求详细介绍_游侠网...

    渡神纪芬尼斯崛起配置要求高吗?本作将在12月3日登陆主机和PC,很多玩家比较关心游戏的配置,这里给大家带来了渡神纪配置要求详细介绍,快来了解下吧. 渡神纪配置要求详细介绍 最低要求(720p/30 f ...

  4. 反恐精英的服务器存在哪个文件夹,反恐精英地图放在哪里 CS1.6地图放置位置详细介绍_游侠网...

    反恐精英地图放在哪里?一些玩家可能不清楚下载了对战地图以后,要放在什么文件夹里才能正常运行.在这里小编就为大家带来CS1.6地图放置位置详细介绍,想知道的朋友千万不要错过了. 地图放置位置详细介绍 1 ...

  5. 快狐未能连接服务器,航海王强者之路好友福袋开启详细介绍_快狐快狐视频app...

    航海王强者之路是一款十分热血的手机游戏,游戏根据著名的动漫海贼王改编,在游戏中,玩家可以体验到很多海贼王的经典剧情,最近游戏官方也为众多玩家准备了很多活动,我们就一起来看看吧,希望你们对这次活动有所了 ...

  6. AUTOSAR OS详细介绍以及配置说明

    前言 AUTOSAR OS扩展了OSEK/VDX标准中的操作系统,所以本文结合OSEK/VDX的标准来介绍AUTOSAR OS,并借助Vector Configurator讲解AUTOSAR OS的配 ...

  7. 计算机毕业设计|外文文献翻译之MVC架构详细介绍

    作者主页:编程指南针 作者简介:Java领域优质创作者.CSDN博客专家 .掘金特邀作者.多年架构师设计经验.腾讯课堂常驻讲师 主要内容:Java项目.毕业设计.简历模板.学习资料.面试题库.技术互助 ...

  8. Hyperledger Fabric是区块链中联盟链架构详细介绍

    区块链开源实现HYPERLEDGER FABRIC架构详解 区块链开源实现HYPERLEDGER FABRIC架构详解 hyperledger fabric是区块链中联盟链的优秀实现,主要代码由IBM ...

  9. CPU架构:CPU架构详细介绍

    1 概述          CPU架构是CPU商给CPU产品定的一个规范,主要目的是为了区分不同类型的CPU.目前市场上的CPU分类主要分有两大阵营,一个是intel.AMD为首的复杂指令集CPU,另 ...

最新文章

  1. ubuntu 安装SSH并设置免密码登录
  2. Luogu T24242 购物券Ⅰ(数据已加强)
  3. java 缓存 单例_单例模式应用:高速缓存和查找对象(转)
  4. Linux - 查看、修改、更新系统时间(自动同步网络时间)
  5. MySQL流浪记(一)—— 初步认识数据库的内涵
  6. linux moveto回收站,linux添加回收站(脚本)
  7. C++开源代码覆盖率工具OpenCppCoverage介绍(Windows)
  8. 剑指offer没有java版吗_剑指Offer(Java版) 持续更新中
  9. Sass--占位符 %placeholder
  10. vue——后台管理系统框架
  11. OCT图像层次分割相关论文泛读
  12. bootstrap之双日历时间段选择控件—daterangepicker
  13. RabbitMq:java.lang.NoClassDefFoundError: org/springframework/util/backoff/BackOff
  14. 【audio】耳机插拔/线控按键识别流程
  15. 7-1 计算平均成绩 (15分)
  16. Android 手机直播聚合
  17. Leetcode 45:跳跃游戏 II(最详细的解法!!!)
  18. Mac: 账户失去了管理员权限,怎么办?!网上流行的和没见过的都在这里。
  19. springboot整合redis,使用redisTemplate实现简易秒杀功能,使用jmeter压力测试秒杀接口
  20. java实验三_java实验三实验报告.docx

热门文章

  1. 日期参数format格式详细用法
  2. 将Integer赋值给int(空指针异常)
  3. 【问题解决】移动端rem适配的时候会出现打开页面时先缩小(放大)后恢复到正常页面的问题
  4. elasticsearch解决控制台中文乱码问题
  5. 解决element 照片墙上传时回显问题
  6. Windows - CMD窗口UTF8编码乱码问题的解决!
  7. Android Studio androidx 包冲突解决方法
  8. CocoaPods更新过程中出现的坑及解决方法
  9. The prefix “mvc“ for element “mvc:annotation-driven“ is not bound 异常
  10. 是否保证Python列表的元素保持按插入顺序排列?