AKISPl在哪怎么c语言调用函数

您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
第9章ADAMS用户子程序..docx 18页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
第9章ADAMS用户子程序.
你可能关注的文档:
··········
··········
第9章ADAMS用户子程序本章对ADAMS用户子程序做了简要介绍,着重介绍了CONSUB、GFOSUB和REQSUB的使用方法,以及在用户子程序中两个最常用的功能子程序SYSARY和SYSFNC的使用情况。通过本章的学习,读者将具备基本的开发用户子程序的能力。9.1 ADAMS用户子程序简介一般情况下,ADAMS的大部分功能可以通过函数表达式完成,函数表达式很容易操作,因为不必编译或连接程序,而且ADAMS/Solver还会实时地提供函数表达式。但函数表达式提供的只是有限的编程结构,因此有些复杂的情况,特别是涉及到一些逻辑表达,用函数表达式则很难表达出来。因此在需要采用一些ADAMS没有提供的特殊函数时,可以采用用户子程序。用户子程序更具有通用性,可以利用编程语言来定义模型元素或者特定的输出。用户可以将函数表达式写成子程序的形式并将其与ADAMS/View连接,它具有函数表达式所没有的通用性和灵活性。子程序利用通用程序设计语言(FORTRAN或C)的功能来定义ADAMS/View不能提供的函数,并使之按照需要而量身设计。通过连接用户子程序,不会失去ADAMS/View的任何功效,也不会降低仿真速度。当出现下列情况时,通常会使用到用户子程序:(1)数学函数很难表达。(2)需要定义多用户使用的函数。(3)GSE和UCON声明时,需要用户子程序。(4)需要控制复杂仿真运行时,以及需要作决策逻辑时。使用用户子程序时要小心,因为不正确的用户子程序会很难调试。9.1.1用户子程序的种类根据用户子程序的功能,可以将它们分为三类:(1)Driver Subroutine——驱动子程序(2)Evaluation Subroutines——计算子程序(3)Restart subroutines——重启子程序1.驱动子程序(Driver Subroutine)驱动子程序(Driver Subroutine)--CONSUB--用来驱动ADAMS/Solver。这样ADAMS/Solver在仿真时可更进一步地完成对模型的分析和修改的自动化工作。CONSUB发出request(请求),regulate(调整),和vary simulations(改变仿真)的命令,并通过作出的交互式命令来修改数据,或者进行不同的分析。大多数运行ADAMS/Solver的情况都是交互式,或者是以批处理的形式,一次只涉及到单个的分析。使用CONSUB,可以完成对数据的动态分析,改变前提条件,并重复动态分析。2.计算子程序(Evaluation Subroutines)计算子程序(Evaluation Subroutines)为用户自定义。ADAMS/Solver可写子程序来对某些非标准的或复杂的计算式计算其数值。计算子程序(Evaluation Subroutine)的程序名和功能如表9-1所示。表9-1 计算子程序(Evaluation Subroutine)的程序名和功能子 程 序功 能COUSUB,CONXX,COUXX2定义用户自定义的COUPLERCURSUB计算曲线坐标以及CURVE的导数DIFSUB计算DIFF的微分方程值DMPSUB计算FLEX_BODY的模型的阻尼比FIESUB对FIELD计算力和力矩以及它们的导数GFOSUB对GFORCE计算数值GSE_DERIVGSE_UPDATEGSE_OUTPUTGSE_SAMP用GSE来计算当前状态和输出的偏导数值MFOSUB对MFORCE计算模型值MOTSUB对MOTION计算绞点位移,速度和加速度REQSUB对REQUEST计算输出值SENSUB对SENSOR计算感应值SFOSUB对SFORCE计算力的大小TIRSUB对于轮胎接触,定义三个力和三个力矩UCOSUB对UCON计算约束值和其导数VARSUB对VARIABLE计算其代数值VFOSUB对VFOSUB计算力的分量VTOSUB对VTORUE计算力矩的分量3.重启子程序(Restart Subroutines)重启子程序(Restart subroutines)由一对子程序组成,SAVESUB和RELSUB。它们可以保存和重新加载子程序运行过程中的某些状态变量,这些状态变量是那些相关的用户子程序在重新启动或进行某些变量初始化时所必须的数据。如果在用户子程序之间相互调用时,需要使用它们在子程序内部保存数据。如果没有使用RELSUB和SAVSUB,在保存仿真文件时,内部数据就会丢失。虽然SAVE命令可将模型和仿真数据保存到文件中去,而且可以通过使用RELOAD命令重新调入保存文件,并可以从该保存点重新启动仿真。但SAVE和RELOAD不可能对用户子程序的内部数据进行特殊操作,在RELOAD命令之后,ADAMS/Solver会从仿真流程中断点继续调用用户子程序,
正在加载中,请稍后... 上传我的文档
 上传文档
 下载
 收藏
粉丝量:63
该文档贡献者很忙,什么也没留下。
 下载此文档
基于多体动力学及有限元分析的发动机连杆研究
下载积分:656
内容提示:基于多体动力学及有限元分析的发动机连杆研究
文档格式:PDF|
浏览次数:4|
上传日期: 13:08:33|
文档星级:
全文阅读已结束,如果下载本文需要使用
 656 积分
下载此文档
该用户还上传了这些文档
基于多体动力学及有限元分析的发动机连杆研究
关注微信公众号您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
第9章ADAMS用户子程序详解.docx 18页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
第9章ADAMS用户子程序详解
你可能关注的文档:
··········
··········
第9章ADAMS用户子程序
本章对ADAMS用户子程序做了简要介绍,着重介绍了CONSUB、GFOSUB和REQSUB的使用方法,以及在用户子程序中两个最常用的功能子程序SYSARY和SYSFNC的使用情况。通过本章的学习,读者将具备基本的开发用户子程序的能力。
9.1 ADAMS用户子程序简介
一般情况下,ADAMS的大部分功能可以通过函数表达式完成,函数表达式很容易操作,因为不必编译或连接程序,而且ADAMS/Solver还会实时地提供函数表达式。但函数表达式提供的只是有限的编程结构,因此有些复杂的情况,特别是涉及到一些逻辑表达,用函数表达式则很难表达出来。因此在需要采用一些ADAMS没有提供的特殊函数时,可以采用用户子程序。
用户子程序更具有通用性,可以利用编程语言来定义模型元素或者特定的输出。用户可以将函数表达式写成子程序的形式并将其与ADAMS/View连接,它具有函数表达式所没有的通用性和灵活性。子程序利用通用程序设计语言(FORTRAN或C)的功能来定义ADAMS/View不能提供的函数,并使之按照需要而量身设计。通过连接用户子程序,不会失去ADAMS/View的任何功效,也不会降低仿真速度。
当出现下列情况时,通常会使用到用户子程序:
(1)数学函数很难表达。
(2)需要定义多用户使用的函数。
(3)GSE和UCON声明时,需要用户子程序。
(4)需要控制复杂仿真运行时,以及需要作决策逻辑时。
使用用户子程序时要小心,因为不正确的用户子程序会很难调试。
9.1.1用户子程序的种类
根据用户子程序的功能,可以将它们分为三类:
(1)Driver Subroutine——驱动子程序
(2)Evaluation Subroutines——计算子程序
(3)Restart subroutines——重启子程序
1.驱动子程序(Driver Subroutine)
驱动子程序(Driver Subroutine)--CONSUB--用来驱动ADAMS/Solver。这样ADAMS/Solver在仿真时可更进一步地完成对模型的分析和修改的自动化工作。
CONSUB发出request(请求),regulate(调整),和vary simulations(改变仿真)的命令,并通过作出的交互式命令来修改数据,或者进行不同的分析。大多数运行ADAMS/Solver的情况都是交互式,或者是以批处理的形式,一次只涉及到单个的分析。使用CONSUB,可以完成对数据的动态分析,改变前提条件,并重复动态分析。
2.???算子程序(Evaluation Subroutines)
计算子程序(Evaluation Subroutines)为用户自定义。ADAMS/Solver可写子程序来对某些非标准的或复杂的计算式计算其数值。计算子程序(Evaluation Subroutine)的程序名和功能如表9-1所示。
表9-1 计算子程序(Evaluation Subroutine)的程序名和功能
子 程 序功 能COUSUB,CONXX,COUXX2定义用户自定义的COUPLERCURSUB计算曲线坐标以及CURVE的导数DIFSUB计算DIFF的微分方程值DMPSUB计算FLEX_BODY的模型的阻尼比FIESUB对FIELD计算力和力矩以及它们的导数GFOSUB对GFORCE计算数值GSE_DERIV
GSE_UPDATE
GSE_OUTPUT
GSE_SAMP用GSE来计算当前状态和输出的偏导数值MFOSUB对MFORCE计算模型值MOTSUB对MOTION计算绞点位移,速度和加速度REQSUB对REQUEST计算输出值SENSUB对SENSOR计算感应值SFOSUB对SFORCE计算力的大小TIRSUB对于轮胎接触,定义三个力和三个力矩UCOSUB对UCON计算约束值和其导数VARSUB对VARIABLE计算其代数值VFOSUB对VFOSUB计算力的分量VTOSUB对VTORUE计算力矩的分量
3.重启子程序(Restart Subroutines)
重启子程序(Restart subroutines)由一对子程序组成,SAVESUB和RELSUB。它们可以保存和重新加载子程序运行过程中的某些状态变量,这些状态变量是那些相关的用户子程序在重新启动或进行某些变量初始化时所必须的数据。如果在用户子程序之间相互调用时,需要使用它们在子程序内部保存数据。如果没有使用RELSUB和SAVSUB,在保存仿真文件时,内部数据就会丢失。
虽然SAVE命令可将模型和仿真数据保存到文件中去,而且可以通过使用RELOAD命令重新调入保存文件,并可以从该保存
正在加载中,请稍后...}

我要回帖

更多关于 递归调用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信