Umsetzung in OpenModelica:
Das Programm:
model
MATRIX_TEST "(c) Quijada 2020"
A
a1(X = 1,
Y = 0, Z =
0);
MATRITZEN.rotation_Z
rotation_Z1;
MATRITZEN.rotation_Y
rotation_Y1;
MATRITZEN.Translation
translation_xyz2(dX
= 1, dY =
2, dZ = 2);
MATRITZEN.Translation
translation_xyz1(dX
= 1, dY =
2, dZ = 2);
MATRITZEN.ANZEIGE
Anzeige_Translation;
MATRITZEN.ANZEIGE
Anzeige_nach_Rotationen_Translation ;
MATRITZEN.ANZEIGE
Anzeige_Punkt_A;
equation
connect(translation_xyz2.y_out[4],
Anzeige_Translation.u_ein[4])
;
connect(translation_xyz2.y_out[3],
Anzeige_Translation.u_ein[3]);
connect(translation_xyz2.y_out[2],
Anzeige_Translation.u_ein[2])
;
connect(translation_xyz2.y_out[1],
Anzeige_Translation.u_ein[1])
;
connect(a1.y_out[1],
translation_xyz2.u_ein[1])
;
connect(a1.y_out[2],
translation_xyz2.u_ein[2])
;
connect(a1.y_out[3],
translation_xyz2.u_ein[3])
;
connect(a1.y_out[4],
translation_xyz2.u_ein[4])
;
connect(a1.y_out[4],
Anzeige_Punkt_A.u_ein[4])
;
connect(a1.y_out[3],
Anzeige_Punkt_A.u_ein[3])
;
connect(a1.y_out[2],
Anzeige_Punkt_A.u_ein[2])
;
connect(a1.y_out[1],
Anzeige_Punkt_A.u_ein[1])
;
connect(translation_xyz1.y_out[4],
Anzeige_nach_Rotationen_Translation.u_ein[4])
;
connect(translation_xyz1.y_out[3],
Anzeige_nach_Rotationen_Translation.u_ein[3])
;
connect(translation_xyz1.y_out[2],
Anzeige_nach_Rotationen_Translation.u_ein[2])
;
connect(translation_xyz1.y_out[1],
Anzeige_nach_Rotationen_Translation.u_ein[1])
;
connect(rotation_Y1.y_out[4],
translation_xyz1.u_ein[4])
;
connect(rotation_Y1.y_out[3],
translation_xyz1.u_ein[3])
;
connect(rotation_Y1.y_out[2],
translation_xyz1.u_ein[2])
;
connect(rotation_Y1.y_out[1],
translation_xyz1.u_ein[1])
;
connect(rotation_X1.y_out[1],
rotation_Y1.u_ein[1])
;
connect(rotation_X1.y_out[2],
rotation_Y1.u_ein[2])
;
connect(rotation_X1.y_out[3],
rotation_Y1.u_ein[3])
;
connect(rotation_X1.y_out[4],
rotation_Y1.u_ein[4])
;
connect(rotation_Z1.y_out[2],
rotation_X1.u_ein[2])
;
connect(rotation_Z1.y_out[3],
rotation_X1.u_ein[3])
;
connect(rotation_Z1.y_out[4],
rotation_X1.u_ein[4])
;
connect(rotation_Z1.y_out[1],
rotation_X1.u_ein[1])
;
connect(a1.y_out[1],
rotation_Z1.u_ein[1])
;
connect(a1.y_out[2],
rotation_Z1.u_ein[2])
;
connect(a1.y_out[3],
rotation_Z1.u_ein[3])
;
connect(a1.y_out[4],
rotation_Z1.u_ein[4])
;
end
MATRIX_TEST;
Punkt A:[2,0,0]
Rotation um die Z-Achse A'=[0,1,0]
Rotation um die X-Achse A''=[0,0,1]
Rotation um die Y-Achse A'''=[1,0,0]
Translation
A''''=[2,2,2]