Samstag, 4. Januar 2020

Rotatiom und Transformationsmatritzen mit Modelica

Rotation und Translation




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]