- It's required Qt version greater than 5.9.
Assuming that the angular velocity and the radius of the SHM system is constant.
Boundary Conditions
omega = 1; //angular velocity
posx = 3*cos(0); //init x y
posy = 3*sin(0);
posx2 = 3*cos(0);
posy2 = 3*sin(0);
theta = atan2(posy,posx); //init theta
forcex = 0; //init force
forcey = 0;
v_x = 0; //init vx
v_y = omega * 3 * cos(theta);
vx_2 = 0; //init vx2
vy_2 = omega * 3 * cos(theta);
mass =1; //virtual mass
damping=0.5;
spring =3.0;
force_gain = 1.0;
interaction_time = 0.5;
Update Rules
theta = atan2(y,x);
x = r * cos(theta)
y = r * sin(theta)
vx = - omega * r * sin(theta)
vy = omega *r *cos(theta)
ax = - omega *omega *r * cos(theta) //the original acceleration of the masspoint
ay = -omega * omega *r *sin(theta) //the original acceleration of the masspoint
//impedance Control
ax_2 = ax_d + (1 / mass) * ( damping * (v_xd - vx_2 ) + spring* (posx_d - posx2 ) +forcex); // the final accerleration of the masspoint
ay_2 = ay_d + (1 / mass) * ( damping * (v_yd - vy_2 ) + spring* (posy_d - posy2 ) +forcey);
ax_2 = ax_d + (1 / mass) * ( damping * (v_xd - vx_2 ) + spring* (posx_d - posx2 ) +forcex);
ay_2 = ay_d + (1 / mass) * ( damping * (v_yd - vy_2 ) + spring* (posy_d - posy2 ) +forcey);