1 简介
纯电动汽车和混合动力汽车是新能源汽车产业发展的重要方向。与此同时,泛亚“电动化、智能化、网络化、数字化”战略的提出,使得未来汽车电子电气架构系统的发展变得越来越重要。越复杂。以汽车开放系统架构AUTOSAR为代表的分层化、模块化、平台化技术是汽车电子软件开发的重要趋势。电动汽车三大电子控制系统(电机控制、电池管理、整车控制)中,电机控制是核心之一,其软件架构的研究和设计对汽车电子控制的发展具有重要意义系统。本报告以电动汽车用驱动电机为研究对象,基于AUTOSAR开发架构,探索电机驱动控制系统软件架构的设计与开发,并在此基础上研究电机过调控制算法和旋转变压器软解码技术进行。详细研究。
2、基于AUTOSAR开发电动汽车电机控制软件的意义
电动汽车三大电子控制单元中,电机驱动控制是核心,其性能的好坏直接影响车辆的动力性和操控性。与传统电机调速系统和伺服电机系统相比,汽车驱动电机系统的发展除了高功率密度、宽调速范围等性能要求外,对安全性、可靠性也提出了更高的要求。提高车辆电机控制软件的复用性、增强系统软件的可配置性、提高系统软件的可靠性和稳定性,对于车辆电机控制系统的发展具有重要意义。
3、旋转变压器解码研究
对于电机矢量控制,常常需要获取电机的转子位置角。常用的角度测量方法有磁编码器、光电码盘、电涡流传感器、旋转变压器等。其中,磁性编码器是基于磁阻效应或霍尔效应的轴角度传感器。输出信号是基于转子位置的正弦和余弦函数。其结构简单、坚固,不受潮湿环境的影响,但受到高温和气隙的限制。光电码盘体积小,分辨率高,抗电磁干扰能力强,但转速有限,最高可测量转速在3000转/分钟左右;电涡流传感器灵敏度高、响应速度快、受环境影响较小,但精度有限;旋转变压器可靠性高,对不同环境的适应性强,不受温度、振动等因素影响。因此广泛应用于电梯、雷达、机载仪表等伺服系统和工业自动化领域。
旋转变压器输出一组包含转子位置信息的正弦和余弦信号。需要对该信号进行适当处理以获得相应的转子位置。旋转变压器输出的模拟信号的处理可以通过专用集成电路,即RDC电路,也称为旋转变压器解码芯片转换为数字信号。目前常见的有美国AD公司的AD2S(AD2S1210)系列芯片和日本多摩川公司的AU6802系列芯片,可以产生励磁信号并发送给旋转变压器的励磁绕组,然后对返回的模拟信号进行处理绕组获取转子位置信号,以编码器或SPI的形式输出。另外,另一种方法是利用DSP和外围调理电路产生励磁信号并对旋转变压器输出信号进行调制、滤波等处理,以及角度识别算法以获得转子位置信号。采用DSP进行角度信号处理,无需专用解码芯片,大大降低了开发成本。
常见的角度识别算法有反三角函数法、标定查表法、基于锁相环的角度跟踪观测器法等。其中,反三角函数方法实现简单,但引入了除法和反正切运算,占用资源较多,且无法利用整个输出信号的波形;标定查表法需要利用传感器对旋转变压器信号进行标定,并将旋转变压器转换成输出信号对应的角度值存储起来供查表使用;基于锁相环的角度跟踪观测器方法包括二阶角度观测器和三阶角度观测器。二阶角度观测器方法具有一定的滤波效果。提高抗干扰能力,能够同时估计电机的转子位置和转速值。当速度变化(加速或减速)时,二阶观测器计算出的转子位置角会出现稳态误差。三阶角度观测器具有较好的瞬态检测性能,常用于电机开始加速时的转子位置观测。
4、基于AUTOSAR的电机驱动控制系统开发
本节主要研究AUTOSAR标准的电机控制系统软件的软件分层,包括应用层、基础软件层和实时运行环境。其中,应用层通过MATLAB/Simulink构建电机控制模型并生成软件代码。基础软件层通过调用英飞凌底层驱动软件包实现外围功能模块驱动程序编程。实时操作环境通过自定义接口函数实现不同的软件层。数据交换和服务调用。
传统电机控制,尤其是自动化领域,软件开发层次不明显,软硬件嵌套关系严重耦合。这使得软件在开发过程中一旦遇到问题和缺陷,就很难确定问题的原因。无论是硬件驱动程序还是软件算法设计,都影响了软件开发的效率,增加了开发成本,同时也造成了软件潜在的风险。 AUTOSAR是一种汽车开放架构标准,通过软件分层和模块划分实现软硬件分离。系统软件架构分为应用软件层(APP)、基础软件层(BSW)和实时操作环境层(RTE)。如下所示:
在电机控制系统中,电机控制算法、电机状态检测、安全监控等与电机控制功能相关的功能都可以作为AUTOSAR架构中应用软件层对应的应用。应用软件层将不同的功能模块组合在一起,将软件组件以SWC的形式封装起来,方便设计人员进一步开发。基础软件层对应电机控制相关的东西,比如控制器外设驱动、通信服务、中断服务等。它以模块化的方式封装了控制器硬件功能,有利于其在不同硬件平台之间的移植。应用软件层与基础软件层之间的数据交换和服务调用是通过实时运行环境层实现的。 RTE相当于虚拟功能总线,使开发人员在设计应用软件时无需考虑底层硬件和通信网络,而专注于功能软件的设计。下图所示为本文电动汽车驱动电机ECU软件架构的分层设计。下面将基于该架构对各层软件进行详细设计。
5、应用层软件设计(ASW)
应用层软件是电机控制算法及其安全监控等功能的具体实现。首先需要确定系统的输入输出数据、系统所包含的软件组件SWC及其系统约束等。本系统的ECU是电机控制器,其软件组件可以按照对应功能:电机控制算法SWC、数据计算SWC、安全监控功能SWC等软件组成,如图2.3所示。同时,每一项都需要确定。软件组件的数据输入和输出以及软件组件之间的数据交换和服务调用。在应用软件层APP中,划分软件组件的目的是通过功能模块划分来降低耦合,有利于系统软件的更新和升级。
完成各个软件组件的设计后,需要设计运行实体RE(Runnable Entity)。运行实体是软件组件最小的代码片段,是软件组件功能的具体实现。其中,在数据计算软件组件SWC中,输入数据包括从基础软件层获取的电流采样、转子位置传感器信号等,需要获取相应的电机相电流、转速、转子位置等信号。
电机控制算法SWC包括电机控制策略。本文使用的电机控制算法是磁场定向控制(FOC)。控制框图如图2.4所示。这个框图在功能上分为不同的层次,分别与应用层。 APP的分层架构、基础软件层BSW和实时操作环境层RTE相互对应。可见,分层架构的划分实现了电机控制软件和硬件的分离,使得软件开发人员可以专注于系统软件设计,而无需考虑硬件相关问题。安全监控SWC专为电机过流保护、过温保护、转子位置监控等运行实体而设计。如果以后需要添加和升级功能,只需要添加和修改相应的软件组件和运行实体,从而避免了软件之间交叉耦合带来的复杂性问题。
应用软件层的设计基于Matlab/Simulink环境建模,根据设计的软件组件及其运行实体建立模型,并使用Simulink/ConfigurationParameters-Code Generation进行相应的配置生成软件代码,可以然后在任务编译器中使用。相应的代码文件添加到系统工程中。
6. 基础软件层设计(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位高分辨率捕获和比较单元,主要用于交流驱动控制。特殊操作模式支持使用霍尔传感器或反电动势检测的无刷直流电机。
此外,还支持多相电机的块整流和控制机制。它还支持同时启动多个定时器,这对于包含多个CCU6 模块的设备来说是一个重要功能。
永磁同步电机的控制需要6个PWM波来驱动三相逆变器。定时器CCU6的多通道定时器T12输出模块可用于产生三相六通道中心对称PWM波。另外,为了满足三相电流的同步采样,还需要一个定时器作为同步触发信号Trigger来触发AD采样。这样,CCU6模块总共需要两个定时器T12和T13。
VADC模数转换模块包含8个独立的转换单元,每个转换单元包含8个输入采样通道,AD采样转换时间小于1s。在电机控制中,需要对三相电流进行同步采样,VADC模块的同步转换功能支持最多4个采样通道的同步转换。因此,可以利用VADC转换单元进行同步采样转换,实现电机相电流的同步采样。同时AD采样频率必须与PWM频率一致。使用硬件触发AD采样可以减少软件开销,降低CPU负载率。可以使用上面T13设计中预留的Trigger作为触发信号来触发AD采样。
底层驱动软件是TC297。各外围功能模块的寄存器配置以结构体和功能函数的形式进行封装。从定时器到三相驱动PWM波的产生,一切都可以通过手动写入寄存器来转换相关的PWM输出来实现。寄存器配置以结构体和功能函数的形式封装,供开发者调用。通过调用CCU6模块PWM配置的结构体和函数,并赋值相关参数,如频率、死区时间、互补通道对数等,即可以完成电机控制所需的PWM波形配置。配置AD电流采样时,可以通过VADC模块初始化功能对AD采样的转换单元和采样通道进行初始化,包括与电流采样相关的同步转换通道的设置以及AD采样结果中断的设置。
我们将旋转变压器的解码工作封装成CDD模块,主要处理旋转变压器解码芯片的反馈数据结算。
7. 基本运行环境设计(RTE)
完成应用层软件和基础软件层的设计后,需要在实时运行环境层定义相关的接口函数,以实现应用层软件组件之间、应用层与应用层之间的数据传输和调用。基础软件层。首先,需要明确应用层软件的输入输出数据,并定义相应的数据类型。列出了每个软件组件的输入和输出相关数据。在Matlab/Simulink中构建模型后,生成的程序代码将以结构体的形式格式化输入和输出数据。封装;基础软件层的输入输出数据定义在底层软件的相关结构中。完成各软件层的数据定义后,在中断服务程序中分配相应的输入输出数据,实现应用层与基础软件层之间的数据传输。
其中,应用层软件在Matlab/Simulink中构建各运行实体模型并完成相关仿真测试生成代码。基础软件层使用底层驱动软件驱动来设计并实现各外设驱动的初始化,并包括通信协议和中断服务等进行相应配置;通过在实时运行环境层定义相关接口函数来实现数据通信和服务调用。通过上述方法,完成了基于AUTOSAR电机控制软件的具体设计与实现。最后将各层软件导入Tasking开发环境,在编译器中对所有程序进行编译链接生成可执行文件,将生成的可执行文件添加到调试软件Lauterbach/UDE中,对软件进行调试。分析,并可以根据分析结果进一步优化软件。
审稿编辑:唐子红