• Non ci sono risultati.

Dalle matrici di rotazione ottenute dagli IMUs, dopo la loro calibrazione, sono stati ricavati gli angoli che descrivono il movimento della troclea rispet- to allo sterno. Questi valori sono stati necessari per individuare la funzione che descrive la traiettoria tridimensionale della troclea, secondo il modello. Sapendo come sono stati disposti i sistemi di riferimento sui segmenti cor- porei sterno e troclea, sono stati ricavati: Ψarm, che corrisponde all’angolo

compreso tra l’asse z dello sterno e l’asse z della troclea (esprime gli angoli durante i movimenti di abduzione o flessione sul piano sagittale); e Θarm,

che corrisponde all’angolo compreso tra l’asse x dello sterno e l’asse x della troclea (esprime l’angolo durante i movimenti di flessione sul piano orizzon- tale). Le equazioni 2.7 e 2.8 descritte al Cap. 2.2.3 esprimono le traiettorie dell’acromion e della troclea in coordinate sferiche, perci`o `e stato necessa- rio riscrivere tali equazioni in funzione degli angoli di movimento ricavati dagli IMUs. Indicando con Ψ’ l’angolo tra l’asse z positivo del sistema di riferimento sullo sterno e l’arto superiore (corrisponde all’angolo utilizzato

nell’equazione 2.8); e con Ψarm l’angolo tra l’asse z negativo del sistema di

riferimento sullo sterno e l’arto superiore (corrisponde all’angolo ricavato dai dati in uscita dagli IMUs), Fig. 4.5a, si pu`o scrivere che:

Ψ0 = 180° − Ψarm (4.5)

Pertanto si ottiene:

sin(Ψ0) = sin(Ψarm) (4.6)

cos(Ψ0) = −cos(Ψarm) (4.7)

Indicando con Θ’ l’angolo tra l’asse x positivo e la proiezione dell’arto su- periore sul piano XY (corrisponde all’angolo utilizzato nell’equazione 2.8); e con Θarm l’angolo tra l’asse y negativo e la proiezione dell’arto superiore

sul piano XY (corrisponde all’angolo ricavato dai dati in uscita dagli IMUs), Fig. 4.5b, si pu`o scrivere che:

Θ0 = 270° − Θarm (4.8)

Pertanto si ottiene:

sin(Θ0) = −cos(Θarm) (4.9)

cos(Θ0) = −sin(Θarm) (4.10)

Sostituendo le Eq.4.7 e 4.10 nell’Eq. 2.9, le coordinate della troclea secondo il

(a) Piano frontale Vista posteriore (b) Piano trasversale Vista superio- re

Figura 4.5: SDR dello sterno. In rosso `e indicata la posizione della troclea

modello, in funzione degli angoli di movimento ricavati dagli IMUs diventano:

       XT r YT r ZT r        =       

Xacr− Dht sin ψarm sin(θarm)

Yacr− Dht sin ψarm cos(θarm)

Zacr− Dht cos ψarm

        (4.11)

Facendo le stesse considerazioni anche per l’acromion, si ottiene:        XAcr YAcr ZAcr        =        A10 − A11 sin(ψa) sin(θa) A20 − A21 sin(ψa) cos(θa) A30− A31 cos(ψa)        (4.12)

Al fine di trovare i parametri ottimi per il modello (Aij, cij, con i = 1, 2, 3 e J

= 0, 1 e Dht) e quindi minimizzare la funzione costo (Eq. 2.11), `e stato chiesto

ai soggetti sulla quale sono state fatte le acquisizioni, di effettuare prima di ogni altro movimento, un movimento di flessione sul piano sagittale, seguito da un movimento di abduzione. Da questo momento, tali movimenti saranno chiamati movimenti di calibrazione del modello, proprio perch´e necessari a trovare i parametri ottimi. Da questi movimenti di calibrazione sono stati ricavati i dati necessari all’implementazione della funzione costo, ovvero:

• Gli angoli Θarm, che durante il movimento di flessione sul piano sagittale

avr`a valori di circa 0°, mentre durante l’abduzione sar`a di circa 90°; e Ψarm che andr`a da un certo valore minimo (circa 0°) ad un certo valore

massimo, sia nella flessione che nell’abduzione. Partendo da questi valori sono stati ottenuti anche Ψa e Θa mediante le Eq. 2.2, 2.3 e 2.4,

che tengono conto del ritmo scapolo-omerale;

• Le coordinate dell’acromion e della troclea acquisite dal BTS, riferite rispetto al sistema di riferimento del modello posizionato su sterno;

• La lunghezza del sensore di strain simulato (l), calcolata come distanza tra due punti, ovvero tra marker posizionato su acromion e marker po- sizionato su rachide, anch’essi riferiti rispetto al sistema di riferimento del modello posizionato su sterno. Come gi`a affermato nei capitoli pre- cedenti (Cap. 3.3), sono stati simulati tre sensori di strain, pertanto avremo tre lunghezze diverse a seconda di quale marker, posizionato sul rachide, viene scelto.

Successivamente `e stato effettuo un campionamento sugli angoli Ψarm calco-

lati nei due movimenti di calibrazione del modello, selezionando i valori che vanno dal minimo al massimo, con un certo passo di campionamento, che pu`o essere liberamente scelto. Noti gli angoli, sono stati prelevati i dati cor- rispondenti, ovvero: coordinate di acromion e troclea; lunghezza dello strain; e valori dell’angolo Θarm. Una volta a disposizione tutti i dati, `e stata ese-

guita l’implementazione della funzione costo Eq. 4.13, ricavata effettuando una sommatoria degli errori quadratici medi, calcolati separatamente sulle tre coordinate della troclea. In tale modo `e stata ottenuta la funzione costo nel range totale di movimento.

G = X i  XT r(i) − ˜XT r(i) 2 +YT r(i) − ˜YT r(i) 2 +ZT r(i) − ˜ZT r(i) 2 (4.13)

La minimizzazione della funzione cos`ı ottenuta, `e stata eseguita tramite il metodo dei moltiplicatori di Lagrange, utilizzando come vincolo la seguente equazione:

R − l = 0 (4.14)

Ottenuta partendo dall’equazione 2.5, ipotizzando un Gauge Factore (k) uguale a 1 Ohm/m e trascurando il contributo della curvatura (∆α).

Con:

R = q

R2

x+ R2y+ R2z (4.15)

e l=lunghezza dello strain simulato, (Rx, Rye Rzsono descritti nell’Eq. 2.10).

Dunque la funzione Lagrangiana diventa:

Fl = Gtot− λ(R − l) (4.16)

dove la variabile λ rappresenta il moltiplicatore di Lagrange. Per minimizza- re la funzione Lagrangiana `e stato utilizato l’Optimization Toolbox, presente nel pacchetto di Matlab. L’Optimization Toolbox fornisce algoritmi di uso comune per ottimizzazioni standard e su larga scala. Questi algoritmi ri- solvono problemi discreti e continui, vincolati e non. La toolbox comprende funzioni per la programmazione lineare, quadratica, binaria intera, per l’otti- mizzazione non lineare, ai minimi quadrati non lineari e multiobiettivo. Sono disponibili funzioni per identificare le soluzioni ottimali, eseguire l’analisi di

bilanciamento, equilibrare le molteplici alternative progettuali e incorpora- re i metodi di ottimizzazione in algoritmi e modelli. Optimization Toolbox comprende molti dei metodi pi`u comuni per la minimizzazione e la massimiz- zazione. La toolbox implementa algoritmi sia standard, sia su larga scala, per consentire di risolvere i problemi sfruttando la sparsit`a o la struttura. L’al- goritmo utilizzato in questo studio `e quello di Levenberg-Marquardt (LMA o solo LM), che viene utilizzato per risolvere i problemi ai minimi quadrati non lineari. L’LMA trova un minimo locale, che non `e necessariamente il minimo globale, interpolando tra l’algoritmo di Gauss-Newton (GNA) e il metodo di discesa del gradiente.

Il valore ottimo dei parametri incogniti Aij, cij (con i = 1, 2, 3 e J = 0, 1)

e Dht `e stato restituito dall’algoritmo LM, il quale, per funzionare, richiede

i valori iniziali da cui far partire l’iterazione. Per quanto riguarda i para- metri Aij e Dht, i loro valori iniziali sono stati stimati a partire da misure

antropometriche sul soggetto che ha eseguito il movimento; mentre per i pa- rametri cij, i loro valori iniziali sono ottenuti a partire dall’Eq. 2.10. Sono

stati considerati c01, c02, c03come le lunghezze nominali, lungo i rispettivi tre

assi del sensore di strain simulato (Lx0, Ly0,Lz0), calcolate nel primo istante

dell’acquisizione. Quindi sono state calcolate c11, c12, c13 risolvendo il siste-

ma di 3 equazioni in 3 incognite andando a prelevare i valori di XAcr, YAcr,

ZAcr, Lx, Ly,Lz in una posizione nota (come ad esempio in Tpose). Ottenuti

`

e stato possibile determinare la traiettoria tridimensionale della troclea. Al soggetto, sulla quale sono stati misurati i parametri ottimi, `e stato chiesto di eseguire un nuovo movimento, diverso da quello di calibrazione del modello. Elaborando i dati forniti in uscita dai sensori IMUs durante tale acquisizione, mediante il processo di calibrazione dei sensori, descritto nel paragrafo prece- dente, sono strati estratti gli angoli Θarm e Ψarm che esprimo l’orientamento

della troclea durante il movimento. Sostituendo tali valori nell’Eq. 4.11 sono state ricavate le coordinate della troclea espresse dal modello bi-articolare. Per quanto riguarda le coordinate dell’acromion, possono essere ottenute so- stituendo gli angoli Θa e Ψa, che sono in funzione degli angoli Θarm e Ψarm

secondo la relazione del ritmo scapolo-omerale, nell’Eq. 4.12; oppure possono essere ricavate utilizzando i dati relativi al sensore di strain simulato, tramite formula inversa:                    XAcr = (Rx− c01)/c11 YAcr = (Ry− c02)/c12 ZAcr = (Rz − c03)/c13 (4.17)

4.3

Implementazione in Matlab del modello

Documenti correlati