ADAMS用户子程序.doc_第1页
ADAMS用户子程序.doc_第2页
ADAMS用户子程序.doc_第3页
ADAMS用户子程序.doc_第4页
ADAMS用户子程序.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ADAMS用户子程序摘要针对小球振动的简单模型,利用ADAMS用户子程序,说明子程序的编写和使用,验证三种模型结果的正确性。1引言一般情况下,ADAMS的大部分功能通过函数表达式完成,函数表达式很容易操作,因为不必编译或连接程序,而且ADAMS/Solve还会实时地提供函数表达式。但函数表达式提供的只是有限的编程结构,因此有些复杂的情况,特别是涉及一些逻辑表达,用函数表达式则很难表达出来。因此在需要采用一些ADAMS没有提供的特殊函数时,采用用户子程序。用户子程序更具有通用性,利用编程语言来定义模型元素或者特定的输出。用户将函数表达式写成子程序的形式并将其与ADAMS/View连接,它具有函数表达式所没有的通用性和灵活性。子程序利用通用程序设计语言(FORTRAN或C)的功能来定义ADAMS/View不能提供的函数,并使之按照需要而量身设计。通过连接用户子程序,不会失去ADAMS/View的任何功效,也不会降低仿真速度。2计算模型质量为的小球在弹簧力和重力作用下做振动,弹簧的刚度为,阻尼为。在ADAMS中建立弹簧从简单到复杂可以有三种方法:1)直接建立模型;2)使用Sforce,在Sforce中写弹簧力的方程;3)使用用户子程序。2.1模型1 新建一个质量为的小球,创立一个弹簧,在重力的作用下振动,如图1所示。图1 模型1示意图图2 弹簧设置2.2模型2根据弹簧力的表达式来定义Sforce,因为VY速度为负,因此,表达式可以表示为:200*DY(MARKER_3,PART_2.cm)-1*VY(PART_2.cm)。2.3模型3使用子程序表达弹簧力,输入参数为2,3,200,1。前两个参数表示弹簧的两个MARKER点ID,第三个参数为弹簧刚度,第四个参数为弹簧阻尼。图3 用户子程序设置ADAMS用户子程序如下:#include slv_c_utils.hadams_c_Sfosub Sfosub;void Sfosub(const struct sAdamsSforce* sforce, double time, int dflag, int iflag, double* value) double dy,vy; double k,c; int ipar2; int errflg; ipar0=sforce-PAR0; ipar1=sforce-PAR1; k=sforce-PAR2; c=sforce-PAR3; c_sysfnc(DY,ipar,2,&dy,&errflg); c_sysfnc(VY,ipar,2,&vy,&errflg); *value=-(k*dy+c*vy);3计算结果通过仿真计算,可以得到计算结果如下。图4 弹簧力图5 小球运动轨迹如图4所示,三种模型所表达的弹簧力完全重合,可以知道,方程表达式与用户子程序可以正确的表达函数。如图5所示,三种模型小球的运动轨迹与规律完全相同。如上所述,三种模型的结果完全相同。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论