56 lines
2.3 KiB
Matlab
Executable File
56 lines
2.3 KiB
Matlab
Executable File
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 |