Analisi di stabilita` e delle biforcazioni del Pendolo Magnetico Forzato

Transcript

Analisi di stabilita` e delle biforcazioni del Pendolo Magnetico Forzato
Modellistica e Simulazione
a.a. 2007-2008
IL PENDOLO MAGNETICO: ANALISI DI STABILITA’ E SIMULAZIONI
Chiara Mocenni
Il Sistema fisico
Sang-Yoon Kim, Seung-Ho Shin, Jaichul Yi e Chi-Woong Jang hanno analizzato
sperimentalmente il comportamento di un pendolo magnetico forzato parametricamente Lo
strumento studiato consiste in un magnete permanente a forma di barra, una piastra di alluminio, ed
un encoder, tutti attaccati in maniera coassiale con l’asse di rotazione.
Il magnete, attaccato all’asse di rotazione, guidato da sferetta nella parte inferiore e da una
sottile punta nella parte superiore, è situato al centro di due avvolgimenti di Helmholtz, che
producono il campo magnetico B perpendicolare all’asse di rotazione.
Fig.1 schematizzazione del pendolo magnetico
Un siffatto sistema, può quindi essere trattato come un magnete permanente avente
momento bipolare pari a m posto in un campo magnetico uniforme B generato dagli avvolgimenti di
Helmoltz.
Il suo moto è quindi descritto dalla seguente equazione differenziale del secondo ordine:
Iθ&& + bθ& + m( B DC + B AC sin ωt ) sin θ = 0
in cui θ è l’angolo tra il magnete e il campo magnetico, I costituisce il momento d’inerzia
dell’asse di rotazione, b è fattore di attrito, BDC è la componente stazionaria DC di B e infine BAC e
B
B
ω sono rispettivamente l’ampiezza e la frequenza della componente tempo-variante sinusoidale AC
di B.
Se si normalizza tale equazione, ossia, ω t → 2π t e θ → 2π x , si ottiene:
&x& + 2π γ x& + 2π (Ω 2 + A sin 2π t ) sin 2π x = 0
dove, ω 0 =
mBDC
ω
, Ω= 0
I
ω
,γ =
b
e
Iω
A=
mB AC
.
Iω 2
Quest’ultima equazione costituisce il punto di partenza per l’analisi di stabilità del pendolo
magnetico.
L’ equazione presentata precedentemente può essere trasformata in un sistema di due
equazioni differenziali lineari del primo ordine, utili sia per la linearizzazione del sistema che per la
sua simulazione in ambiente Matlab (come si vedrà in seguito); queste due equazioni sono
rispettivamente:
x& = y
y& = −2πγ y − 2π (Ω 02 + A sin 2π t ) sin 2π x
Il pendolo magnetico così modellizzato ha due punti di equilibrio, xˆ = 0 e xˆ =
Modellistica e Simulazione: Analisi del pendolo magnetico forzato parametricamente
1
.
2
2
Per studiare in generale la stabilità di un sistema così fatto, bisogna prima procedere con
l’operazione di linearizzazione, ossia calcolare nei punti di equilibrio del sistema le derivate parziali
rispetto alle variabili di stato, ottenendo:
⎛ δ x& ⎞
⎛δ x ⎞
⎜⎜ ⎟⎟ = J (t )⎜⎜ ⎟⎟
⎝ δ y& ⎠
⎝δ y ⎠
in cui J(t) è lo Jacobiano, ovvero:
0
1 ⎞
⎛
⎟⎟
J (t ) = ⎜⎜
2
2
⎝ − 4π (Ω + A sin 2π t ) cos 2π xˆ − 2πγ ⎠
Si può notare come J(t) sia una matrice 2 x 2 di periodo 1, ossia [J(t) = J(t+1)] e i suoi
autovalori determinano la stabilità del sistema.
Infatti se le radici del suo polinomio caratteristico, calcolato nel punto di equilibrio
dovessero essere tutte a parte reale negativa, allora il sistema risulterebbe localmente
asintoticamente stabile, se invece vi fossero radici a parte reale positiva allora si avrebbe
l’instabilità mentre, se vi fossero alcune radici a parte reale negativa e alcune giacenti sull’asse
Immaginario, non si potrebbe dire nulla sull’equilibrio.
Nel caso del pendolo, considerando il punto di equilibrio xˆ = 0 , si devono trovare le
soluzioni di questa equazione:
s2+2sπγ+4π2( Ω2+A sin(2π t) )=0
Come si può notare le radici sono:
s1,2= - πγ ± π 2 γ 2 − 4π 2 ( Ω 2 + A sin (2π t ) )
Si evince, quindi, che le radici hanno parte Reale negativa in quanto il valore di γ, ovvero del
coefficiente d’attrito, è considerato pari a 0.1; ciò è prova della stabilità asintotica del sistema nel
punto di equilibrio, sebbene sia chiaro che il valore effettivo della soluzione dipenda dalla scelta
della coppia di valori (Ω, A).
A tal proposito è utile visualizzare il posizionamento delle soluzioni sul piano Im/Re al
variare di questi parametri. A titolo di esempio sono riportati gli andamenti delle soluzioni lungo un
periodo considerando A fissato e pari a 1.2, e Ω variabile in un intervallo [0.2 0.5]; poi, invece, con
Modellistica e Simulazione: Analisi del pendolo magnetico forzato parametricamente
3
Ω fisso e pari a 0.4 ed A variabile in [0.1 0.2]; infine rendendo entrambi i parametri variabili, A in
[0.2 0.4] e Ω in [0.4 0.8]; rispettivamente, figg.2, 3, 4.
Come si può vedere dalle seguenti figure, per particolari valori delle coppie ( A, Ω) abbiamo
l’insorgere di soluzioni a parte reale positiva e quindi il sistema, in questi casi, va in instabilità,
mentre negli altri casi, esso è stabile. Si noti che le soluzioni “stabili” sono situate lungo l’asse
parallelo a quello Immaginario, pari circa a -0.3; tale valore altro non è che il risultato del prodotto
–πγ.
Fig.2 andamento soluzioni con Ω fisso
Fig.3 andamento soluzioni con A fisso
Modellistica e Simulazione: Analisi del pendolo magnetico forzato parametricamente
4
Fig.4 andamento soluzioni con A e Ω variabili
L’analisi di stabilità è stata condotta usando la teoria di Floquet di cui verrà proposto un accenno
nel paragrafo seguente.
La Teoria di Floquet
La Teoria di Floquet è un ramo della teoria delle equazioni differenziali ordinarie che può
essere applicato per la ricerca di soluzioni per le equazioni lineari differenziali della forma:
x& = A(t ) x
essendo A(t) una funzione continua periodica di periodo T.
Il principale teorema della teoria di Floquet, chiamato appunto il Teorema di Floquet
permette di ottenere una forma canonica per ciascuna matrice fondamentale soluzione di sistemi
lineari del tipo sopra citato.
In pratica il teorema applica un cambiamento di coordinate
y = Q − 1(t)x
con Q(t + 2T) = Q(t) che trasforma il sistema periodico in un sistema lineare tradizionale con
coefficienti costanti e reali.
Modellistica e Simulazione: Analisi del pendolo magnetico forzato parametricamente
5
Vediamo ora in dettaglio tale teorema:
Se φ(t) è la matrice fondamentale soluzione del sistema periodico x& = A(t ) x , con A(t)
funzione periodica di periodo T, allora per tutti i t∈ R si ha che:
φ(t + T) = φ(t)φ − 1(0)φ(T).
Inoltre, per ciascuna matrice B, possibilmente complessa, tale che:
eTB = φ − 1(0)φ(T)
esiste una matrice di funzioni T-periodiche t → P (t ) tale che:
φ(t) = P(t)etB per tutti i t ∈ R
ed esiste anche una matrice reale R e una matrice di funzioni reali di periodo 2T t → Q (t ) :
φ(t) = Q(t)etR per tutti i t ∈ R.
La mappa φ(t) = Q(t)etR fa nascere, quindi, un cambiamento di coordinate (y = Q
− 1
(t)x)
dipendente dal tempo, grazie al quale il sistema originale diviene un sistema lineare a coefficienti
costanti e reali y& = Ry . Poiché Q(t) è continua e periodica, essa deve essere limitata, il che implica
che la stabilità per y(t) e x(t) è determinata semplicemente dagli autovalori di R.
La rappresentazione φ(t) = P(t)etB è chiamata una forma normale di Floquet per la matrice
fondamentale φ(t).
Gli autovalori di eTB sono chiamati moltiplicatori caratteristici (o di Floquet) del sistema.
Essi sono anche gli autovalori della mappa (lineare) di Poincaré x (t ) → x (t + T ) . Un esponente di
Floquet (talvolta noto anche come esponente caratteristico) è un numero complesso μ tale che eμT è
un moltiplicatore caratteristico del sistema.
La parti reali degli esponenti di Floquet sono chiamati esponenti di Lyapunov: la soluzione è
asintoticamente stabile se tutti gli esponenti di Lyapunov sono negativi, Lyapunov stabile se gli
esponenti sono non positivi, ossia se il punto di partenza del sistema si trova nelle vicinanze di un
punto di equilibrio x allora tutta l’evoluzione del sistema si mantiene in un intorno di tale punto, e
instabile altrimenti.
Modellistica e Simulazione: Analisi del pendolo magnetico forzato parametricamente
6
Nel caso del pendolo magnetico, si consideri W(t)=[w1(t), w2(t)] come la matrice
fondamentale con W(0)= I; pertanto, w1(t) e w2(t) sono due soluzioni indipendenti espresse in forma
di vettore colonna ed I è la matrice Identità di dimensione 2 x 2.
Allora una soluzione generale per un sistema 1-periodico ha la seguente forma:
⎛ δ x(t ) ⎞
⎛ δ x(0) ⎞
⎜⎜
⎟⎟ = W (t )⎜⎜
⎟⎟
⎝ δ y (t ) ⎠
⎝ δ y (0) ⎠
Ricordando inoltre che:
⎛ δ x& ⎞
⎛δ x ⎞
⎜⎜ ⎟⎟ = J (t )⎜⎜ ⎟⎟
⎝ δ y& ⎠
⎝δ y ⎠
Si ottiene:
W& (t ) = J (t )W (t ) , W (0) = I
Risulta evidente, quindi, che W(1), ottenuta tramite l’integrazione della suddetta equazione
su un periodo, sia la matrice M della mappa linearizzata, il cui polinomio caratteristico è:
λ2 − tr Mλ + det ( M ) = 0
dove trM e det(M) denotano rispettivamente la traccia e il determinante di M.
Gli autovalori λ1 e λ2 costituiscono i moltiplicatori di Floquet, e il Punto Fisso è stabile solo
quando entrambi i moltiplicatori di Floquet sono dentro il cerchio unitario.
La simulazione Matlab
Per la simulazione del modello e’ necessario costruire una funzione (es. pend.m) e uno script
per l’integrazione del sistema di equazioni differenziali del modello (pend_param_int.m) che si
occupano rispettivamente del modello del pendolo magnetico e di gestire delle routines per il
passaggio dei parametri del sistema. Maggiori dettagli vengono riportati in appendice.
In pend.m viene riportata l’equazione del modello:
Modellistica e Simulazione: Analisi del pendolo magnetico forzato parametricamente
7
x& = y
y& = −2πγy − 2π (Ω 02 + A sin 2πt ) sin 2πx
function der = pend ( t,vett, omega,A)
der(1)= vett(2);
der(2)=-2*0.1*pi*vett(2)-2*pi*(omega^2+A*sin(2*pi*t))*sin(2*pi*vett(1));
der=der(:);
La funzione pend prende in ingresso quattro parametri, ovvero un vettore t, che rappresenta
la durata della simulazione; vett un altro vettore in cui è contenuta la coppia (x,y) del punto di
equilibrio di partenza; omega e A non sono altro che i valori della frequenza naturale normalizzata
Ω e dell’ampiezza A; infine l’operazione der=der(:) serve semplicemente ad assicurasi che
ciascuna delle due uscite che compongono il vettore der siano vettori di tipo colonna.
In pend_para_int.m, vi è la simulazione di tale sistema di equazioni differenziali per
determinati valori dei parametri:
t0=0;
tf=50;
vett=[1/8
1/8]';
A=.2;
omega=0.6;
options=odeset( 'MaxStep',0.1);
[t,y]=ode23t(@pend,[t0,tf],vett,options,omega,A);
Nello script, vi è anche del codice per la creazione delle mappe nel piano delle fasi e per la
formattazione della finestra di output.( si veda l’appendice a riguardo).
La forma generale di una chiamata ad una funzione ODE è:
[t,Y] = solver(odefun,tspan,y0,options)
in cui, odefun è la funzione che implementa l’equazione differenziale del tipo y’=f(t,y), i
vettori tspan, y0 invece sono i vettori contenenti rispettivamente il tempo totale della simulazione e
le condizioni iniziali, mentre options è un vettore in cui è possibile settare alcune caratteristiche del
solver per l’equazione differenziale.
Modellistica e Simulazione: Analisi del pendolo magnetico forzato parametricamente
8
I solvers, cioè i metodi numerici per la soluzione di equazioni differenziali, messi a
disposizione da Matlab sono:
¾ Ode45: esso si basa sulla forma esplicita di Runge-Kutta (Dornand-Prince); è un one-step
solver, ossia, quando deve calcolare y(tn) esso necessita solamente della soluzione ottenuta
al passo precedente, ovvero y(tn-1); di solito è quello più usato ma sfortunatamente non è
adatto al sistema in esame in quanto le equazioni che lo governano sono stiff.
¾ Ode23:esso si basa sull’implementazione esplicita di Runge-Kutta (Bogaki and
Shampine), può essere più efficiente di ode45 nel caso di una moderata stiffness del
problema e, come ode45 è un one-step solver.
¾ Ode113:è un solver di ordine varibile del tipo Adams-Bashforth-Moulton PECE; esso può
essere più efficiente di ode45 in presenza di tolleranze stringenti e quando il calcolo della
funzione ODE risulti particolarmente oneroso. È un multi-step solver, ossia necessita di
soluzioni ad alcuni istanti di tempo precedenti prima di calcolare la soluzione al tempo
corrente.
¾ Ode15s:è in solver di ordine variabile basato su formule numeriche di differenziazione, è
anche esso un multi-step, da usare in presenza di equazioni stiff se ode45 dovesse fallire.
¾ Ode23s:è basato sulla formula di ordine 2 modificata di Rosenbrock; essendo un one-step
solver, può essere più efficiente di ode15s in presenza di tolleranze stringenti e può risolvere
alcuni problemi stiff in cui ode15s non sia efficace.
¾ Ode23t:è una implementazione del metodo trapezoidale che usa un interpolante libero, è
consigliato per problemi moderatamente stiff e per ottenere una soluzione senza
rallentamenti numerici.
¾ Ode23tb: è una implementazione del TR_BFD2, una formula implicita di Runge-Kutta
con in primo stadio in cui segue un passo trapezoidale e un secondo stadio in cui segue una
formula di differenziazione di tipo backward di ordine 2; esso può essere utile in presenza di
tolleranze stringenti.
A tutti i metodi numerici di integrazione sopra elencati possono essere modificati dei
parametri riguardanti ad esempio il passo di integrazione, le tolleranze agli errori, etc.. tramite la
funzione odeset la cui sintassi è la seguente:
options = odeset('name1',value1,'name2',value2,...)
Modellistica e Simulazione: Analisi del pendolo magnetico forzato parametricamente
9
ossia, viene create una struttura di opzioni per l’integratore invocato, in cui le proprietà
chiamate, scritte tra apici, hanno dei valori assegnati, mentre per quelle non esplicitamente
modificate, restano i valori di default.
Le proprietà che possono essere modificate, riguardano la Tolleranza agli Errori, l’output del
solver, la matrice Jacobiana, la locazione degli eventi, la matrice di massa e le equazioni
differenziali algebriche, la dimensione dello step e ode15s; ad esempio e’ possibile modificare la
dimensione dello step con cui viene calcolato il passo di integrazione rispetto al valore di default
(pari ad un decimo del tspan).
Si noti inoltre, che Matlab, a differenza di altri package, risolve le equazioni differenziali per
via numerica e non simbolica e che il valore ad esempio del sin(π) non è pari a zero, bensì ad un
valore, 1.2246e-016 dovuto all’approssimazione del numero π.
Si ricorda brevemente che una equazione differenziale si dice stiff se essa risulta essere
numericamente instabile secondo certi metodi di integrazione numerici a meno che il passo di
integrazione non risulti essere estremamente piccolo.
Nel seguito vengono riportate alcune simulazioni delle dinamiche del pendolo magnetico in
diverse condizioni usando come solver ode23t.
⎛1 1⎞
Partendo dal punto di equilibrio xe = ⎜ , ⎟ , si sono provate varie coppie di valori (A,Ω) al
⎝8 8⎠
fine di mostrare come l’evoluzione del sistema si assesti su differenti punti di equilibrio oppure
vada in instabilità, condizione decisa dal valore del parametro A.
Ad ogni frequenza naturale Ω corrisponde un valore critico dell’ampiezza delle
oscillazioni A per il quale il sistema perde stabilità; ad esempio per Ω=0.4 si può notare come
un valore di A superiore a 0.2 dia origine ad una biforcazione di raddoppiamento di periodo.
Nella seguente tabella, sono riportati i risultati di alcune simulazioni con a fronte le relative
mappe nel piano delle fasi:
Modellistica e Simulazione: Analisi del pendolo magnetico forzato parametricamente
10
Modellistica e Simulazione: Analisi del pendolo magnetico forzato parametricamente
11
Modellistica e Simulazione: Analisi del pendolo magnetico forzato parametricamente
12
Modellistica e Simulazione: Analisi del pendolo magnetico forzato parametricamente
13
APPENDICE
In questa appendice vengono riportati il codice completo degli script realizzati e una tabella sulle
caratteristiche degli integratori numerici.
Il sistema del pendolo, pend.m:
function der = pend ( t,vett, omega,A)
% xdot=y
der(1)= vett(2);
%ydot=-2*0.1*pi*y-2*pi*(omega^2+A*sin(2*pi*t))*sin(2*pi*x)
der(2)=-2*0.1*pi*vett(2)-2*pi*(omega^2+A*sin(2*pi*t))*sin(2*pi*vett(1));
der=der(:);
Il calcolo degli autovalori, sol.m:
%%%%%%%%%%%%%% plot delle soluzioni del polinomio caratteristico%%%
%%%% s1 e s2 sono le due soluzioni%%%%%%%%%%%%%%%%%%
%%%%%%%gamma fix=.1%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%variabili A, omega%%%%%%%%%%%%%%%%%%%%%%
gamma=.1;
for omega=.4:.1:.8;
for A=.2:.01:.4
for t=0:.1:1;
s1=-gamma*pi+sqrt(pi^2*gamma-4*pi^2*(omega^2+A*sin(2*pi*t)));
s2=-gamma*pi-sqrt(pi^2*gamma-4*pi^2*(omega^2+A*sin(2*pi*t)));
%plot della parte reale e immaginaria grazie alle funzioni real e imag%
plot(real(s1), imag(s1),'b o');
hold on
plot(real(s2), imag(s2),'r o');
hold on
end
end
end
Modellistica e Simulazione: Analisi del pendolo magnetico forzato parametricamente
14
La gestione completa del sistema, compreso il plotting delle mappe nel piano delle fasi,
pend_param_int.m:
%%%% inizializzazione dei parametri necessari per il solver%%%%%%%%
t0=0;
tf=50;
vett=[1/8
1/8]'; % x(0),y(0)
A=0.3;
omega=0.6;
options=odeset( 'MaxStep',0.01);
% chiamata la solver%%%%%%%
[t,y]=ode23t(@pend,[t0,tf],vett,options,omega,A);
%plotting dell'evoluzione del sistema e routines di formattazione
dell'immagine%%
figure('Name','Evolution','NumberTitle','off');
plot(t,y(:,1));
title('Evoluzione del Sistema');
xlabel('t');
ylabel('y');
%plotting delle mappe di Poincarè map%%%%%%
figure('Name','Poincarè map','NumberTitle','off');
plot(y(:,1),y(:,2));
title(['omega = ',num2str(omega),'
Ampiezza = ',num2str(A)]);
xlabel('x');
ylabel('y');
Tabella riassuntiva dei solver messi a disposizione da Matlab e opzioni di odeset:
Modellistica e Simulazione: Analisi del pendolo magnetico forzato parametricamente
15
Modellistica e Simulazione: Analisi del pendolo magnetico forzato parametricamente
16