# Kapitel 2_g:
# Geschwindigkeit und Beschleunigung des starren Körpers in Kardanwinkeln
# © 2015 Friedrich U. Mathiak, 
# mathiak@mechanik-info.de
# 
> restart: with(LinearAlgebra): with(PDEtools): _local(gamma);
> alias(alpha=alpha(t),beta=beta(t),gamma=gamma(t));
> declare(alpha,beta,gamma,prime=t);
# Kardandrehmatrix in der (1-2-3)-Reihenfolge
> read "Proc_Calc_02.m":
> n:=Vector([1,0,0]): Proc_Calc_02(n,alpha,0): R1a:=R:
> n:=Vector([0,1,0]): Proc_Calc_02(n, beta,0): R2b:=R:
> n:=Vector([0,0,1]): Proc_Calc_02(n,gamma,0): R3g:=R:
> RK := R1a.R2b.R3g;   # Die Kardandrehmatrix
;
> RKT:=Transpose(RK);  # Die transponierte Kardandrehmatrix
;
# Wir leiten die Kardandrehmatrix RK nach der Zeit t ab:
> RKP:=simplify(map(diff,RK,t));
> alias(s1=s1(t),s2=s2(t),s3=s3(t));
> declare(s1,s2,s3,prime=t);
> S:=Vector([s1,s2,s3]); 
> Z:=Vector([z1,z2,z3]);
# Zustandsgrößen im raumfesten (0)-Koordinatensystem
> Omega_0:=simplify(RKP.RKT); # Antimetrische Matrix der Winkelgeschwindigkeiten
;
> gl1:=Omega_0[3,2]-omega10;gl2:=Omega_0[1,3]-omega20;gl3:=Omega_0[2,1]-omega30;
> gl:=[gl1,gl2,gl3]:
> unb:=[diff(alpha,t),diff(beta,t),diff(gamma,t)];
> (C0,b):= GenerateMatrix(gl,unb):  # Transformationsmatrix C0
;
> print(C0);
> C0_INV:=simplify(MatrixInverse(C0),trig); # Inverse Transformationsmatrix C0
;
> r0:=S + RK.Z;  # Lage des Punktes P
;
> v0:=simplify(map(diff,S,t) + Omega_0.RK.Z);  # Absolute Geschwindigkeit des Punktes P
;
> Omega_0_P:=map(diff,Omega_0,t);   # 1. Ableitung der Matrix der Winkelgeschwindigkeiten
;
> SPP:=simplify(map(diff,S,t,t));
> a0:=simplify(SPP+(Omega_0_P + Omega_0.Omega_0).RK.Z);  #Absolute Beschleunigung des Punktes P
;
# Zustandsgrößen im körperfesten (1)-Koordinatensystem
> Omega_1:=simplify(RKT.RKP);  # Antimetrische Matrix der Winkelgeschwindigkeiten
;
> C1:=simplify(RKT.C0);
> C1_INV:=simplify(MatrixInverse(C1));
> r1:=simplify(RKT.r0);   # Lage des Punktes P
;
> v1:=simplify(RKT.v0);   # Absolute Geschwindigkeit
;
> a1:=simplify(RKT.a0);
# 
