Pagina 1 di 1

Farmacocinetica con Matlab

Inviato: lun 8 mag 2006, 17:16
da Litie
Ho un problema per un'esame.

Si tratta di un problema di farmacocinetica,dosi ripetute in un modello monocompartimentale.....

I parametri farmacocinetici sono questi

V(Volume di distribuzione) = 5litri
Dose=500mg
K01=1.2 ore-1

Rappresento il sistema nello spazio degli stati

dq/dt=-K01q(t) +u(t),
y(t)=q(t)/V;
q(0)=0;


in pratica u(t) deve essere un segnale periodico impulsivo.Le somministrazioni avvengono ad intervalli regolari TAU.

Come genero questo segnale con Matlab?

Ho provato così

A=[-K01];B=[500];C=[1/V];D=[0];
sys=(A,B,C,D);
[u,t]=gensig('pulse',6,72,0.01);
[y,t]=lsim(sys,u,t);

dove, 6=TAU è l'interrvallo tra dosi,72 è la durata della cura e 0.01(ipotizzato da me) è il passo di quatizzazione.
Dovrebbe essere corretto ma col fischio che funziona,y(t) non è sballata.....la concentrazione media nel plasma nel caso di dosi ripetute la si calcola così:

Yss=DOSE/K01*TAU*V


magari sbaglio ad utilizzare la lsim....se guardo u(t) generato con gensig mi sembra OK ,cioè ho un impulso ad intervallo regolari....però poi y(t) calcolata con lsim è sballata.....

help

PS:in pratica si tratta di plottare su video y(t) in funzione di un ingresso impulsivo periodico....

dq/dt=-K01q(t) +u(t),
y(t)=q(t)/V;
q(0)=0;

con u(t) appunto impulso periodico

Inviato: lun 8 mag 2006, 18:02
da absinthe
per prima cosa... quel sys=(A,B,C,D) è un errore di battitura?

perchè dovrebbe essere :

sys=ss(A,B,C,D);

comunque dovrebbe esistere una fonzione per analizzare la risposta impulsiva di un sistema direttamente senza dovresi creare l'impulso... se ricordo bene...

M

Inviato: lun 8 mag 2006, 18:25
da Litie
si è un errore di battitura

sys=ss(A,B,C,D)

esiste la funzione impulse ed initial , ma io ho bisogno di forzare l'ingresso in modo tale che sia un impulso periodico al fine di simulare la somministrazione ripetuta di un farmaco...

Inviato: mar 9 mag 2006, 8:46
da absinthe
Litie ha scritto:si è un errore di battitura

sys=ss(A,B,C,D)

esiste la funzione impulse ed initial , ma io ho bisogno di forzare l'ingresso in modo tale che sia un impulso periodico al fine di simulare la somministrazione ripetuta di un farmaco...
ascolta non ho il modulo per la simulazione al momento... però leggendo le impostazioni sembra tutto giusto... potesti mandarmi due srceenshots del modello.. perchè dici che non funziona?

se vuoi ti posto l'email in MP (ammarte che è in chiaro nello slack-desk di tracepkg :D)

------------------------------edit

ok ho messo il control system toolbox ed ho fatto girare il modellino... a occhio la risposta mi sembra quella giusta: inserisci un impilso ed il sistema risponde con un impulso che decade nel tempo asistoticamente sino a 0 finchè non inserisci un altro impulso... per quello ti dicevo di provare ad usare il built in per risposte impulsive: perchè un impulso periodico non è altro che la riporduzione poer N volte di una risposta impulsiva (almneno che gli impulsi non siano molto ravvicinati... in quel caso non saprei...)

ecco il link ai miei plot:
Immagine
quella in blu è l'ingresso, quella in rosso l'uscita!

M

Inviato: mar 9 mag 2006, 12:45
da Litie
Risolto....l'inghippo sta nel fatto che la funzione
[u,t]=gensig('pulse',TAU,72,0.01);
genera si un segnale impulsivo periodico con periodo TAU ma a causa della quantizzazione(0.01) il segnale impulsivo integrato da -inf a +inf non è =1.
Mi bastava moltiplicare l'uscita u(t) per 100 (1/0.01) per far tornare i conti,infatti l'esponenziale dovrebbe oscillare intorno ad un valore medio diverso da zero che rappresenterebbe il livello di farmaco ideale nel plasma

Grazie Absinthe per l'aiuto....