SolidWorks专区  |  新闻  |  文库  |  资料  |  案例  |  有问必答  |  视点  |  进阶  |  渠道  |  博客  |  电子周刊 |  视频 |  百味书屋

SolidWorks在混合电动汽车动力传动系仿真模型研究中的应用

发表时间: 2014/8/15 来源: 互联网
本文介绍了SolidWorks二次开发所需的软件支持,二次开发的方法,以及采用VC++基于ATL对象向导开发方式对SolidWorks进行二次开发实现行星动力传动系建模的过程。
 

    混合电动汽车采用传统的内燃机和电动机作为动力能源,通过混合使用热能和电能两套系统开动汽车。在低速小功率运行时可以关闭发动机,采用电动机驱动;而高速行驶时用内燃机驱动;通过发动机和电动机的协同工作模式,将车辆在制动时产生的能量转化为电能,并积蓄起来成为新的驱动力量,从而在不同工况下都能达到高效率。一般情况下,百公里油耗只相当于传统汽油车型1.0L的油耗。在市区行驶的节油率达到了37.3%-47.5%,在市郊行驶的节油率也达到了19.8%-36%,相比2.0L自动挡的汽油轿车少8-9个油的油耗。

    HEV有串联式、并联式、混联式和复合式4种布置形式。并联式混合动力电动汽车(parallel Hybrid electric vehicle,PHEV)的动力传动系是由一个带行星齿轮的变速装置组成,为了研究PHEV的转速、扭矩、牵引力以及功率分配等情况,需建立动力传动系的仿真模型,便于进行虚拟样机仿真,以得到相关特性参数曲线。

    SolidWorks软件自1995年问世以来,以其优异的性能、易用性和创新性,极大地提高了机械设计工程师的设计效率,可充分发挥工程师使用三维工具进行产品开发的能力。从零件和装配体建模到生成符合国标的工程图,同时用户可以使用支持OLE编程的开发工具,如VB,VC++等对API功能函数进行调用,来进行二次开发,实现自己的设计意图。

1 SolidWorks二次开发所需软件

    SolidWorks二次开发所需的软件为支持OLE编程的VBA,VB,C和VC++当中任何一个软件即可。为了方便用户进行二次开发,SolidWorks提供了OLE应用程序开发接口SolidWorks API,其中包括有数以百计的功能函数,用户可以使用支持OLE编程的开发工具,如VBA,VB,C和VC++等都能对这些功能函数进行调用,为程序员提供了直接访问SolidWorks的能力。

2 SolidWorks二次开发的方法

    2.1 用工程向导文件开发

    SolidWorks本身就是在Windows下开发的,因此使用VC++编译出来的DLL可以作为SolidWorks的插件将程序集成到SolidWorks中。如果以VC++作为开发工具,可采用SolidWorks早期版本的工程向导文件Swizard,对SolidWorks进行二次开发。

    2.2 用3个示例工程文件开发

    SolidWorks2001版本中提供了3个示例工程文件testapp,userdll和comuserdll,可采用以这3个示例工程文件为基础进行二次开发。这些工程已经具备了基本的程序框架,开发人员可以在此基础上开发自己的应用程序。这3个示例工程文件所提供的实例很全面,完全可以满足一般工程需要,只要能弄清楚源程序,开发人员就可以根据自己需要进行相应的添加和修改了。一般而言,开发人员首先需要在SolidWorks的界面上添加自己的菜单项,以此作为激活用户程序的接口,完成与用户的数据交换。

    2.3 用ATL对象向导开发

    可以说用ATL对象向导开发是用方法1开发的升级版。针对SolidWorks2004,SolidWorks2005和SolidWorks2006不同版本有不同的ATL对象向导文件,这些向导文件均可在SolidWorks公司的美国官方网站下载api-sdk安装文件和apihelp帮助文件。

3 SolidWorksAPI提供的接口方式

    SolidWorks API提供了两种接口方式:COM和Dispatch。

    采用COM接口生成的DLL在Windows注册表注册成功后,可通过选择SolidWorks“工具”菜单下的“插件”,将DLL程序载入,下次启动SolidWorks时,DLL插件能够自动加载。通常情况下,只要没有在“插件”菜单项中清除DLL插件,每次启动后都能出现插件菜单。使用下载的向导文件SWizard.swx生成的DLL插件就是这种类型。

    Dispatch接口生成的DLL不需要进行注册表注册,启动SolidWorks后,在“文件”菜单下的“打开”菜单中选择需要加载的DLL程序,即可以将DLL插件嵌入SolidWorks Dispatch接口生成的DLL也可以注册,不过需要程序员自己编写注册程序。SolidWorks自带的示例工程testapp和userdll生成的DLL插件就是这种类型。

 




责任编辑:程玥