% OPTNEUT Nonlinear Optimitation of Dynamic Neutralizers.
% for a given viscoelastic material for a given temperature de trabalho T
% 
global Plothandle meq keq ceq freq omeg G alf pg ma
%
%Medição 18/11/11 porta ferramenta, ponto de medição não correto,
%desconhecido perto da base do porta ferramenta
%load a605.txt 
%resp=a605;
% 
% %Medição 18/11/11 porta ferramenta excitação e resposta na ponta do mesmo
% INERTÂNCIA
 load a605cont.txt 
 resp=a605cont;
%

for ii=1:length(resp)
freq(ii)=resp(ii,1);
R(ii)=resp(ii,2);
Im(ii)=resp(ii,3);
H(ii)=R(ii)+1i*(Im(ii));
end
%
plot(freq,20*log10(abs(H)),'b-','LineWidth',2)
title('Porta Ferramentas com neutralizador');
hold on

%
pause


%________________________________________________
%
% dadods do material viscoelástico C1002 da EAR
%
% Go = 1.53e6;
% Goo = 1.11e8;
% beta = 0.396;
% fi0 = 0.0134;
% T = 303;
% T0 = 273;
% teta1 = 15.1;
% teta2 = 171;
%
% 
% dadods do material viscoelástico Neoprene
%
% Go = 4.55e6;
% Goo = 4.18e8;
% beta = 0.319;
% fi0 = 0.00274;
% T = 303;
% T0 = 273;
% teta1 = 5.09;
% teta2 = 46.5;
% 
% dadods do material viscoelástico Borracaha Butílica
% 
% Go = 1.76e5;
% Goo = 2.41e8;
% beta = 0.424;
% fi0 = 0.00424;
% T = 303;
% T0 = 273;
% teta1 = 9.91;
% teta2 = 119;
% %
% %Dados Borracha Natural (laboratório)
% 
% Go = 2.79e6;
% Goo = 8.16e8;
% beta = 0.297;
% fi0 = 3.55e-4;
% T = 303;
% T0 = 273;
% teta1 = 9.74;
% teta2 = 148;


% %Dados Neoprene (laboratório)
% 
% Go = 3.57e6;
% Goo = 1.79e8;
% beta = 0.435;
% fi0 = 2.46e-3;
% T = 303;
% T0 = 273;
% teta1 = 6.57;
% teta2 = 680;
% 
% %Dados C1002 (laboratório)
% 
% Go = 6.06e5;
% Goo = 9.7e8;
% beta = 0.5465;
% fi0 = 0.00069;
% T = 303;
% T0 = 293;
% teta1 = 17.8052;
% teta2 = 177.119;
%
%
% %Dados DYAD 601 (laboratório)
% 
Go = 3.45570e5;        % para passar de 1 psi = 6896,5517 Pa
Goo = 7.35382e8; % para passar de 1 psi = 6896,5517 Pa
beta = 0.5368;
fi0 = 0.003054;
T = 343;
T0 = 280.24;
teta1 = 13.898;
teta2 = 82.6183;
%
%
% Calculo do modulo de Cisalhamento em função da frequencia 
%
pg=[Go Goo beta fi0];
pa=[T T0 teta1 teta2];
alf=alfa(pa);
for ii=1:length(freq)
    wf=2*pi*freq(ii);
    G(ii)=g_cmplx(alf,pg,wf);
end
%    
%
meq = 0.2582;
keq = 2.7297e+006;
ksieq = 0.0209;

ceq=2*meq*sqrt(keq/meq)*ksieq;

%
for ii=1:length(freq)
    omeg(ii)=2*pi*freq(ii);
    HH(ii)=-omeg(ii)^2/(-omeg(ii)^2*meq+1i*omeg(ii)*ceq+keq);
end
% _______________________________________________  
%
plot(freq,20*log10(abs(HH)),'r-','LineWidth',2,'EraseMode','none')
title('Porta Ferramentas com neutralizador');


pause	% Strike any key to continue.

% global Plothandle
Plothandle = plot(freq,20*log10(abs(HH)),'k-.','LineWidth',2,'EraseMode','xor');

% restrições de disgualdade _____________________
omega_l=100*2*pi;
%omega_u=1000;
omega_u=1000*2*pi;
LB=omega_l;
UB=omega_u;
%
A=[];
B=[];
Aeq=[];
Beq=[];
NONLCON=[];
%
% Massa do neutralizador fixa atraves da relacao de Den Hartog
%
mi=0.1;
ma=mi*meq;
%
%lam = 400.*2*pi;
lam = 400.*2*pi;
%trace = 0;
%tol = .001;
%[trace tol]
%
lambda = fminsearch('fobjn',lam)
%lambda = fmincon(@fobjn,lam,A,B,Aeq,Beq,LB,UB,NONLCON);
%
fn=lambda/2/pi
omega=lambda;
G_omega=g_cmplx(alf,pg,omega);

for ii=1:length(freq)
    r=real(G(ii))/real(G_omega);
    eta=imag(G(ii))/real(G(ii));
    epsil=omeg(ii)/omega;
    m_equiv=-ma*r*(epsil^2-r*(1+eta^2))/((epsil^2-r)^2+(r*eta)^2);
    c_equiv=ma*omega*r*eta*epsil^3/((epsil^2-r)^2+(r*eta)^2);
    H11(ii)=-omeg(ii)^2/(-omeg(ii)^2*(meq+m_equiv)+1i*omeg(ii)*(ceq+c_equiv)+keq);
end;

plot(freq,20*log10(abs(H11)),'r-.','LineWidth',2,'EraseMode','xor');

%
% Curva com neutralizador real
%
% lamb= 525.*2*pi;
% ma1=21.0e-3;
% omega=lamb;
% G_omega=g_cmplx(alf,pg,omega);
% 
% for ii=1:length(freq)
%     r=real(G(ii))/real(G_omega);
%     eta=imag(G(ii))/real(G(ii));
%     epsil=omeg(ii)/omega;
%     m_equiv=-ma1*r*(epsil^2-r*(1+eta^2))/((epsil^2-r)^2+(r*eta)^2);
%     c_equiv=ma1*omega*r*eta*epsil^3/((epsil^2-r)^2+(r*eta)^2);
%     H11(ii)=-omeg(ii)^2/(-omeg(ii)^2*(meq+m_equiv)+1i*omeg(ii)*(ceq+c_equiv)+keq);
% end;
% 
% Plothandle = plot(freq,20*log10(abs(H11)),'k-.','LineWidth',2,'EraseMode','xor');
