#!/usr/local/bin/calc -d -f # # A license is hereby granted to reproduce this design for personal, # non-commercial use. # # THIS DESIGN IS PROVIDED "AS IS". THE AUTHOR PROVIDES NO WARRANTIES # WHATSOEVER, EXPRESSED OR IMPLIED, INCLUDING WARRANTIES OF # MERCHANTABILITY, TITLE, OR FITNESS FOR ANY PARTICULAR PURPOSE. THE # AUTHOR DOES NOT WARRANT THAT USE OF THIS DESIGN DOES NOT INFRINGE # THE INTELLECTUAL PROPERTY RIGHTS OF ANY THIRD PARTY IN ANY COUNTRY. # # So there. # # Copyright (c) 1992-2006, John Conover, All Rights Reserved. # # Comments and/or problem reports should be addressed to: # # john@email.johncon.com # # http://localhost/www.johncon.com/john/ # http://localhost/www.johncon.com/ntropix/ # http://localhost/www.johncon.com/ndustrix/ # http://localhost/www.johncon.com/nformatix/ # http://localhost/www.johncon.com/ndex/ # # A calc(1) script for designing series pass full-wave bridge power # supplies. Design notes are included. Calc(1) is a C-style arbitrary # precision calculator, (and also handles complex arithmetic,) and is # available from http://sourceforge.net/projects/calc/. # # The capacitor RMS current, transformer secondary RMS current, # capacitor peak current, transformer secondary peak current, filter # capacitor ripple voltage, and capcitor RMS voltage are # calculated/computed for a given output current and series pass # component values. # # The script contains a binary search-for-solution algorithm that # computes the intersection of a linear line, (the filter capacitor # discharge time interval,) and the sine wave input voltage, (the # filter capacitor charge time interval.) # # Note: if all that is necessary is to find the value of a filter # capacitor, use: # # C = ((i / (2 * pi * f)) * acos (- (vf / vi))) / (vi - vf) # # where C is the value of the capacitor, f is the line frequency, vi # is the peak voltage on the capacitor, (e.g., the input voltage,) and # vf is the minimum voltage on the capacitor, (probably the output # voltage of a regulator plus the drop out voltage of the regulator; # the capacitor ripple voltage is vi - vf.) # # For example, using calc(1): # # ; i = 1.5 # ; f = 60 # ; vi = 20 # ; vf = 19 # ; ((i / (2 * pi * f)) * acos (- (vf / vi))) / (vi - vf) # 0.01123646719869675163 # # What this script does is compute the RMS capacitor current, peak # capacitor current, RMS transformer current, peak transformer # current, etc., after the capacitor value has been chosen. # # The development notes-derivation and verification-are left intact at # the beginning of this file. The actual script is at the end of the # file. # # The peak voltage, (i.e., half the peak-to-peak voltage,) of the # input to the diode bridge rectifier: # # Vpp = 30.7; # # The value of the filter capacitor: # # C = 13600E-6; # # The constant current output of the regulator: # # Iout = 1.54; # # The line frequency: # # f = 60; # # Numerical values: # # pi = ln (-1) / (0 + 1i); # w = 2 * pi * f; # # The voltage input to the diode bridge rectifier, Vpp is the # peak-to-peak voltage: # # v(t) = Vpp * cos (w * t) # # The derivative of the voltage input to the diode bridge rectifier: # # dv(t) / dt = - Vpp * w * sin (w * t) # # The voltage across the filter capacitor during discharge time: # # v(t) = - (Iout * t) / C # # The derivative of the voltage across the filter capacitor during # discharge time: # # dv(t) = - Iout / C # # When the derivative of the voltage input to the diode bridge # rectifier and derivative of the voltage across the filter capacitor # equate, the charge time interval ends, and the discharge time # interval begins: # # - Iout / C = - Vpp * w * sin (w * t) # Iout / C = Vpp * w * sin (w * t) # Iout / (C * Vpp * w) = sin (w * t) # sin (w * t) = Iout / (C * Vpp * w) # w * t = asin (Iout / (C * Vpp * w)) # # T_begin is when the discharge time interval begins: # # T_begin = asin (Iout / (C * Vpp * w)) / w; # # Vd is the voltage input to the diode bridge rectifier when the # discharge time interval begins: # # Vd = Vpp * cos (w * T_begin); # # Vs is the "effective" starting voltage across the capacitor at t = # 0: # # Vs = Vd + (T_begin * (Iout / C)); # # The formula for the discharge time interval is: # # v(t) = Vs - ((Iout * t) / C) # # Or, uncomment for a "pastable" command line into gnuplot(1) to view # the discharge time interval: # # printf ("plot [0:%f][0:] abs \(%f * cos \(%f * x\)\), # %f - \(\(%f * x\) / %f\)\n", 1 / (2 * f), Vpp, w, Vs, Iout, # C); # # Search for the time the capacitor discharge interval ends, i.e., # where Vs - ((Iout * t) / C) = - Vpp * cos (w * t); Note: abs (Vpp * # cos (w * t)) is equal to - Vpp * cos (w * t) for the time interval 1 # / (4 * f) <= t <= 1 / (2 * f). # # The search is a recursive binary search on the interval 1 / (4 * f) # <= t <= 1 / (2 * f), starting with the variable begin = 1 / (4 * f), # and the variable end = 1 / (2 * f); the test for which way to direct # the binary search is half way through the interval at t = begin + # ((end - begin) / 2), and depending on whether the Vs - ((Iout * t) / # C) or - Vpp * cos (w * t) is larger, the end, or begin variable is # set to t, the search interval becoming smaller and smaller, at a # binary rate, until the end of the discharge time interval is found # within an error of erroreps. # # define search_end (begin, end, erroreps, Vs, Iout, C, Vpp, w) # { # local t = begin + ((end - begin) / 2); # # if ((- (Vpp * cos (w * t))) > (Vs - ((Iout * t) / C))) # { # end = t; # } # # else # { # begin = t; # } # # if (abs (end / begin) > (1 + erroreps)) # { # t = search_end (begin, end, erroreps, Vs, Iout, C, Vpp, w); # } # # return (t); # } # # begin = 1 / (4 * f); # end = 1 / (2 * f); # erroreps = 1e-9; # # T_end = search_end (begin, end, erroreps, Vs, Iout, C, Vpp, w); # # T_begin is the beginning time of the discharge time interval, and # T_end is the ending time of the discharge time interval. Uncomment # for a "pastable"command line into gnuplot(1) to view discharge time # interval: # # printf ("plot [%f:%f][0:] abs \(%f * cos \(%f * x\)\), # %f - \(\(%f * x\) / %f\)\n", T_begin, T_end, Vpp, w, Vs, # Iout, C); # # The charge time interval begins at T_end, and ends at (T_begin + (1 # / (2 * f))) for - Vpp * cos (w * t) # # The peak-to-peak ripple voltage, Vr, is: # # Vr = Vpp - (-Vpp * cos (w * T_end)); # # The capacitor current, Ic(t), during the charge time interval is the # derivative of the voltage - Vpp * cos (w * t), multiplied by the # capacitor value, C: # # Ic(t) = Vpp * C * w * sin (w * t) # # Uncomment for a "pastable"command line into gnuplot(1) to view # capacitor current, Ic(t), during the charge time interval: # # printf ("plot [%f:%f] %f * sin \(%f * x\)\n", T_end, T_begin + # (1 / (2 * f)), Vpp * C * w, w); # # As a straight line approximation to the capacitor current during the # charge time interval, use the two end points, say (37, 0.007700) and # (0, 0.008333) for a time interval of 0.008333 - 0.007700 = # 0.0006333, and using calc(1) to generate the straight line # approximation from a file, myfile, that contains: # # #!/usr/local/bin/calc -d -f # # # for (x = 0; x <= 6333; x ++) # { # printf ("%f\t%f\n", x / 10000000, # 37 - ((37 / 0.0006333) * (x / 10000000))); # } # # and: # # ./myfile | tsrms -p # # gives an approximate answer of about 21.36 A RMS. # # Or, a little more formal construct: # # ./myfile | tsmath -S | tsintegrate | tsmath -d 6333 | # tsmath -R | tail -1 # # which gives about the same answer. # # The tsrms(1), tsmath(1), and tsintegrate(1), programs are available # from the http://www.johncon.com/ndustrix/ and/or # http://www.johncon.com/ntropix/ sites, (and are usually used in # analyzing financial time series-the "tsmath -d 8463" pipe was for # time scaling-the time series programs do not have time scales.) # # However, formally, the RMS^2 of Ic(t) in the charge interval will be # (1 / t) * integral of (Ic(t))^2 dt, evaluated at T_end and T_begin, # where Ic(t) = Vpp * C * w * sin (w * t), which is: # # RMS^2 = ((Vpp * C * w)^2 * ((t / 2) - ((1 / (4 * w)) * # sin (2 * w * t)))) / t # # evaluated at T_end and T_begin + (1 / (2 * f)). # # And, the rather formidable formula for the RMS capacitor current # during the charge interval, IcRMS: # # IcRMS = sqrt ((((Vpp * C * w)^2 * (((T_begin + (1 / (2 * f))) / 2) - # ((1 / (4 * w)) * sin (2 * w * (T_begin + # (1 / (2 * f))))))) - ((Vpp * C * w)^2 * ((T_end / 2) - # ((1 / (4 * w)) * sin (2 * w * T_end))))) / # (T_begin + (1 / (2 * f)) - T_end)); # # which has an instantaneous peak value, IcP, at the time T_end: # # IcP = Vpp * C * w * sin (w * T_end); # # RMS^2 of the capacitor current during the discharge interval is 1 / # t * integral of - Iout^2dt, evaluated at T_end and T_begin: # # (1 / t) * (-Iout^2) t = Iout^2 # # and the RMS current of the capacitor during the discharge interval # is simply, Iout. The total capacitor current, Ic, is: # # Ic = (((T_end - T_begin) / (1 / (2 * f))) * Iout) + ((1 - ((T_end - T_begin) / (1 / (2 * f)))) * IcRMS); # # The transformer current during the charge interval, IlRMS, is the # capacitor current during the charge interval plus Iout: # # IlRMS = IcRMS + Iout; # # The peak transformer current during the charge interval, IlP, is the # peak capacitor current during the charge interval plus Iout: # # IlP = IcP + Iout; # # The transformer RMS current, Il, is: # # Il = ((1 - ((T_end - T_begin) / (1 / (2 * f))))) * IlRMS; # # The diode bridge rectifier current is the same as the transformer. # # printf ("Peak-to-peak capacitor ripple voltage = %.4f V,\nMaximum capacitor voltage = %.4f V,\nMinimum capacitor voltage = %.4f V,\nPeak capacitor charging current = %.4f A,\nRMS capacitor charging current = %.4f A,\nRMS capacitor current = %.4f A,\nPeak transformer charging current = %.4f A,\nRMS transformer charging current = %.4f A,\nRMS transformer current = %.4f A\n", Vr, Vpp, Vpp - Vr, IcP, IcRMS, Ic, IlP, IlRMS, Il); # # The charge time interval begins at T_end, and ends at (T_begin + (1 # / (2 * f))) for - Vpp * cos (w * t); the RMS capacitor voltage, # VcRMS: # # VcRMS^2 = (1 / t) integral v^2(t) dt # # For T_begin <= t <= T_end: # # v(t) = Vs - ((Iout * t) / C) # # VcRMS^2 = (1 / (T_end - T_begin)) * # integral (Vs - ((Iout * t) / C))^2 dt # # VcRMS^2 = (1 / (T_end - T_begin)) * integral (((Vs^2) - # (2 * Vs * ((Iout * t) / C)) + # ((((Iout * t) / C))^2))) dt # # VcRMS^2 = (1 / (T_end - T_begin)) * # (((Vs^2) * t) - (Vs * ((Iout * (t^2)) / C)) + # (((Iout / C)^2) * (1 / 3) * (t^3))) # # VcRMS^2 = (1 / (T_end - T_begin)) * # ((((Vs^2) * T_end) - (Vs * # ((Iout * (T_end^2)) / C)) + (((Iout / C)^2) * # (1 / 3) * (T_end^3))) - # (((Vs^2) * T_begin) - (Vs * ((Iout * # (T_begin^2)) / C)) + (((Iout / C)^2) * (1 / 3) * # (T_begin^3)))) # # For T_end <= t <= T_begin + (1 / (2 * f)): # # v(t) = -Vpp * cos (w * t) # # VcRMS^2 = (1 / ((T_begin + (1 / (2 * f))) - T_end)) * # integral (((-Vpp)^2) * (cos^2(w * t))) dt # # VcRMS^2 = (1 / ((T_begin + (1 / (2 * f))) - T_end)) * # (((-Vpp)^2) * ((t / 2) + ((1 / (4 * w)) * # sin (2 * w * t)))) # # VcRMS^2 = (1 / ((T_begin + (1 / (2 * f))) - T_end)) * # ((((-Vpp)^2) * (((T_begin + (1 / (2 * f))) / 2) + # ((1 / (4 * w)) * sin (2 * w * # (T_begin + (1 / (2 * f))))))) - (((-Vpp)^2) * # ((T_end / 2) + ((1 / (4 * w)) * sin (2 * w * T_end))))) # # and the rather formidable formula for the total RMS voltage on the # capacitor: # # VcRMS = ((T_end - T_begin) / (1 / (2 * f))) * # (sqrt ((1 / (T_end - T_begin)) * # ((((Vs^2) * T_end) - (Vs * # ((Iout * (T_end^2)) / C)) + (((Iout / C)^2) * # (1 / 3) * (T_end^3))) - # (((Vs^2) * T_begin) - (Vs * ((Iout * # (T_begin^2)) / C)) + (((Iout / C)^2) * (1 / 3) * # (T_begin^3)))))) + # (((T_begin + (1 / (2 * f))) - T_end) / (1 / (2 * f))) * # (sqrt ((1 / ((T_begin + (1 / (2 * f))) - T_end)) * # ((((-Vpp)^2) * (((T_begin + (1 / (2 * f))) / 2) + # ((1 / (4 * w)) * sin (2 * w * # (T_begin + (1 / (2 * f))))))) - (((-Vpp)^2) * # ((T_end / 2) + ((1 / (4 * w)) * sin (2 * w * T_end))))))) # # printf ("Peak-to-peak capacitor ripple voltage = %.4f V,\nMaximum capacitor voltage = %.4f V,\nMinimum capacitor voltage = %.4f V,\nPeak capacitor charging current = %.4f A,\nRMS capacitor charging current = %.4f A,\nRMS capacitor current = %.4f A,\nRMS capacitor voltage = %.4f V,\nPeak transformer charging current = %.4f A,\nRMS transformer charging current = %.4f A,\nRMS transformer current = %.4f A\n", Vr, Vpp, Vpp - Vr, IcP, IcRMS, Ic, VcRMS, IlP, IlRMS, Il); # # define parameters (Vpp, C, Iout, f) # { # local w = 2 * pi * f, # T_begin, # Vd, # Vs, # begin = 1 / (4 * f), # end = 1 / (2 * f), # erroreps = 1e-9, # T_end, # Vr, # IcRMS, # IcP, # Ic, # IlRMS, # IlP, # Il, # VcRMS; # # T_begin = asin (Iout / (C * Vpp * w)) / w; # Vd = Vpp * cos (w * T_begin); # Vs = Vd + (T_begin * (Iout / C)); # # T_end = search_end (begin, end, erroreps, Vs, Iout, C, Vpp, w); # # Vr = Vpp - (-Vpp * cos (w * T_end)); # # IcRMS = sqrt ((((Vpp * C * w)^2 * (((T_begin + (1 / (2 * f))) / 2) - # ((1 / (4 * w)) * sin (2 * w * (T_begin + # (1 / (2 * f))))))) - ((Vpp * C * w)^2 * ((T_end / 2) - # ((1 / (4 * w)) * sin (2 * w * T_end))))) / # (T_begin + (1 / (2 * f)) - T_end)); # # IcP = Vpp * C * w * sin (w * T_end); # Ic = (((T_end - T_begin) / (1 / (2 * f))) * Iout) + ((1 - ((T_end - T_begin) / (1 / (2 * f)))) * IcRMS); # IlRMS = IcRMS + Iout; # IlP = IcP + Iout; # Il = ((1 - ((T_end - T_begin) / (1 / (2 * f))))) * IlRMS; # # VcRMS = ((T_end - T_begin) / (1 / (2 * f))) * # (sqrt ((1 / (T_end - T_begin)) * # ((((Vs^2) * T_end) - (Vs * # ((Iout * (T_end^2)) / C)) + (((Iout / C)^2) * # (1 / 3) * (T_end^3))) - # (((Vs^2) * T_begin) - (Vs * ((Iout * # (T_begin^2)) / C)) + (((Iout / C)^2) * (1 / 3) * # (T_begin^3)))))) + # (((T_begin + (1 / (2 * f))) - T_end) / (1 / (2 * f))) * # (sqrt ((1 / ((T_begin + (1 / (2 * f))) - T_end)) * # ((((-Vpp)^2) * (((T_begin + (1 / (2 * f))) / 2) + # ((1 / (4 * w)) * sin (2 * w * # (T_begin + (1 / (2 * f))))))) - (((-Vpp)^2) * # ((T_end / 2) + ((1 / (4 * w)) * sin (2 * w * T_end))))))); # # printf ("Peak-to-peak capacitor ripple voltage = %.4f V,\nMaximum capacitor voltage = %.4f V,\nMinimum capacitor voltage = %.4f V,\nPeak capacitor charging current = %.4f A,\nRMS capacitor charging current = %.4f A,\nRMS capacitor current = %.4f A,\nRMS capacitor voltage = %.4f V,\nPeak transformer charging current = %.4f A,\nRMS transformer charging current = %.4f A,\nRMS transformer current = %.4f A\n", Vr, Vpp, Vpp - Vr, IcP, IcRMS, Ic, VcRMS, IlP, IlRMS, Il); # } # # The value of Pi: # pi = ln (-1) / (0 + 1i); # # Compute the intersection of a linear line, (the filter capacitor # discharge time interval,) and the sine wave input voltage, (the # filter capacitor charge time interval.) # # The search is a recursive binary search on the interval 1 / (4 * f) # <= t <= 1 / (2 * f), starting with the variable begin = 1 / (4 * f), # and the variable end = 1 / (2 * f); the test for which way to direct # the binary search is half way through the interval at t = begin + # ((end - begin) / 2), and depending on whether the Vs - ((Iout * t) / # C) or - Vpp * cos (w * t) is larger, the end, or begin variable is # set to t, the search interval becoming smaller and smaller, at a # binary rate, until the end of the discharge time interval is found # within an error of erroreps: # define search_end (begin, end, erroreps, Vs, Iout, C, Vpp, w) { local t = begin + ((end - begin) / 2); if ((- (Vpp * cos (w * t))) > (Vs - ((Iout * t) / C))) { end = t; } else { begin = t; } if (abs (end / begin) > (1 + erroreps)) { t = search_end (begin, end, erroreps, Vs, Iout, C, Vpp, w); } return (t); } # # Calculation function. Given the peak input voltage, (i.e., RMS * # sqrt (2),) from the diode bridge, Vpp, the value of the filter # capacitor, C, the output current from the regulator, Iout, and the # line frequency, compute the variables of the power supply: # define parameters (Vpp, C, Iout, f) { local w = 2 * pi * f, T_begin, Vd, Vs, begin = 1 / (4 * f), end = 1 / (2 * f), erroreps = 1e-9, T_end, Vr, IcRMS, IcP, Ic, IlRMS, IlP, Il, VcRMS; T_begin = asin (Iout / (C * Vpp * w)) / w; Vd = Vpp * cos (w * T_begin); Vs = Vd + (T_begin * (Iout / C)); T_end = search_end (begin, end, erroreps, Vs, Iout, C, Vpp, w); Vr = Vpp - (-Vpp * cos (w * T_end)); IcRMS = sqrt ((((Vpp * C * w)^2 * (((T_begin + (1 / (2 * f))) / 2) - ((1 / (4 * w)) * sin (2 * w * (T_begin + (1 / (2 * f))))))) - ((Vpp * C * w)^2 * ((T_end / 2) - ((1 / (4 * w)) * sin (2 * w * T_end))))) / (T_begin + (1 / (2 * f)) - T_end)); IcP = Vpp * C * w * sin (w * T_end); Ic = (((T_end - T_begin) / (1 / (2 * f))) * Iout) + ((1 - ((T_end - T_begin) / (1 / (2 * f)))) * IcRMS); IlRMS = IcRMS + Iout; IlP = IcP + Iout; Il = ((1 - ((T_end - T_begin) / (1 / (2 * f))))) * IlRMS; VcRMS = ((T_end - T_begin) / (1 / (2 * f))) * (sqrt ((1 / (T_end - T_begin)) * ((((Vs^2) * T_end) - (Vs * ((Iout * (T_end^2)) / C)) + (((Iout / C)^2) * (1 / 3) * (T_end^3))) - (((Vs^2) * T_begin) - (Vs * ((Iout * (T_begin^2)) / C)) + (((Iout / C)^2) * (1 / 3) * (T_begin^3)))))) + (((T_begin + (1 / (2 * f))) - T_end) / (1 / (2 * f))) * (sqrt ((1 / ((T_begin + (1 / (2 * f))) - T_end)) * ((((-Vpp)^2) * (((T_begin + (1 / (2 * f))) / 2) + ((1 / (4 * w)) * sin (2 * w * (T_begin + (1 / (2 * f))))))) - (((-Vpp)^2) * ((T_end / 2) + ((1 / (4 * w)) * sin (2 * w * T_end))))))); printf ("Peak-to-peak capacitor ripple voltage = %.4f V,\nMaximum capacitor voltage = %.4f V,\nMinimum capacitor voltage = %.4f V,\nPeak capacitor charging current = %.4f A,\nRMS capacitor charging current = %.4f A,\nRMS capacitor current = %.4f A,\nRMS capacitor voltage = %.4f V,\nPeak transformer charging current = %.4f A,\nRMS transformer charging current = %.4f A,\nRMS transformer current = %.4f A\n", Vr, Vpp, Vpp - Vr, IcP, IcRMS, Ic, VcRMS, IlP, IlRMS, Il); } # # The line transformer under consideration, (Amveco 62084, # http://www.amveco.com/,) is rated at a full load voltage of 18 V # RMS, at 1.388 A RMS per secondary, and produces 20.7 V RMS at 0 A # RMS, 60 C maximum ambient. The peak voltage would be (1.05 * 20.7) * # sqrt (2), (for 120 V RMS +/- 5% line voltage,) or 30.74 V. The # maximum current output of the transformer, using the manufacturer's # recommended form factor of 1.8, would be 1.388 A RMS / 1.8 = 0.771 A # DC. (see http://www.amveco.com/Technical_Notes_3.htm, for # particulars.) # # The filter capacitor under consideration, 4700 uF Electrolytic, # (Panasonic ECO-S1JA472,) is rated at 4700 uF, +/- 20%, 63 V, 3.0 A # ripple current, an ESR of 0.063, -4- C to +105 C, and a 3000 # Hr. life expectancy. # # The diode bridge under consideration, (International Rectifier # GBPC3502A,) has a 1.1 V forward drop @ 35 A rating per leg, and 0.75 # V forward drop @ 1 A and 125 C per leg, and, 0.60 V forward drop @ 1 # A @ 25 C per leg. # # The line frequency is either 50 Hz. or 60 Hz. # # The output voltage from the diode bridge would be between the # ranges: # # ((0.95 * 18) * sqrt (2)) - 2.2 = 21.98 V, Minimum # ((1.00 * 18) * sqrt (2)) - 2.2 = 23.26 V, Typical # ((1.05 * 18) * sqrt (2)) - 2.2 = 24.53 V, Maximum # Iout = 0.6; C = 4700E-6; f = 60; # Vpp = 23.26; Cval = C; # printf ("\nVpp = %f, C = %f, Iout = %f, f = %f:\n\n", Vpp, Cval, Iout, f); parameters (Vpp, Cval, Iout, f) # Vpp = 21.98; Cval = C * 0.8; # printf ("\nVpp = %f, C = %f, Iout = %f, f = %f:\n\n", Vpp, Cval, Iout, f); parameters (Vpp, Cval, Iout, f) # Vpp = 24.53; Cval = C * 1.2; # printf ("\nVpp = %f, C = %f, Iout = %f, f = %f:\n\n", Vpp, Cval, Iout, f); parameters (Vpp, Cval, Iout, f) # Vpp = 24.53; Cval = C * 0.8; # printf ("\nVpp = %f, C = %f, Iout = %f, f = %f:\n\n", Vpp, Cval, Iout, f); parameters (Vpp, Cval, Iout, f) # Vpp = 21.98; Cval = C * 1.2; # printf ("\nVpp = %f, C = %f, Iout = %f, f = %f:\n\n", Vpp, Cval, Iout, f); parameters (Vpp, Cval, Iout, f) # f = 50; # Vpp = 23.26; Cval = C; # printf ("\nVpp = %f, C = %f, Iout = %f, f = %f:\n\n", Vpp, Cval, Iout, f); parameters (Vpp, Cval, Iout, f) # Vpp = 21.98; Cval = C * 0.8; # printf ("\nVpp = %f, C = %f, Iout = %f, f = %f:\n\n", Vpp, Cval, Iout, f); parameters (Vpp, Cval, Iout, f) # Vpp = 24.53; Cval = C * 1.2; # printf ("\nVpp = %f, C = %f, Iout = %f, f = %f:\n\n", Vpp, Cval, Iout, f); parameters (Vpp, Cval, Iout, f) # Vpp = 24.53; Cval = C * 0.8; # printf ("\nVpp = %f, C = %f, Iout = %f, f = %f:\n\n", Vpp, Cval, Iout, f); parameters (Vpp, Cval, Iout, f) # Vpp = 21.98; Cval = C * 1.2; # printf ("\nVpp = %f, C = %f, Iout = %f, f = %f:\n\n", Vpp, Cval, Iout, f); parameters (Vpp, Cval, Iout, f) # # The thermal shutdown characteristics of the LM317HVT, (a TO-220 # packaged device,) are; a minimum current limit of 1.5 A, typical of # 2.2 A, and a maximum of 3.7 A, over 0 C to 125 C, with a maximum # junction temperature of 125 C, and Vin - Vout = 5 V. The # documentation states that thermal shutdown occurs when the device # dissipation is 20 W, or above, (its in the foot note to the device's # Absolute Maximum Ratings,) and an output current of 1.5 A. # # Additionally, there is a current limit graph, (which is assumed to # be typical values,) vs the voltage across the device, which for less # than 8 volts is 2.2 A @ -55 C, 2.25 A @ 25 C, and, 1.9 A @ 150 C. # The short circuit current, (with about 20 V to 22 V across the # device,) is about 1.5 A at all temperatures. # # The junction-to-ambient thermal resistance, Theta j-a, of the # LM317HVT is 50 C / W, typical, and junction-to-case, Theta j-c, is 5 # C / W. # # The maximum power dissipation at fuse opening is (23.785 - 13.85) * # 1.2 = 11.92 W @ Iout = 1.2 A. The junction temperature rise above # the case would be 5 * 11.92 = 59.61 C. For the mica insulator with a # thermal resistance of 1 C / W, add 11.92 C. For a 3 C thermal # resistance heat sink, (3 = 50 / sqrt (A), A = 278 cm^2, or an # aluminum sheet, 6.56 inches on an edge, single sided convection, per # device,) add 3 * 11.92 = 35.77 C, or a total junction temperature # rise of 59.61 + 11.92 + 35.77 = 107.3 C above ambient. If the # ambient temperature is 25 C, then the junction temperature would be # 132.3 C, at an output current, Iout, of 1.2 A. # # The efficiency of the power supply is (15 * 1.2) / ((15 * 1.2) + # 11.92) = 60.02%. # # Estimated current consumption: # # Iout = 2 * 81 mA, peak # LT1206CT7 = 2 * 35 mA # LT1115CN8 = 2 * 11.5 mA # LT1097CN8 = 2 * 0.56 mA # LM317HVT = 1 * (3 mA quiescent + 12 mA minimum output current) # -------------------- # Total = 271 mA, (162 mA of DC 0 dbFS signal and, 109 mA quiescent) # # A conservative specification would be 0.6 / 1.25 = 0.48 A average # continuous output current, with a non-repetitive peak instantaneous # current of 0.6 A. The RMS capacitor voltage would be 23.8741 V, for # a power dissipation of (23.8741 - 13.85) * 0.48 = 4.81 W. The # junction temperature would be 4.81 * 5 = 24.1 C above the case # temperature, which is approximately 4.81 C above the mica insulator # temperature, for a total of 24.1 + 4.81 C above the chassis # temperature. If the chassis is an aluminum sheet, 6.56 inches on an # edge, single sided convection, per device, the thermal resistance # would be 50 / sqrt (A) = 3 C / W, (A in cm^2); the chassis # temperature would be 4.81 * 3 = 14.4 C above ambient. The junction # temperature at an ambient temperature of 25 C would be 24.1 + 4.8 + # 14.4 = 43.3 C. The maximum operating ambient temperature would be # 125 - 14.4 = 110.6 C, (for a junction temperature of 125 C; this # exceeds the transformer specification of 60 C ambient, meaning a # maximum ambient operating temperature of 60 - 14.4 = 45.6 C = 114.1 # F.) 0.48 A would allow an additional (0.48 - 0.271) / 0.0115 = 18 # additional LT1115CN8 devices for extensibility. # # As a simple reliability model, assume electrical/electronic failure # is a stochastic, (i.e., a random,) chemical process with a reactrion # rate that doubles for every increase in temperature of 10 C. # # For 25 C ambient, and a junction temperature of 43.3 C, and assuming # a 2000 Hr. MTBF at 125 C, the MTBF of each regulator would be about # 2000 * (2^((125 - 43) / 10)) = 2000 * 294 = 588,134 Hr., or about # 67.1 years of 24/7 operation; about 33.6 years since there are two # regulators. # # For 25 C ambient, and a chassis temperature of 25 + 14.4 C = 39.4 C, # and assuming a 2000 Hr. MTBF at 125 C, (Note: # http://www.amveco.com/Technical_Notes_2.htm states that the # transformer is designed for a 65 C rise at full power rating, and a # 60 C maximum ambient temperature-from the transformer specification # on http://www.amveco.com/Miniature_Low_Profile_Transformers.htm-or # the maximum internal temperature is 125 C,) at an average secondary # current of 0.5609 A RMS, the temperature rise would be 65 * ((0.5609 # / (1.388 / 1.8))^2) = 34.4 C, (since the power is proportional to # the square of the current,) or the MTBF would be 2000 * (2^((125 - # 34.4 - 14.4) / 10)) = 2000 * 196.7 = 393,440 Hrs., which is about # 44.9 years of 24/7 operation. (It may be more since the # manufacturer's form factor was used as the reference for 2000 Hrs., # and not the secondary current.) # # For 25 C ambient, and a chassis temperature of 25 + 14.4 = 39.4 C, # and assuming a 3000 Hr. MTBF at 105 C, the MTBF of each filter # capacitor would be about 3000 * (2^((105 - 39.4) / 10)) = 3000 * # 94.4 = 383,060 Hrs., or about 32.3 years; 16.2 years since there are # two filter capacitors. # # The total system MTBF, for the LM317HVT, the transformer, and the # two filter capacitors, would be estimated at about 1 / ((1 / 33.6) + # (1 / 44.9) + (1 / 16.2)) = 8.8 years at 25 C ambient, 24/7 usage, # and Iout = 0.48 A average continuous current, each regulator mounted # on a an aluminum sheet, at least 6.56 inches on an edge, single # sided convection, per device. The diode bridge has a reverse bias # rating that is at least twice what is applied, and a forward current # that is 35 / 0.5609 = 62.4 times what is necessary to source 0.48 A. # # A remaining issue is fault/exception handling. The LM317HVT has a # minimum current limit of 1.5 A, a typical of 2.2 A, and a maximum of # 3.7 A, which is larger than the transformer and filter capacitor can # handle for an indefinite time; an over load or shorted regulator # output could damage collateral components. At Iout = 0.48 A, the # power dissipation of the devices is 2.49 W to 4.97 W, or a junction # temperature rise, with a 3 C / W, 6.54 inch sheet of single sided # convection cooled aluminum, of (5 + 1 + 3) * 2.49 = 22.41 C to (5 + # 1 + 3) * 4.97 = 44.7 C above ambient-probably well below the 125 C # thermal shutdown of the devices. # # Worst case, for fault/exception fusing with a 0.6 A fast acting # fuse, the power supply must be be capable of regulating at 0.48 * # 1.25 * 2 = 1.2 A, which is the 200% rating for a 3AG 0.6 A, 250 V # fuse, which will open in 5 seconds, maximum at 200% current rating # for the fuse. (See http://www.littelfuse.com/, which recommends # selecting a fuse rating at 125% of the current rating of the # circuit, and specifies a 5 second maximum opening time at 200% of # the current rating for the fuse.) Additionally, the fuse has an open # time of 4 Hrs., minimum, at 100% of the current rating, 1 Hr., # maximum, at 135% of the current rating # # Under these conditions, (C = 4700 uF, 0.6 A fuse, Iout = 1.2 A,) the # minimum filter capacitor voltage is 19.3172 V, (which is larger than # the 18.86 V minimum to the LM317HVT,) the RMS capacitor current is # 2.3123 A, (which is smaller than the 3.0 A capacitor ripple current # maximum for the ECO-S1JA472,) and the RMS transformer current is # 1.4118 A, (which is 1.017, or about 2%, larger than the 1.388 A # secondary current maximum for the 62084, but is reasonably close to # the maximum for a maximum duration of 5 seconds-this is a # conservative estimation, see # http://www.amveco.com/Technical_Notes.htm which allows about a 3X # current rating for 15 seconds per minute.) The fuses are only rated # at 200% current rating for a 5 second open time, maximum, (the # maximum at other factors of current rating is unknown,) which means, # worst case, that the power supply must operate at the fuse 5 second # open current of 2 * 0.6 = 1.2 A, corresponding to an output current # of 1.2 A indefinitely. The power dissipation of the LM317HVT would # be between 1.2 * (19.3172 - 16.35) = 3.56 W and 1.2 * (22.9661 - # 13.85) = 10.94 W, corresponding to a junction temperature rise of # from 3.56 * (5 + 1 + 3) = 32.0 C to 10.94 * (5 + 1 + 3) = 98.5 C, # which would almost be in thermal shutdown for an ambient temperature # of 25 C, which is at the maximum of the LM317HVT rating. Note that # the power supply components are all near maximally stressed for the # 5 second open time of the fuse-a reasonable design under # fault/exception handling. # current value, and have to be replaced.) # # The alternative is to add collateral circuitry to shutdown the # LM317HVT regulator under fault/exception situations-which is # difficult to do since it does not have control shutdown pins; at # least other than grounding the Adj pin, which reduces the regulator # output voltage to 1.25 V with a 1.5 A current limit, minimum, (which # is an inadequate solution for the collateral components.) The 120 V # RMS input could be interrupted via a solid state relay, perhaps by # current sensing the transformer current, or disconnecting the output # of the regulator via a power FET with low on resistance. Almost any # means would require R/S latching during fault/exception handling, # and would add circuit complexity, which defeats the advantages of # using "jiffy" regulators. Fusing for fault/exceptions seems an # adequate and inexpensive alternative. # # Voltage rating of components; maximum output voltage from # transformer = (1.05 * 20.7) * sqrt (2) = 30.74 V: # # LM317HVT 60 V absolute maximum voltage, 60 / 30.74 = 1.95 # # 4700 uF electrolytic filter capacitor(s) 63 V maximum voltage, # 63 / 30.74 = 2.05 # # 10 uF tantalum filter capacitor(s) 35 V maximum voltage, 35 / # 16.35 = 2.14 # # Diode rectifier bridge, 100 V maximum reverse voltage, 100 / # 30.74 = 3.25 # # Or about a factor of 2 = 100% safety margin on component voltages. # # Current rating of components: # # Transformer 1.388 A RMS per secondary, 1.4118 A for 5 seconds # maximum fuse opening time, a minimum of 4 hours at 0.6 A, 1.388 # / 0.7021 = 1.98, a maximum of 1 hour at 0.6 * 1.35 = 0.81 A, # 1.388 / 0.9498 = 1.46 # # Diode rectifier bridge, 35 A maximum forward current, 35 / # 0.5609 = 62.4 # # Diode rectifier bridge, 35 A maximum forward current, in rush # current ~ ((1.05 * 20.7 * sqrt (2)) - (2 * 1.1)) / ((20.7 - 18) # / 1.388) = 14.7 A, 35 / 14.7 = 2.4 # # LM317HVT 1.5 A to 3.7 A minimum output current before thermal # shutdown or current limit, 1.5 A for 5 seconds fuse opening, # minimum of 4 hours at 0.6 A, 1.5 / 0.6 = 2.5, a maximum of 1 # hour at 0.6 * 1.35 = 0.81 A, 1.5 / 0.81 = 1.85 # # 4700 uF electrolytic filter capacitor 3.0 A ripple current, # 2.3123 A for 5 seconds fuse opening, minimum of 4 hours at # 1.1965 A, 3.0 / 1.1965 = 2.5, a maximum of 1 hour at 0.6 * 1.35 # = 0.81 A, 3.0 / 1.5940 = 1.88 # # 10 uF tantalum filter capacitor(s) N/A ripple current # # Or about a factor of 2 = 100% safety margin on component currents, # fused for 5 second open on manufacturer's minimum operating maximum # current, and a factor of 2, (e.g., sqrt (2 * current),) in power # dissipation for a maximum of 1 hour.