53 lines
2.0 KiB
Matlab
Executable File
53 lines
2.0 KiB
Matlab
Executable File
function [Y_PCL,Z_PCL,asseY_PCL,asseZ_PCL,AlfaX_PCL,AlfaY_PCL] = CalcoloBiax_PCL(SpePCL,...
|
|
ii,jj,ax,ay,asseY_PCL,asseZ_PCL,Y_PCL,Z_PCL,...
|
|
AlfaX_PCL,AlfaY_PCL,elab_option,rPCL,IDcentralina,DTcatena)
|
|
|
|
if elab_option == 1 % Punto fisso a fondo foro
|
|
% calcolo il coseno dell'angolo di inclinazione
|
|
cosBeta = (1 - ax(ii,jj).^2).^0.5;
|
|
Yi = -1*SpePCL(ii)*cosBeta; % -1 per adattare il segno di CosBeta. le progressive sono da fare a ritroso
|
|
% Spostamento lungo l'asse Z registrato dal nodo i
|
|
Zi = SpePCL(ii)*ax(ii,jj); % -1 per adattare il segno
|
|
% Rollio
|
|
AlfaX_PCL(ii,jj) = asind(ay(ii,jj));
|
|
% Inclinazione
|
|
AlfaY_PCL(ii,jj) = -1*asind(ax(ii,jj));
|
|
% Matrici singoli spostamenti
|
|
asseY_PCL(ii,jj) = Yi;
|
|
asseZ_PCL(ii,jj) = Zi;
|
|
if ii==1
|
|
Y_PCL (ii,jj) = Yi;
|
|
Z_PCL (ii,jj) = asseZ_PCL(ii,jj);
|
|
else
|
|
Y_PCL(ii,jj) = Y_PCL(ii-1,jj) + Yi;
|
|
Z_PCL(ii,jj) = Z_PCL(ii-1,jj) + asseZ_PCL(ii,jj);
|
|
end
|
|
elseif elab_option == -1 % Punto fisso nella sezione
|
|
% calcolo il coseno dell'angolo di inclinazione
|
|
cosBeta = (1 - ax(rPCL-ii+1,jj).^2).^0.5;
|
|
Yi = SpePCL(rPCL-ii+1)*cosBeta; %Le progressive sono da fare ad avanzamento
|
|
% Spostamento lungo l'asse Z registrato dal nodo i
|
|
if strcmp(IDcentralina,'ID0068') && strcmp(DTcatena,'DT0106')
|
|
Zi = SpePCL(rPCL-ii+1)*ax(rPCL-ii+1,jj);
|
|
else
|
|
Zi = -1*SpePCL(rPCL-ii+1)*ax(rPCL-ii+1,jj);
|
|
end
|
|
% Rollio
|
|
AlfaX_PCL(rPCL-ii+1,jj) = asind(ay(rPCL-ii+1,jj));
|
|
% Inclinazione
|
|
AlfaY_PCL(rPCL-ii+1,jj) = -1*asind(ax(rPCL-ii+1,jj));
|
|
% Matrici singoli spostamenti
|
|
asseY_PCL(rPCL-ii+1,jj) = Yi;
|
|
asseZ_PCL(rPCL-ii+1,jj) = Zi;
|
|
|
|
if ii==1
|
|
Y_PCL (rPCL-ii+1,jj) = Yi;
|
|
Z_PCL (rPCL-ii+1,jj) = asseZ_PCL(rPCL-ii+1,jj);
|
|
else
|
|
Y_PCL(rPCL-ii+1,jj) = Y_PCL(rPCL-ii+2,jj) + Yi;
|
|
Z_PCL(rPCL-ii+1,jj) = Z_PCL(rPCL-ii+2,jj) + asseZ_PCL(rPCL-ii+1,jj);
|
|
end
|
|
end
|
|
|
|
end
|