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