ADAMS正确调用外部子程序的方法zz
学习ADAMS的过程中,我注意到了运动、力等对控件的约束中可选的子程序(subroutine)选项,想到编程控制的灵活性,便尝试了在ADAMS中对外部程序(extern procedures,主要是C/C++程序,因为我不会fortranL)的调用。整个实践分为以下几个主要步骤:
1.编写进行处理的目标函数
这里我写一个简单的C程序,值得注意的是源文件中应包含mdi_c.h的头文件,里面包含了msc对C提供的外置编程接口函数。代码如下:
#include "mdi_c.h"
#include "math.h"
double MYFUN(double x)
{
return(x*x+x*2+3);
}
void vc_initialize_user()
{
vc_function_add("MYFUN",(FUNCTION)MYFUN,fn_R_R,1,0);
}
2.对目标文件进行编译
新建一个文本文档,通过命令行的方式实现源文件的编译。其具体代码如下:
Aview ru-u i c:\test.dll %文件名可以修改
即可实现aview.exe加载所编译的动态链接库文件运行。
3.对函数的验证
进入ADAMS,进入Tools->Function Builder即可验证方才所写函数以被加载。1中的vc_initialize_user()为用户自定义函数注册函数。
参考文献
[1]于英华等.应用C语言编写ADAMS用户自定义函数的研究.机械设计与制造[J].2006