%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%% Modelos MPP Rocuronium %%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                                         %
% Modelos Minimally Parameterized Parsimonious para o Rocuronium          %
%                                                                         %
% Miguel Teixeira, Novembro, 2012                                         %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% Necessárias as bases de dados com os parâmetros dos modelos MPP para o Rocuronium
% (Contém ficheiro THETA com Parâmetros Alpha e Gamma)
load ([cd ''])

%% Obtenção dos parâmetros necessários para construir os modelos MPP
% Parametros da Parte Linear
k1=1; k2=4; k3=10;                                                         % k1, k2 e k3 são fixos e iguais a 1, 4 e 10 respetivamente [min^-1].
Alpha = NEW_THETA_100(1,i);                                                % Paramétros Alpha estão na primeira linha da variável THETA [adimenssional].
% Parametros da Parte Não-Linear
C50   = 1;                                                                 % C50 é fixo e igual a 1 [ug/kg].
Gamma = NEW_THETA_100(2,i);                                                % Paramétros Gamma estão na segunda linha da variável THETA [adimenssional].

%% Construção das matrizes do modelo compartimental
Matriz_A = [(-k3*Alpha) 0 0;(k2*Alpha) -(k2*Alpha) 0;0 (k1*Alpha) -(k1*Alpha)];
Matriz_B = [k3*Alpha 0 0]';
Matriz_C = [0 0 1];
Matriz_D = 0;

% Discretização das Matrizes
[Matriz_Aj, Matriz_Bj] = c2d(Matriz_Ai, Matriz_Bi, Ts);                    % As matrizes C e D discretizadas ficam iguais às contínuas, logo não é necessária a sua discretização.
                                                                           % Ts é o tempo de amostragem em minutos (Ex: 20s é 1/3 de minuto).

%% Sistema de Espaço de Estados
Estado = Matriz_A*Estado+Matriz_B*U;                                       % Estado são as concentrações nos diferentes compartimentos [ug/kg]. U é o Input de Rocuronium [ug/kg/min].
Ce = Matriz_C*Estado+Matriz_D;                                             % Obtenção da Concentração de Efeito Ce [ug/kg].
        
%% Equação de Hill (Parte Não Linear)
NMB = 100/(1+((Ce/C50)^Gamma));                                            % Obtenção do Nível de NMB [%].