Periodický neharmonický ustálený stav

Nyní určeme přenos kompenzovaného napěťového děliče (viz. obrázek) a vypočtěme odezvu na vstupní obdélníkový průběh.

[Maple Bitmap]   

Zvolme kmitočet obdélníkového průběhu.

>    f:=1000;

f := 1000

Nejprve je nutné určit Fourierův rozvoj obdélníkového průběhu, viz. také 4. přednášku.

Definice výrazu pro obdélníkový průběh, posunutý o Pi/4 .  

>    v_obd:=signum(cos(2*Pi*f*t));

v_obd := signum(cos(2000*Pi*t))

Nejprve určíme obecné vztahy pro oba koeficienty. Je zřejmé, že výsledná řada nebude obsahovat sinové složky.

>    a_obd:=8/T*int(1*cos(k*2*Pi/T*t), t=0..T/4 );

a_obd := 4*sin(1/2*k*Pi)/k/Pi

Vypsání prvních deseti koeficientů. Je evidentní, že pro sudé násobky základní harmonické jsou koeficienty nulové.

>    a_obd_k:=seq(eval(a_obd),k=1..10);

a_obd_k := 4/Pi, 0, -4/3/Pi, 0, 4/5/Pi, 0, -4/7/Pi, 0, 4/9/Pi, 0

>    f_obd:=(t,n)->sum(a_obd*cos(2*Pi*k*f*t),k=1..n);

>    plot([v_obd,f_obd(t,200)],t=0..1.5e-3,thickness=[1,2],numpoints=500,color=[blue,red]);

f_obd := proc (t, n) options operator, arrow; sum(a_obd*cos(2*Pi*k*f*t),k = 1 .. n) end proc

[Maple Plot]

Zadání topologie obvodu.

>    pnus:=" RC clanek
V 1 0 AC
C1 1 2
C2 2 0 200p
R1 1 2 900k
R2 2 0 100k
.end":

Analýza a výpočet přenosu jednak pro kompenzovaný (přenos je nezávislý na kmitočtu), jednak pro nedokompenzovaný ( tau[1] < tau[2] ) a překompenzovaný dělič.

>    napeti_pnus:=PraCAn(pnus, tf, SAVE=nodes);

>    P0:=simplify(subs(C1=200e-12/9,subs(napeti_pnus,v("2")/V)));

>    P1:=simplify(subs(C1=200e-12/12,subs(napeti_pnus,v("2")/V)));

>    P2:=simplify(subs(C1=200e-12/7,subs(napeti_pnus,v("2")/V)));

napeti_pnus := {v(

P0 := .1000000000

P1 := .9090909091e-2*(.1111111111e15+1666666667.*s)/(196969697.*s+.1010101010e14)

P2 := .5000000000e-1*(.1111111111e15+2857142857.*s)/(1142857143.*s+.5555555555e14)

Výpočet modulů a fází přenosů pro jednotlivé harmonické.

>    out1_m:=a_obd*evalc(abs(subs(s=I*2*Pi*k*f,P1))):

>    out2_m:=a_obd*evalc(abs(subs(s=I*2*Pi*k*f,P2))):

>    out1_phi:=evalc(argument(subs(s=I*2*Pi*k*f,P1))):

>    out2_phi:=evalc(argument(subs(s=I*2*Pi*k*f,P2))):

Vykreslení výstupního průběhu pro oba případy - nedokokompenzovaného a kompenzovaného přenosu (amlituda vstupního průběhu je 1).

>    f_out1:=(t,n)->sum(out1_m*cos(2*Pi*k*f*t+out1_phi),k=1..n);

>    f_out2:=(t,n)->sum(out2_m*cos(2*Pi*k*f*t+out2_phi),k=1..n);

>    ted:= time():

>    plot([f_out1(t,200),f_out2(t,200)],t=0..1.5e-3,thickness=2,numpoints=500,color=[red,blue]);

>    time() - ted;

f_out1 := proc (t, n) options operator, arrow; sum(out1_m*cos(2*Pi*k*f*t+out1_phi),k = 1 .. n) end proc

f_out2 := proc (t, n) options operator, arrow; sum(out2_m*cos(2*Pi*k*f*t+out2_phi),k = 1 .. n) end proc

[Maple Plot]

.687

Je pochopitelné, že výpočet je numericky náročný (výše zobrazená hodnota je čas potřebný pro výpočet). Navíc je výsledek zatížen chybou díky konečnému počtu uvažovaných harmonických ("zákmity"). Časový průběh náběžné (případně sestupné) hrany průběhu lze jednoduše vypočítat pomocí Laplaceovy transformace (odezva na jednotkový skok).  

>    odezva1:=inttrans[invlaplace](P1/s,s,t)*Heaviside(t);

>    odezva2:=inttrans[invlaplace](P2/s,s,t)*Heaviside(t);

odezva1 := (-.2307692307e-1*exp(-51282.05127*t)+.1000000000)*Heaviside(t)

odezva2 := (.2499999998e-1*exp(-48611.11110*t)+.1000000000)*Heaviside(t)

Je evidentní, že dostáváme shodný výsledek s neporovnatelně menšími nároky na výpočet.

>    plot([odezva1,odezva2],t=-1e-4..1e-3,color=[red,blue],thickness=2);

[Maple Plot]