一种基于C#的汽车电气系统方案评估软件的开发方法
2018-03-29苏小立赵公旗
苏小立,赵公旗,刘 桢
(长城汽车股份有限公司技术中心 河北省汽车工程技术研究中心,河北 保定 071000)
随着汽车复杂程度的提高,作为汽车重要有机组成部分的电气系统的成本在整车中的比例也越来越大。为了提高电气系统的性价比,各个主机厂都在极力变革电气系统的设计方法,使之从传统的设计方法转变为先设计多个备选方案,待评估后选择最优方案的优化设计方法。在采取这种设计方法后,因为评估考虑的面广,既要考虑市场的需求满足程度,又要与所涉及到的物理系统设计的多个专业部门沟通、确认信息;然后还要将功能满足程度的数据与经济性数据进行归纳和汇总;最后要进行大量计算,得出各方案的优劣结果,导致方案的评估工作比例骤增。据统计,电气系统设计工程师在架构设计阶段处理该过程的时间占整个设计时间的20%左右,既耗时又费力,这种工作模式制约着设计的效率。本文对基于价值工程理论进行评估的评估过程加以分析,归纳出一套电气系统多方案评估流程,并基于高级语言C#,编制了一套自动评估软件,旨在解决上述问题。
1 汽车电气系统多方案评估流程及现状
目前,要完成上述评估工作,通常要进行5个计算处理过程(图1),每个过程的计算占用设计人员大量的精力和时间。尤其对于“计算处理①”,为了消除评估过程中由人为因素造成的偏差,往往采取多位工程师参与评估,然后将其评估结果一一处理,最后得到“各个功能评估指标权重系数”的方法,其数据处理量非常多;类似地,为了获得“各方案的满足程度”这一参数,也要经过一个同样的过程。这2个过程的计算量最大、耗时最长,制约设计效率最严重。
图1 汽车电气系统评估流程图
2 C#简介
C#由微软(Microsoft)开发和发布,并且经Ecma与ISO核准和认可,是一种完全支持面向对象开发的编程语言;它继承了较为成熟的C语言的优秀功能和C++语言的高效率性能,同时摒弃二者内部的“宏”批量处理和多重继承等复杂特性;另外,它还继承了VB的可视化操作风格,因而具有更好的操作性能,同时,较为智能的输入语法功能使得编程效率进一步提高,目前已经成为.Net开发的首选语言。
1)C#的一些重要的功能:①自动垃圾回收功能(Garbage Collecting Automatically);②丰富的标准库(Abundant Standard Library);③委托和事件管理(Delegates and Events Management);④泛型变量的使用(Generics Variables)等。
2)C#的主要特点:①完全地面向对象[1];②较高的安全性:表现在C#代码通过编译后存储为IL(Intermediate Language)这种中间语言,达到代码与平台、特定的CPU的无关性,通过.Net平台提供的类型安全检查功能防止类型错误,对代码的安全加以保证;③个性化组件的开发:根据解决方案和程序架构的需求可以自定义开发专用组件,该组件的开发语言可以是.Net平台所支持的任何语言,开发后的组件集成在.Net中[2]供团队共享,可实现开发团队的分工协作和效率的提升。
3 电气系统方案评估软件设计
3.1 软件模块及软件架构
方案评估软件的模块及软件架构设计如图2所示。
图2 评估软件架构
3.2 软件与Excel文件的信息交互探索
为了便于对设计信息进行管理,在汽车电气系统设计过程中输出的交流文件、发布文件等技术文件,大多数都采用Excel文件格式。若要实现本软件进行自动评估,就需要实现软件与Excel平台的信息交互。因此,解决2个工作平台之间的信息交互是本次设计的关键环节,现就其中关键的解决方法和技术加以阐述。
3.2.1 添加com组件(Microsoft Office 11.0 Object Library)
在所建立的项目中,需要引用下述组件,方法如图3所示。
图3 .Net平台的部分com组件显示图
3.2.2 在项目中引用Excel命名空间
使用using指令,引用Excel的命名空间,方法如图4所示。
图4 .Net平台实现引用Excel命名空间的代码
3.2.3 建立信息交互通道代码
1)引用Excel对象
Excel.Application excel = new Excel.Application();
2)引用Excel工作簿
excel.Application.Workbooks.Add(true);
Excel.Workbook xBook = excel.Workbooks._Open(FilPath+"功能指标权重数打分+ i+".xls");
Excel.Worksheet xSheet = (Excel.Worksheet)xBook.Sheets[1];
excel.Visible = false;//使Excel可视
其中,“FilPath”是Excel文件的路径,如:E:ScheamEvalue
3)每个单元格的定位代码
excel.Cells[Row, Column]).Text
经过如上操作,建立并完成了2个平台的信息交互通道,实现数据通信。
3.3 程序流程图
根据需要解决问题的分析,形成图5所示的编程思路。
图5 程序流程图
3.4 验证
基于上述流程图,笔者编制了各个模块的程序,并对软件代码进行了整体调试。为了了解软件的运行情况,基于以下案例进行了验证。案例假设有待评方案A、B、C,评估指标为F1、F2、F3,设其成本分别为CA、CB、CC。再由不同专业的工程师(5位)对各方案进行评估打分,受篇幅所限,这里仅仅给出其中一位评估人员的数据,即功能指标权重打分表、各方案的功能满足程度打分表和各个方案的成本数据表,分别如表1、表2、表3所示,从而获得评估数据。
表1 功能指标权重打分表
表2 各方案的功能满足程度打分表
表3 各方案的成本数据表
按照传统的人工计算方法,方案A、B、C的功能价值系数分别为0.333、0.329、0.325。软件计算结果如图6所示。
图6 评估软件界面
从上述验证可知,软件能够顺利地实现与Excel的信息交互,计算结果与人工计算一致。人工计算时间约为10min,软件从启动到计算,再到结果的显示,总用时约为2.5s,同时不用反复翻阅资料,核对数据。这些区别充分证明了该软件不仅能消除人工枯燥的计算工作,还能提高评估效率,且评估工作越多,这种的效果将越明显。
4 结语
本文首先阐述了汽车电气系统设计过程中各个方案评估工作中所遇到的耗时长、工作量大等问题,然后介绍了.Net平台下的C#语言及其特点,探索了将传统的评估工作需求与C#的优点进行结合的可能性,设计了评估软件架构,给出了流程图,探索并给出了软件与Excel之间的信息交互模块的代码,最后对软件进行了验证,结果表明:软件能够准确地计算出评估结果。这不仅能提高整车电气系统评估工作的效率,还较大程度上将工程师从枯燥的计算工作中解放出来。同时,该专用软件设计方法对类似的其他专用分析软件的开发具有一定的指导意义和工程参考价值。
[1] 丁贵广.ASP及ASP.NET编程基础与实例(第2版)[M].北京:机械工业出版社,2004.
[2] 张固.ASP网络应用系统典型模块开发实例解析[M].北京:人民邮电出版社,2004.