50 lines
1.8 KiB
Matlab
Executable File
50 lines
1.8 KiB
Matlab
Executable File
function [X_RL,Y_RL,Z_RL,asseX_RL,asseY_RL,asseZ_RL] = CalcoloBiax_RL(SpeRL,...
|
|
ii,jj,ax,ay,asseX_RL,asseY_RL,asseZ_RL,X_RL,Y_RL,Z_RL,elab_option)
|
|
|
|
%% RAD-Array parete di DESTRA
|
|
if elab_option == 1
|
|
% Spostamento lungo l'asse X registrato dal nodo i
|
|
Xi = -1*SpeRL(ii,1) * ay(ii,jj); % -1 per adattare il verso (da destra verso sx!)
|
|
% calcolo il coseno dell'angolo di inclinazione
|
|
cosBetaX = (1 - ay(ii,jj).^2).^0.5;
|
|
% Spostamento lungo l'asse Z registrato dal nodo i
|
|
Zi = -1*SpeRL(ii)*cosBetaX; % -1 per adattare il segno di CosBeta. Az infatti sarebbe negativo
|
|
% Spostamento lungo l'asse Y registrato dal nodo i
|
|
if jj==1
|
|
Yi = -1 * Zi * ax(ii,jj);
|
|
else
|
|
Yi = -1 * asseZ_RL(ii,jj-1) * ax(ii,jj);
|
|
end
|
|
%% RAD-Array parete di SINISTRA
|
|
elseif elab_option == -1
|
|
% Spostamento lungo l'asse X registrato dal nodo i
|
|
Xi = SpeRL(ii,1) * ay(ii,jj);
|
|
% calcolo il coseno dell'angolo di inclinazione
|
|
cosBetaX = (1 - ay(ii,jj).^2).^0.5;
|
|
% Spostamento lungo l'asse Z registrato dal nodo i
|
|
Zi = -1*SpeRL(ii)*cosBetaX; % -1 per adattare il segno di CosBeta. Az infatti sarebbe negativo
|
|
% Spostamento lungo l'asse Y registrato dal nodo i
|
|
if jj==1
|
|
Yi = Zi * ax(ii,jj);
|
|
else
|
|
Yi = asseZ_RL(ii,jj-1) * ax(ii,jj);
|
|
end
|
|
end
|
|
|
|
% Matrici singoli spostamenti
|
|
asseX_RL(ii,jj) = Xi;
|
|
asseY_RL(ii,jj) = Yi;
|
|
asseZ_RL(ii,jj) = Zi;
|
|
|
|
if ii==1
|
|
X_RL(ii,jj) = asseX_RL(ii,jj);
|
|
Y_RL (ii,jj) = asseY_RL(ii,jj);
|
|
Z_RL (ii,jj) = asseZ_RL(ii,jj);
|
|
else
|
|
X_RL(ii,jj) = X_RL(ii-1,jj) + asseX_RL(ii,jj); % Matrici cumulate
|
|
Y_RL(ii,jj) = Y_RL(ii-1,jj) + asseY_RL(ii,jj);
|
|
Z_RL(ii,jj) = Z_RL(ii-1,jj) + asseZ_RL(ii,jj);
|
|
end
|
|
|
|
end
|