piggflying 发表于 2024-6-28 14:58:50

adams编译并导入c语言编写的LN接触力模型

#include "shv_c_utils.h"

void LN_CONTACT_FORCE(int* id, double* time, double* c, double* dc, double* force, double* PAR, int* ifun, double* value) {
    double K = PAR;
    double E = PAR;
    double Ce = PAR;
    double v = PAR;

    double gap = c;
    double gapdot = dc;

    // 计算接触力
    if (gap < 0) {
      force = fmax(0.0, K * pow(-gap, E) * (1.0 - 3.0 * (1.0 - Ce * Ce) * gapdot / (4.0 * v)));
    }
    else {
      force = 0.0;
    }

    *value = force;
}
请问编程代码是否有问题,如何让adams接触时确保正确映射仿真模型中的状态变量(例如 c 和 dc),生成接触力。


piggflying 发表于 2024-6-28 15:01:12

就是K,E,Ce,V的值是直接在接触力设置中依次输入固定值,但是不理解gap和gapdot这两个反馈值是怎么直接在adams中仿真并直接映射到程序中
页: [1]
查看完整版本: adams编译并导入c语言编写的LN接触力模型