Webots水下仿真重要参数设置
主要设置实体(Solid、Robot等)节点下的immersionProperties,其中包括了液体相关的属性设置;重点关注参数如下:
referenceArea:定义用来计算液体阻力和阻力矩的参考面积;它有两个可选参数,immersed area和xyz-projection;
- 当设置成xyz-projection(适用于部分浸入液体)时,实体沿其坐标系x轴方向所受阻力为(y、z轴类似):
drag_force_x = - c_x * fluid_density * rel_linear_velocity_x² * sign(rel_linear_velocity_x) * A_x
其中:
c_x——x轴方向的阻力系数向量,即dragForceCoefficients的值;
linear_velocity_x——x轴方向的相对流体的速度;
A_x——当x = 0时的浸入液体的面积;
实体相对x轴的阻力矩为(y、z轴类似):
drag_torque_x = - t_x * fluid_density * rel_angular_velocity_x² * sign(rel_angular_velocity_y) * (A_y + A_z)
其中:
t_x——x轴方向的阻力矩系数向量,即dragTorqueCoefficients的值;
angular_velocity_x——x轴方向的角速度;
2.当设置成referenceArea时,我们定义实体的边界(boundingObject)会被用于计算阻力和阻力矩,但是在这种情况下沿着y轴和z轴的阻力系数被忽略掉了:
drag_force = - c_x * fluid_density * linear_velocity² * immersed_area,
drag_torque = - t_x * fluid_density * angular_velocity² * immersed_area
dragForceCoefficients:用于液体施加在实体上的阻力计算;
dragTorqueCoefficients: 用于液体施加在实体上的阻力矩计算;
viscousResistanceForceCoefficient / visciousResistanceTorqueCoefficient:用来计算液体施加在实体上的粘滞阻力和粘滞阻力矩,计算公式如下:
viscous_resistance_force = - immersion_ratio * fluid_viscosity * v_force * rel_linear_velocity
viscous_resistance_torque = - immersion_ratio * fluid_viscosity * v_torque * angular_velocity
其中:
v_force——粘滞阻力系数;
immersion_ratio——浸入比(浸入面积除以整个面积);
PS: The viscous resistance (or linear drag) is appropriate for objects moving through a fluid at relatively low speed where there is no turbulences. By its linear nature it may offer a better numerical stability than the above quadratic drags when the immersed solids are subject to large external forces or torques.