Legatura dintre raspunsul de regim liber al circuitelor liniare si pozitia polilor functiei de transfer

Universitatea Tehnica "Gh. Asachi", Iasi, Facultatea de Electronica si Telecomunicatii

Laboratorul de Semnale, Circuite si Sisteme

http://scs4.etc.tuiasi.ro

Breviar teoretic

Scopul lucrarii:

Determinarea legaturii intre pozitia polilor si forma functiei pondere (raspuns la impuls) h(t) pentru sisteme simple cu: pol real, pol real dublu sau doi poli complex conjugati.

Rezumat teoretic:

Consideram un liniar descris de functia de transfer H(s) , avand originalul h(t) (functia pondere). Vom nota cu e(t) excitatia aplicata circuitului si cu y(t) raspunsului sistemului considerat la aceasta excitatie. De asemenea, vom nota cu E(s) transformata Laplace a excitatiei e(t) si cu Y(s) transformata Laplace a raspunsului y(t) .

Pentru determinarea functiei pondere se calculeaza transformata Laplace inversa a functiei de transfer H(s) si se reprezinta grafic. Se urmareste plasarea polului respectiv a polilor complex conjugati in: semiplanul sting (domeniu de stabilitate), semiplanul drept (domeniu de instabilitate) sau la limita de stabilitate.

Mod de lucru

> restart:

> libname:="../SCSlib",libname:

> with(plottools):

> L:=table([dir=inttrans[laplace],inv=inttrans[invlaplace]]):

> assume(_k,posint):assume(_alpha,positive):assume(_omega,positive):

Exemple

Pol simplu pe axa reala

Functia de transfer este forma

> H := 1/(s-alpha);

H := 1/(s-alpha)

Functia pondere este:

> h := simplify(convert(subs([_k=k,_alpha=alpha,_omega=omega],L[inv](subs([k=_k,alpha=_alpha,omega=_omega],H),s,t)),exp))*Heaviside(t);

h := exp(alpha*t)*Heaviside(t)

Pozitia polilor analizati este:

> PZ[grafic](1/s/(s-1)/(s+1)/(s-2)/(s+2),s);PZ[numeric](1/s/(s-1)/(s+1)/(s-2)/(s+2),s);

[Maple Plot]

_rtable[98806640]

Cazul I.

Polul este in semiplanul stang (are valoare negativa). Sistemul este stabil. In acest caz functia pondere este marginita. Graficul functiei pondere sunt reprezentate mai jos pentru cazul particular alpha = -1 si alpha = -10 .

> plot(eval(h,alpha=-1),t=-0.1..2,view=[-0.1..2,0..1.2],labels=["t","h(t)"],title="Functia pondere pentru un pol simplu in -1", axes =box);

[Maple Plot]

> plot(eval(h,alpha=-2),t=-0.1..2,view=[-0.1..2,0..1.2],labels=["t","h(t)"],title="Functia pondere pentru un pol simplu in -2", axes =box);

[Maple Plot]

Cazul II.

Polul este in origine (are valoare nula). Sistemul este stabil. In acest caz functia pondere este marginita. Functiai pondere pentru cazul particular alpha = 0*1 este:

> plot(eval(h,alpha=0),t=-0.1..2,view=[-0.1..2,0..1.2],labels=["t","h(t)"],title="Functia pondere pentru un pol simplu in origine", axes =box);

[Maple Plot]

Cazul III.

Polul este in semiplanul drept (are valoare pozitiva). In acest caz sistemul este instabil. Functia pondere in acest caz este nemarginita. Graficul functiei pondere sunt reprezentate mai jos pentru cazul particular alpha = 1 si alpha = 2 .

> plot(eval(h,alpha=1),t=-0.1..2,view=[-0.1..2,0..10],labels=["t","h(t)"],title="Functia pondere pentru un pol simplu in 1", axes =box);

[Maple Plot]

> plot(eval(h,alpha=2),t=-0.1..2,view=[-0.1..2,0..10],labels=["t","h(t)"],title="Functia pondere pentru un pol simplu in 2", axes =box);

[Maple Plot]

Reprezentare dinamica:

Se considera variatia polului real simplu aflat pe axa reala in intervalul [-2, 2] in N puncte succesiv. Se urmareste modul de variatie al functiei pondere.

> N:=20:alphad:=[seq(2*i/N-2*(1-i/N),i=0..N)]:

> INTERFACE_PLOT(ANIMATE(seq([seq(op(PZ[grafic](eval(H,alpha=alphad[i]),s))[j],j=1..2)],i=1..nops(alphad))),AXESSTYLE(BOX));

[Maple Plot]

> INTERFACE_PLOT(ANIMATE(seq([op(plot(eval(h,alpha=alphad[i]),t=-0.1..0.5))[1]],i=1..nops(alphad))),AXESSTYLE(BOX));

[Maple Plot]

Pol multiplu pe axa reala

Functia de transfer este de forma

> H:=1/(s-alpha)^k;

H := 1/((s-alpha)^k)

Functia pondere este:

> h := convert(subs([_k=k,_alpha=alpha,_omega=omega],L[inv](subs([k=_k,alpha=_alpha,omega=_omega],H),s,t)),exp)*Heaviside(t);

h := exp(alpha*t)*t^(k-1)*Heaviside(t)/GAMMA(k)

Pozitia polilor este asemanatoare.

Cazul I.

Polii sunt in semiplanul stang. Sistemul este stabil. In acest functia pondere este marginita, viteza de scadere spre zero fiind data de ordinul de multiplicitate al polului. Functia pondere este reprezentata mai jos pentru cazul particular alpha = -1 si alpha = -2*1 cu k = 2 .

> plot(eval(h,[alpha=-1,k=2]),t=-0.1..5,view=[-0.1..5,0..0.5],labels=["t","h(t)"],title="Functia pondere pentru un pol dublu in -1", axes =box);

[Maple Plot]

> plot(eval(h,[alpha=-2,k=2]),t=-0.1..5,view=[-0.1..5,0..0.5],labels=["t","h(t)"],title="Functia pondere pentru un pol dublu in -2", axes =box);

[Maple Plot]

Cazul II.

Polii sunt in originine. Sistemul este stabil. In acest functia pondere este marginita, viteza de scadere spre zero fiind data de ordinul de multiplicitate al polului. Functia pondere este reprezentate mai jos pentru cazul particular alpha = 0*1 si k = 2 .

> plot(eval(h,[alpha=0,k=2]),t=-0.1..5,view=[-0.1..5,DEFAULT],labels=["t","h(t)"],title="Functia pondere pentru un pol dublu in origine", axes =box);

[Maple Plot]

Cazul III.

Polii sunt in semiplanul drept. Sistemul este instabil. Functia pondere este nemarginita, viteza de crestere spre infinit fiind data de ordinul de multiplicitate al polului. Functia pondere in acest caz sunt reprezentate mai jos pentru cazul particular alpha = 1 si alpha = 2 cu k = 2

> plot(eval(h,[alpha=1,k=2]),t=-0.1..5,view=[-0.1..5,DEFAULT],labels=["t","h(t)"],title="Functia pondere pentru un pol dublu in 1", axes =box);

[Maple Plot]

> plot(eval(h,[alpha=2,k=2]),t=-0.1..5,view=[-0.1..5,DEFAULT],labels=["t","h(t)"],title="Functia pondere pentru un pol dublu in 2", axes =box);

[Maple Plot]

Poli simpli complex conjugati

Functia de transfer este de forma:

> H:=omega/((s-alpha+I*omega)*(s-alpha-I*omega));

H := omega/((s-alpha+I*omega)*(s-alpha-I*omega))

Functia pondere este de forma:

> h := simplify(convert(subs([_k=k,_alpha=alpha,_omega=omega],L[inv](subs([k=_k,alpha=_alpha,omega=_omega],H),s,t)),sincos))*Heaviside(t);

h := exp(alpha*t)*sin(omega*t)*Heaviside(t)

Pozitia polilor analizati este:

> PZ[grafic](1/(s^2+10000)/(s^2+40000)/(s^2-2*s+10000)/(s^2+2*s+10000)/(s^2-2*s+40000)/(s^2+2*s+40000)/(s^2-4*s+10000)/(s^2+4*s+10000)/(s^2-4*s+40000)/(s^2+4*s+40000),s);

[Maple Plot]

Cazul I.

Polii sunt in semiplanul stang (au parte reala negativa). Sistemul este stabil. In acest caz functia pondere este marginita, viteza de scadere spre zero fiind data de valoarea partii reale a polilor. Functia pondere este reprezentata mai jos pentru cazul particular alpha = -1 si alpha = -2 iar omega = 100 si omega = 200 .

> plot([eval(h,[alpha=-1,omega = 100]),eval(h,[alpha=-1,omega = 200])],t=-0.1..2,view=[-0.1..1,DEFAULT],labels=["t","h(t)"],title="Functia pondere pentru poli complex conjugati cu parte reala -1", axes =box);

[Maple Plot]

> plot([eval(h,[alpha=-2,omega = 100]),eval(h,[alpha=-2,omega = 200])],t=-0.1..2,view=[-0.1..1,DEFAULT],labels=["t","h(t)"],title="Functia pondere pentru poli complex conjugati cu parte reala -2", axes =box);

[Maple Plot]

Cazul II.

Polii sunt pe axa imaginara. Sistemul este instabil. Functia pondere este de forma unui semnal armonic cu amplitudine constanta.Functia pondere este reprezentata mai jos pentru cazul particular alpha = 0*1 iar omega = 100 si omega = 200 .

> plot([eval(h,[alpha=0,omega = 100]),eval(h,[alpha=0,omega = 200])],t=-0.1..2,view=[-0.1..1,DEFAULT],labels=["t","h(t)"],title="Functia pondere pentru poli complex conjugati cu parte reala nula", axes =box);

[Maple Plot]

Cazul III.

Polii sunt in semiplanul drept. Sistemul este instabil. Functia pondere este de forma unui semnal armonic cu amplitudine crescatoare spre infinit, viteza de crestere fiind data de valoarea partii reale a polilor. Functia pondere este reprezentata mai jos pentru cazul particular alpha = 1 si alpha = 2 iar omega = 100 si omega = 200 .

> plot([eval(h,[alpha=1,omega = 100]),eval(h,[alpha=1,omega = 200])],t=-0.1..1,view=[-0.1..1,-5..5],labels=["t","h(t)"],title="Functia pondere pentru poli complex conjugati cu parte reala 1", axes =box);

[Maple Plot]

> plot([eval(h,[alpha=2,omega = 100]),eval(h,[alpha=2,omega = 200])],t=-0.1..2,numpoints = 500,view=[-0.1..1,-10..10],labels=["t","h(t)"],title="Functia pondere pentru poli complex conjugati cu parte reala 2", axes =box);

[Maple Plot]

Reprezentare dinamica:

Se considera variatia perechii de poli complex conjugati variind partea reala in intervalul [-2, 2] in N puncte succesiv, pastrind partea imaginara constanta si egala cu 100. Se urmareste modul de variatie al functiei pondere.

> N:=20:alphad:=[seq(4*i/N-2,i=0..N)]:

> INTERFACE_PLOT(ANIMATE(seq([seq(op(PZ[grafic](eval(H,[alpha=alphad[i],omega = 100]),s))[j],j=1..4)],i=1..nops(alphad))),AXESSTYLE(BOX),VIEW(-5..5,DEFAULT));

[Maple Plot]

> INTERFACE_PLOT(ANIMATE(seq([op(plot(eval(h,[alpha=alphad[i],omega = 100]),t=-0.1..1.0))[1]],i=1..nops(alphad))),AXESSTYLE(BOX));

[Maple Plot]

Se considera variatia perechii de poli complex conjugati variind partea imaginara in intervalul [100, 200] in N puncte succesiv, pastrind partea reala constanta si egala cu -2. Se urmareste modul de variatie al functiei pondere.

> N:=20:omegad:=[seq(100*i/N+100,i=0..N)]:

> INTERFACE_PLOT(ANIMATE(seq([seq(op(PZ[grafic](eval(H,[alpha=-2,omega = omegad[i]]),s))[j],j=1..4)],i=1..nops(omegad))),AXESSTYLE(BOX),VIEW(-5..5,DEFAULT));

[Maple Plot]

> INTERFACE_PLOT(ANIMATE(seq([op(plot(eval(h,[alpha=-2,omega = omegad[i]]),t=-0.1..1.0))[1]],i=1..nops(alphad))),AXESSTYLE(BOX));

[Maple Plot]

Poli multipli complex conjugati

Functia de transfer este de forma:

> H:=omega^2/((s-alpha+I*omega)*(s-alpha-I*omega))^2;

H := omega^2/((s-alpha+I*omega)^2*(s-alpha-I*omega)...

Functia pondere este de forma:

> h := convert(subs([_k=k,_alpha=alpha,_omega=omega],simplify(L[inv](subs([k=_k,alpha=_alpha,omega=_omega],H),s,t))),sincos)*Heaviside(t);

h := -1/2*exp(alpha*t)*(-sin(omega*t)+omega*t*cos(o...

Cazul II

Polii sunt in pe axa imaginara (au parte reala negativa). Sistemul este stabil. In acest caz functia pondere este marginita,viteza de scadere spre zero fiind data de ordinul de multiplicitate al polilor. Pozitia polilor functiei de transfer in planul complex si variatia functiei pondere sunt reprezentate mai jos pentru cazul particular alpha = 0 , omega = 100 si k = 2 .

> plot([eval(h,[alpha=0,omega = 100]),eval(h,[alpha=0,omega = 200])],t=-0.1..2,view=[-0.1..1,DEFAULT],labels=["t","h(t)"],title="Functia pondere pentru poli complex conjugati cu parte reala nula", axes =box);

[Maple Plot]

Intrebari

1. Care este legatura intre viteza de variatie a functiei pondere si pozitia polului real?

2. Care este legatura intre viteza de variatie a infasuratorii functiei pondere si pozitia polilori complex conjugati?

3. Pentru care din configuratiile poli-zerouri, functia pondere este marginita?