您的位置:控制工程论坛网论坛 » 教程与手册 » 集成Matcom环境下的传动系扭振分析系统求解器开发

jshfq

jshfq   |   当前状态:在线

总积分:17995  2024年可用积分:0

注册时间: 2007-08-06

最后登录时间: 2013-11-04

空间 发短消息加为好友

集成Matcom环境下的传动系扭振分析系统求解器开发

jshfq  发表于 2008/3/14 11:45:59      809 查看 0 回复  [上一主题]  [下一主题]

手机阅读









集成Matcom环境下的传动系扭振分析系统求解器开发

 

摘  要:针对传动系扭振动力学微分方程组数值求解过程中包含大量的矩阵计算,提出采用Vc++下集成Matcom环境混合编程开发求解器的方法,并用该求解器对某车传动系扭振的特征值和特征向量进行实例计算,计算结果与测试及与Amesim中的比较表明,所得结论正确可信。同采用Vc++编程方法求解相比,引入matcom,可以提高程序执行效率,缩短软件开发的时间。
关键词:传动系扭振特征值Matcom 


    引言


    由于工作需要,笔者开发了一套用于计算车辆扭振特性的分析软件— — “车辆扭振分析与计算系统”。该软件是一个可视化传动系扭振建模分析计算工具,它从车辆的实际需要出发,考虑传动系的特点,运用面向对象编程技术,能够为传动系的扭转振动计算、刚强度校核、联轴器选型以及整车性能匹配等提供依据。


    车辆传动系实际上是一个复杂的齿轮传动系统,上述车辆传动扭振分析系统在分析轴系的扭转振动时采用集中质量模型,按照扭转振动的特点,分解为发动机模块、变速箱模块(包括定轴轮系和行星排模块)、联轴器模块、耦合器模块等几个传动系中常见分系统,经过简单的拖拉操作即可搭建完整的车辆传动系扭振分析模型,并且自动组装动力学微分方程中常系数项,在计算机中求解其各阶固有频率和主振型,从而完成对车辆传动系统的扭转振动分析。


    作为该软件的求解器部分,其求解稳定性和可信度是最值得关心的内容。众所周知,分析离散系统无阻尼振动问题的模态时,扭转振动动力学微分方程可以统一表述为





    式中 
   
    [J]——转动惯量矩阵,采用集中质量模型时产生的转动惯量系数矩阵一般为正定对角阵


    [K]——刚度系数矩阵,典型的传动系分枝轴系简化模型产生的刚度系数矩阵一般为正定或半正定稀疏三对角阵。


    {0}——广义坐标向量,即为系统中的独立坐标数目,刚度矩阵和转动惯量矩阵都
是与之维数相同的方阵对于时不变线性常系数微分方程的数值解法相关书中已有许多介绍,l这里不作详细的解释。可以想见的是,在该微分方程数值解法过程中涉及大量的矩阵运算,如矩阵四则运算、提取某一列或者行构成新的向量等等,这些操作在Vc++中并没有默认的相应函数,欲实现上述操作必须编写类库实现对操作符的重载,另外考虑刚度矩阵的稀疏性,对内存的管理也需要编写相应的代码,这都加重了编程的负担:实际上,工程人员熟知的Matlab软件可以轻易解决这些问题:Matlab作为一款专用数值计算软件,在矩阵运算上较c等有相当的优势。但是,无论采用Matlab编写的二次开发程序还是Vc++下调用Matlab引擎编写的应用程序都不能脱离Matlab的环境,也就是说使用者必须安装有Matlab软件,这是很不经济的,也根本没有必要。采用集成Matcom协同Vc++混合编程的方法,既能运用Matlab的强大矩阵计算功能解决数值计算中的矩阵问题,又能发布独立的应用程序,使用者不用再在安装有Matlab的平台上使用,可以完全脱离Matlab的束缚。


    l Matcom介绍及其安装方法


    Matcom是Math Works公司出品的Mathtools组件之一,可用于Matlab的M文件的C++自动转化=在数字运算中,采用c代码的应用程序和采用Matlab的m 文件执行速度相比,可以大幅减少仿真时间和内存需求。Matcom可以生成MEX文件,可产生用于Excel和Visual Basic的动态连接库或者应用到独立的C++应用程序。Matcom拥有专用的矩阵算法库(Mattix<LIB>),包含了Matlab中超过60O个函数的常用函数,封装在独立的DLL中,Window应用程序或自开发程序都可以调用,并且产生的可执行文件相当的小,执行效率相当的高,可以应用于线性代数、多项式、信号处理等方面工程计算中,同时具备文件输入输出流,图形可视化功能和强大的后处理功能。


    Matcom中的矩阵类库包含在Matrix<LIB>、Ma—triXL、MatrixVB下,其中MatriXL是对Microsoft Excel提供的矩阵类库,MatrixVB是对Microsoft Visual Basic提供的矩阵类库。在这里不作讨论。下面简单介绍Ma—trix<LIB>整合到Vc++中去的过程,以Microsoft Vi—sual C++6.0为例:


    [第一步] 将编译好的“v4501v.1ib”文件加入到工程中去,通常在Matcom的安装目录下的Lib文件夹里。
    [第二步] 包含“matlib.h”头文件,如“#include<matlib.h>”建议尽量放在调用Matcom的类的头文件下,否则在使用过程中可能会和其它类库发生冲突。
    [第三步] 设定库函数编译目录,如:Project Settings/C,C++ Preprocessor/Additional include directories。在框中加入⋯ \matcom45\lih目录。
    [第四步] 在调用的地方加上初始化类库的语句,如
    int main()
    {
    initM(MATCOM.VERSION);
    //在这里填入你的代码
    exitM();
    return 0;
    }


    经过以上步骤就可以将Matcom集成到Vc++中去,矩阵的运算将变得非常简单。比如定义如下矩阵A ,B:


    Mm A,B;


    要实现矩阵A和B相加只需要“A+B”即可。基本的函数、操作可以查看Matcom的帮助,建议直接查看Matlab的帮助,两者有许多的相同的地方,可以说在矩阵运算等方面,Matcom可以完全替代Matlab的功能。


    2 工程实例应用


    按照以上步骤建立起Matcom环境后,就可以编写自己的求解程序了。下面对参考文献[2]中CA1150PK2L2T型载重货车发动机与传动系统的扭转振动当量系统进行动力学求解,其传动系简图、系统的当量转动惯量、当量刚度值在文献[2]中详细列出,这里限于篇幅,不再转述。作为计算结果、精度的一个对比,以反应Matcom集成环境下矩阵计算的可信度和精度,本文只将文献[2]中3档变速工况下传动系扭转振动分析结果做一个对比。该传动系可在“车辆扭振分析与计算系统”中建模,按照文中简化为24个集中转动惯量单元和23个轴当量弹性元件构成的多分枝当量扭振模型,其中J1~J10为发动机部分,如曲轴、活塞、减震器等简化的10个当量转动惯量。在“车辆扭振分析与计算系统”中建模时,主要采用了发动机模块和轴段扭转单元。所建模型如图1所示。


    另外,笔者为了验证计算结果的正确性,除了同原文章中的计算结果做了比较外,还在机、电、液一体化大型仿真软件Amesim中计算了该车在变速器3档工况下的扭振固有频率,一并列表,如表1。





    3 计算结果对比与误差分析


    从表1对比可以看出,结果同文献[2]符合的较好,但中间第2、3、4阶固有频率在文献[2]中没有列出;另外,可以看出同Arnesim的计算结果相比,还是相当精确的。现将结果对比的结论和误差分析归纳于下



点击看大图


    ① 对于第一阶的固有频率,三个结果都比较接近,在文献[2]中提到,在该车3挡变速传动系单结点扭转振动的固有频率下,节点在贯通轴上。现在将本文计算结果的一阶主振型做图,如图2所示。可以看到节点发生在J17~J19之间,查阅文献[2]可知,结点正是发生在贯通轴上,说明第一阶固有频率和主振型的计算是有效的。


    ② 第二阶和第三阶固有频率在文献[2]中并没有列出,但与Amesim对比可以发现,该固有频率是存在的,并且第二阶和第三阶固有频率应当是相等的,即发生了重频,在这种情况下,对同一频率存在两种振型。


    ③ 为了进一步验证重频发生的可能性,将原有模型作一个修改,即将J14、J19、J20这几个转动惯量删除,构成两支完全对称的分枝轴系,即除去了前后桥传动轴的影响,只直接连接上对称车轮部分总成。这样构成的分支轴系由于其对称性,应当会出现重频现象,在“车辆扭振分析与计算系统”建模后如图3所示。





    同样在Amesim和“车辆扭振分析与计算系统”软件中计算,将计算结果列如表2。





    从表2可以看出,重频仍然发生在第二阶和第三阶固有频率,这主要原因是因为J14、J19、J20同车轮部分J17,J18,J23,J24相比较小,因此对其低阶振型影响
不大,同原来传动系固有频率相比,基本上只少了第6阶的固有频率。因此可以判断,由于该车辆的车轮总体部分在固有频率影响因素里占了主要因素,就出现了上述的重频现象。


    ① 可以从图3看出在文献[2]中考虑的节点数主要计及在J19贯通轴前的主贯通轴(即J17~J19这一段)上的节点数,而前四阶振型节点都发生在J17~J19之间,说明前四阶振型都为单节点,文献[2]可能考虑到固有频率值相差不大,并且节点发生处基本上位于同一块区域,因此并未列出其余单节点的固有频率值。


    ⑤ “车辆扭振分析与计算系统”在计算该传动系固有频率时,选用的具体算法为矩阵迭代法。在系统中有固有频率相等情况下,矩阵迭代法会依次计算出这几个相等的固有频率,并且这些固有频率对应的主坐标是互相正交的。从图3中可以看出来,当第二阶主振型达到最大值时,第三阶主振型基本保持在最小值,即最低点上,舍去误差造成的结果,基本上是一对正交振型,从而进一步验证了该车辆传动轴系存在相等固有频率的结论。


    ⑥ 矩阵迭代法是一种设定初始迭代值,重复迭代以期得到在误差允许范围内的精确值的数值解法,其每次迭代的误差会依次累积到下一结果中去,比较文献[2]中第6节点和Amesim中算出的第9阶固有频率值,可见误差比较大。有经验的用户通过可以设定初始迭代矩阵,以及迭代矩阵法对于半正定矩阵的所设定校正值可以减少这种由于迭代产生的误差,或者选用别的数值计算方法求解,如目前大型软件常用的IAanczos方法。


    4 结论


    综上所述,“车辆扭振分析与计算系统”求解器的开发采用了在Vc++下集成Matcom混合编程的方法,求解了某车传动系扭振动力学微分方程的特征值和特征向量,方法可行,结果准确。实际上还可以推广到求解在外力作用下的响应等其它问题,这只是在程序算法上的不同。另外,应用Matcom的强大绘图函数,还可以方便的调用绘图函数绘制振型图等。应用了集成Matcom技术混合编程开发“车辆扭振分析与计算系统”的求解器,其计算结果正确,能够满足该系统对求解的计算要求。





1楼 0 0 回复