Name | Description |
---|---|
CamberAngle | |
RelPositionSensor | Relative position sensor |
This component measues the angles between two frames. If used between the hub and the ground, camber, caster and toe-in can be mesaured-
model CamberAngle extends ModelicaAdditions.MultiBody.Interfaces.Interact2; Real camberAngle; Real casterAngle; Real toeInAngle; equation camberAngle = Modelica.Math.acos(Sa[3, :]*Sb[3, :]); casterAngle = Modelica.Math.acos(Sa[2, :]*Sb[2, :]); toeInAngle = Modelica.Math.acos(Sa[1, :]*Sb[1, :]); ta = zeros(3); tb = zeros(3); fa = zeros(3); fb = zeros(3); end CamberAngle;
model RelPositionSensor "Relative position sensor" SI.Position r_rela[3]; SI.Velocity v_rela[3]; Real a_rela[3]; Real vaux[3]; Modelica.Blocks.Interfaces.OutPort relativePosition(final n=9); ModelicaAdditions.MultiBody.Interfaces.Frame_a frame_a; ModelicaAdditions.MultiBody.Interfaces.Frame_a frame_b; equation /*relative position vectors*/ r_rela = transpose(frame_a.S)*(frame_b.r0 - frame_a.r0); vaux = cross(frame_a.w, r_rela); v_rela = transpose(frame_a.S)*(frame_b.S*frame_b.v) - frame_a.v - vaux; a_rela = transpose(frame_a.S)*(frame_b.S*frame_b.a) - frame_a.a - cross( frame_a.z, r_rela) - cross(frame_a.w, vaux + 2*v_rela); [relativePosition.signal] = [r_rela; v_rela; a_rela]; frame_a.f = zeros(3); frame_b.f = zeros(3); frame_a.t = zeros(3); frame_b.t = zeros(3); end RelPositionSensor;