Ugrás a tartalomhoz

Impulzív jelenségek modelljei

Karsai János

Typotex

10.3. Kísérletek rögzített pillanatokban ható impulzusokra

10.3. Kísérletek rögzített pillanatokban ható impulzusokra

A Ljapunov módszer számítógépes kísérleti támogatása impulzív rendszerekre is hasonló a differenciálegyenletek esetéhez. Mivel a rendszerek leírása és megoldása a Mathematica-ban különbözik a különböző típusú impulzusok esetén, ezért az egyes eseteket külön vizsgáljuk. Az előző fejezetben a megjelenítéshez használt bonyolultabb programoknak csak az eredményét mutatjuk.

Ebben a részben az

x'=f(t,x), x?R^n, t?t_i x(t_i+0)=I_i(x(t_i–0)) x ' = f ? ( t , x ) , x ? R n , t ? t i x ? ( t i + 0 ) = I i ( x ? ( t i - 0 ) ) (10.3.1)

impulzív rendszerekre alkalmazzuk a Ljapunov módszert. A rendszerben levő függvényekre a szokásos feltételek teljesülését követeljük meg.

A módszer lépései: egy aszimptotikusan stabilis rendszer

A Ljapunov módszer lépéseit az alábbi impulzívan perturbált lineáris rendszerre alkalmazzuk:

x^'=y–ax, y^'=–x, a///>///0, t?t_i, x(t_i+0)=x^3(t_i–0), y(t_i+0)=y^2(t_i–0), x ' = y - a ? x , y ' = - x , a ///>/// 0 , t ? t i , x ? ( t i + 0 ) = x 3 ? ( t i - 0 ) , y ? ( t i + 0 ) = y 2 ? ( t i - 0 ) , (10.3.2)

ahol t_i=i

t i = i . Ljapunov függvényként a

V(x,y)=x^2+y^2
V ? ( x , y ) = x 2 + y 2

függvényt használjuk. A megoldásokat valamely V(x,y)=V_0?1

V ? ( x , y ) = V 0 ? 1 szintvonalból indítjuk (körvonalak), mivel az impulzusok x,y///<///1 x , y ///</// 1 esetén csökkentik az egyes koordinátákat.

  • A rendszer megadása

xyvar={x,y}; xydot={y–ax,–x};eqnparm={a›1};

xyvar = { x , y } ; xydot = { y - a ? x , - x } ; eqnparm = { a 1 } ;

T=N[1.];Imax=50; tn=Table[nT,{n,1,Imax}];

T = N [ 1. ] ; Imax = 50 ; tn = Table [ n ? T , { n , 1 , Imax } ] ;

beta={3,2};

beta = { 3 , 2 } ;

Impulse[n_,tn_List,xn_List]:=xn^(beta);

Impulse [ n_ , tn_List , xn_List ] := xn beta ;

t0=0;t1=6;dt=1;

t0 = 0 ; t1 = 6 ; dt = 1 ;

x1=y1=–1; x2=y2=1;

x1 = y1 = - 1 ; x2 = y2 = 1 ;

  • A Ljapunov függvény megadása és tulajdonságai

V[x_,y_]:=x^2+y^2;

V [ x_ , y_ ] := x 2 + y 2 ;

V(x,y)

V ? ( x , y ) deriváltja a differenciálegyenlet megoldásai mentén nempozitív:

DV=Simplify[Grad[V[x,y],xyvar].xydot]/.eqnparm

DV = Simplify [ Grad [ V [ x , y ] , xyvar ] . xydot ] /. eqnparm

–2x^2

- 2 ? x 2

A t_k

t k pillanatokbeli változás vizsgálatához elég egyetlen t_k t k -t tekinteni, mivel az impulzusok azonosak.

VJump=Simplify[V[Impulse[1,tn,{x,y}][[1]],Impulse[1,tn,{x,y}][[2]]]–V[x,y]]

VJump = Simplify [ V [ Impulse [ 1 , tn , { x , y } ] [ 1 ] , Impulse [ 1 , tn , { x , y } ] [ 2 ] ] - V [ x , y ] ]

–x^2+x^6–y^2+y^4

- x 2 + x 6 - y 2 + y 4

Plot3D[VJump,{x,x1,x2},{y,y1,y2},BoxRatios›{1,1,0.5},AxesLabel›{x,y,"Vjump"}];

Plot3D [ VJump , { x , x1 , x2 } , { y , y1 , y2 } , BoxRatios { 1 , 1 , 0.5 } , AxesLabel { x , y , Vjump } ] ;

Látható, hogy V ugrása negatív definit az origó közelében, tehát kielégíti az aszimptotikus stabilitási kritériumot (10.1.1 tétel). Ugyanakkor az aszimptotikus stabilitás nem globális, mert a V ugrása pozitív definit, ha |x|,|y|///>///1

| x | , | y | ///>/// 1 .

  • A V(x,y) függvény szintvonalai és a differenciálegyenlet vektormezője E

    E

A vektormezőt és a szintvonalakat az előző fejezetben látottak alapján rajzolhatjuk meg. Ábrázoljuk a V(x,y)=0.2,0.5,1

V ? ( x , y ) = 0.2 , 0.5 , 1 szintvonalakat:

Jól látható, hogy a vektorok a szintvonalakat kívülről befelé metszik, kivéve ha x=0

x = 0 , ahol a vektorok érintik őket. Ábrázoljuk a szintvonalakból induló vektorokat is.

  • A V(x,y) függvény szintvonalai és az impulzusok E

    E

A 4.4. fejezetben vázoltak szerint a megoldások t_k

t k pillanatokban való ugrását a fázistérben a vektormezőhöz hasonlóan ábrázolhatjuk. Ekkor a t_k t k pillanathoz tartozó impulzusmező: I_k({x,y})–{x,y} I k ( { x , y } ) - { x , y } . Jelen esetben az impulzusok minden t_k t k esetén azonosak, ezért elegendő egynek az ábrázolása. Megjegyezzük, hogy nemautonóm esetben érdemes t_k t k szerinti animációt készíteni, vagy a PlotVectorField3D utasítást használni a {0, I_k({x,y})–{x,y} I k ( { x , y } ) - { x , y } } vektormezőre a {t_k}×R^2 { t k } × R 2 halmazon (lásd ismét a 4.4. fejezetet).

level={0.2,0.5,1.};

level = { 0.2 , 0.5 , 1. } ;

pV=ContourPlot[V[x,y],{x,x1,x2},{y,y1,y2}, Contours›level,ContourShading›False,PlotPoints›90];

pV = ContourPlot [ V [ x , y ] , { x , x1 , x2 } , { y , y1 , y2 } , Contours level , ContourShading False , PlotPoints 90 ] ;

plfield=PlotVectorField[Impulse[1,tn,xyvar]–xyvar,{x,x1,x2},{y,y1,y2},Axes›True,ScaleFactor›None];

plfield = PlotVectorField [ Impulse [ 1 , tn , xyvar ] - xyvar , { x , x1 , x2 } , { y , y1 , y2 } , Axes True , ScaleFactor None ] ;

Show[plfield,pV];

Show [ plfield , pV ] ;

Jól látható, hogy a vektorok a szintvonalakat kívülről befelé metszik. A differenciálegyenlethez hasonlóan érdemes a szintvonalakból induló impulzusvektorokat is ábrázolni. Ismét hangsúlyozzuk, hogy a vektorok nem csak irányt, hanem tényleges ugrást jelentenek, ezért a ScaleFactor›None beállítás szükséges. Az egész vektornak a szintvonal belsejében kell maradni, ha stabilitást várunk.

pV2=Table[ContourFieldPlot2D[V[x,y]–level[[i]],Impulse[1,tn,xyvar]–xyvar,{x,x1,x2},{y,y1,y2}, {{PlotPoints›10},{ScaleFactor›None},{AspectRatio›Automatic,PlotRange›{{x1,x2},{y1,y2}}}}],{i,1,Length[level]}];

pV2 = Table [ ContourFieldPlot2D [ V [ x , y ] - level [ i ] , Impulse [ 1 , tn , xyvar ] - xyvar , { x , x1 , x2 } , { y , y1 , y2 } , { { PlotPoints 10 } , { ScaleFactor None } , { AspectRatio Automatic , PlotRange { { x1 , x2 } , { y1 , y2 } } } } ] , { i , 1 , Length [ level ] } ] ;

Show[GraphicsArray[pV2]];

Show [ GraphicsArray [ pV2 ] ] ;

  • A rendszer megoldása

A rendszert a V(x,y)=V_0=1

V ? ( x , y ) = V 0 = 1 körvonal pontjaiban oldjuk meg:

Icond=Table[N[{Cos[u],Sin[u]},2],{u,0,2?,(?/4)}];

Icond = Table [ N [ { Cos [ u ] , Sin [ u ] } , 2 ] , { u , 0 , 2 ? ? , ? 4 } ] ;

Traj[t_]=IDESolve[xydot/.eqnparm,xyvar,tn,Impulse, Icond,{t,t0,t1}];

Traj [ t_ ] = IDESolve [ xydot /. ? eqnparm , xyvar , tn , Impulse , Icond , { t , t0 , t1 } ] ;

  • A Ljapunov függvény változása a megoldások mentén

Plot[Evaluate[(V[#1[[1]],#1[[2]]]///&///)/@Traj[t]],{t,t0,t1}, PlotRange›All];

Plot [ Evaluate [ ( V [ #1 [ 1 ] , #1 [ 2 ] ] ///&/// ) /@ Traj [ t ] ] , { t , t0 , t1 } , PlotRange All ] ;

  • A megoldások és a Ljapunov függvény ábrázolása E

    E

Helytakarékosság miatt az alábbi utasítás eredményeként kapott grafikonok közül nyomtatásban csak két jellemző megoldást láthatunk.

SolPlot[Traj[t]/.{u_,v_}›{u,v,V[u,v]/.eqnparm},{t,t0,t1},{x,y,V},PlotRange›All];

SolPlot [ Traj [ t ] /. { u_ , v_ } { u , v , V [ u , v ] /. eqnparm } , { t , t0 , t1 } , { x , y , V } , PlotRange All ] ;

  • A rendszer trajektóriái

A 2D fázistérben együtt ábrázoljuk a V függvény szintvonalait és a megoldások trajektóriáit. A trajektóriák nemautonóm rendszer esetén is informatívak.

p0=PhasePlotBW[Traj[t],{t,t0,t1},AxesLabel›{x,y}, PlotStyle›{Thickness[0.01]}];

p0 = PhasePlotBW [ Traj [ t ] , { t , t0 , t1 } , AxesLabel { x , y } , PlotStyle { Thickness [ 0.01 ] } ] ;

Show[pV,p0,PlotRange›All,AspectRatio›Automatic];

Show [ pV , p0 , PlotRange All , AspectRatio Automatic ] ;

  • Fáziskép animáció 3D-ben E

    E

pV3d=PlotContourLine3D[V[x,y],{x,x1,x2},{y,y1,y2}, {t,t0,t1,dt},Contours›level];

pV3d = PlotContourLine3D [ V [ x , y ] , { x , x1 , x2 } , { y , y1 , y2 } , { t , t0 , t1 , dt } , Contours level ] ;

tnn=Prepend[Select[tn,Function[u,t0?u?t1]],t0];

tnn = Prepend [ Select [ tn , Function [ u , t0 ? u ? t1 ] ] , t0 ] ;

phvol=PhaseVolImpBW[Traj[t],{t,tnn}, {Thickness[0.015],Hue[0,0,0]}];

phvol = PhaseVolImpBW [ Traj [ t ] , { t , tnn } , { Thickness [ 0.015 ] , Hue [ 0 , 0 , 0 ] } ] ;

Show[pV3d,phvol,PlotRange›All,Axes›True];

Show [ pV3d , phvol , PlotRange All , Axes True ] ;

Még egy példa

10.3.1. Példa. Egy instabilis rendszer

Módosítsuk egy kicsit az előbb vizsgált rendszert:

x^'=y, y^'=–x^3, ?///>///0, t?t_i, x(t_i+0)=|x(t_i–0)|^(1/3), y(t_i+0)=|y(t_i–0)|^2 x ' = y , y ' = - x 3 , ? ///>/// 0 , t ? t i , x ? ( t i + 0 ) = | x ? ( t i - 0 ) | 1 / 3 , y ? ( t i + 0 ) = | y ? ( t i - 0 ) | 2 (10.3.3)

ahol t_i=i

t i = i . Ljapunov függvényként most tekintsük a

V(x,y)=(x^4/4)+(y^2/2)
V ? ( x , y ) = x 4 4 + y 2 2

függvényt (lásd még a 9.2. és 13.1. fejezeteket). A megoldásokat az egységkörvonal pontjaiból indítjuk. Vegyük észre, hogy az impulzusok x,y///<///1

x , y ///</// 1 esetén csökkentik az y koordinátát és növelik az x-et.

  • A rendszer megadása

xyvar={x,y}; xydot={y,–x^3}; eqnparm={a›1};

xyvar = { x , y } ; xydot = { y , - x 3 } ; eqnparm = { a 1 } ;

T=N[1.];Imax=50; tn=Table[nT,{n,1,Imax}];

T = N [ 1. ] ; Imax = 50 ; tn = Table [ n ? T , { n , 1 , Imax } ] ;

beta={1/3,2};

beta = { 1 / 3 , 2 } ;

Impulse[n_,tn_List,xn_List]:=Abs[xn]^(beta);

Impulse [ n_ , tn_List , xn_List ] := Abs [ xn ] beta ;

t0=0;t1=6;dt=1;

t0 = 0 ; t1 = 6 ; dt = 1 ;

x1=y1=–1.2; x2=y2=1.2;

x1 = y1 = - 1.2 ; x2 = y2 = 1.2 ;

Icond=Table[N[{Cos[u],Sin[u]},2],{u,0,2?,(?/8)}];

Icond = Table [ N [ { Cos [ u ] , Sin [ u ] } , 2 ] , { u , 0 , 2 ? ? , ? 8 } ] ;

  • A Ljapunov függvény megadása és tulajdonságai

V[x_,y_]:=(y^2/2)+(x^4/4);

V [ x_ , y_ ] := y 2 2 + x 4 4 ;

V(x, y)

V ? ( x , y ) pozitív definit. Deriváltja a differenciálegyenlet megoldásai mentén:

DV=Simplify[Grad[V[x,y],xyvar].xydot]/.eqnparm

DV = Simplify [ Grad [ V [ x , y ] , xyvar ] . xydot ] /. eqnparm

0

0

Ez az eredmény várható volt, mivel a Ljapunov függvény a konzervatív differenciálegyenlet teljes energiája. V(x,y)

V ? ( x , y ) változása a t_i t i pillanatokban az alábbi:

Vjump=V[Impulse[1,tn,{x,y}][[1]],Impulse[1,tn,{x,y}][[2]]]–V[x,y]

Vjump = V [ Impulse [ 1 , tn , { x , y } ] [ 1 ] , Impulse [ 1 , tn , { x , y } ] [ 2 ] ] - V [ x , y ]

–(x^4/4)–(y^2/2)+(1/4)Abs[x]^(4/3)+(Abs[y]^4/2)

- x 4 4 - y 2 2 + 1 4 ? Abs [ x ] 4 / 3 + Abs [ y ] 4 2

Plot3D[Vjump,{x,x1,x2},{y,y1,y2},BoxRatios›{1,1,0.5},AxesLabel›{x,y,"Vjump"}];

Plot3D [ Vjump , { x , x1 , x2 } , { y , y1 , y2 } , BoxRatios { 1 , 1 , 0.5 } , AxesLabel { x , y , Vjump } ] ;

Látható, hogy V ugrásának az origóban nyeregpontja van, növekszik x-ben és csökken y-ban. Tehát V teljesíti az instabilitásra vonatkozó 10.1.2. tétel feltételeit.

  • A V(x,y) függvény szintvonalai és a differenciálegyenlet vektormezője E

    E

Ábrázoljuk a vektormező adott szintvonalakból induló elemeit:

level={0.5,0.2,0.05};

level = { 0.5 , 0.2 , 0.05 } ;

  • A V(x,y) függvény szintvonalai és az impulzusok E

    E

Az átláthatóság kedvéért az egyes szintvonalakból induló impulzusvektorokat külön jelenítjük meg:

  • A megoldások és a Ljapunov-függvény ábrázolása E

    E

  • A megoldások trajektóriái

A 2D fázistérben ábrázoljuk a V függvény szintvonalait és a megoldások trajektóriáit.

  • Fázisképek 3D-ben

Feladatok, kísérletek

10.3.1. Kísérlet. Stabilizálás

A (10.3.2) aszimptotikusan stabilis rendszerben változtassuk meg a differenciálegyenletben az a konstans előjelét. Ekkor a differenciálegyenlet zérómegoldása instabilis lesz. Vizsgáljuk meg, milyen impulzus képes ezt stabilizálni.

10.3.2. Kísérlet. Az instabilis rendszerről

Láttuk, hogy a (10.3.10) rendszer zérómegoldása instabilis. A vizsgálatok azt sejtetik, hogy a megoldások az {1,0}

{ 1 , 0 } ponthoz közelednek. Igazoljuk ezt a sejtést. Használjuk a V ugrásának negatív definit voltát.