% Projeto de isolador para módulo eletrônico

clc;
clearvars;
close all;

% dados de entrada
m=3; % massa do módulo
Y=0.01; % amplitude da base (via medição)
X=0.005; % amplitude do módulo (valor máximo)
om=35; % frequência de excitação

% passo 1 - determinação da transmissibilidade
  % cálculo da transmissibilidade
Tr=X/Y; % adimensional
Tdb=20*log10(Tr); % em dB
R=(1-Tr)*100; % redução
  % visualização da transmissibilidade
disp(' ')
disp(['A transmissibilidade requerida é igual a ',num2str(Tr),...
      ', ou ',num2str(Tdb),' dB.'])
disp(' ')
disp(['A redução correspondente é igual a ',num2str(R),'%.'])
disp(' ')

% % passo 2 - análise das alternativas de projeto e 
% %           seleção da alternativa mais adequada
% % (registrar, após análise, os valores correspondentes de zeta e epsilon)
%   % cálculo de transmissibilidade
% ep=linspace(0,4,2000);
% zeta=[0.005 0.01 0.02 0.05 0.1 0.2 0.5];
% for iz=1:length(zeta)
%   num=sqrt(1+(2*zeta(iz)*ep).^2);
%   den=sqrt((1-ep.^2).^2+(2*zeta(iz)*ep).^2);
%   T(iz,:)=num./den;
% end
%   % visualização de transmissibilidade
% figure(1)
% cmap=[1 0 0.8571; 0.2857 0 1; 0 0.5714 1; 0 1 0.5714; ...
%       1 1 0; 1 0.5 0; 1 0 0];
% for iz=1:length(zeta)
%   plot(ep,20*log10(T(iz,:)),'Color',cmap(iz,:))
%   hold on
% end
% ylabel('Transmissibilidade (dB)')
% xlabel('Razão entre frequências \epsilon')
% hold on
% plot(ep,20*log10(Tr*ones(length(ep))),'k--')
% hold off
% legend('\zeta=0.005','\zeta=0.01','\zeta=0.02','\zeta=0.05',...
%        '\zeta=0.1','\zeta=0.2','\zeta=0.5','T req.');
% grid on;

% % passo 3 - inserção da alternativa de projeto e
% %           determinação dos parâmetros do isolador e
%   % inserção da alternativa
% disp(' ');
% zetac=input('O valor escolhido de zeta é ');
% disp(' ');
% epc=input('O valor correspondente de epsilon é ');
% disp(' ');
%   % determinação dos parâmetros
%     % cálculo da frequência natural
% omn=om/epc;
%     % cálculo da constante de rigidez
% k=m*omn^2;
%     % cálculo do coeficiente de amortecimento
% c=zetac*2*m*omn;
%     % visualização de resultados
% disp(' ')
% disp(['A frequência natural requerida é ',num2str(omn),' rad/s.'])
% disp(' ')
% disp(['A constante de rigidez associada é ',num2str(k),' N/m.'])
% disp(' ')
% disp(['O coeficiente de amortecimento correspondente é ',...
%       num2str(c),' kg/s.'])
% disp(' ')
 
% % passo 4 - verificações adicionais
%   % cálculo da amplitude da força transmitida pelo isolador
% numc=sqrt(1+(2*zetac*epc).^2);
% denc=sqrt((1-epc.^2).^2+(2*zetac*epc).^2);
% Tc=numc./denc;
% Xc=Tc*Y;
% F=abs(-m*om^2*Xc);
%   % cálculo da deflexão estática
% d=9.81/(omn^2);
%   % visualização de resultados
% disp(' ')
% disp(['A amplitude da força transmitida é ',num2str(F),' N.'])
% disp(' ')
% disp(['A deflexão estática é ',num2str(d),' m.'])
% disp(' ')