3-基于MATLAB 和VC++混合编程在电动汽车系统仿真中的应用--苏常军
- 格式:doc
- 大小:79.00 KB
- 文档页数:7
MATLAB在混合动力系统建模与优化中的应用混合动力系统 (Hybrid Electric Vehicle, HEV) 是一种结合了内燃机和电动机的创新动力系统。
它通过电池和电动机提供额外的动力,实现了油耗的降低和排放的减少。
作为一种新兴的动力系统,混合动力系统的建模和优化成为了重要的研究方向。
而MATLAB作为一种广泛应用于工程和科学计算的工具,为混合动力系统的建模和优化提供了强大的支持。
1. 混合动力系统的建模混合动力系统的建模是对整个系统的各个组件进行建模描述,并通过数学方程将其联系在一起。
MATLAB提供了丰富的工具箱和函数,如Simulink和Simscape,可用于建立混合动力系统的各个组件模型。
首先,可以使用Simulink来建立混合动力系统的整体模型。
Simulink是一种基于图形的模型设计工具,可以直观地描述系统的输入、输出和各个组件之间的关系。
通过简单地拖拽和连接各个组件模块,可以实现整体模型的搭建。
例如,可以将汽车的内燃机、电动机、电池和传动系统进行组合,并添加相应的输入和输出信号。
其次,对于混合动力系统的各个组件,可以使用Simscape进行更为详细的建模。
Simscape是MATLAB中的一种物理建模工具箱,可以建立更加精确的物理模型,包括电路、机械、液压和热力等系统。
通过Simscape,可以模拟电动机的电路特性、电池的充放电过程以及传动系统的力学特性等。
2. 混合动力系统的优化混合动力系统的优化是通过调整系统的参数和策略,使其在特定的工况下实现最优的性能。
MATLAB提供了数值优化工具箱,可以方便地进行系统参数和策略的优化。
首先,可以使用MATLAB中的优化算法对混合动力系统的参数进行优化。
通过定义优化目标函数和约束条件,结合MATLAB中丰富的优化算法,可以自动地搜索最优的参数组合。
例如,优化电动机的效率、内燃机的燃烧效率和电池的充放电效率等。
其次,可以利用MATLAB中的优化工具箱对混合动力系统的策略进行优化。
C#MATLAB混合编程在汽车性能仿真平台开发的应用刘杰畅;黄兵锋;罗永革;李峥;盛俏;杨芸芸【摘要】针对汽车性能仿真中对平台仿真精确度及便捷性的需要,论文提出了界面与算法内核并行开发的模式,基于Winform架构采用C#语言开发人机交互界面,以Simulink模型作为仿真内核,采用C#与MATLAB混合编程技术实现界面与仿真内核的调用和数据的传输.并对软件的架构设计、界面设计以及混合编程中所涉及的数据管理与批量数据传输方法进行了论述.通过软件与仿真内核的计算结果对比,证明了混合编程技术在界面调用仿真内核的过程中能够保证数据的一致性和准确性,能够在发挥MATLAB/Simulink强大仿真功能的基础上充分利用Winform友好的人机交互特性,为汽车性能仿真软件开发提供了新思路.【期刊名称】《汽车实用技术》【年(卷),期】2018(044)003【总页数】4页(P88-91)【关键词】汽车性能仿真;C#与MATLAB混合编程;数据管理;批量数据传输【作者】刘杰畅;黄兵锋;罗永革;李峥;盛俏;杨芸芸【作者单位】湖北汽车工业学院汽车工程学院汽车动力传动与电子控制湖北省重点实验室,湖北十堰 442002;东风汽车集团股份有限公司技术中心,湖北武汉430056;;;;【正文语种】中文【中图分类】U467.4前言在汽车V型开发模式中,动力性和经济性计算是整车设计及总成、零部件匹配的重要一环。
目前,针对传统车、纯电动、混合动力及燃料电池等车型的计算理论和仿真平台较为完善,其中使用最广的是ADVISOR和AVL Cruise。
前者可自由配置计算任务,后者可从汽车建模开始,参数配置精细到零部件,软件的仿真自由度更大,但同时降低了便捷性。
企业中,通常需要对大量车型进行动力性经济性指标验证,每次仿真前重新对每一款车型进行细致的参数配置会降低工作效率。
为在满足功能的前提下提高仿真便捷性,Excel成为企业中较为普遍的计算平台[1],但其无法避免人工输入导致容易出错且精度不高。
基于Matlab和Cruise的纯电动汽车动力系统设计与仿真齐焕敏;崔亚辉;谭喜峰;宋旭峰【摘要】针对某型纯电动SUV汽车动力系统参数设计优化问题,对纯电动汽车动力电池、驱动电机、传动方式、传动参数等方面进行了研究,对纯电动汽车动力系统参数匹配进行了设计优化,提出了一种基于汽车行驶工况的设计方法.根据整车的基本参数及目标性能确定驱动电机和动力电池,以电动车动力性指标为约束条件计算传动比的可行域,用Matlab编程计算了整车动力性及50 km/h等速工况下续驶里程,借助Cruise软件建立了整车动力传动系统仿真模型,在传动比可行域内计算了NEDC和FTP 75循环工况电动车传动比与能耗之间关系,进行了区间传动参数匹配优化,仿真结果满足设计目标.研究结果表明:该方法能够合理地对纯电动汽车动力系统进行参数匹配,提高纯电动汽车的动力性和能耗经济性.%Aiming at the optimization of parametric design of a pure electric SUV vehicle power system, the research on the optimization of the parameters of pure electric vehicle power system, such as driving battery, driving motor, transmission mode and transmission parameters, was put forward. Design method based on automobile driving condition. According to the basic parameters of the vehicle and the target per-formance to determine the drive motor and power battery to the electric vehicle power index as a constraint to calculate the feasibility of the transmission ratio, with Matlab programming to calculate the vehicle power and 50 km/h constant speed conditions, the driving force of the vehicle was established by means of cruise software. The relationship between the transmission ratio and the energy consumption of the elec-tric vehicle was calculated in the feasiblearea. The simulation results show that the simulation results are satisfactory. aims. The results in-dicate that this method can reasonably match the parameters of pure electric vehicle dynamic system and improve the power and energy con-sumption of pure electric vehicle.【期刊名称】《机电工程》【年(卷),期】2017(034)011【总页数】4页(P1326-1329)【关键词】纯电动汽车;区间优化;参数匹配;驱动效率;循环工况【作者】齐焕敏;崔亚辉;谭喜峰;宋旭峰【作者单位】西安理工大学机械与精密仪器学院,陕西西安710048;西安理工大学机械与精密仪器学院,陕西西安710048;西安理工大学机械与精密仪器学院,陕西西安710048;西安理工大学机械与精密仪器学院,陕西西安710048【正文语种】中文【中图分类】TM3;U469.72合理的动力系统参数匹配能够最大程度地提高纯电动汽车的动力性和能耗经济性[1]。
MATLAB联合仿真在纯电动汽车整车控制开发中的应用纯电动汽车是未来汽车发展的趋势,其性能可靠性和能量效率等已成为瞩目的研究领域。
在汽车电力系统控制中,开发全车控制算法是至关重要的一步。
利用MATLAB联合仿真技术,可以实现对整车控制的模拟、验证和优化,提高产品研发速度和成功率。
MATLAB是一种科学计算软件,广泛应用于工程、科学研究、控制系统设计和数据分析等领域。
与此同时,Simulink是MATLAB中一种常见的仿真工具,在车辆控制系统开发中也发挥着至关重要的作用。
该工具可以对车辆控制系统进行建模、仿真和分析,从而帮助开发人员确定系统的控制算法和参数,以提高整车性能。
利用MATLAB联合仿真技术,可以模拟车辆控制系统的各个部分,例如电动机、电池、电子控制单元和驱动系统等等。
在此基础上,通过设计不同的控制算法,可实现对整车控制的优化。
同时,这种联合仿真还能帮助分析人员,快速分析车辆工作状态和控制效果,以及调整参数,提高算法效果。
在纯电动汽车开发中,MATLAB联合仿真技术的应用,可以有效加快产品的开发速度和研究效率,同时还能提高工作精度和可靠性。
汽车制造商和设备供应商都可以受益于这种技术,在设计和优化整车控制系统等方面提高效率和性能。
总之,MATLAB联合仿真技术的应用将会在未来纯电动汽车研发中发挥越来越重要的作用。
除了以上提到的优势,MATLAB联合仿真技术还可以支持多个开发人员协同工作,通过不同的仿真项目,不同的开发人员在不同的环节中进行更细致的设计和测试,从而共同推动整个项目的进展和最终成功。
另外,利用MATLAB联合仿真技术,开发人员还可以快速生成仿真数据,快速验证算法和改善性能。
这种过程可以迅速识别任何开发问题,并在计算机上调整其性能。
可以快速确定全车控制部件的效果,以及于实车上的实际效果视为无差。
此外,MATLAB联合仿真技术还可以使开发人员进行多个场景、任务和条件下的算法测试,以确保控制及行驶参量良好的性能。
基于MatlabSimulink的电动汽车仿真模型设计与应用一、本文概述随着全球能源危机和环境污染问题的日益严重,电动汽车作为一种清洁、高效的交通工具,受到了越来越多的关注和推广。
在电动汽车的研发过程中,仿真模型的建立与应用发挥着至关重要的作用。
本文旨在探讨基于Matlab/Simulink的电动汽车仿真模型设计与应用,旨在为电动汽车的设计、优化和控制提供理论支持和实践指导。
本文将对电动汽车仿真模型的重要性进行阐述,指出其在电动汽车研发过程中的地位和作用。
接着,将详细介绍Matlab/Simulink在电动汽车仿真模型设计中的应用,包括其强大的建模功能、灵活的仿真能力以及高效的算法处理能力等。
在此基础上,本文将重点讨论电动汽车仿真模型的设计方法。
包括电动汽车动力系统的建模、控制系统的建模以及整车模型的集成等。
将结合具体案例,对电动汽车仿真模型在实际应用中的效果进行展示和分析,以验证其有效性和可靠性。
本文还将对电动汽车仿真模型的发展趋势进行展望,探讨其在未来电动汽车研发中的潜在应用前景。
通过本文的研究,希望能够为电动汽车仿真模型的设计与应用提供有益的参考和启示,推动电动汽车技术的不断发展和进步。
二、电动汽车仿真模型设计基础电动汽车(EV)仿真模型的设计是一个涉及多个学科领域的复杂过程,其中包括电力电子、控制理论、车辆动力学以及计算机建模等。
在Matlab/Simulink环境中,电动汽车仿真模型的设计基础主要包括对车辆各子系统的理解和建模,以及如何利用Simulink提供的各种模块和工具箱进行模型的构建和仿真。
电动汽车的主要子系统包括电池管理系统(BMS)、电机控制系统(MCS)、车辆控制系统(VCS)以及车辆动力学模型。
这些子系统都需要根据实际的电动汽车设计和性能参数进行精确的建模。
电池管理系统(BMS)建模:电池是电动汽车的能源来源,因此,BMS建模对于电动汽车的整体性能至关重要。
BMS模型需要包括电池的荷电状态(SOC)估计、电池健康状况(SOH)监测、电池热管理以及电池能量管理等功能。
基于MATLAB电动汽车仿真研究电动汽车是应对能源危机和环境污染的一种解决方案。
通过使用电能作为动力源,电动汽车可以减少对传统燃料的依赖,降低温室气体排放,进而减少对环境的损害。
因此,对电动汽车的研究和仿真具有重要意义。
MATLAB是一种广泛应用于工程、科学和数学领域的计算工具软件,它提供了一系列强大的函数和工具箱,可用于建立和分析动力系统模型,包括电动汽车。
在基于MATLAB的电动汽车仿真研究中,首先需要建立一个模型来描述电动汽车的动力系统。
这个模型通常包括电动机、电池、控制系统等组成部分。
电动汽车模型可以根据实际情况进行适当的简化,以便于仿真研究。
在仿真过程中,可以通过控制参数和输入信号的变化来模拟不同驾驶条件下的电动汽车性能。
例如,可以改变电池的充电水平、控制系统的参数等,来研究电动汽车在不同工况下的续航能力、加速性能等。
利用MATLAB的仿真工具,可以对电动汽车的性能进行评估和优化。
通过对模型进行参数敏感性分析,可以找出对电动汽车性能影响最大的因素,并进行相应优化。
此外,还可以利用优化算法,对电动汽车的驱动系统进行多目标优化,以实现最佳的性能和经济性。
在研究中还可以考虑电动汽车与电网的交互作用。
通过建立电动汽车与电网之间的模型,可以研究电动汽车的充电策略以及对电网负载和稳定性的影响。
这对于电动汽车的智能充电管理和电网规划具有重要意义。
此外,基于MATLAB的电动汽车仿真研究还可以涉及到其他方面的内容,如电池管理系统、能量回收等。
利用MATLAB提供的组件和工具箱,可以方便地建立和分析相关模型,辅助电动汽车技术的开发和使用。
总之,基于MATLAB的电动汽车仿真研究具有广泛的应用前景和重要的实际意义。
通过建立适用的模型和采用有效的仿真方法,可以对电动汽车的性能、控制策略和与电网的交互影响等方面进行深入研究,为电动汽车技术的发展和应用提供有力支撑。
基于MATLAB 和VC++混合编程在电动汽车系统仿真中的应用苏常军[1] 孙立清[1] 王庆才[2](北京理工大学电动汽车技术中心[1] 北京 100081)(东风汽车公司技术中心[2] 武汉 430056)摘要:在分析当前电动汽车仿真软件的基础上,指出各种仿真软件的特点,介绍了MATLAB和VC++混合编程的思想,较为全面的列举了MATLAB和VC++混合编程的各种方法。
重点介绍其中一种方法在电动汽车仿真软件开发中的应用。
将MATLAB和VC++的特点结合起来快速开发出完全具有我国自主知识产权的可以独立执行的电动汽车仿真软件具有重大的参考意义。
关键词:MATLAB; Visual C++; 混合编程;电动汽车仿真1.概述在研究和开发电动汽车过程中,选择部件和最佳结构时,需要设计和制造者能够很快地缩小研究范围,找到技术的突破口。
仿真技术在研究和开发混合动力电动汽车中具有关键的作用,它可以缩短设计周期,降低研制费用,提高汽车的性能。
因此世界上许多汽车制造商与研究机构都投入大量的人力和资金来从事该项技术的研究。
国内外许多科研机构开发了用于电动汽车仿真计算的软件和程序【见表 1.电动汽车仿真软件总体情况】。
SIMPLEV® Version 3.1 是一种基于DOS下的电动汽车和混合电动车的仿真程序,它的主要用途是作为汽车性能的一种仿真工具。
它可以对装有传统的、所有电动的、串联混合和并联混合驱动系统的车辆进行仿真。
ADVISOR是由美国能源部运输技术办公室根据工业的需要开发了一套复杂的系统分析工具,它可以对部件和整车的设计中各种问题进行仿真;Vehicle Simulation v2.1f.2是由VTT开发的一套基于微软Windows环境下的电动汽车仿真程序。
它可用于电动汽车或其它由电机驱动的机器的设计中。
这套仿真程序可适用于不同的动力源(电池,电网,内燃机,飞轮电池,电容电池)和能量回收系统。
在国内,许多大学和科研机构也对电动汽车各部件和整车性能进行了仿真研究,主要是通过MATLAB/SIMULINK进行仿真,如华中理工大学的黄缪华开发的仿真软件可以进行电动汽车相关性能的研究。
香港大学开发的用于纯电动汽车的仿真软件EVSIM是一套基于微软Windows环境下的电动汽车仿真程序。
目前,国内还没有较系统和成熟的混合动力汽车仿真软件,因此这也是我国汽车工业应该研究的一个重点内容对于一次开发的仿真软件,由于电动汽车机构和控制的复杂性,使得其能适用的车型很有限,且仿真的精度较低,只能够适用某种或某些特定的车型。
二次开发的仿真软件大多是基于MATLAB/SIMULINK的运行环境,软件不能够独立运行,代码的重复利用率较小,算法和代码不利于保密等缺陷。
这些不利的方面在某种程度上阻碍该类型仿真软件的进一步推广使用。
因此人们开始把目光集中到VC++和MATLAB上来,采用二者相结合的方法来开发一种全新的电动汽车仿真软件。
表1.电动汽车仿真软件的发展总体情况MATLAB是数值分析中较强的应用软件,它的数值计算,数据可视化与简单的编程功能,得到了广大科技工作者的认可。
在MATLAB推崇简洁的同时,其解释性语言执行效率低,局限于MATLAB环境而不利于商业开发,源代码公开不利于算法和数据的保密性等,这些在某种程度上限制了MATLAB的进一步推广应用。
VC++是Microsoft推出的用于面向对象的可视化集成编程环境,从底层软件直到上层直接面向用户的软件都可以用VC++来完成开发。
同时VC++还具有界面友好,代码效率高,排错功能强大等一系列优点。
用VC++开发的软件具有良好的可重用性,可维护性和可扩充性等。
但在实际工程开发中,与MATLAB相比:①VC++在数值处理分析和算法工具等方面不如MATLAB;②VC++在准确方便地绘制数据图形方面也逊于MATLAB很多。
为了克服传统的软件开发方法和MATALB/M语言的缺点,开发出能够对电动汽车性能进行仿真和评价的可独立运行的软件,我们可以遵循面向对象的软件工程开发方法,在Windows操作系统环境下选择Visual C++6.0和MATLAB混合编程来具体实现。
【1】2.MATLAB 和VC++混合编程的几种方式【2】MATLAB和VC++混合编程主要有以下几种方式:1)利用MATLAB引擎。
采用客户机/和服务器的计算模式,通过MATLAB应用程序接口(API)不仅可以调用MATLAB中的C/C++函数,还可以调用工具箱中的函数,应用程序的整体性能好,同时还可以利用MATLAB强大的图形功能,但是种种方式的致命缺点是不能脱离MATLAB的运行环境,给程序的移植带来不便。
因此这种方法在工程开发中很少应用。
2)使用MATLAB自带的MATLAB Compiler。
从MATLAB5.1版本开始,MathWorks公司推出了一系列的MATLAB自带编译器MCC来解决MATLAB与C++的接口问题。
编译器可以将MATLAB的C/C++数学库编译为VC++编译器能识别的代码后嵌入VC++环境.利用MCC编译器,可以有效提高代码的执行效率,而且可以脱离MATLAB运行环境;但待编译的M文件不能涉及MATLAB的内部类,当出现编译文件嵌套时应改写M文件。
3)利用MIDEVA/MATCOM转化法。
MATCOM是由MathWorks公司开发的为MATLAB中的M文件进行高效解释和调试的集成开发环境。
MATCOM编译M文件,先将M文件按照与MATCOM的CPP库的对应关系翻译为CPP源代码,然后用c编译器将CPP文件编译成相应的exe或DLL文件。
用MATCOM方式生成的代码可读性好,支持图形函数,支持M文件编译过程中的文件嵌套情况,可脱离MATLAB环境;其缺陷为待编译的M文件不能涉及MATLAB的内部类。
4)利用C-MEX。
MEX是MATLAB Executable的缩写,即MATLAB的可执行程序。
在Windows环境中,它的扩展名为DLL的动态链接库。
MEX文件是MATLAB调用其他语言编写的程序或算法的接口。
它符合MATLAB的调用格式,可以在M程序中直接调用。
5)在VC中实现C++与MATLAB语言混编利用MATLAB的数学函数库和MATCOM是实现MATLAB与VC++混合编程的有效方式。
这种开发方法对计算机硬件和软件没有太高的要求,只是在VC++中一些环境设置就可以使用了,具有很大的开发优势:①提供了MATLAB中的大量成熟函数;②充分发挥了MATLAB强大的数据可视化功能;③发挥了强大开发工具VC十十的Windows平台优势;④程序可脱离MATLAB运行环境。
【3】下面主要介绍第5种方法:在VC中实现C++和MATLAB语言混合编程3.在VC中实现C++与MATLAB语言混编【4】按照MATCOM的语法,在VC中直接书写与MATLAB很相似的语句,这样不但可以发挥MATCOM强大的数学计算功能,还可以结合可视化编译环境来进行界面开发,可以制作完整的应用计算软件,满足广大用户的要求。
MATCOM的矩阵运算部分是基于一个名为MATRIX的C++数学库,这个库提供了绝大多数的关于矩阵类、矩阵操作函数、数值计算函数、数学函数等的定义,在MATLAB中是以LIB目录下的*.lib以及windows/system/对应名称的DLL文件提供的。
MATCOM的另一大部分是图形部分,它是用一种非常流行的绘图OCX控件TEECHART 来实现的,这种控件对于一般的绘图功能都可以实现,但也存在一定缺陷.在Matcom4.5版本中使用的TEECHART3.0。
绘图函数功能主要在LIB文件和window/system/ago*.dll中定义.【5】下面以计算混合动力汽车以ECE15工况循环下车轮的功率需求为例来说明在VC++环境下利用类MATLAB语句来调用MATLAB函数。
在VC下创建一个新的SDI Test工程,使用缺省设置。
创建完成后需要将Matrix<LIB>库文件(.lib)加入到工程中,这样可编译成最终的可执行文件。
即通过Project/Add to Project/Files来加入库文件d:\matcom45\lib\v4500v.lib。
还要在Project/Settings/C,C++/Preprocessor/Additional include directories中添加MATCOM的matlib.h的路径的d:\matcom45\lib。
TestView.cpp文件中然后可以在某一按钮命令下书写代码如下:#include"stdafx.h"#include"Test.h"#include"TestView.h"#include"TestDoc.h"#include"matlib.h"void CTestView::OnDraw(CDC*pDC){CTestDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);//TODO:add draw code for native data hereinitM(MATCOM_VERSION);//初始化Matrix<LIB>Mm City4Cycle_time,City4Cycle_speed;//定义循环时间和速度。
City4Cycle_time=(BR(0),13,33,40,50,67,82,91,100,117,195,207,220);City4Cycle_speed=(BR(0),17,17,0,0,22,22,0,0,31,31,0,0);//初始化城市四循环工况速度时间历程。
double Para_Bus[6]={14555,0.012,0.7,9.35,0.508,1.15};//分别代表大客车的质量、滚动阻力系数、风阻系数、迎风面积、车轮滚动半径、旋转质量换算系数。
m=Para_Bus[0];f=Para_Bus[1];Cd=Para_Bus[2];A=Para_Bus[3];r=Para_Bus[4];delta=Para_Bus[5];x=colon(0,1,220);//定义仿真精度为1秒y=interp1(time,speed,x);//插值计算各点对应的速度值acc=gradient(y,x);//求各仿真时刻的加速度值Fr=m*g*f+m*delta*acc+Cd*A*power(y,2)/21.15;//求行驶阻力,包括滚动阻力、空气阻力和加速阻力P=times(Fr,y)/1000;//kw//求各点对应的功率值plot((CL(x),P,TM("k")));//绘制功率-时间历程曲线xlabel(CL(TM("时间/s")));ylabel(CL(TM("阻力功率/kW")));set(h1,TM("color"),TM("white"));grid(TM("on"));exitM();}程序执行结果如下:图1:阻力功率时间历程图2:城市四循环工况图在汽车的动力性能仿真试验中,汽车的形式阻力计算模块是一个重要的环节。