|
#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[0];
double E = PAR[1];
double Ce = PAR[2];
double v = PAR[3];
double gap = c[0];
double gapdot = dc[0];
// 计算接触力
if (gap < 0) {
force[0] = fmax(0.0, K * pow(-gap, E) * (1.0 - 3.0 * (1.0 - Ce * Ce) * gapdot / (4.0 * v)));
}
else {
force[0] = 0.0;
}
*value = force[0];
}
请问编程代码是否有问题,如何让adams接触时确保正确映射仿真模型中的状态变量(例如 c 和 dc),生成接触力。
|
|