Files
matlab-python/ATD/CalcoloBiax_PCLHR.m

45 lines
2.1 KiB
Matlab
Executable File

function [Y_PCLHR,Z_PCLHR,asseY_PCLHR,asseZ_PCLHR,AlfaX_PCLHR,AlfaY_PCLHR] = ...
CalcoloBiax_PCLHR(SpePCLHR,ii,jj,ax,ay,asseY_PCLHR,asseZ_PCLHR,asseY_Rif_PCLHR,...
asseZ_Rif_PCLHR,Y_PCLHR,Z_PCLHR,AlfaX_PCLHR,AlfaY_PCLHR,elab_option,rPCLHR)
if elab_option == 1 % Punto fisso a fondo foro
% calcolo il coseno dell'angolo di inclinazione
Yi = -1*SpePCLHR(ii)*cos(ax(ii,jj)); % -1 per adattare il segno di CosBeta. le progressive sono da fare a ritroso
% Spostamento lungo l'asse Z registrato dal nodo i
Zi = -1*SpePCLHR(ii)*sin(ax(ii,jj)); % -1 per adattare il segno
% Rollio
AlfaX_PCLHR(ii,jj) = ay(ii,jj)./0.01745329251994329576923690768489; % Ritorno in gradi
% Inclinazione
AlfaY_PCLHR(ii,jj) = ax(ii,jj)./0.01745329251994329576923690768489;
% Matrici singoli spostamenti
asseY_PCLHR(ii,jj) = -asseY_Rif_PCLHR(ii,1)+Yi;
asseZ_PCLHR(ii,jj) = -asseZ_Rif_PCLHR(ii,1)+Zi;
if ii==1
Y_PCLHR (ii,jj) = Yi;
Z_PCLHR (ii,jj) = asseZ_PCLHR(ii,jj);
else
Y_PCLHR(ii,jj) = Y_PCLHR(ii-1,jj) + Yi;
Z_PCLHR(ii,jj) = Z_PCLHR(ii-1,jj) + asseZ_PCLHR(ii,jj);
end
elseif elab_option == -1 % Punto fisso nella sezione
Yi = SpePCLHR(rPCLHR-ii+1)*cos(ax(ii,jj)); % -1 per adattare il segno di CosBeta. le progressive sono da fare a ritroso
% Spostamento lungo l'asse Z registrato dal nodo i
Zi = SpePCLHR(rPCLHR-ii+1)*sin(ax(ii,jj));
% Rollio
AlfaX_PCLHR(ii,jj) = ay(ii,jj)./0.01745329251994329576923690768489; % Ritorno in gradi
% Inclinazione
AlfaY_PCLHR(ii,jj) = ax(ii,jj)./0.01745329251994329576923690768489;
% Matrici singoli spostamenti
asseY_PCLHR(rPCLHR-ii+1,jj) = asseY_Rif_PCLHR(rPCLHR-ii+1,1)+Yi;
asseZ_PCLHR(rPCLHR-ii+1,jj) = asseZ_Rif_PCLHR(ii,1)+Zi;
if ii==1
Y_PCLHR (rPCLHR-ii+1,jj) = Yi;
Z_PCLHR (rPCLHR-ii+1,jj) = asseZ_PCLHR(rPCLHR-ii+1,jj);
else
Y_PCLHR(rPCLHR-ii+1,jj) = Y_PCLHR(rPCLHR-ii+2,jj) + Yi;
Z_PCLHR(rPCLHR-ii+1,jj) = Z_PCLHR(rPCLHR-ii+2,jj) + asseZ_PCLHR(rPCLHR-ii+1,jj);
end
end
end