首页> 中国专利> 一种基于Simulink的电动汽车电机控制器软件生成方法

一种基于Simulink的电动汽车电机控制器软件生成方法

摘要

本发明实施例提供了一种基于Simulink的电动汽车的电机控制软件生成方法,包括步骤:在Simulink环境下建立电动汽车的电机控制模型的仿真环境,获得经仿真测试后的基于Simulink的控制算法模型及自动生成的软件程序;开发获得启动引导程序、程序链接软件程序、底层软件程序;在编译环境下,对所述基于Simulink的控制算法软件程序、程序链接软件程序、底层软件程序进行联合,并进行自动编译以及链接处理,获得二进制可执行文件;将所述二进制可执行文件烧录至电动汽车的电机控制器中。实施本发明获得的基于Simulink的电机控制软件,具有层次化、模块化、具有可扩展性和可重用性等特点,并且提高了软件的开发效率。

著录项

  • 公开/公告号CN106371813A

    专利类型发明专利

  • 公开/公告日2017-02-01

    原文格式PDF

  • 申请/专利权人 广州汽车集团股份有限公司;

    申请/专利号CN201510437123.6

  • 申请日2015-07-23

  • 分类号G06F9/44(20060101);

  • 代理机构深圳汇智容达专利商标事务所(普通合伙);

  • 代理人潘中毅;熊贤卿

  • 地址 510000 广东省广州市越秀区东风中路448-458号成悦大厦23楼

  • 入库时间 2023-06-19 01:28:23

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-01-14

    专利权的转移 IPC(主分类):G06F 8/35 专利号:ZL2015104371236 登记生效日:20211231 变更事项:专利权人 变更前权利人:广州汽车集团股份有限公司 变更后权利人:广汽埃安新能源汽车有限公司 变更事项:地址 变更前权利人:510000 广东省广州市越秀区东风中路448-458号成悦大厦23楼 变更后权利人:511400 广东省广州市番禺区石楼镇龙瀛路36号

    专利申请权、专利权的转移

  • 2019-11-01

    授权

    授权

  • 2017-03-01

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20150723

    实质审查的生效

  • 2017-02-01

    公开

    公开

说明书

技术领域

本发明属于电动汽车领域,特别是涉及一种基于Simulink的电动汽车电机控制器软件生成方法。

背景技术

随着社会的进步以及科技的发展,环境和能源问题日益突出。故发展和普及电动汽车等新能源汽车的呼声日趋高涨,现在发展出电动汽车(Electric Vehicle,EV),插电式混合动力汽车(Plug-in hybrid electric vehicle,PHEV)和增程式电动汽车( Extended-Range Electric Vehicle,EREV)等多种类型,国内外电动汽车的量产和销售也已开始。电动汽车电机控制器作为关键部件,其开发的流程势必与传统工业用电机控制器有别,而与汽车用电子控制单元开发流程相类似。

在业界,现有的电动汽车电机控制器软件的开发流程包括如下几种方式,其中一种方式是:需要建立基于主控芯片(Microcontroller Unit,MCU)的集成开发环境(Integrated Development Environment,IDE),以C/C++等语言为主要编程语言的项目工程,该工程包含开发底层驱动、应用链接层、应用层软件,其中,所有的软件都使用手写代码的方式进行开发,即算法工程师需要精通在IDE环境下用C语言来开发算法。而另一种方式是:对于应用层软件,经过算法工程师使用Matlab/Simulink(其是MathWorks公司提供的面向多域仿真并和基于模型设计的框模块图环境平台,其支持系统级设计、仿真、自动代码生成以及嵌入式系统的连续测试和验证)等其他图形化建模工具建模仿真验证后,转交给软件工程师将模型转化为C代码,然后移植到项目工程里,这就要求软件工程师能熟练掌握算法模型,并且在软件开发调试阶段经常需要进行反复的修改控制算法和测试。

从上可以看出,现有的这两种开发方式存在如下的不足之处:

电机控制算法仿真验证与实际调试测试之间需要进行代码转换;算法功能模块不易扩展,每次进行扩展都需要大量的修改工作,从而也导致软件管理及维护比较麻烦;同时,算法工程师之间分工界限不够清晰,算法工程师与软件工程师的工作重合度高,需要掌握另一方的知识,例如第二种方式中,就需要软件工程师一直配合算法工程师开展工作,人员利用率不高,从而导致开发效率不高,且增加了开发的难度。

发明内容

本发明所要解决的技术问题在于,提供一种基于Simulink的电动汽车电机控制器软件生成方法,可以使生成的软件具有层次化、模块化、具有可扩展性和可重用性、支持多任务的特点,且提高了软件开发效率。

为解决上述技术问题,本发明实施例提供一种基于Simulink的电动汽车的电机控制软件生成方法,包括如下步骤:

在Simulink环境下建立电动汽车的电机控制模型的仿真环境,对开发设计的电机控制模型进行仿真分析,获得经仿真测试后的基于Simulink的控制算法模型及自动生成的基于Simulink的控制算法软件程序;

开发获得启动引导程序、程序链接软件程序、底层软件程序;

在编译环境下,对所述基于Simulink的控制算法软件程序、程序链接软件程序、底层软件程序进行联合,并进行自动编译以及链接处理,获得二进制可执行文件;

将所述二进制可执行文件烧录至电动汽车的电机控制器中。

其中,所述在Simulink环境下建立电动汽车的电机控制模型的仿真环境,对开发设计的电机控制模型进行仿真分析,获得经仿真测试后的基于Simulink的控制算法软件程序的步骤进一步包括:

在 Simulink下建立电动汽车的电机控制模型的仿真环境,对开发设计的用于电机控制模型的控制算法进行仿真分析;

对所述电机控制模型进行模型在环仿真测试MiL,并生成代码;

对所述代码进行软件在环仿真测试SiL,从而获得基于Simulink的控制算法软件程序代码。

其中,在编译环境下,对所述基于Simulink的控制算法软件程序、程序链接软件程序、底层软件程序进行联合,并进行自动编译处理,获得二进制可执行文件的步骤进一步包括:

基于Simulink的电机控制模型通过控件,调用预先编写的M脚本,对所述基于Simulink的控制算法软件程序自动执行嵌入式代码生成工作,获得应用层代码;

通过所述M脚本执行代码整合工作,将所述应用层代码、应用程序链接软件代码、底层软件代码整合在一起,形成整合后的代码文件;

通过所述M脚本调度批处理文件,对所述整合后的代码文件进行批处理;

通过所述M脚本调用芯片编译器,对所述批处理后的代码文件进行编译和链接处理,生成二进制可烧录文件;

通过所述M脚本进行标定工作,生成可标定文件。

其中,进一步包括:

预先对所述基于Simulink的控制算法软件程序、开发获得启动引导程序、程序链接软件程序以及底层软件程序中的任务调度接口、输入输出信号、声明、更新时机以及全局变量进行统一定义。

其中,所述预先对所述输入输出信号进行统一定义是采用Simulink中的图像定制存储库设计器CSC Desiger设计的基于类的数据类型来实现的。

其中,进一步包括:

对已烧录有二进制可执行文件的电机控制器进行试验测试,根据测试结果修改电机控制模型的参数,并获得更新的基于Simulink的控制算法软件程序。

实施本发明,具有如下的有益效果:

综上,实施本发明,具有如下的有益效果:

由于在Simulink平台下,可以对仿真模型以及不同的程序代码实现一键编译和链接,解决了现有技术中,从算法仿真模型到软件代码需要人为转换的问题,提高了开发效率;

在本发明的实施例中,可以使算法工程师快速独立完成算法修改仿真验证和实际试验验证过程,而不需要软件工程师参与,使开发流程更加科学;

实施本发明实施例,获得电动汽车电机控制器软件,其具有模块化、层次化化设计,易于扩展,可重用性高等特点,故软件管理维护成本低;

实施本发明实施例,由于电机控制软件结构清晰,可以实现了算法开发与软件开发工作的分离,提高了开发效率及项目管理效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的一种基于Simulink的电动汽车电机控制器软件生成方法的一个实施例的主流程示意图;

图2是图1中步骤S10的详细流程图;

图3是图1中步骤S14的详细流程图;

图4是图1生成的基于Simulink的电动汽车电机控制器软件的架构示意图;

图5是图3中的基于Simulink的控制算法软件的模型仿真环境框架图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,是本发明提供的一种种基于Simulink的电动汽车电机控制器软件生成方法的一个实施例的主流程示意图。在该实施例中,该方法包括如下步骤:

步骤S10,在Simulink环境下建立电动汽车的电机控制模型的仿真环境,对开发设计的电机控制模型进行仿真分析,获得经仿真测试后的基于Simulink的控制算法模型及自动生成的基于Simulink的控制算法软件程序;

步骤S12,开发获得启动引导程序(bootloader)、程序链接软件程序、底层软件程序;

步骤S14,在编译环境下,对基于Simulink的控制算法软件程序、程序链接软件程序、底层软件程序进行联合,并进行自动编译以及链接处理,获得二进制可执行文件;

步骤S16,将二进制可执行文件烧录至电动汽车的电机控制器中。对已烧录有二进制可执行文件的电机控制器进行试验测试,根据测试结果修改电机控制模型的参数,并获得更新的基于Simulink的控制算法软件程序。

具体地,如图2所示,该步骤S10具体包括:

步骤S100,在 Simulink下建立电动汽车的电机控制模型的仿真环境,对开发设计的用于电机控制模型的控制算法进行仿真分析;

步骤S102,对电机控制模型进行模型在环仿真测试(Model in the Loop, MiL),并生成代码;

步骤S104,对代码进行软件在环仿真测试(Software in the Loop, SiL),从而获得基于Simulink的控制算法软件程序代码。具体的MiL和SiL的测试环境和测试过程可以根据实际的需要进行搭建和完成,在此不进行详述。

具体地,如图3所示,该步骤S14具体包括:

步骤S140,基于Simulink的电机控制模型通过控件,调用预先编写的M脚本,对基于Simulink的控制算法软件程序自动执行嵌入式代码生成工作,获得应用层代码,在一个实施例中,该应用层代码为用C/C++语言写成的C代码;

步骤S142,通过M脚本执行代码整合工作,将应用层代码、应用程序链接软件代码、底层软件代码整合在一起,形成整合后的代码文件,在一个实施例中,该应用程序链接软件代码、底层软件代码也可以是C代码;

步骤S144,通过M脚本调度批处理文件,对整合后的代码文件进行批处理;

步骤S146,通过M脚本调用芯片编译器,对批处理后的代码文件进行编译和链接处理,生成二进制可烧录文件,其中,在Simulink中可以通过采用诸如Makefile来实现代码编译,Makefile可以一系列的规则来指定,哪些代码文件需要先编译,哪些代码文件需要后编译,哪些代码文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令;同时,可以通过采用诸如Linkfile来实现在多个代码文件之间建立链接;在该步骤结束后,可以形成“.S19”、“.elf”以及“.map”文件;

步骤S148,通过M脚本进行标定处理,生成可标定文件(即“.a21”文件)。

可以理解的是,需要预先对基于Simulink的控制算法软件程序、开发获得启动引导程序、程序链接软件程序以及底层软件程序中的任务调度接口、输入输出信号、声明、更新时机以及全局变量进行统一定义。

其中,预先对输入输出信号进行统一定义是采用Simulink中的图像定制存储库设计器CSC Desiger设计的基于类的数据类型来实现的。

为便于理解,下述将结合图4以及图5对本发明的实现原理进一步进行说明。

如图4所示,示出了基于Simulink的电动汽车电机控制器软件的架构示意图。该基于Simulink的电机控制软件,它包括有启动引导软件、编译环境、底层软件、应用程序链接软件、基于Simulink的控制算法软件。

其中,启动引导软件是系统上电后默认运行的软件,该软件独立于其他部分,主要实现上电环境检测确认是否MCU正常运行和在线刷写程序是否正常等功能;

编译环境是通过脚本调用芯片编译器把所有代码文件进行编译和链接生成二进制可烧录文件;编译环境的搭建集成到Matlab环境下,可以实现一键编译功能。其通过电机控制模型利用一个控件,来调用预行编写好的M脚本来完成代码生成、代码整合、调用编译器完成编译链接等工作,以生成可执行文件及标定文件。其具体过程可以参见前述对图3的描述;

底层软件是直接操作硬件(如芯片的模数转换器采集电机的电流)的,包括外围设备底层驱动、硬件抽象层以及提供通信服务;

应用程序链接层是提供定时任务调度接口,实现控制算法软件和底层软件之间的链接;

基于Simulink的控制算法软件使用Matlab/Simulink/Stateflow进行开发,可以直接生成代码,不需要进行转换移植。

故在本发明提供的方法中,算法工程师可以在Matlab/Simulink下完成算法开发以及仿真过程,然后直接可以在实际控制器硬件上进行实验验证,从而可以提高开发效率。

如图5所示,示出了基于Simulink的控制算法软件的框图。其采用了层次结构,一共分三层:模型仿真环境、控制算法模型、功能模块模型。

其中,模型仿真环境用于可以在Simulink平台下,采用同一套控制策略模型,以进行模型仿真和自动代码生成,并进行实际电机控制,从而可以达到仿真算法与实际算法相一致,用仿真来指导实践。

控制算法模型分为输入输出模型和功能模型。其中,输入输出模型与链接层直接进行交互,使系统的输入输出信号能与功能模型相匹配,同时使自动生成的控制算法软件代码与应用程序链接软件相匹配,从而使软件编译链接不会报错。在一些实施例中,可以增加输入输出信号,则此时需要同时更新输入输出模型和应用程序链接软件。

功能模型按照电机控制所需的功能分为模式管理、电机控制算法、故障检测、故障处理、旋变标定五大模块。

在实际的软件开发流程中,在生成基于Simulink的电机控制软件的初期,需要将电机控制模型中的模块按照不同的任务执行时间划分为多个子模块,以求由模型生成代码时相同的执行时间的任务整合到一起,从而满足多任务需求。这样电机控制模型的所有子模型的设计和维护都可以独立进行,因此可以进行细致的分工,从而可以提高工程师开发效率和项目管理效率。

可以理解的是,在图1的示出的软件架构里所有的部分的开发先后顺序可以调换,前提是所有子部分之间的功能和接口定义需要提前定义清晰。

具体来说,在软件设计之初根据电机控制器设计规范对软件功能定义进行解读,由项目管理、软件工程师、算法工程师、测试工程师等进行方案制定和分工。在一个实施例中,启动引导软件(bootloader)、编译环境、底层软件、应用程序链接软件由软件工程师负责开发,基于Simulink的控制算法软件则由算法工程师负责。

其中应用程序链接软件需要软件工程师和算法工程师定义清晰控制算法所需的任务调度接口,输入输出信号的定义、声明、更新的时机等,在此所有涉及控制算法和应用程序链接软件的信号都是在由模型自动生成嵌入式代码时作为全局变量定义,那么在应用程序链接层只需要声明则可以操作这些信号。信号的定义使用Simulink的图像定制存储库设计器(Graphical custom storage (CCS)designer)设计的基于类的数据类型。

基于模型的控制算法软件的开发可以在设计之初即使用Simulink搭建的仿真环境,对设计的控制算法进行仿真分析,继而进行模型在环仿真测试(MiL),然后生成代码后进行软件在环仿真测试(SiL),待最后所有软件开发完成后联合整体的软件进行编译链接下载到实际控制器进行试验测试。

其中,在仿真过程中,或者经过试验测试后,发现需要修改控制算法,则可以通过直接修改模型来实现,然后在Simulink环境下进行一键编译则可以生成可以执行文件,此过程不再需要软件工程师参与,使软件工程师和算法工程师都可以专注于各自领域的开发工作,大大提高开发效率。

综上,实施本发明,具有如下的有益效果:

由于在Simulink平台下,可以对仿真模型以及不同的程序代码实现一键编译和链接,解决了现有技术中,从算法仿真模型到软件代码需要人为转换的问题,提高了开发效率;

在本发明的实施例中,可以使算法工程师快速独立完成算法修改仿真验证和实际试验验证过程,而不需要软件工程师参与,使开发流程更加科学;

实施本发明实施例,获得电动汽车电机控制器软件,其具有模块化、层次化化设计,易于扩展,可重用性高等特点,故软件管理维护成本低;

实施本发明实施例,由于电机控制软件结构清晰,可以实现了算法开发与软件开发工作的分离,提高了开发效率及项目管理效率。

以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号