logo资料库

使用自定义函数进行ADAMS的二次开发.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
Equipment Manufactring Technology NO.1, 2008 " !!!!" 计算机应用 ! ! "!!!!" 使用自定义函数进行 ADAMS 的二次开发 秦 成 ( 北京 7220 信箱, 北京 100072) 摘要: 对通过编制用户自定义函数进行 ADAMS 的二次开发的方法及步骤进行了详细论述。并以实例介绍了上述技术的实现过程。 关键词: ADAMS; 二次开发; 用户自定义函数 中图分类号: TH113; TP39 文章编号: 1672- 545X( 2008) 01- 0074- 03 文献标识码: A ADAMS( Automatic Dynamic Analysis of Mechanical System) 是目前世界上应用最广泛的、最具权威性的机械系统动力学仿 真分析软件, 已 经 被 广 泛 应 用 到 航 空 航 天 、兵 器 、汽 车 、机 械 制 造等各个行业。 ADAMS不 仅 是 一 个 优 秀 的 虚 拟 样 机 建 模 和 分 析 软 件 , 同 时也可作为开发虚拟样机分析应用软件的有效工具。用户可对 ADAMS进行功能定制, 如进行 ADAMS/View 界 面 的 用 户 化 设 计; 可利用语言实现自动建模和仿真功能, 如宏命令的应用; 针 对特殊的应用需求, 通 过 编 制 用 户 自 定 义 函 数 或 子 程 序( Us- er- Written Subroutine) , 可 进 行 ADAMS的 二 次 开 发 , 以 拓 展 ADAMS的功能, 为用户定制具有特定功能的仿真分析软件。 1 用户自定义函数 ADAMS不但提供了方便的用户操作界面, 而且具 有 强 大 的分析求解功能, 本身就包含了种类很丰富的库函数供用户使 用。一般情况下, ADAMS 的大部分功能可以通过调用库函数来 完 成 , 库 函 数 很 容 易 操 作, 不 必 编 译 和 连 接 程 序, 而 且 ADAMS /Solver 还会提供运行时函数。但库函数提供的只是有限的编程 结构, 因此有些复杂的情况, 特别是涉及到逻辑表达时, 用库函 数的现有函数很难表达出来。因此当需要采用一些 ADAMS没 有提供的特殊函数时, 可以采用用户自定义函数。 用 户 自 定 义 函 数 利 用 编 程 语 言 来 定 义 元 素 或 者 特 定 的 输 出, 具有库函数所没有的通用性和灵活性。用户自定义函数通 过程序设计语言 ( Fortran 或 C) 来定义 ADAMS不能提供的函 数, 使之按照用户的需求而量身订作。且通过连接用户自定义 函数, 不会失去 ADAMS的任何功效, 也不会降低仿真速度。 当下列情况时, 通常会使用用户自定义函数: ( 1) 数学函数很难表达。 ( 2) 需 定 义 多 用 户 使 用 的 函 数 或 用 于 和 其 他 程 序 进 行 交 换。 ( 3) 需要控制复杂仿真运行时, 以及需要作决策逻辑时。 在 ADAMS 中 有 两 种 类 型 的 函 数 : 设 计 时 函 数( De- sign- time Function) 和运行时函数( Run- time Function) 。因此自 定 义 函 数 也 分 两 种 类 型 : 设 计 时 自 定 义 函 数( User- written Function) 和运行时自定义函数( User- written Subroutine) 。 1.1 设计时自定义函数 设 计 时 函 数 用 于 优 化 和 敏 感 性 研 究 中 构 造 参 数 化 的 样 机 模型, ADAMS/View 仅在样机的建模设计时 才 计 算 设 计 时 函 数 的值。除优化和设计研究以外, 设计时函数的值在仿真过程中 是不变的。设计时函数包括: 数学函数、位置和方向函数、模型 函数、数组和矩阵函数、字符串函数及数据库函数等。 设计时自定义函数是由 C 或 Fortran 语言编写, 并被编译连 接到 ADAMS/View 中。它具有 ADAMS/View 提供的设计函数一 样的功能, 用户可以用同样的方式使用这些函数。 1.1.1 设计时自定义函数的编写 编写基于 C 语言的设计时用户自定义函数的步骤: ( 1) 拷 贝 并 修 改 ADAMS安 装 目 录 下 ┅Aview/usersubs 中 vc_init_usr.c 模板文件中的 C 源代码或直接编写能够实现特定 功能的 C 程序。 ( 2) 在 VC++6.0 环境下, 编译上述 C 程序, 生成目标文件。 ( 3) 利用动态链接库技术, 建 立 ADAMS/View 与 目 标 函 数 的链接。 ( 4) 在 ADAMS中使用自定义函数。 虽 然 ADAMS只 提 供 了 一 个 用 C 语 言 编 写 用 户 自 定 义 函 数的模板, 但设置 C 函数不同的 返 回 值 和 主 参 数( 模 板 中 提 供 了 各 种 组 合, 详 见 mdi_c.h) , 完 全 可 以 开 发 出 功 能 强 大 的 自 定 义函数来丰富 ADAMS/View 的函数库, 满足用户的特殊要求。 1.2 运行时自定义函数 运行时函数用于定义仿真状态之间的数学关系, 可以影响 样机在仿真过程中的表现。运行时自定义函数在仿真分析时被 求 解 器 动 态 载 入 和 调 用 , ADAMS 仅 在 仿 真 分 析 中 更 新 运 行 时 函数值。设计时函数包括: 位移函数、速度和加速度函数、接触 函数、作用力函数及数学函数等。 虽然 ADAMS软件本身包含了内容丰富的函数库, 可以满 足一般要求下的调用。但是对特定用户而言, 可能需要根据实 际需要定义特殊的系统参数。通过运行时自定义函数, 用户可 以在 虚 拟 样 机 仿 真 分 析 过 程 中 输 入 用 户 自 己 自 定 义 的 数 据 或 输出用户感兴趣的当前步的仿真结果和状态数据; 并进一步丰 富 ADAMS的运行时函数库。 收稿日期: 2007- 10- 24 作者简介: 秦 成( 1973—) , 男, 吉林白城人, 博士, 工程师, 研究方向: 虚拟制造技术。 74
运行时自定义函数以 Fortran 语言为模板编写, 如果需要 一个 C 语言的自定义函数, 必须通过修改 Fortran 文件来创建 它 。 自 定 义 函 数 被 编 译 并 连 接 到 ADAMS , 从 而 创 建 到 ADAMS/Solver 的用户库文件中去, 然后 该 库 与 ADAMS/Solver 一同运行。它具有 ADAMS/Solver 提供的运行函数一样的功能, 在 ADAMS仿真求解时进行调用。 1.2.1 运行时自定义函数的编写 编写基于 Fortran 语言的运行时用户自定义函数的步骤: ( 1) 拷 贝 并 修 改 ADAMS安 装 目 录 下 ┅Solver/usersubs 中 的各种用户自定义函数模板( 如 Gfosub、Vtosub 函数等) 文件中 的源代码或直接编写能够实现特定功能的 Fortran 程序 ( 注意 严格按照模板格式编写) 。 ( 2) 在 Visual Fortran 6.6b 环 境 下, 编 译 上 述 Fortran 程 序 , 生成目标文件。 ( 3) 在 ADAMS 中 进 行 设 置 : Settings/Solver/Solver Exe- cutable ( 如 Executable=External, Solver Library= ┅ \user.dll, Choice=Fortran) ; ( 4) 模型在仿真的时候会从你指定的 dll 文件里调用用 户 自定义函数。 2 实例 对船舶在海上运动状态的模拟一般有两种方法: 一是进行 两船的水 动 力 学 分 析, 这 种 模 拟 十 分 复 杂 和 困 难; 二 是 参 考 船 舶在 实 际 条 件 的 运 动 状 态 数 据 和 船 舶 在 最 恶 劣 情 况 下 的 极 限 数据, 采 用 随 机 运 动 方 式 的 方 式 来 进 行 模 拟, 如 应 用 蒙 特 卡 洛 法产生正态分布的伪随机数来进行模拟。由于 ADAMS/View 提 供的 Rand( ) 函数无法满足 要 求, 故 需 要 编 制 产 生 服 从 正 态 分 布的伪随机数的用户自定义函数。 2.1 编制用户自定义函数 2.1.1 编写 C 源程序 编辑 vc_user_sub.c 文件如下: #include "mdi_c.h" #include "math.h" #include "usePortName.h" #include "utilccallable.h" #define M 8388608 #define T 2045 double Mkrand( double l ) { double x,r,k,y,x1,x0; x0=1;x1=1; int j,i; for( j=0;jor EXIT。” 此 时, 键 入 vc_user_sub.dll 回 车 后 进 入 ADAMS/View 界 面 下, 单击菜单 Setting/Solver/Solver Executable, 从弹出 Solver Set- tings 对话框中已经可以看到 vc_user_sub.dll 自动添加到 Solver Library 中。 在 ADAMS/View 下 , 点 击 菜 单 Tools/Function Builder, 打 开 函 数 构 造 器 对 话 框 , 在 下 拉 列 表 框 选 择 All Function 函 数 , Mkrand 出现在下面的列表框里, 这时就可以像对库函数提 供 的函数一样对它进行使用, 也可以在表达式中直接引用。 2.2 使用用户自定义函数 船 舶 在 海 上 的 运 动 状 态, 在 三 级 海 况 下, 舰 船 最 大 升 沉 距 离为 1.5m, 周期 8s, 其升沉运动 Z 可用下式来表示: z =β1.5sin( 2! 8 t +z 0) Mkrand( a) 式 中: β 为 升 沉 影 响 因 子 ; a 为 Mkrand 函 数 的 主 参 数 , 用 来标识不同的伪随机数; z 0 为 初 始 相 位; 利 用 自 定 义 函 数 可 以 对船舶升沉运动进行模拟, 为进一步的仿真分析打下基础。 75
Equipment Manufactring Technology NO.1, 2008 3 结论 用户自定义函数是进行 ADAMS 二次开发的重要手段。详 细论述了 ADAMS 用户自定义函数的编写方法及步骤; 并 以 舰 船海上升沉运动的模拟为例, 说明了 ADAMS 用户自定 义 函 数 的使用方法。 参考文献: [1] 陈 立 平,等.机 械 系 统 动 力 学 分 析 及 ADAMS 应 用 教 程[M]. 北 京 : 清 [2] [3] [4] [5] [6] 华大学出版社,2005. 李 军,等.ADAMS 实例教程[M]. 北京: 北京理工大学出版社,2002. 贾长治,等.基于 ADAMS 的装备故障仿真及评估研究[J]. 系统仿 真 学报,2001,13( 6) : 781- 784. 王晓东.MSC.ADAMS 二次开发技术应用研究.MSC.Software 中国 用 户论文集,2004: 115- 117. 时军委, 等. 空间对接机构 ADAMS 数字样机建模与仿真[C].MSC. Software 中国用户论文集,2003: 1- 7. 郑建荣.ADAMS 虚拟样机技术入门与提高[M].北京: 机械工业出版 社,2004. Secondary Development of ADAMS Us ing Us er- Written Subroutine QIN Cheng ( Beijing 7220 Mailbox, Beijing 100072, China) Abs tract: The detailed concept of way and step of secondary development of ADAMS using User- Written Subroutine was given in this paper. Then the process was given a example. Key words : ADAMS; Secondary development; User- Written Subroutine !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [上接第 61 页] 长线上分别划出 10 个等分点;( 2) 通过各等分点分别作与弦长 的垂直线, 与 弧 线 相 交, 交 点 即 为 所 要 作 的 特 殊 点;( 3) 利 用 软 件功能读 出 各 个 特 殊 点 到 弦 长 线 的 距 离, 并 标 出, 得 出 图 3 所 示的图纸;( 4) 根据图示尺寸在钢板料上划出两弦长线, 在弦长 线上量出等分点, 通过等分点和图示距离分别找出弧线上的特 殊点, 把各特殊点用平滑圆弧连接, 就得出近似的圆弧线, 其他 尺 寸 线 依 照 图 画 出, 注 意 两 头 留 出 150~200mm 的 压 边 , 完 成 放样后进行切割下料。 3 . 8 4 3 0 3 8 11.18° 5561.5 9 . 8 4 9 . 6 8 4 1 1 3 . 0 3 1 7 . 5 3 1 556.1 R 2 8 5 5 4 . 4 4 . 5 8 7 1 591.1 . 2 4 4 1 . 5 8 3 1 5910.9 . 2 1 2 1 . 4 2 9 2 5 2.4 卷板与围拼 图 3 各块的展开图 在 卷 板 之 前, 先 做 各 圆 弧 样 板, 以 确 保 各 块 圆 弧 板 卷 制 的 准确成形。卷板之后, 割去两边压边, 按要求开出焊接坡口。 上下锥体的直径都大于厂房门口, 可选择在露天场地围拼 焊接, 但场地必须要有 25t 起重机和较大铆焊平台。底座大头 中 径 !7538mm, 小 头 中 径 "7092mm, 先 在 平 台 上 划 出 大 头 外 径, 在圆弧周围焊上定位块, 然后把四块弧板依次围拼, 点焊固 定, 测量检查上下口直径, 确认无误后开始焊接, 按一级焊缝要 求进行焊接, 焊后 100%探 伤, 以 确 保 焊 缝 质 量, 最 后 加 焊 底 面 法兰和加强筋板等, 至此底座的制作完成。 底座工件净质量约 25t, 翻转时最好采用双台吊车抬吊的方 法解决。技术要求中不允许有“十”字拼接焊缝存在, 相邻焊缝 间距不少于 100mm 等, 在制作每一节筒体时, 都做好平面坐标 定位, 在 各 节 之 间 对 接 位 置 都 做 好 标 志, 以 确 保 各 节 对 接 基 准 的统一和焊缝的技术要求。 3 结束语 对 大 型 圆 锥 体, 通 过 电 脑 展 开 放 样, 解 决 了 手 工 计 算 误 差 大, 无法 直 接 划 出 大 圆 弧 实 样 的 难 题; 通 过 对 材 料 进 行 电 脑 排 版, 可以大大提高材料利用率; 该工艺方法的实施, 保证了整个 圆锥柱体的制作精度, 确保了项目工程的质量与安全。 The Riveting and Welding Proces s of Large Cone LIANG Guo- chang ( Guangxi Liuzhou Iron & Steel Group Company, Liuzhou Guangxi 545002, China) Abs tract: Taking the process of the security water tower as an example, the process of precisely making a large cone steel structure, including the major technical problems in the process were introduced. This can provide a reference for the people who work in this field. Key words : Water towers; Cone; Simulation lofting; Welding 76
分享到:
收藏