欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第9章ADAMS用户子程序-(陈立平)机械系统动力学分析及ADAMS应用bpvn.docx

    • 资源ID:48249436       资源大小:92.05KB        全文页数:55页
    • 资源格式: DOCX        下载积分:30金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要30金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第9章ADAMS用户子程序-(陈立平)机械系统动力学分析及ADAMS应用bpvn.docx

    第9章 ADAMS用户子程序第9章AADAMMS用户户子程序序本章对AADAMMS用户户子程序序做了简简要介绍绍,着重重介绍了了CONNSUBB、GFFOSUUB和RREQSSUB的的使用方方法,以以及在用用户子程程序中两两个最常常用的功功能子程程序SYYSARRY和SSYSFFNC的的使用情情况。通通过本章章的学习习,读者者将具备备基本的的开发用用户子程程序的能能力。9.1 ADAAMS用用户子程程序简介介一般情况况下,AADAMMS的大大部分功功能可以以通过函函数表达达式完成成,函数表表达式很很容易操操作,因因为不必必编译或或连接程程序,而而且ADDAMSS/Soolveer还会会实时地地提供函函数表达达式。但但函数表表达式提提供的只只是有限限的编程程结构,因因此有些些复杂的的情况,特特别是涉涉及到一一些逻辑辑表达,用用函数表表达式则则很难表表达出来来。因此此在需要要采用一一些ADDAMSS没有提提供的特特殊函数数时,可可以采用用用户子子程序。用户子程程序更具具有通用用性,可可以利用用编程语语言来定定义模型型元素或或者特定定的输出出。用户户可以将将函数表表达式写写成子程程序的形形式并将将其与AADAMMS/VVieww连接,它它具有函函数表达达式所没没有的通通用性和和灵活性性。子程程序利用用通用程程序设计计语言(FFORTTRANN或C)的的功能来来定义AADAMMS/VVieww不能提提供的函函数,并并使之按按照需要要而量身身设计。通通过连接接用户子子程序,不不会失去去ADAAMS/Vieew的任任何功效效,也不不会降低低仿真速速度。当出现下下列情况况时,通通常会使使用到用用户子程程序:(1)数数学函数数很难表表达。(2)需需要定义义多用户户使用的的函数。(3)GGSE和和UCOON声明明时,需需要用户户子程序序。(4)需需要控制制复杂仿仿真运行行时,以以及需要要作决策策逻辑时时。使用用户户子程序序时要小小心,因因为不正正确的用用户子程程序会很很难调试试。9.1.1用户户子程序序的种类类根据用户户子程序序的功能能,可以以将它们们分为三三类:(1)DDrivver Subbrouutinne驱动子子程序(2)EEvalluattionn Suubrooutiiness计算算子程序序(3)RResttartt suubrooutiiness重启启子程序序1驱动动子程序序(Drriveer SSubrrouttinee)驱动子程程序(Driiverr Suubrooutiine)CONSUB用来驱动ADAMS/Solver。这样ADAMS/Solver在仿真时可更进一步地完成对模型的分析和修改的自动化工作。CONSSUB发发出reequeest(请求),reegullatee(调整整),和和varry ssimuulattionns(改改变仿真真)的命命令,并并通过作作出的交交互式命命令来修修改数据据,或者者进行不不同的分分析。大大多数运运行ADDAMSS/Soolveer的情情况都是是交互式式,或者者是以批批处理的的形式,一一次只涉涉及到单单个的分分析。使使用COONSUUB,可可以完成成对数据据的动态态分析,改改变前提提条件,并并重复动动态分析析。2计算算子程序序(Evvaluuatiion Subbrouutinnes)计算子程程序(EEvalluattionn Suubrooutiiness)为用用户自定定义。AADAMMS/SSolvver可可写子程程序来对对某些非非标准的的或复杂杂的计算算式计算算其数值值。计算算子程序序(Evvaluuatiion Subbrouutinne)的的程序名名和功能能如表9-1所所示。表9-11 计算算子程序序(Evvaluuatiion Subbrouutinne)的的程序名名和功能能子程序功能COUSSUB,CCONXXX,CCOUXXX2定义用户户自定义义的COOUPLLERCURSSUB计算曲线线坐标以以及CUURVEE的导数数DIFSSUB计算DIIFF的的微分方方程值DMPSSUB计算FLLEX_BODDY的模模型的阻阻尼比FIESSUB对FIEELD计计算力和和力矩以以及它们们的导数数GFOSSUB对GFOORCEE计算数数值GSE_DERRIVGSE_UPDDATEEGSE_OUTTPUTTGSE_SAMMP用GSEE来计算算当前状状态和输输出的偏偏导数值值MFOSSUB对MFOORCEE计算模模型值MOTSSUB对MOTTIONN计算绞绞点位移移,速度度和加速速度REQSSUB对REQQUESST计算算输出值值SENSSUB对SENNSORR计算感感应值SFOSSUB对SFOORCEE计算力力的大小小TIRSSUB对于轮胎胎接触,定定义三个个力和三三个力矩矩UCOSSUB对UCOON计算算约束值值和其导导数VARSSUB对VARRIABBLE计计算其代代数值VFOSSUB对VFOOSUBB计算力力的分量量VTOSSUB对VTOORUEE计算力力矩的分分量3重启启子程序序(Reestaart Subbrouutinnes)重启子程程序(RResttartt suubrooutiiness)由一一对子程程序组成成,SAAVESSUB和和RELLSUBB。它们们可以保保存和重重新加载载子程序序运行过过程中的的某些状状态变量量,这些些状态变变量是那那些相关关的用户户子程序序在重新新启动或或进行某某些变量量初始化化时所必必须的数数据。如如果在用用户子程程序之间间相互调调用时,需需要使用用它们在在子程序序内部保保存数据据。如果果没有使使用REELSUUB和SSAVSSUB,在在保存仿仿真文件件时,内内部数据据就会丢丢失。虽然SAAVE命命令可将将模型和和仿真数数据保存存到文件件中去,而而且可以以通过使使用REELOAAD命令令重新调调入保存存文件,并并可以从从该保存存点重新新启动仿仿真。但但SAVVE和RRELOOAD不不可能对对用户子子程序的的内部数数据进行行特殊操操作,在在RELLOADD命令之之后,AADAMMS/SSolvver会会从仿真真流程中中断点继继续调用用用户子子程序,但但用户子子程序中中某些感感兴趣的的内部变变量却没没有得到到保存。例如,假假设SFFOSUUB子程程序中力力的系数数是一个个内部状状态变量量,如果果打算将将第一次次调用SSFOSSUB子子程序时时所计算算的力的的系数保保存以作作今后使使用,若若用“SAVVE”和“RELLOADD”时会产产生数据据丢失。可可用SAAVSUUB将计计算出来来的系数数保存在在文件中中并用RRELSSUB重重新调入入它们,或或者力仅仅仅用RRELSSUB来来重新计计算系数数。重启启子程序序(Reestaart Subbrouutinne)的的程序名名和功能能如表99-2所所示。表9-22 重启启子程序序(Reestaart Suubrooutiine)的的程序名名和功能能子程序功能RELSSUB加载能使使用户子子程序重重新启动动的信息息SAVSSUB保存以后后能重新新启动用用户子程程序的信信息9.1.2 子子程序的的使用相对于AADAMMS/VVieww来讲,用用户定义义子程序序有两个个任务:输入和和输出。输入就是是在相应应的命令令或状态态,或在在表明当当前系统统状态的的计算结结果中,提提供给AADAMMS/VVieww的相关关信息。输出就是是从ADDAMSS/Viiew中中获得的的相关信信息。1. 声声明浮点点变量为了保证证数值在在子程序序之间或或者ADDAMSS/Soolveer和子子程序之之间能够够正确地地传递,需需要声明明浮点变变量,就就像在AADAMMS/SSolvver中中作的声声明一样样。在UNIIX和WWinddowss机器上上,ADDAMSS/Soolveer使用用双精度度浮点变变量。因因为未声声明的浮浮点变量量通常都都是单精精度的(如REEAL),所以以应当明明确声明明所有的的浮点变变量都是是双精度度的。2. 参参数的使使用ADAMMS/VVieww会从FFUNCCTIOON=UUSERR()的的表达式式中提供供给用户户子程序序参数值值。例如如,如果果你使用用FUNNTIOON=(4.00,5.0,66.0),ADDAMSS/Viiew通通过一个个包含44.0,55.0,66.0的的PARR数组参参数,以以及通过过一个值值为3的的NPAAR参数数传递这这些数值值。通过使用用这些功功能使得得用户子子程序更更加灵活活。例如如,如果果计算需需要maarkeer1001和mmarkker1102的的距离,可可以将这这些标志志符直接接写进用用户子程程序。3. 避避免不连连续在运行表表达式中中,当使使用子程程序来定定义运动动,传感感器,力力,或者者模型中中的状态态平衡方方程时,应应当保证证这些函函数是连连续的。不连续的的函数很很难处理理,因为为大多数数数学理理论都是是假定系系统方程程是连续续的。如如果违反反了该规规则,AADAMMS/SSolvver就就会得出出出人意意料的结结果。当当使用IIF声明明,将分分段函数数连接起起来时,常常常会产产生不连连续函数数。为了了保证函函数是连连续的,在在使用该该类型的的函数时时,一定定要小心心。4. 创创建用户户子程序序为了创建建自己的的用户子子程序,AADAMMS提供供了子程程序模板板并将它它们放在在安装目目录innstaall_dirr/addamss/soolveer/uuserrsubbs中。子程序不不能以CC语言为为模板。如如果需要要一个CC语言的的子程序序,必须须通过修修改FOORTRRAN文文件来创创建它,或或者使用用FORRTRAAN模板板作为向向导,创创建自己己的C语语言格式式子程序序。创建用户户子程序序的步骤骤:(1) 决定需需要创建建什么样样的用户户子程序序。例如如,如果果有GFFORCCE的声声明,可可以创建建GFOOSUBB的用户户子程序序。(2) 决定要要计算什什么,需需要什么么输入参参数。(3) 将合适适的用户户子程序序模板从从安装目目录拷贝贝到当前前目录。模模板目录录中包含含了要使使用的所所有子程程序模板板。(4) 使用文文字编辑辑器来察察看用户户子程序序模板。(5) 按需要要修改用用户子程程序。从从用户子子程序中中调用功功能子程程序,或或者其他他FORRTRAAN或CC语言子子程序。(6) 保存用用户子程程序。因因为可能能对不同同的模型型会使用用相同的的子程序序,所以以最好给给文件起起一个容容易区分分的名字字。5. 调调用用户户子程序序可以通过过使用声声明或者者命令来来调用用用户子程程序。通通过使用用前面定定义的用用户子程程序的名名字来让让ADAAMS/Sollverr知道调调用哪一一个子程程序。也也可以使使用子程程序来定定义一些些模型元元素。能能调用用用户子程程序的声声明或命命令如表表9-3所所示。表9-33 调用用用户子子程序的的声明或或命令要调用的的子程序序使用的声声明/命命令CONSSUBCONTTROLLCOUSSUB,CCOUXXX,CCOUXXX2COUPPLERRCURSSUBCURVVEDIFSSUBDIFFFFIESSUBFIELLDGFOSSUBGFORRCEGSE_DERRIV,GGSE_UPDDATEE,GSE_OUTTPUTT,GSSE_SSAMPPGSEMOTSSUBMOTIIONRELSSUBRELOOADREQSSUBREQUUESTTSAVSSUBSAVEESENSSUBSENSSORSFOSSUBSFORRCETIRSSUBTIREEUCOSSUBUCONNVARSSUBVARIIABLLEVFOSSUBVFORRCEVTOSSUBVTORRQUEE可以从用用户子程程序中调调用功能能子程序序。这些些子程序序的功能能就像是是在用户户的数据据和用户户使用的的用户子子程序的的接口一一样。例例如,在在driiverr usserwrrittten subbrouutinne(驱驱动用户户子程序序)中,可可以使用用conntrool,aacceess功功能子程程序。从从evaaluaatioon uuserrwrrittten subbrouutinnes(计算用用户子程程序)中中,也可可以调用用acccesss,fuuncttionn,以及及某些情情况下ssetuup 函函数。换换句话说说,可以以从上面面任何一一个用户户子程序序中调用用acccesss和fuuncttionn函数,但但用户只能能从drriveer ssubrrouttinee中调用用conntrool函数数,从某某个evvaluuatiion subbrouutinnes中中调用ssetuup函数数。6. 编编译,连连接和运运行库在写完定定制的子子程序后后,必须须要将它它们编译译并连接接到ADDAMSS以创建建到ADAAMS/Sollverr的用户户库文件件中去。然然后,可可以连同同该库与与ADAAMS/Sollverr一同运运行。必须有一一个FOORTRRAN编编译器,因为ADAMS本身不提供编译器,由用户子程序生成动态连接库的详细过程参见12.4.5节后半部分的介绍。92 常用AADAMMS用户户子程序序简介9.2.1 使使用GFFOSUUB用户户子程序序实例为了使读读者对用用户子程程序有一一个直观观印象,本本节首先先给出声声明和调调用GFFOSUUB子程程序的例例子,通通过与GGFORRCE函函数表达达式的对对比,说说明使用用用户子子程序的的必要性性。有关关GFOOSUBB用户子子程序的的更详细细内容,将将在9.2.22小节进进行介绍绍。另外外,在112.44.4节节的结尾尾部分提提供了GGFOSSUB用用户子程程序的具具体工程程应用实实例。现假定有有如下一一个GFFORCCE函数数表达式式的声明明,其函函数表达达式定义义了小球球和斜面面之间的的某种相相互作用用力关系系(此处处相互作作用力不不一定有有确切的的物理含含义,仅仅为了说说明GFFORCCE的定定义过程程),包包括力矢矢量和力力矩矢量量。如下下图所示示,为了了在GFFORCCE中描描述这种种相互作作用力关关系,在在小球球球心上定定义了标标架Maark_I(IID为220011),在在斜面上上定义了了标架MMarkk_R(IID为220033),同同时为了了确定小小球对斜斜面的反反作用力力点的位位置,生生成与标标架Maark_I时刻刻重叠的的标架MMarkk_J(IID为220022),MMarkk_J隶隶属于斜斜面。Part_I:小球Mark_J:ID2002Mark_R:ID2003Mark_I:ID2001Part_J:斜面图9-1 小球与斜面的坐标定义及相对关系于是可以以使用GGFORRCE函函数表达达式的声声明,如如下面所所示(该该GFOORCEE自身的的ID为为1000):GFORRCE/,1000 I=220011, JJFLOOAT=20002, RM=20003,FX = 10.0 * VXX(20001,220033,20003)FY = 10.0 * VYY(20001,220033,20003)FZ = 10.0 * VZZ(20001,220033,20003)TX = 1000.00 * WX(20001,220033,20003)TY = 1000.00 * WY(20001,220033,20003)TZ = 1000.00 * WZ(20001,220033,20003)如果力和和力矩的的表达比比较冗长长,则可可以使用用GFOOSUBB用户子子程序来来代替GGFORRCE声声明。以以及,用用下面语语句调用用已创建好好的GFFOSUUB子程程序,并向其其传递参参数。GFORRCE/,1000 I=220011, JJFLOOAT=20002, RM=20003,FUNCCTIOON=UUSERR(100.0, 1000.00, 220011, 220033, 220033)GFOSSUB用用户子程程序的程程序体创创建如下下:SUBRROUTTINEE GFFOSUUB(IID, TIMME, PARR, NNPARR, DDFLAAG,& IFFLAGG, RRESUULT)= 定定义与声声明 = 外部部变量定定义 INTEEGERR IDDDOUBBLE PREECISSIONN TIIMEDOUBBLE PREECISSIONN PAAR( * )INTEEGERR NPPARLOGIICALL DFFLAGGLOGIICALL IFFLAGGDOUBBLE PREECISSIONN REESULLT(66) ID 标志号号,在内内部程序序中调用用TIMEE 仿真真时间PAR 不定定维的数数组,用用以向程程序传递递参数,本本例中维维数为55,分别别为:PAR(11)110.00PAR(22)1100.0PAR(33)220011PAR(44)220022PAR(55)220033NPARR PAAR数组组的维数数,本例例中NPPAR 55 DFLLAG 积分分标志位位,IFLAAG 初始始标志位位RESUULT 返回回的程序序值,每每一次调调用可以以返回六六个值,本本例中:RESUULT(11)为FFX的值值RESUULT(22)为FFY的值值RESUULT(33)为FFZ的值值RESUULT(44)为TTX的值值RESUULT(55)为TTY的值值RESUULT(66)为TTZ的值值 本本地变量量和参数数定义 DOUBBLE PREECISSIONN FFCT, TCR, VELL(6)INTEEGERR IPPAR(3), IM, JM,RM,NSTATESLOGIICALL ERRRFLLG=可可执行代代码 =FCT = PPAR(1)TCR = PPAR(2)IM = PAAR(33)JM = PAAR(44)RM = PAAR(55)调用SYYSARRY子程程序获得得计算信信息:如如果变量量IFLLAG的的值为ttruee,则将将子程序序初始化化。.将标架架的移动动和转动动速度值值赋给 VELL 数组组IPARR(1) = IMIPARR(2) = JMIPARR(3) = RMCALLL SYYSARRY(VELL, IPAAR, 3, VELL, NNSTAATESS, EERRFFLG) 通通过ERRRMEES 检检查SYYSARRY调用用效果 CALLL ERRRMEES(EERRFFLG, Errrorr caalliing SYSSARYY foor VVEL, IID, STTOP) 返回回GFOORCEE 的计计算结果果 RESUULT(1) = FCTT * VELL(1)RESUULT(2) = FCTT * VELL(2)RESUULT(3) = FCTT * VELL(3)RESUULT(4) = TCRR * VELL(4)RESUULT(5) = TCRR * VELL(5)RESUULT(6) = TCRR * VELL(6)RETUURNEND9.2.2 常常用用户户定义子子程序简简介下面给出出了几个个常用用用户定义义子程序序的简介介。对每每个子程程序,都都提供了了定义、例子、相关说说明等等等。1. CCONSSUB用用户子程程序定义:CCONSSUB驱驱动子程程序用于于驱动AADAMMS/SSolvver。只只能通过过交互式式命令CCONTTROLL激活CCONSSUB,而而别的用用户子程程序则不不能调用用CONNSUBB。调用:相相应的调调用命令令为:CONTTROLL/FFUNCCTIOON=UUSERR(r11,r330) 中的的内容表表示是可可选的。输入参数数构成:CONSSUB用用户子程程序的 输入参参数构成成为:SUBRROUTTINEE COONSUUB(ppar,nnparr)输入参数数说明:nparr整型型变量,其其值为ppar数数组的维维数。par双精精度常数数数组,按按顺序匹匹配COONTRROL命命令中的的USEER括号号内的参参数值。主要功能能:ADAMMS/SSolvver将将CONNTROOL中的的常数以以实数数数组的形形式传递递给FUUNCTTIONN=USSER()。从从CONNSUBB中,会会调用一一些功能能子程序序,如SSYSAARY,SSYSFFNC或或者AKKISPPL等,可可实现以以下主要要功能:(1)MMODIIFY功功能子程程序以交交互式的的方式调调用,用用来改变变ADAAMS/Sollverr的声明明。(2)调调用ANNALYYS功能能子程序序的目的的就是激激活某一一个ADDAMSS/Soolveer的分分析子程程序。(3)调调用DAATOUUT功能能子程序序的目的的就是处处理从AADAMMS/SSolvver仿仿真的输输出。当CONNSUBB停止执执行时,AADAMMS/SSolvver会会提醒你你使用其其他命令令。如果果程序的的控制权权交给了了CONNSUBB,那么么输出的的自动生生成会停停止,如如果想处处理输出出,则要要调用DDATOOUT功功能子程程序。CONSSUB子子程序的的结构:下面给出出CONNSUBB子程序序的结构构,从而而可以看看出该子子程序是是怎样工工作的。SUBRROUTTINEE COONSUUB ( PAAR, NPAAR )= 定定义与声声明 = 外部部变量定定义 INTEEGERR NPPARDOUBBLE PREECISSIONN PAAR( * ) 本本地变量量和参数数定义 =可可执行代代码 = 用户自自己的程程序代码码 RETUURNENDCONSSUB子子程序示示例:下面给出出一个CCONSSUB子子程序应应用的例例子,在在该例中中,首先先对模型型进行了了一次静静力学仿仿真(SStattic Simmulaatioon),然然后改变变Parrt 11 的质质量后,进进行一次次动力学学仿真(DDynaamicc Siimullatiion),并并输出每每次仿真真的结果果。首先,用用交互式式的命令令激活CCONSSUB:CONTTROLL/ FFUNCCTIOON=UUSERR(r11,.,rr30)相应的CCONSSUB 用户子子程序为为:SUBRROUTTINEE COONSUUB(PPAR, NPAAR)= 定义义与声明明 = 外部部变量定定义 INTEEGERR NPPARDOUBBLE PREECISSIONN PAAR( * ) 本本地变量量和参数数定义 CHARRACTTER*10 ATYYPECHARRACTTER*20 TITTLELOGIICALL ERRRFLLG, INIIFLGGCHARRACTTER*80 COMMMNDD, MMESSSGEINTEEGERR STTATUUSDOUBBLE PREECISSIONN DPPZERROPARAAMETTER (DPPZERRO = 0.0)=可可执行代代码 = 首先先进行一一次静力力学分析析 指明分分析类型型和此次次分析的的名称ATYPPE = SSTATTICTITLLE = SSTATTIC_20003INIFFLG = .TRUUE.调用功能能子程序序ANAALYSS进行静静力学分分析CALLL ANNALYYS(AATYPPE, TITTLE, DPZZEROO, DDPZEERO, INIIFLGG,& STTATUUS)如果仿真真中出现现错误,则则调用EERRMMES功功能子程程序返回回错误信信息并终终止仿真真ERRFFLG = SSTATTUS .NEE. 00MESSSGE = Errror calllinng AANALLYS forr STTATIIC_11.CALLL ERRRMEES(EERRFFLG, MESSSGEE, SSTATTUS, STTOP)调用DAATOUUT功能能子程序序输出分分析数据据CALLL DAATOUUT(SSTATTUS)调用MOODIFFY功能能子程序序改变 PARRT/11 的质质量COMMMND = PARRT/11, MMASSS = 1000CALLL MOODIFFY(CCOMMMND, STAATUSS)指明分析析类型和和分析的的名称进进行动力力学分析析ATYPPE = DDYNAAMICCTITLLE = DYNNAMIIC_220033INIFFLG = .TURRE.CALLL ANNALYYS(AATYPPE, TITTLE, DPZZEROO, DDPZEERO, INIIFLGG,& STTATUUS)ERRFFLG = SSTATTUS .NEE. 00MESSSGE = Errror calllinng AANALLYS forr STTATIIC_22.CALLL ERRRMEES(EERRFFLG, MESSSGEE, SSTATTUS, STTOP)CALLL DAATOUUT(SSTATTUS)RETUURNEND2. GGFOSSUB用用户子程程序定义:GGFOSSUB计计算子程程序用于于计算GGFORRCE声声明中的的变量值值。在GGFORRCE的的函数表表达式太太复杂或或计算流流程需要要作特殊殊控制时时可以使使用GFFOSUUB用户户子程序序。调用:相相应的调调用命令令为GFOCCE/iid,II=idd,JFFLOAAT=iid,RRM=iidFUNCCTIOON=UUSERR(r11,r330)( )中的内内容表示示是可选选的。输入参数数构成:GFOSSUB用用户子程程序的 输入参参数构成成为:SUBRROUTTINEE GFFOSUUB(iid, timme, parr, nnparr, ddflaag, ifllag, ressultt)输入参数数说明:dflaag逻辑型型变量;当ADDAMSS/Soolveer调用用GFOOSUBB子程序序求解某某些特定定的偏微微分方程程时其值值为tuure,否否则设为为fallse。Id整数变变量;用用于提供供给GFFORCCE声明明其自身身的标志志符。当当需要GGFOSSUB的的信息时时,ADDAMSS/Soolveer可自自动识别别相应的的函数声声明中的的其他信信息(如paar参数数等)。Iflaag逻辑型型变量;当需要要从GFFOSUUB中获获得函数数相关信信息时,AADAMMS/SSolvver将将其设置置为trrue;当ifflagg值为ffalsse时,则则计算用用户定义义的表达达式的值值。Nparr整型型变量;用于指指明在UUSERR括号中中使用的的实参数数目,也也就是GGFOSSUB子子程序中中数组ppar的的维数。Par双精精度的常常数数组组;按顺顺序存放放USEER括号号中实参参的数值值。Timee双精精度变量量;传递递给ADDAMSS/Soolveer当前前的仿真真时间。子程序的的返回结结果:双双精度数数组,返返回GFFORCCE构成成的六个个值。GFOSSUB子子程序的的结构:SUBRROUTTINEE GFFOSUUB(IID, TIMME, PARR, NNPARR, DDFLAAG,& IFFLAGG, RRESUULT)= 定定义与声声明 = 外部部变量定定义 INTEEGERR IDDDOUBBLE PREECISSIONN TIIMEDOUBBLE PREECISSIONN PAAR( * )INTEEGERR NPPARLOGIICALL DFFLAGGLOGIICALL IFFLAGGDOUBBLE PREECISSIONN REESULLT( 6 ) 本本地变量量和参数数定义 =可可执行代代码 = 用户自自己的程程序代码码 调用SYYSFNNC 和和/或 SYYSARRY为后后续计算算获得必必要信息息,如果果IFLLAG为为真,则则这些实实际上是在设设置函数数相关性性。CALLL SYYSFNNC (.)CALLL ERRRMEES (.)IF (IFLLAG) THHEN 子程序序初始化化 ENDIIF GFFORCCE 的的相关计计算代码码 得到计计算结果果 REESULLT 数数组的值值RESUULT(1) = .RESUULT(2) = .RESUULT(3) = .RESUULT(4) = .RESUULT(5) = .RESUULT(6) = .RETUURNEND有关GFFOSUUB的例例子请参参考9.2.11节和112.44.4节节的结尾尾部分。3. RREQSSUB用用户子程程序定义:RREQSSUB用用户子程程序用于于计算RREQUUESTT的后处处理参数数的输出出值,但但并不是是所有的的REQQUESST都要要求有与与之对应应的REEQSUUB子程程序,只只有使用用非标准准的REEQUEEST输输出时才才会使用用到。调用:相相应的调调用命令令为REQUUESTT/,iid FUNNCTIION USEER( 1,. , 30) TIITLEE cc:1,c:8,COOMMEENT 中的内内容表示示是可选选的。输入参数数构成:REQSSUB用用户子程程序的 输入参参数构成成为:SSUBRROUTTINEE REEQSUUB (id, tiime, paar, npaar, ifllag, reesullt)。输入参数数说明:Id整数变变量;用用于提供供给REEQRCCE声明明其自身身的标志志符。当当需要RREQSSUB的的信息时时,ADDAMSS/Soolveer可自自动识别别相应的的函数声声明中的的其他信信息。Iflaag逻辑型型变量;当需要要从REEQSUUB中获获得函数数相关信信息时,AADAMMS/SSolvver将将其设置置为trrue;当ifflagg值为ffalsse时,则则计算用用户定义义的表达达式的值值。Nparr整型型变量;用于指指明在UUSERR括号中中使用的的实参数数目,也也就是RREQSSUB子子程序中中数组ppar的的维数。Par双精精度的常常数数组组;按顺顺序存放放USEER括号号中实参参的数值值。Timee双精精度变量量;传递递给ADDAMSS/Soolveer当前前的仿真真时间。REQSSUB子子程序的的结构:下面是RREQSSUB子子程序的的结构:SUBRROUTTINEE REEQSUUB ( IDD, TTIMEE, PPAR, NPPAR, IFFLAGG,& REESULLT ) =

    注意事项

    本文(第9章ADAMS用户子程序-(陈立平)机械系统动力学分析及ADAMS应用bpvn.docx)为本站会员(you****now)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开