Sync from remote server: 2025-10-12 18:56:41

This commit is contained in:
2025-10-12 18:56:59 +02:00
commit 7e8ee264aa
553 changed files with 161447 additions and 0 deletions

56
ATD/CalcoloBiax_TuL.m Executable file
View File

@@ -0,0 +1,56 @@
function [X_TuL,Y_TuL,Z_TuL,asseX_TuL,asseY_TuL,asseZ_TuL,Xstar_TuL,Ystar_TuL,...
Zstar_TuL,asseXstar_TuL,asseYstar_TuL,asseZstar_TuL] = CalcoloBiax_TuL(SpeTuL,...
ii,jj,ax,ay,az,asseX_TuL,asseY_TuL,asseZ_TuL,X_TuL,Y_TuL,Z_TuL,...
asseXstar_TuL,asseYstar_TuL,asseZstar_TuL,Xstar_TuL,Ystar_TuL,Zstar_TuL,...
Nnodi,PosIniEnd,indiceX,indiceZ,rTuL,FileName)
%% Calcolo Orario
% Spostamento lungo l'asse X registrato dal nodo i; uso -1 per adattarlo al sistema di riferimento scelto
Xi = SpeTuL(ii,1) * ay(ii,jj); % ay rappresenta il seno dell'angolo % giusto
Zi = -1 * SpeTuL(ii,1) *(ax(ii,jj)); % ax rappresenta il seno dell'angolo di quell'asse rispetto all'orizzontale
if jj==1
Yi = -1 * Zi * az(ii,jj);
else
Yi = -1 * asseZ_TuL(ii,jj-1) * az(ii,jj);
end
%% Calcolo antiorario (a partire dall'ultimo nodo!)
XiStar = -1*SpeTuL(Nnodi+1-ii,1) * ay(Nnodi+1-ii,jj);
% XiStar = SpeTuL(Nnodi+1-ii,1) * ay(Nnodi+1-ii,jj); % da canc
ZiStar = SpeTuL(Nnodi+1-ii,1) * ax(Nnodi+1-ii,jj);
% ZiStar = -1*SpeTuL(Nnodi+1-ii,1) * ax(Nnodi+1-ii,jj); % da canc
if jj==1
YiStar = ZiStar * az(Nnodi+1-ii,jj);
else
YiStar = asseZstar_TuL(ii,jj-1) * az(Nnodi+1-ii,jj);
end
%% Correzione per nodi con segno sbagliato (montati male)
[Xi,Zi,Yi,XiStar,ZiStar,YiStar] = corrTuL(indiceX,indiceZ,Xi,Zi,Yi,...
XiStar,ZiStar,YiStar,ii,rTuL,FileName);
% Matrici singoli spostamenti
asseX_TuL(ii,jj) = Xi;
asseY_TuL(ii,jj) = Yi;
asseZ_TuL(ii,jj) = Zi;
asseXstar_TuL(ii,jj) = XiStar;
asseYstar_TuL(ii,jj) = YiStar;
asseZstar_TuL(ii,jj) = ZiStar;
if ii==1
X_TuL(ii,jj) = asseX_TuL(ii,jj) + PosIniEnd(1,1);
Y_TuL(ii,jj) = asseY_TuL(ii,jj) + PosIniEnd(1,2);
Z_TuL(ii,jj) = asseZ_TuL(ii,jj) + PosIniEnd(1,3);
Xstar_TuL(ii,jj) = PosIniEnd(2,1) + asseXstar_TuL(ii,jj);
Ystar_TuL(ii,jj) = PosIniEnd(2,2) + asseYstar_TuL(ii,jj);
Zstar_TuL(ii,jj) = PosIniEnd(2,3) + asseZstar_TuL(ii,jj);
else
X_TuL(ii,jj) = X_TuL(ii-1,jj) + asseX_TuL(ii,jj); % Matrici cumulate
Y_TuL(ii,jj) = Y_TuL(ii-1,jj) + asseY_TuL(ii,jj);
Z_TuL(ii,jj) = Z_TuL(ii-1,jj) + asseZ_TuL(ii,jj);
Xstar_TuL(ii,jj) = Xstar_TuL(ii-1,jj) + asseXstar_TuL(ii,jj); % Matrici cumulate antiorarie
Ystar_TuL(ii,jj) = Ystar_TuL(ii-1,jj) + asseYstar_TuL(ii,jj);
Zstar_TuL(ii,jj) = Zstar_TuL(ii-1,jj) + asseZstar_TuL(ii,jj);
end
end