Question: Fourier Analysis of Piecewise Function

How do I extract harmonics and plot a spectrum from a piecewise function?
 

The function is "Ia" shown below near the bottom in the "Plot Line Current" section.


 

NULLNULL

NULL

Parm_List := [Erms = 70.7, L = 0.4e-2, alpha = .524, omega = 2*Pi*60, R = 5, Idc = 22.3, mu = .5490]

[Erms = 70.7, L = 0.4e-2, alpha = .524, omega = 120*Pi, R = 5, Idc = 22.3, mu = .5490]

(1)

NULL

NULL

Va := sqrt(2)*Vrms*sin(theta)Vmax =  RmsMS phase to neutral voltage

Vb := sqrt(2)*Vrms*sin(theta-2*Pi*(1/3))

Vc := sqrt(2)*Vrms*sin(theta+2*Pi*(1/3))

Vab := Va-Vb

Vbc := Vb-Vc

Vca := Vc-Va

NULL

com0 := rhs(simplify(solve({Vb = Vc, -Pi < theta and theta < 0}, theta, allsolutions))[1]) = -(1/2)*PiNULL

com1 := rhs(simplify(solve({Vc = Va, 0 < theta and theta < Pi}, theta, allsolutions))[1]) = (1/6)*PiNULL

com2 := rhs(simplify(solve({Vb = Vc, 0 < theta and theta < Pi}, theta, allsolutions))[1]) = (1/2)*PiNULL

com3 := rhs(simplify(solve({Va = Vb, 0 < theta and theta < Pi}, theta, allsolutions))[1]) = (5/6)*PiNULL

com4 := rhs(simplify(solve({Va = Vc, Pi < theta and theta < 2*Pi}, theta, allsolutions))[1]) = (7/6)*Pi 

com5 := rhs(simplify(solve({Vb = Vc, Pi < theta and theta < 2*Pi}, theta, allsolutions))[1]) = (3/2)*Pi 

com6 := rhs(simplify(solve({Va = Vb, Pi < theta and theta < 2*Pi}, theta, allsolutions))[1]) = (11/6)*PiNULL

NULL  NULL 

with(plots)

PlotVpn := plot(subs(Vrms = 100, [Va, Vb, Vc]), theta = -(1/2)*Pi .. 3*Pi)

PlotVpp := plot(subs(Vrms = 100, [Vab, Vbc, Vca]), theta = -(1/2)*Pi .. 3*Pi, linestyle = dot, thickness = 1)``

display({PlotVpn, PlotVpp})

 

 

 

 

NULL

NULL

 

plot(subs(Vrms = 100, [Va, Vb, Vc, Vab, Vbc, Vca]), theta = -(1/2)*Pi .. 3*Pi)

 

 

 

 

 

 

 

 

 

The  #1 diode is forward biased and switches on when Va>Vc (Va=Vc). The voltage VD will be equal to Va-Vb until diode #2 turns on when Vc< Vb. Then VD will equal Vc-Vc.

The switching angle for the diodes is given above. If phase control is used all commutation is delayed by the angle α.

NULL``

Without phase delay the average (DC) voltage applied to the laod is the average value of the 6 commutation periods over one cycle:

 

NULL

NULL

Van := sqrt(2)*Erms*sin(theta)Emax =  RmsMS phase to neutral voltage

Vbn := sqrt(2)*Erms*sin(theta-2*Pi*(1/3))

Vcn := sqrt(2)*Erms*sin(theta+2*Pi*(1/3))

NULL

   
Eq1 := Vdo = 6*(int(Van-Vbn, theta = com1 .. com2))/(2*Pi)

Vdo = 3*3^(1/2)*2^(1/2)*Erms/Pi

(2)

 

   

NULL

Eq2 := Vdc = 6*(int(Van-Vbn, theta = com1+alpha .. com2+alpha))/(2*Pi)

Vdc = 3*2^(1/2)*Erms*3^(1/2)*cos(alpha)/Pi

(3)

    

 

Commutation

The switching between diodes can not occur instantaneously because the supply circuit is inductive. Current can not change instantaneously in and inductive circuit.
The transfer of load current from the out-going phase to the incomming phase is accomplshed by a period of symultaneous conduction of the two adjacent diodes the creation of a circulating current between these two phases that resembles short circuit between the two phases.

The circulating current produces equal voltage drop with opposid polarities in each phase. In the out-going phase the drop adds to the soruce voltage and in the incomming phase the drop subtracts from the source voltage. Only the drop in the incomming phase effects the DC output voltage.

NULL

 

NULL

 

 

 

 

During commutation intervil com1 to com2 phases a and c are shorted while Id is transfered from phase c to phase a. During this time voltage Va-Vb minus the voltage drop in a phase caused by the commutation. This voltage drop is 1/2 the Vac voltage.   

`&Delta;e` := 1/2*(Van-Vcn)

(1/2)*2^(1/2)*Erms*sin(theta)-(1/2)*2^(1/2)*Erms*cos(theta+(1/6)*Pi)

(4)

and      Va=Vc at π/6

`&Delta;E__Avg` = 6*(int(`&Delta;e`, theta = (1/6)*Pi+alpha .. (1/6)*Pi+alpha+mu))/(2*Pi)

`&Delta;E__Avg` = 3*((1/2)*2^(1/2)*Erms*cos((1/6)*Pi+alpha)+(1/2)*2^(1/2)*Erms*sin((1/3)*Pi+alpha)-(1/2)*2^(1/2)*Erms*sin((1/3)*Pi+alpha+mu)-(1/2)*2^(1/2)*Erms*cos((1/6)*Pi+alpha+mu))/Pi

(5)

"(=)"

`&Delta;E__Avg` = (3/2)*2^(1/2)*Erms*(cos((1/6)*Pi+alpha)+sin((1/3)*Pi+alpha)-sin((1/3)*Pi+alpha+mu)-cos((1/6)*Pi+alpha+mu))/Pi

(6)

"(=)"

`&Delta;E__Avg` = (3/2)*2^(1/2)*Erms*3^(1/2)*cos(alpha)/Pi-(3/2)*Erms*2^(1/2)*3^(1/2)*cos(alpha)*cos(mu)/Pi+(3/2)*Erms*2^(1/2)*3^(1/2)*sin(alpha)*sin(mu)/Pi

(7)

"(=)"

`&Delta;E__Avg` = (3/2)*Erms*2^(1/2)*((-cos(mu)+1)*cos(alpha)+sin(alpha)*sin(mu))*3^(1/2)/Pi

(8)

combine(`&Delta;E__Avg` = (3/2)*Erms*2^(1/2)*((-cos(mu)+1)*cos(alpha)+sin(alpha)*sin(mu))*3^(1/2)/Pi, trig)

`&Delta;E__Avg` = (1/2)*(-3*Erms*2^(1/2)*3^(1/2)*cos(alpha+mu)+3*2^(1/2)*Erms*3^(1/2)*cos(alpha))/Pi

(9)

"(=)"

`&Delta;E__Avg` = -(3/2)*3^(1/2)*2^(1/2)*Erms*(cos(alpha+mu)-cos(alpha))/Pi

(10)

NULL

DC output voltage

NULL

V__D = Vdc-`&Delta;E__Avg`

V__D = Vdc-`&Delta;E__Avg`

(11)

subs([Vdc = 3*2^(1/2)*Erms*3^(1/2)*cos(alpha)/Pi, `&Delta;E__Avg` = -(3/2)*3^(1/2)*2^(1/2)*Erms*(cos(alpha+mu)-cos(alpha))/Pi], V__D = Vdc-`&Delta;E__Avg`)

 

V__D = 3*2^(1/2)*Erms*3^(1/2)*cos(alpha)/Pi+(3/2)*3^(1/2)*2^(1/2)*Erms*(cos(alpha+mu)-cos(alpha))/Pi

(12)

"(->)"

 

V__D = (3/2)*2^(1/2)*Erms*3^(1/2)*(cos(alpha)+cos(alpha+mu))/Pi

(13)

 

NULL

Equating the intigral of the voltage drop between the phase A and C  to the intigral of the voltage rise across the two phase inductances (thes intigrals represent eqivalent flux).

 

int(Van-Vcn, theta = (1/6)*Pi+alpha .. (1/6)*Pi+alpha+mu) = int(2*L*omega, theta = 0 .. Id)

2^(1/2)*Erms*cos((1/6)*Pi+alpha)+2^(1/2)*Erms*sin((1/3)*Pi+alpha)-2^(1/2)*Erms*cos((1/6)*Pi+alpha+mu)-2^(1/2)*Erms*sin((1/3)*Pi+alpha+mu) = 2*L*omega*Id

(14)

"(=)"

2^(1/2)*Erms*3^(1/2)*cos(alpha)-2^(1/2)*Erms*3^(1/2)*cos(alpha)*cos(mu)+2^(1/2)*Erms*3^(1/2)*sin(alpha)*sin(mu) = 2*L*omega*Id

(15)

"(=)"

-((cos(mu)-1)*cos(alpha)-sin(alpha)*sin(mu))*3^(1/2)*2^(1/2)*Erms = 2*L*omega*Id

(16)

``

combine(-((cos(mu)-1)*cos(alpha)-sin(alpha)*sin(mu))*3^(1/2)*2^(1/2)*Erms = 2*L*omega*Id, trig)

-Erms*2^(1/2)*3^(1/2)*cos(alpha+mu)+2^(1/2)*Erms*3^(1/2)*cos(alpha) = 2*L*omega*Id

(17)

"(->)"

cos(alpha+mu) = -(1/6)*(2*L*omega*Id-2^(1/2)*Erms*3^(1/2)*cos(alpha))*3^(1/2)*2^(1/2)/Erms

(18)

"(->)"

cos(alpha+mu) = -(1/3)*3^(1/2)*2^(1/2)*L*omega*Id/Erms+cos(alpha)

(19)

NULL``

``

``

NULL

subs(cos(alpha+mu) = -(1/6)*(2*L*omega*Id-2^(1/2)*Erms*3^(1/2)*cos(alpha))*3^(1/2)*2^(1/2)/Erms, V__D = (3/2)*2^(1/2)*Erms*3^(1/2)*(cos(alpha)+cos(alpha+mu))/Pi)

V__D = (3/2)*2^(1/2)*Erms*3^(1/2)*(cos(alpha)-(1/6)*(2*L*omega*Id-2^(1/2)*Erms*3^(1/2)*cos(alpha))*3^(1/2)*2^(1/2)/Erms)/Pi

(20)

"->"

V__D = 3*2^(1/2)*Erms*3^(1/2)*cos(alpha)/Pi-3*L*omega*Id/Pi

(21)

NULL

NULL

``

 

 

 

 

``

NULL

 

``

``

``

``

``

``

``

``

Line Currents

  

``

NULL NULL

 

 

Commutation Intervals

   

``

Plot Line Currents

 

NULL

Ia := piecewise((-Pi)*(1/6)+alpha < theta and theta <= (-Pi)*(1/6)+alpha+mu, Ia__Int1, (-Pi)*(1/6)+alpha+mu <= theta and theta <= (1/6)*Pi+alpha, Ia__Int2, (1/6)*Pi+alpha < theta and theta <= (1/6)*Pi+alpha+mu, Ia__Int3, (1/6)*Pi+alpha+mu < theta and theta <= (1/2)*Pi+alpha, Ia__Int4, (1/2)*Pi+alpha < theta and theta <= (1/2)*Pi+alpha+mu, Ia__Int5, (1/2)*Pi+alpha+mu < theta and theta <= 5*Pi*(1/6)+alpha, Ia__Int6, 5*Pi*(1/6)+alpha < theta and theta <= 5*Pi*(1/6)+alpha+mu, Ia__Int7, 5*Pi*(1/6)+alpha+mu < theta and theta <= 7*Pi*(1/6)+alpha, Ia__Int8, 7*Pi*(1/6)+alpha < theta and theta <= 7*Pi*(1/6)+alpha+mu, Ia__Int9, 7*Pi*(1/6)+alpha+mu < theta and theta <= 3*Pi*(1/2)+alpha, Ia__Int10, 3*Pi*(1/2)+alpha < theta and theta <= 3*Pi*(1/2)+alpha+mu, Ia__Int11, 3*Pi*(1/2)+alpha+mu < theta and theta <= 11*Pi*(1/6)+alpha, Ia__Int12, 11*Pi*(1/6)+alpha < theta and theta <= 11*Pi*(1/6)+alpha+mu, Ia__Int13)                Ib := piecewise((-Pi)*(1/6)+alpha < theta and theta <= (-Pi)*(1/6)+alpha+mu, Ib__Int1, (-Pi)*(1/6)+alpha+mu <= theta and theta <= (1/6)*Pi+alpha, Ib__Int2, (1/6)*Pi+alpha < theta and theta <= (1/6)*Pi+alpha+mu, Ib__Int3, (1/6)*Pi+alpha+mu < theta and theta <= (1/2)*Pi+alpha, Ib__Int4, (1/2)*Pi+alpha < theta and theta <= (1/2)*Pi+alpha+mu, Ib__Int5, (1/2)*Pi+alpha+mu < theta and theta <= 5*Pi*(1/6)+alpha, Ib__Int6, 5*Pi*(1/6)+alpha < theta and theta <= 5*Pi*(1/6)+alpha+mu, Ib__Int7, 5*Pi*(1/6)+alpha+mu < theta and theta <= 7*Pi*(1/6)+alpha, Ib__Int8, 7*Pi*(1/6)+alpha < theta and theta <= 7*Pi*(1/6)+alpha+mu, Ib__Int9, 7*Pi*(1/6)+alpha+mu < theta and theta <= 3*Pi*(1/2)+alpha, Ib__Int10, 3*Pi*(1/2)+alpha < theta and theta <= 3*Pi*(1/2)+alpha+mu, Ib__Int11, 3*Pi*(1/2)+alpha+mu < theta and theta <= 11*Pi*(1/6)+alpha, Ib__Int12, 11*Pi*(1/6)+alpha < theta and theta <= 11*Pi*(1/6)+alpha+mu, Ib__Int13)

 

NULL

NULL

IaPlot := plot(subs([Erms = 70.7, L = 0.4e-2, alpha = .524, omega = 2*Pi*60, R = 5, Idc = 22.3, mu = .5490], Ia), theta = -(1/6)*Pi .. 3*Pi)

 

IbPlot := plot(subs([Erms = 70.7, L = 0.4e-2, alpha = .524, omega = 2*Pi*60, R = 5, Idc = 22.3, mu = .5490], Ib), theta = -(1/6)*Pi .. 3*Pi)

NULLNULL

NULL

NULL

NULL

NULL

``

``

``

Line Rms Current

   

``

with(OrthogonalSeries)

``

NULL

``

NULL

``

NULL

``

NULL

``

NULL

``

NULL

``

NULL

``


 

Download Graetz_Bridg7b.mw

Please Wait...