% Archivo con los modelos matematicos vestibulares humanos.
% Canales Semicirculares (Velocidades Angulares) y Otolitos (Aceleraciones)
% En formato de funcion de transferencia
% Abril 06 del 2001
%
%
%
% Pitch 	= Alrededor del eje y, umbral = 3.60 deg/seg
% Roll 	= Alrededor del eje x, umbral = 3.00 deg/seg
% Yaw 	= Alrededor del eje z, umbral = 2.60 deg/seg
% Frecuencias desde 0.2 rad/seg hasta 10 rad/seg
% Surge	= A lo largo del eje x, umbral = 0.17 m/seg^2
% Sway 	= A lo largo del eje y, umbral = 0.17 m/seg^2
% Heave	= A lo largo del eje z, umbral = 0.28 m/seg^2
% Frecuencias desde 0.2 rad/seg hasta 2 rad/seg


Tl_pitch=	05.3;
Ts_pitch=	00.1;
Ta_pitch=	30.0;

Tl_roll=		06.1;
Ts_roll=		00.1;
Ta_roll=		30.0;

Tl_yaw=		10.2;
Ts_yaw=		00.1;
Ta_yaw=		30.0;

Tll_surge=	05.33;
Tss_surge=	00.66;
Tbb_surge=	13.20;
kss_surge=	00.40;

Tll_sway=	05.33;
Tss_sway=	00.66;
Tbb_sway=	13.20;
kss_sway=	00.40;

Tll_heave=	05.33;
Tss_heave=	00.66;
Tbb_heave=	13.20;
kss_heave=	00.40;

numscc_pitch=[(Tl_pitch*Ta_pitch) 0 0 ];
denscc_pitch=[(Tl_pitch*Ts_pitch*Ta_pitch) (Ta_pitch*Ts_pitch+Ta_pitch*Tl_pitch+Tl_pitch*Ts_pitch) (Ta_pitch+Ts_pitch+Tl_pitch) 1];
sys_scc_pitch=tf(numscc_pitch,denscc_pitch);

numscc_roll=[(Tl_roll*Ta_roll) 0 0 ];
denscc_roll=[(Tl_roll*Ts_roll*Ta_roll) (Ta_roll*Ts_roll+Ta_roll*Tl_roll+Tl_roll*Ts_roll) (Ta_roll+Ts_roll+Tl_roll) 1];
sys_scc_roll=tf(numscc_roll,denscc_roll);

numscc_yaw=[(Tl_yaw*Ta_yaw) 0 0 ];
denscc_yaw=[(Tl_yaw*Ts_yaw*Ta_yaw) (Ta_yaw*Ts_yaw+Ta_yaw*Tl_yaw+Tl_yaw*Ts_yaw) (Ta_yaw+Ts_yaw+Tl_yaw) 1];
sys_scc_yaw=tf(numscc_yaw,denscc_yaw);

bode (sys_scc_pitch, {0.01, 1000})
pause

num_oto_surge=[(kss_surge*Tbb_surge) (kss_surge*1)];
den_oto_surge=[(Tll_surge*Tss_surge) (Tll_surge+Tss_surge) 1];
sys_oto_surge=tf(num_oto_surge,den_oto_surge);

num_oto_sway=[(kss_sway*Tbb_sway) (kss_sway*1)];
den_oto_sway=[(Tll_sway*Tss_sway) (Tll_sway+Tss_sway) 1];
sys_oto_sway=tf(num_oto_sway,den_oto_sway);

num_oto_heave=[(kss_heave*Tbb_heave) (kss_heave*1)];
den_oto_heave=[(Tll_heave*Tss_heave) (Tll_heave+Tss_heave) 1];
sys_oto_heave=tf(num_oto_heave,den_oto_heave);

bode (sys_oto_surge, {0.01, 1000})

pause

%step (sys_scc_pitch, 5);
%pause
%step (sys_oto_surge, 5);
%pause

% sys_oto_surge_discrete=c2d(sys_oto_surge, .1, 'tustin');
% step(sys_oto_surge,'-',sys_oto_surge_discrete,'--', 5);
% pause

% Aqui se convierte a espacio de estado pero solo para visualizarlo una vez.

% ss(sys_oto_surge)

% Se genera una onda cuadrada que se alimentará como entrada.
% para observar la salida

% [u,t] = gensig('square',4,24,0.01);

% lsim(sys_oto_surge,u,t)
% pause
% lsim(sys_scc_pitch,u,t)
% pelos=sign(-3)


