QSW-ZVS Characteristics00.511.522.533.544.550 0.2 0.4 0.6 0.8 1mJBasic single-transistorresonant switchF = 0.75F = 0.5F = 0.3F = 0.2F = 0.1F = 0.05QSW-ZVS Characteristics00.511.522.533.544.550 0.2 0.4 0.6 0.8 1 m JBasic single-transistor switchTransistor (Q1/D1)conduction angle qq = p/2q = pq = 2pq = 3pq = 4pq = 5pq = 6pq = 7pSheet1 - 1 Option ExplicitPublic Function J2(mu, theta)' quasi-square-wave resonant switch (basic single transistor version)' calculation of normalized current J, as function of Q1/D1 conduction angle theta and switch conversion ratio mu Dim JL1, JL2, JL3, beta, delta, ksi, F, Pi Pi = 3.14159265 If mu < 0.5 Then J2 = "" Exit Function End If JL3 = Sqr(2 * mu - 1) JL1 = -JL3 + theta * (1 - mu) If (1 - 2 * mu + JL1 ^ 2) < 0 Then J2 = "" Exit Function End If JL2 = Sqr(1 - 2 * mu + JL1 ^ 2) beta = Atn((1 - mu) / JL1) + Atn(mu / JL2) delta = JL2 / mu ksi = Pi - Atn(JL3 / (1 - mu)) F = 2 * Pi / (theta + beta + delta + ksi) J2 = F / (4 * Pi) * ((JL1 - JL3) * theta + JL2 * delta)End FunctionPublic Function F(mu, theta)' quasi-square-wave resonant switch (basic single transistor version)' calculation of normalized switching frequency F, as function of Q1/D1 conduction angle theta and switch conversion ratio mu Dim JL1, JL2, JL3, beta, delta, ksi, Pi Pi = 3.14159265 If mu < 0.5 Then F = "" Exit Function End If JL3 = Sqr(2 * mu - 1) JL1 = -JL3 + theta * (1 - mu) If (1 - 2 * mu + JL1 ^ 2) < 0 Then F = "" Exit Function End If JL2 = Sqr(1 - 2 * mu + JL1 ^ 2) beta = Atn((1 - mu) / JL1) + Atn(mu / JL2) delta = JL2 / muSheet1 - 2 ksi = Pi - Atn(JL3 / (1 - mu)) F = 2 * Pi / (theta + beta + delta + ksi)End FunctionPublic Function J(mu, F)' quasi-square-wave resonant switch (basic single transistor version)' iteration to find normalized current J, as function of normalized switching frequency F and switch conversion ratio mu Dim JL1, JL2, JL3, beta, delta, ksi, Pi, F1, F2, F3, theta1, theta2, theta3, thetamin, m, convg, eps, dF Pi = 3.14159265 convg = 1e-06 ' set to 1e-05 for faster performance eps = 0.01 If mu < 0.5 Then J = "" Exit Function End If JL3 = Sqr(2 * mu - 1) thetamin = 2 * Sqr(2 * mu - 1) / (1 - mu) ' minimum theta theta2 = 2 * Pi * mu / F ' starting guess If theta2 < thetamin Then J = "" Exit Function End If theta3 = theta2 * 1.1 ' set up initial values F2 = Fit(JL3, theta2, mu) F3 = Fit(JL3, theta3, mu) Do ' iteration loop theta1 = theta2 theta2 = theta3 F1 = F2 F2 = F3 m = (F2 - F1) / (theta2 - theta1) theta3 = theta2 + eps * (F - F2) / m F3 = Fit(JL3, theta3, mu) dF = Abs(F - F3) Loop Until dF < convg JL1 = -JL3 + theta3 * (1 - mu) ' calculate solution after convergence JL2 = Sqr(1 - 2 * mu + JL1 ^ 2) beta = Atn((1 - mu) / JL1) + Atn(mu / JL2) delta = JL2 / mu ksi = Pi - Atn(JL3 / (1 - mu)) J = F3 / (4 * Pi) * ((JL1 - JL3) * theta3 + JL2 * delta)End FunctionSheet1 - 3 Public Function Fit(JL3, theta, mu)' computation of F, used in iterative routine of function J(mu, F) above Dim JL1, JL2, beta, delta, ksi, Pi Pi = 3.14159265 JL1 = -JL3 + theta * (1 - mu) JL2 = Sqr(1 - 2 * mu + JL1 ^ 2) beta = Atn((1 - mu) / JL1) + Atn(mu / JL2) delta = JL2 / mu ksi = Pi - Atn(JL3 / (1 - mu)) Fit = 2 * Pi / (theta + beta + delta + ksi)End
View Full Document