makeh.mws

syntfil[MakeH] - výpočet přenosových funkcí pasivních a aktivních struktur filtrů

Calling sequence:

      MakeH(blocks, var);

 

Parameters:

      blocks   - struktura LC filtru, kaskádních parametrů filtru nebo struktura ARC filtru  

                                (výstup z funkcí   DroppNLP , ElemsXX ,   MakeRealL , NLP2XX  a funkcí ARCSynt , ARCSyntXX , ARCRoundR ,

                                kde XX označuje typ filtru, tj. LP , HP , BP  ( BP2 , případně BPm  a BPm2  pro LC filtry) nebo BS  ( BSm )

      var      - (nepovinný pro struktury LC filtrů) symbol napěťového ( V ) nebo výkonového ( P ) přenosu pro pro struktury LC filtrů

                             - symbol proměnné výsledného přenosu (symbol Laplaceova operátoru)                      

Description:

Info level:

Změnou proměnné   infolevel[syntfil]   dostanete podrobnější výsledek.

infolevel[syntfil] =

      3  - vypsání tytpu přenosu (výkonovvý nebo napěťový) pro struktury LC filtrů.

Example:

>    with(syntfil):

`Syntfil version 1.53 loaded`

`You can set infolevel[syntfil] variable to 2..5 to get more detailed results!`

>    G,Phi,zeros:=Cauer(3,1.2,3,p):

>    elems_NLP:=DroppNLP('common',1,front,T,G,Phi,zeros);

elems_NLP := TABLE([1 = TABLE([Z = p*L1, elements = {L1 = 2.478109811}, orientation = direct]), 2 = TABLE([Z = p*L1+1/(p*C1), elements = {L1 = 1.468327634, C1 = .4007060810}, orientation = shunt]), 3 =...
elems_NLP := TABLE([1 = TABLE([Z = p*L1, elements = {L1 = 2.478109811}, orientation = direct]), 2 = TABLE([Z = p*L1+1/(p*C1), elements = {L1 = 1.468327634, C1 = .4007060810}, orientation = shunt]), 3 =...
elems_NLP := TABLE([1 = TABLE([Z = p*L1, elements = {L1 = 2.478109811}, orientation = direct]), 2 = TABLE([Z = p*L1+1/(p*C1), elements = {L1 = 1.468327634, C1 = .4007060810}, orientation = shunt]), 3 =...
elems_NLP := TABLE([1 = TABLE([Z = p*L1, elements = {L1 = 2.478109811}, orientation = direct]), 2 = TABLE([Z = p*L1+1/(p*C1), elements = {L1 = 1.468327634, C1 = .4007060810}, orientation = shunt]), 3 =...
elems_NLP := TABLE([1 = TABLE([Z = p*L1, elements = {L1 = 2.478109811}, orientation = direct]), 2 = TABLE([Z = p*L1+1/(p*C1), elements = {L1 = 1.468327634, C1 = .4007060810}, orientation = shunt]), 3 =...

>    infolevel[syntfil]:=3:

>    MakeH(elems_NLP);

syntfil/MakeH_LC:

Voltage transfer:false

(1.000000000*p^2+1.699617110)/(4.569113410*p^3+2.687708453*p^2+4.552225750*p+1.699617111)

>    MakeH(elems_NLP,V);

syntfil/MakeH_LC:

Voltage transfer:true

(1.000000000*p^2+1.699617110)/(9.137910300*p^3+5.375230719*p^2+9.104136149*p+3.399116482)

>    infolevel[syntfil]:=1:

>    elems_NLP:=DroppNLP('short',1,rear,T,G,Phi,zeros):

>    MakeH(elems_NLP,P);

Warning, Type of transfer function was changed from Power to Voltage

(1.000000000*p^2+1.699617110)/(4.569272288*p^3+2.687708169*p^2+4.552360294*p+1.699617110)

>    elems_LP:=MakeRealL(ElemsLP(elems_NLP,100,1000),50,1000);

elems_LP := TABLE([1 = TABLE([Z = Rs1+p*L1, elements = {L1 = .2479825728e-1, Rs1 = 3.116240916}, orientation = direct]), 2 = TABLE([Z = Rs1+p*L1+1/(p*C1), elements = {C1 = .1014297511e-5, L1 = .1469345...
elems_LP := TABLE([1 = TABLE([Z = Rs1+p*L1, elements = {L1 = .2479825728e-1, Rs1 = 3.116240916}, orientation = direct]), 2 = TABLE([Z = Rs1+p*L1+1/(p*C1), elements = {C1 = .1014297511e-5, L1 = .1469345...
elems_LP := TABLE([1 = TABLE([Z = Rs1+p*L1, elements = {L1 = .2479825728e-1, Rs1 = 3.116240916}, orientation = direct]), 2 = TABLE([Z = Rs1+p*L1+1/(p*C1), elements = {C1 = .1014297511e-5, L1 = .1469345...
elems_LP := TABLE([1 = TABLE([Z = Rs1+p*L1, elements = {L1 = .2479825728e-1, Rs1 = 3.116240916}, orientation = direct]), 2 = TABLE([Z = Rs1+p*L1+1/(p*C1), elements = {C1 = .1014297511e-5, L1 = .1469345...
elems_LP := TABLE([1 = TABLE([Z = Rs1+p*L1, elements = {L1 = .2479825728e-1, Rs1 = 3.116240916}, orientation = direct]), 2 = TABLE([Z = Rs1+p*L1+1/(p*C1), elements = {C1 = .1014297511e-5, L1 = .1469345...

>    MakeH(elems_LP);

(1.000000000*p^2+125.6637062*p+67098194.09)/(.7272222705e-3*p^3+2.870479062*p^2+28952.55454*p+70692593.71)

 

>    Gc,poles:=ButterworthPoles(3,1.2,3):

>    lp:=NLP2LP(1000,Gc,poles);

lp := TABLE([1 = TABLE([omega_0 = 6288.160359, Q = 1.000000002]), omega0 = 6288.160359, H0 = 1.000000000, type = cascade_LP])

>    MakeH(lp,p);

.2486399016e12/(p+6288.160359)/(p^2+6288.160346*p+39540960.70)

>    ARC_lp:=ARCSynt(lp,table(['C1'=33e-9, 'h0'=1]));

ARC_lp := TABLE([1 = TABLE([ft = infinity, R11 = 9638.122642, R2 = 9638.122642, C1 = .33e-7, R12 = infinity, type = LP1, C2 = .8249999968e-8, R = infinity, A0 = infinity, R3 = 0]), 2 = TABLE([R1 = 4819...
ARC_lp := TABLE([1 = TABLE([ft = infinity, R11 = 9638.122642, R2 = 9638.122642, C1 = .33e-7, R12 = infinity, type = LP1, C2 = .8249999968e-8, R = infinity, A0 = infinity, R3 = 0]), 2 = TABLE([R1 = 4819...
ARC_lp := TABLE([1 = TABLE([ft = infinity, R11 = 9638.122642, R2 = 9638.122642, C1 = .33e-7, R12 = infinity, type = LP1, C2 = .8249999968e-8, R = infinity, A0 = infinity, R3 = 0]), 2 = TABLE([R1 = 4819...
ARC_lp := TABLE([1 = TABLE([ft = infinity, R11 = 9638.122642, R2 = 9638.122642, C1 = .33e-7, R12 = infinity, type = LP1, C2 = .8249999968e-8, R = infinity, A0 = infinity, R3 = 0]), 2 = TABLE([R1 = 4819...
ARC_lp := TABLE([1 = TABLE([ft = infinity, R11 = 9638.122642, R2 = 9638.122642, C1 = .33e-7, R12 = infinity, type = LP1, C2 = .8249999968e-8, R = infinity, A0 = infinity, R3 = 0]), 2 = TABLE([R1 = 4819...

>    MakeH(ARC_lp,p);

.1037546457e-3/(.1037546457e-3+.1649999994e-7*p+.2623978879e-11*p^2)/(1+.1590290233e-3*p)

>    ARC_lp_real:=ARCRoundR(ARCSynt(lp,table(['C1'=33e-9, 'h0'=1, 'A0'=1e5, 'ft'=1e6])),48);

ARC_lp_real := TABLE([1 = TABLE([ft = .1e7, R11 = .953e4, R2 = .953e4, C1 = .33e-7, R12 = infinity, type = LP1, C2 = .8249999968e-8, R = infinity, A0 = .1e6, R3 = 0]), 2 = TABLE([R1 = .487e4, C1 = .33e...
ARC_lp_real := TABLE([1 = TABLE([ft = .1e7, R11 = .953e4, R2 = .953e4, C1 = .33e-7, R12 = infinity, type = LP1, C2 = .8249999968e-8, R = infinity, A0 = .1e6, R3 = 0]), 2 = TABLE([R1 = .487e4, C1 = .33e...
ARC_lp_real := TABLE([1 = TABLE([ft = .1e7, R11 = .953e4, R2 = .953e4, C1 = .33e-7, R12 = infinity, type = LP1, C2 = .8249999968e-8, R = infinity, A0 = .1e6, R3 = 0]), 2 = TABLE([R1 = .487e4, C1 = .33e...
ARC_lp_real := TABLE([1 = TABLE([ft = .1e7, R11 = .953e4, R2 = .953e4, C1 = .33e-7, R12 = infinity, type = LP1, C2 = .8249999968e-8, R = infinity, A0 = .1e6, R3 = 0]), 2 = TABLE([R1 = .487e4, C1 = .33e...
ARC_lp_real := TABLE([1 = TABLE([ft = .1e7, R11 = .953e4, R2 = .953e4, C1 = .33e-7, R12 = infinity, type = LP1, C2 = .8249999968e-8, R = infinity, A0 = .1e6, R3 = 0]), 2 = TABLE([R1 = .487e4, C1 = .33e...

>    MakeH(ARC_lp_real,p);

.1049317943e-3/(.1049328436e-3+.1651719535e-7*p+.2602446605e-11*p^2+.4129342621e-18*p^3)/(1+.16071e-3*p)

Lze počítat i přenos jednotlivých bloků.

>    MakeH(ARC_lp_real[1],p);

>    MakeH(ARC_lp_real[2],p);

.1049317943e-3/(.1049328436e-3+.1651719535e-7*p+.2602446605e-11*p^2+.4129342621e-18*p^3)

1/(1+.16071e-3*p)

>    ARC_lp_g:=ARCBlock(lp,1):

>    ARC_lp_1:=ARCSyntLP(ARC_lp_g[1],table(['C1'=33e-9, 'h0'=1]));

ARC_lp_1 := TABLE([ft = infinity, R11 = 9638.122642, R2 = 9638.122642, C1 = .33e-7, R12 = infinity, type = LP1, C2 = .8249999968e-8, R = infinity, A0 = infinity, R3 = 0])
ARC_lp_1 := TABLE([ft = infinity, R11 = 9638.122642, R2 = 9638.122642, C1 = .33e-7, R12 = infinity, type = LP1, C2 = .8249999968e-8, R = infinity, A0 = infinity, R3 = 0])

>    MakeH(ARC_lp_1,p);

.1037546457e-3/(.1037546457e-3+.1649999994e-7*p+.2623978879e-11*p^2)

Přenos samostatně navržrného bloku musí (při stejných vstupních paramtrech) souhlasit s přenosem odpovídajícího bloku, navrženého výše při syntéze zapojení celého filtru.

>    MakeH(ARC_lp[1],p);

.1037546457e-3/(.1037546457e-3+.1649999994e-7*p+.2623978879e-11*p^2)

See also:

DroppNLP, ElemsLP, ElemsHP, ElemsBP, ElemsBP2, ElemsBPm, ElemsBP2m, ElemsBS, ElemsBSm, MakeRealL, NLP2LP, NLP2HP, NLP2BP, NLP2BP2, NLP2BS, ARCSynt, ARCSyntLP, ARCSyntHP, ARCSyntBP, ARCSyntBS, ARCRoundR

MagnitudeH, MagnitudeHdB, PhaseH, GroupDelayH