收藏 分销(赏)

ADAMS用户子程序教学文稿.doc

上传人:天**** 文档编号:3868770 上传时间:2024-07-22 格式:DOC 页数:6 大小:139.50KB 下载积分:6 金币
下载 相关 举报
ADAMS用户子程序教学文稿.doc_第1页
第1页 / 共6页
ADAMS用户子程序教学文稿.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
ADAMS用户子程序 精品文档 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.h" adams_c_Sfosub Sfosub; void Sfosub(const struct sAdamsSforce* sforce, double time, int dflag, int iflag, double* value) { double dy,vy; double k,c; int ipar[2]; int errflg; ipar[0]=sforce->PAR[0]; ipar[1]=sforce->PAR[1]; k=sforce->PAR[2]; c=sforce->PAR[3]; c_sysfnc("DY",ipar,2,&dy,&errflg); c_sysfnc("VY",ipar,2,&vy,&errflg); *value=-(k*dy+c*vy); } 3计算结果 通过仿真计算,可以得到计算结果如下。 图4 弹簧力 图5 小球运动轨迹 如图4所示,三种模型所表达的弹簧力完全重合,可以知道,方程表达式与用户子程序可以正确的表达函数。如图5所示,三种模型小球的运动轨迹与规律完全相同。 如上所述,三种模型的结果完全相同。由此可见,ADAMS自带的模块、函数表达式还有用户子程序都是正确的。但是用户子程序应用更加广泛,适用性更强,可以模拟复杂的情况。 收集于网络,如有侵权请联系管理员删除
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服