Patent Description:
Data centers often include multiple power distribution units (PDUs) contained within equipment racks. Rack-mounted power distribution units, sometimes referred to as rack PDUs, typically provide power to various devices such as servers and networking components contained within the equipment racks. It is often desirable to measure current or voltage used by various devices coupled to outputs (load-paths) of a PDU or a rack PDU.

Traditional PDUs found in data centers supply power to equipment through power outlets. A group of outlets may be protected by a circuit breaker and is commonly known as a bank. An RMS current value for an input of a PDU is generally measured by a current measurement sensor and associated circuitry. For example, a Current Transformer (CT) is commonly used to monitor current, power and/or energy consumption from a source at an input of a PDU. A CT may be coupled to an input of a PDU and used to measure an RMS current by producing a reduced current signal, proportionate to the current in the branch, which may be further manipulated and measured. Additionally, CT's are also often used to measure the current through each output of a PDU.

<CIT> describes an example of a power distribution apparatus with input and output power sensing. A power distribution unit includes a sensor that senses power parameters of power outputs and a power input, a processor, and a communication circuit. A power management system includes a power manager, a user interface, and a plurality of power distribution units that may be located in one or more equipment cabinets and data centers. The system may compute apparent power, RMS power, power factor, energy usage over time, power usage history, or environmental history for any or all of the power distribution units.

In a first aspect of the invention, a power distribution unit (PDU) according to claim <NUM> of the appended claims is provided.

In one embodiment, the PDU may further comprise a first timer coupled to the controller, and the controller may be further configured to reset the first timer responsive to detection of a zero crossing of a waveform of the input power, and determine the frequency of the input power based on a value of the first timer. In this embodiment, the controller may be further configured to associate the current to a time interval of the plurality of time intervals, the time interval being determined based on a scaled value of the first timer. In another embodiment, each output of the plurality of outputs may be sampled in a sequential fashion.

In one embodiment, the controller may be further configured to average at least one current measurement of the plurality of current measurement sums with at least one previous current measurement using a leaky average technique.

In one embodiment, the PDU may further comprise a memory, and the controller may be further configured to store the plurality of measurements in the memory in a two-dimensional array, wherein a first dimension of the two-dimensional array is an index corresponding to a plurality of output values, and wherein a second dimension of the two-dimensional array corresponds to the plurality of time intervals. In this embodiment, each time interval of the plurality of time intervals may include a measurement value pair, the measurement value pair including a measurement value and a status flag. In addition, the status flag may be configured to indicate if a measurement has been sampled, and the controller may be further configured to determine that a complete set of measurement values are available in the two-dimensional array based on a status of each status flag.

In one embodiment, each current measurement sum of the plurality of current measurement sums may be based on summing a measurement value corresponding to each output of the plurality of outputs at a time interval. In this embodiment, the RMS value may approximate a current value for the input based on performing an RMS calculation using the plurality of current measurement sums. In another embodiment, the controller may be further configured to display the RMS value.

According to a second aspect of the invention, a method for determining a root-mean-square (RMS) value for an input of a power distribution unit (PDU) having a plurality of output current sensors each coupled to a respective output of a plurality of outputs, according to claim <NUM> of the appended claims, is provided.

The method may further include acts of resetting a first timer responsive to detection of a zero crossing of a waveform of the input power, and determining the frequency of the input power based on a value of the first timer.

The method may further include acts associating the measured current for each output of the plurality of outputs to a time interval of the plurality of time intervals, the time interval being determined based on a scaled value of the first timer. In one embodiment, measuring a current at each time interval of the plurality of time intervals for each output of the plurality of outputs may further include measuring each output of the plurality of outputs in a sequential fashion. In addition, determining the root-mean-square (RMS) value based on the plurality of current measurement sums may further include summing a measurement value corresponding to each output of the plurality of outputs at each time interval of the plurality of time intervals to derive the plurality of current measurement sums and performing an RMS calculation on the plurality of current measurement sums to approximate the RMS value for the input.

According to another embodiment a non-transitory computer readable medium storing sequences of instructions executable by at least one processor is provided, the sequences of instructions instructing the at least one processor to execute a process for determining a root-mean-square (RMS) value for an input of a power distribution unit (PDU). The PDU including a plurality of outputs, the sequences of instructions including instructions configured to determine a plurality of time intervals based on a frequency of an input power, measure a current at each time interval of the plurality of time intervals for each output of the plurality of outputs, generate a plurality of current measurement sums based on current measurement values associated with each time interval of the plurality of time intervals, and determine the RMS value based on the plurality of current measurement sums.

In one embodiment, the current may be stored in a memory in a two-dimensional array, wherein a first dimension of the array is an index corresponding to an output of the plurality of outputs, and wherein a second dimension of the array corresponds to a time interval of the plurality of time intervals.

In one embodiment, the instructions are further configured to determine a complete set of measurement values are available within the two-dimensional array, sum each measurement value of the complete set of measurement values to derive a plurality of current measurement sums corresponding to a time interval of the plurality of time intervals, store the plurality of current measurement sums in a composite waveform array, and determine the RMS value based on the composite waveform array. In another embodiment, the instructions are further configured to display the RMS value.

Still other aspects, embodiments, and advantages of these exemplary aspects and embodiments, are discussed in detail below. Moreover, it is to be understood that both the foregoing information and the following detailed description are merely illustrative examples of various aspects and embodiments, and are intended to provide an overview or framework for understanding the nature and character of the claimed subject matter. Particular references to examples and embodiments, such as "an embodiment," "an other embodiment," "some embodiments," "other embodiments," "an alternate embodiment," "various embodiments," "one embodiment," "at least one embodiments," "this and other embodiments" or the like, are not necessarily mutually exclusive and are intended to indicate that a particular feature, structure, or characteristic described in connection with the embodiment or example and may be included in that embodiment or example and other embodiments or examples. The appearances of such terms herein are not necessarily all referring to the same embodiment or example.

Examples of the methods and systems discussed herein are not limited in application to the details of construction and the arrangement of components set forth in the following description or illustrated in the accompanying drawings. The methods and systems are capable of implementation in other embodiments and of being practiced or of being carried out in various ways. Examples of specific implementations are provided herein for illustrative purposes only and are not intended to be limiting. In particular, acts, components, elements and features discussed in connection with any one or more examples are not intended to be excluded from a similar role in any other examples.

As discussed above, the traditional approach to measuring an input RMS current within a PDU includes using a CT coupled to an input of the PDU. Generally, a cable is routed from the CT to a circuit board where a measurement integrated circuit (IC) resides. The density of components within the PDU may require the cable to have extra shielding, and thus, take up more space within the PDU. Space available to route the output wiring, cable, associated circuit board, and measurement IC is typically limited within a PDU.

Each measurement IC used to interface to the CT typically requires a burden resistor to convert the output of the CT into a voltage signal proportional to the current through the output of the circuit breaker (the bank current) that feeds the bank outlet. The combination of the CT, the burden resistor, and the measurement IC requires calibration. Calibration is typically performed during unit assembly at the factory and is completed by placing a known load on the bank outlets. The use of a measurement IC and associated circuitry along with factory calibration undesirably adds cost to the production of a PDU.

Some embodiments disclosed herein include a PDU in which an input RMS current of a PDU is determined without the necessity of a CT coupled to the input of the PDU. In some embodiments, instantaneous currents are sampled from two or more outputs of the PDU at identical intervals over one full line cycle (e.g., <NUM> times per full cycle, or <NUM> times per half cycle). An aggregated set of measurements from each output at each interval is stored by the PDU. In one embodiment, each aggregated set of measurements is stored in an array. A composite waveform is generated by summing each aggregated set of measurements for each interval. As a result, each interval may be represented by a single current value and stored in a one-dimensional array, referred to herein as a composite waveform array. Because the composite waveform array includes a complete set of summed current measurements for each interval across each sampled output, differences in output current phase relationships (e.g., due to non-linear loads) are accounted for. In various aspects and embodiments, the composite waveform array is utilized to determine the input RMS current for the PDU based on RMS calculations.

<FIG> illustrates one embodiment of a system <NUM> for computing an input RMS current by measuring current across multiple outputs. The system <NUM> includes a microcontroller <NUM>, a bank of outputs <NUM>, an AC source <NUM>, and a circuit breaker <NUM>. The bank of outputs <NUM> includes receptacles <NUM>, and outputs <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. Each output includes a CT <NUM>. Each CT <NUM> includes a coil 110a and a burden resistor 110b. Each CT <NUM> is coupled to the microcontroller <NUM> which is configured to perform current measurements.

The AC source <NUM> is coupled to an input line <NUM>. The circuit breaker <NUM> is coupled to each of the outputs <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. Each of the outputs <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM> is coupled to a neutral line <NUM> and a ground <NUM>. In the shown embodiment, six outputs are coupled to the circuit breaker <NUM>. In other embodiments, the number of circuit breakers and associated outputs may be different.

As discussed above, the microcontroller <NUM> may be coupled to a CT <NUM> which is configured to measure an instantaneous current for each of the outputs <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>. As discussed below with reference to <FIG>, the microcontroller <NUM> may also be configured to determine the zero-crossing of a source AC voltage. In one embodiment, the microcontroller is a PIC18F4680 available from Microchip of Chandler, AZ.

The microcontroller <NUM> further includes a memory <NUM> configured to store a set of output current readings <NUM>. The set of output current readings <NUM> may be configured in memory as a two-dimensional array. A first array dimension may correspond to a number of outputs that make up the bank (e.g., <NUM>) while a second dimension may correspond to a number of time intervals at which output currents are sampled. Each array element of the second dimension may be configured as a pair of values with a first value corresponding to an output current measurement reading and a second value corresponding to a status flag. The status flag may be a binary value with a "<NUM>" indicating a NO_READING condition and a "<NUM>" indicating an OK_READING condition. The structure and values within the output current readings <NUM> is discussed further below with reference to <FIG>.

The system <NUM> allows for determination of an input RMS current without a traditional hardware based sensing device such as a CT coupled between the AC source <NUM> and the circuit breaker <NUM>. By sampling the individual outputs in accordance with the subroutines of <FIG>, <FIG>, <FIG> and <FIG>, discussed below, it is possible to determine an input RMS current regardless of phase relationships and whether the outputs <NUM>-<NUM> are coupled to non-linear loads.

The AC source <NUM> may be an external AC power source (e.g., such as a utility AC power source). AC power supplied by the AC source <NUM> may be provided to the circuit breaker <NUM> via the input line <NUM>. The AC power is then provided via outputs <NUM>, <NUM>, <NUM>, <NUM>, <NUM>, and <NUM>, to one or more loads coupled to the outlets <NUM>.

<FIG> illustrates a rack <NUM> configured to house one or more pieces of equipment such as data center equipment. The rack <NUM> houses a rack PDU <NUM> including a plurality of electrical outlets <NUM>. The rack PDU <NUM> may be configured according to one or more aspects disclosed herein. The rack PDU <NUM> may include a measurement system <NUM> for measuring currents for one or more outputs <NUM>. For example, the rack PDU <NUM> may include the system <NUM> of <FIG>. The microcontroller <NUM> in the embodiment of <FIG> may be included in the measurement system <NUM> and may have one or more input and output channels, each being associated with a respective output <NUM> of the rack PDU <NUM>. The current through each outlet <NUM> may be measured independently over a period of time with measurement values being stored in the output current readings <NUM>.

As described above with reference to <FIG>, several embodiments perform processes which determine an input RMS current for a PDU. In some embodiments, these measurement processes are executed by a microcontroller, such as the microcontroller <NUM> described above with reference to <FIG> or the computer system <NUM> described below with reference to <FIG>. <FIG> illustrates one example measurement process <NUM> executed by the system <NUM>. The measurement process <NUM> begins in act <NUM>.

At act <NUM>, the system <NUM> (<FIG>) performs an initialization routine. In one embodiment, the initialization routine includes configuring a timer which is utilized by the processes of <FIG>, <FIG> and <FIG> to determine a zero crossing of a voltage waveform for an AC power source as described below. In this embodiment, the timer may be configured with a set of pre-defined parameters. The pre-defined parameters may include a counter mode (e.g., count-up or count-down), a clock source, and a pre-scale value. For example, a <NUM>-bit timer may utilize a <NUM> clock source and be configured with a <NUM>/<NUM> pre-scale value. In this example, the <NUM>-bit timer provides a high resolution count of the time intervals over one full line cycle (at <NUM> or <NUM>) of outlet current. In other embodiments, the system <NUM> uses the microcontroller <NUM> to determine the power line frequency. In these embodiments, the microcontroller <NUM> monitors AC power at the input line <NUM> to determine a zero-crossing and an offset from the zero-crossing for each current reading sampled at an output.

In one embodiment, the initialization routine zeros out the output current readings <NUM>. As discussed above with reference to <FIG>, the output current readings <NUM> may be configured as a two-dimensional array. The first dimension may be configured as an integer value which represents a particular output. For example, output <NUM> (<FIG>) may be represented by an index value of <NUM>. Likewise, outputs <NUM>-<NUM> may be represented by an index value of <NUM>-<NUM>, etc. In one embodiment, the second dimension of the two-dimensional array may be configured with a plurality of value pairs comprising an output current measurement reading and a binary status flag. In other embodiments, the second dimension of the two-dimensional array may be configured with a plurality of values comprising only the output current measurement readings. As discussed further below with reference to <FIG>, each output current is stored in the output current readings <NUM> (<FIG>) using a number format which enables the root mean square (RMS) current to be efficiently computed for the input of the PDU during the processes shown in <FIG> and <FIG>.

In act <NUM>, the system <NUM> (<FIG>) executes an AC voltage zero-crossing subroutine to determine the power line frequency (e.g., <NUM> or <NUM>). In one embodiment, the system <NUM> starts the timer initialized in act <NUM> in a count-up mode from an initial value. Subsequent rising edge zero-crossings may result in the re-initialization of the timer, which in turns causes the timer to count up from an initial value. The initial value of the timer may be used as a reference to determine if zero crossings have been missed and an overflow condition has occurred. For example, if the system <NUM> determines the current timer value is less than the initial timer value (in a count-up mode) then the system <NUM> may determine a zero-crossing has been missed and an overflow condition has occurred. In another embodiment, the system <NUM> uses the microcontroller <NUM> to determine the power line frequency and zero-crossing for AC power at an input, such as the input line <NUM> of <FIG>. In all of these embodiments, each current sampled from an output (e.g., outputs <NUM>-<NUM> of <FIG>) may be correlated to a unique time interval based on the zero crossing. In subsequent calculations, a plurality of current measurements sampled across each output may be aligned (e.g., time-shifted) so that current measurements across each of the outputs lineup at the zero crossing. Accordingly, subsequent calculations during act <NUM>, as discussed further below, may determine an RMS output current value regardless of whether output currents are out of phase (e.g., due to non-linear loading).

In act <NUM>, the system <NUM> (<FIG>) executes an output current measurement subroutine periodically. In one embodiment, instantaneous current measurements from each of the outputs <NUM>-<NUM> are collected (e.g., via the CT <NUM>). In at least one embodiment, the period of time between executions of the output current measurement subroutine may be determined by the use of the timer initialized in act <NUM>. In other embodiments, a different timer may be used. In one example, a period is configured such that each output current is measured (or sampled) often enough to capture a complete set of measurements representing an output waveform by associating samples within the output current readings <NUM> with time intervals. The time intervals may be referred to herein as "time buckets. " In this example, a <NUM>-bit timer with a <NUM>/<NUM> prescale would translate into <NUM> samples, or time buckets (<NUM> / <NUM> = <NUM>). This process continues until all of the outputs have been sampled. In other examples, the number of time buckets may be based on the microcontroller <NUM> determining a power line frequency.

In act <NUM>, the system <NUM> (<FIG>) executes a subroutine to determine an input RMS current. The subroutine may be executed at an interval which is longer than the period of the output current measurement subroutine of act <NUM> (e.g., to insure that all of the outputs have been sampled and have values within the time buckets). In one embodiment, the subroutine is executed one time per second. As discussed further below with reference to <FIG>, the subroutine may determine if the output current readings <NUM> have a complete set of measurements prior to calculating a root mean square (RMS) current value for the input of the PDU.

Acts <NUM>-<NUM> of the measurement process <NUM> may be executed continuously throughout the operation of the system <NUM>, or until a command is executed by the system <NUM> to suspend execution. The measurement process <NUM> ends in act <NUM>.

As discussed above with reference to act <NUM>, some embodiments perform processes through which the system <NUM> (<FIG>) executes an output current measurement subroutine. One example of an output current measurement subroutine <NUM> is illustrated in <FIG>.

In act <NUM>, an instantaneous current from each of the outputs <NUM>-<NUM> is sampled by the microcontroller <NUM> (<FIG>). In one embodiment, the microcontroller <NUM> determines a current reading using a CT <NUM> coupled to an output. As discussed above with reference to <FIG>, each output current reading is stored in memory using a number format which is used during subsequent computations to determine an input RMS current value. The current reading may be converted prior to storing the current reading in memory. For example, the current reading may be converted to tenths of an amp, hundredths of an amp, etc. In one embodiment, the current reading may be a data type such as a signed integer or floating point number. In this embodiment, the output current measurement may be a signed number to preserve the phase relationship needed when executing the subroutines of <FIG> and <FIG>.

In act <NUM>, a timer value is retrieved from the timer initialized in act <NUM> of <FIG>. As discussed above with reference to <FIG>, at each instance in which the zero-crossing of an input signal is detected, the timer is re-initialized and begins to count up from an initial value. In act <NUM>, the initial value is compared against a retrieved timer value. In one embodiment, a timer value which is greater than the initial value is an indication that the timer has not rolled over, and thus, valid measurements may be performed on an output.

In act <NUM>, the timer value is converted into an array index. In one embodiment, the array index is computed based on the upper bits (i.e., most-significant bits) of the timer value. As discussed above with reference to <FIG>, the array index is a "time bucket" which is used to store an output current measurement. In one example, a <NUM>-bit timer may be divided by <NUM> (e.g., <NUM>/<NUM> prescale) to form <NUM> discrete time buckets for storage of output current measurements. After a zero-crossing is detected, each measurement will correspond to a unique time bucket based on the index determined in the act <NUM>. As discussed below with reference to <FIG>, the unique time-buckets are used advantageously to sum current measurements across each output based on a sequence of time-buckets.

In at least one embodiment, the use of a timer is optional in acts <NUM> and <NUM>. For instance, the system <NUM> may use the microcontroller <NUM> coupled to an input, such as input <NUM> of <FIG>, to obtain an array index (i.e., an offset from a zero-crossing) for an output current measurement. In these embodiments, a "zero-crossing index" may be stored in the memory <NUM> (<FIG>). The zero-crossing index may be used to determine which current measurement index in the output current readings <NUM> corresponds to the zero-crossing. Subsequent processes, such as the sub-routine <NUM> of <FIG> discussed further below, may utilize each zero-crossing index to align (e.g., time-shift) current measurements across a plurality of outputs.

In act <NUM>, the current readings which were sampled in act <NUM> may be stored in the memory <NUM> of the microcontroller <NUM>. As discussed above with reference to <FIG>, the output current readings <NUM> may be stored in a two-dimensional array which is indexed based on individual outputs. Each output of the two-dimensional array is associated with N number of time buckets (e.g., <NUM>) as determined by the initialization routine of act <NUM> (<FIG>). Using the array index determined in act <NUM>, the output current measurement is stored within the output current readings <NUM>. In one embodiment, the stored measurement may be configured as a data type which is signed (e.g., signed integer, floating point decimal) in order to preserve the phase relationship for subsequent RMS computations. The structure and relationship of the current measurements stored within output current readings is discussed further below with reference to <FIG>.

In act <NUM>, a status flag may be set for the current reading acquired in act <NUM> and stored as a pair with the current reading in the output current readings <NUM>. As discussed above with reference to <FIG>, the status flag may be configured as a binary value. A binary value of "<NUM>" may represent a constant defined as NO_READING, and a binary value of "<NUM>" may represent a constant defined as OK_READING. As discussed below with reference to <FIG>, the status flags may be used to determine if a complete set of measurements representing the entirety of a input current waveform of a PDU is stored within the output current readings <NUM> prior to performing an RMS computation process, such as the RMS computation process of <FIG>. In other embodiments, the current reading is stored in the output current readings <NUM> without a status flag.

In act <NUM>, the system <NUM> determines if all of the outputs have been sampled over one full line cycle. The output measurement subroutine <NUM> returns to act <NUM> and performs acts <NUM>-<NUM> until each output (e.g., outputs <NUM>-<NUM> of <FIG>) has been sampled and is represented by a complete set of measurements in the output current readings <NUM>.

In one embodiment, in act <NUM> a "leaky average" technique may be utilized to smooth out current readings within the output measurement values <NUM>. For example, a portion of the measurement values (e.g., <NUM>/<NUM> of the measurements) within the output measurement values <NUM> may be averaged with a portion of previously measured current values (e.g., <NUM>/<NUM> of the previously measured current values). In this example, the system <NUM> may store a copy of the previously sampled output measurement values for purpose of mitigating the impact of low-level noise within the sampled AC signal. The output current measurement subroutine <NUM> ends at act <NUM>.

Referring now to <FIG>, illustrated is one embodiment of the output current readings <NUM> (<FIG>) in a tabular view <NUM>. The tabular view <NUM> includes output indexes <NUM>, time buckets <NUM>, and measurement pairs <NUM>. Each measurement pair of the measurement pairs <NUM> includes a measurement value <NUM> and a status flag <NUM>. In one embodiment, measurements stored in the output current readings <NUM> do not include a status flag (e.g., to conserve memory).

The time buckets <NUM> may be used by the processes of <FIG> and <FIG> to compute an input RMS current value. In one embodiment, each time bucket <NUM> may be a unique value based on a timer counting up upon detection of the zero-crossing of a source signal. The upper bits (or most-significant bits) of a <NUM>-bit timer may be used to define each time bucket. In this embodiment, a <NUM>-bit timer with a <NUM> may be divided by <NUM> (i.e., a <NUM>/<NUM> prescale) enabling <NUM> time buckets for storing a representation of an input current waveform of a PDU. In some embodiments, a higher or lower frequency clock may be used to sample output current measurements. In other embodiments, each time bucket <NUM> may be a unique value based on the microcontroller <NUM> determining a power line frequency. Although the embodiment shown illustrates the tabular view <NUM> having three time buckets, other embodiments may include any number of time buckets based on the frequency of an AC power source determined in act <NUM> of <FIG>.

In one embodiment, the status flag <NUM> indicates that a particular measurement has been performed for an output for a given time bucket. As discussed above in reference to act <NUM>, the initialization routine zeros out the memory area in which the output current readings <NUM> are stored. A value other than zero, such as a binary one, may indicate to the processes of <FIG> and <FIG> that a complete set of measurements is available for all outputs across all time buckets, such as the outputs <NUM>-<NUM> of <FIG>.

As discussed above with reference to the act <NUM>, some embodiments perform processes through which the system <NUM> (<FIG>) executes a subroutine to determine an input RMS current of a PDU. One example of a sub-routine <NUM> to determine an input RMS current is illustrated in <FIG>. The sub-routine <NUM> begins in act <NUM>.

In act <NUM>, the system <NUM> checks the status flag for each of the output measurement values stored within the output current readings <NUM>. If any status flag is not set (e.g., NO_READ) then the subroutine exits in act <NUM> and returns to an output sampling subroutine, such as the output current measurement subroutine <NUM> of <FIG>. If all status flags are set (e.g., all are OK_READING) then the sub-routine <NUM> continues to act <NUM>.

In one embodiment, acts <NUM>, <NUM> and <NUM> are optional. For instance, memory may be saved by not including a status flag. In this embodiment, the process continues directly from act <NUM> to act <NUM>.

In act <NUM>, a loop is configured with counters (I) and (J), representing outputs and time buckets, respectively. In act <NUM>, a loop is executed wherein each measurement value corresponding to a time bucket (J) is summed. In one embodiment, current measurements in the output current readings <NUM> are aligned (time-shifted) based on a zero-crossing index of each output prior to summing. Returning to <FIG>, output current readings are illustrated in the tabular view <NUM>. In this example, summation in accordance with acts <NUM>-<NUM> would include summing an entire row (e.g., the row corresponding to time bucket zero) of measurement values for a particular time bucket <NUM> across all outputs.

In act <NUM>, the summation of the time bucket (J) is stored in a bank array. The summation may be indexed in the bank array based on the time bucket. In act <NUM>, counter (J) is incremented and the loop continues until all of the output measurement values have been summed (e.g., (J) is equal to the number of outputs). If all of the output measurement values have been summed for a particular time bucket and stored in the bank array, the loop exits at act <NUM>. In act <NUM>, the time bucket counter (I) is incremented. In act <NUM>, if counter (I) is equal to the number of time buckets the subroutine continues to act <NUM>. If (I) is not equal to the number of time buckets, then the subroutine <NUM> continues to act <NUM> and resets counter (J) to zero. Once counter (J) has been reset to zero, the subroutine <NUM> performs acts <NUM>-<NUM> until all time buckets have been summed. In act <NUM>, the subroutine <NUM> ends.

As discussed above with reference to <FIG>, each summed value in the bank array of act <NUM> (<FIG>) may be squared. One example of the squaring of each summed value is illustrated in the subroutine <NUM> of <FIG>. The subroutine <NUM> begins in act <NUM>.

In act <NUM> a loop is initialized. As discussed above with reference to <FIG>, the bank array may be configured as a single-dimensional array which is indexed by time bucket values. In this way, the entirety of an input current waveform of a PDU may be represented by summed measurement values in each sequential time bucket of the bank array. In act <NUM>, each element of the bank array is squared to result in a positive square value. In act <NUM>, the resulting positive square value may then be stored in a square result array. In one embodiment, the square result array is a single-dimension array with a number of elements corresponding to a number of time buckets (e.g., <NUM>). In act <NUM>, a counter is incremented. In act <NUM>, if it is determined that the counter value is equal to the number of time buckets, the subroutine <NUM> continues to act <NUM>. If the counter value is not equal to the number of time buckets, the subroutine <NUM> continues to perform acts <NUM>-<NUM> until all values within the bank array have been squared (i.e., all time buckets have a positive value).

In act <NUM>, the RMS value of the sum square array is determined. The sum square array contains a composite waveform representation of the PDU input current waveform, which may be processed using an RMS calculation. For example, using n values of the sum square array, the following equation may be used to determine an RMS current value for an input: <MAT> Where (X) is the resulting RMS value in Amps, (n) is the number of time buckets (e.g., samples) and (x) is the measurement value sampled corresponding to each time bucket.

In one embodiment, the resulting value may be converted to present the input RMS current for display, such as via a display device of the measurement unit <NUM> (<FIG>). For example, the resulting value may be mathematically converted to tenths of amps, hundredths of amps, etc..

Processes <NUM>, <NUM>, <NUM> and <NUM> each depict one particular sequence of acts in a particular embodiment. Some acts are optional and, as such, may be omitted in accord with one or more embodiments. Additionally, the order of the acts can be altered, or other acts can be added, without departing from the scope of the embodiments described herein.

One or more features disclosed herein may be implemented in one or more PDUs or rack PDUs. In other embodiments, various aspects and functions described herein may be implemented in one or more apparatuses separate from a PDU or a rack PDU. An apparatus configured according to one or more features disclosed herein may be configured to couple to a PDU or a rack PDU to allow measurement of dynamic signals.

Furthermore, various aspects and functions described herein in accord with the present disclosure may be implemented as hardware, software, firmware or any combination thereof. Aspects in accord with the present disclosure may be implemented within methods, acts, systems, system elements and components using a variety of hardware, software or firmware configurations. Furthermore, aspects in accord with the present disclosure may be implemented as specially-programmed hardware and/or software. Referring to <FIG>, there is illustrated a block diagram of one example of computing components forming a system <NUM> which may be configured to implement one or more aspects disclosed herein. For example, the system <NUM> may be configured to implement the measurement system <NUM> as illustrated and described above with reference to <FIG>.

The system <NUM> may include for example a general-purpose computing platform such as those based on Intel PENTIUM-type processor, Motorola PowerPC, Sun UltraSPARC, Hewlett-Packard PA-RISC processors, or any other type of processor. System <NUM> may include specially-programmed, special-purpose hardware, for example, an application-specific integrated circuit (ASIC). Various aspects of the present disclosure may be implemented as specialized software executing on the system <NUM> such as that shown in <FIG>.

The system <NUM> may include a processor/ASIC <NUM> connected to one or more memory devices <NUM>, such as a disk drive, memory, flash memory or other device for storing data. Memory <NUM> may be used for storing programs and data during operation of the system <NUM>. Components of the computer system <NUM> may be coupled by an interconnection mechanism <NUM>, which may include one or more buses (e.g., between components that are integrated within a same machine) and/or a network (e.g., between components that reside on separate machines). The interconnection mechanism <NUM> enables communications (e.g., data, instructions) to be exchanged between components of the system <NUM>. Further, in some embodiments the interconnection mechanism <NUM> may be disconnected during servicing of a PDU.

The system <NUM> also includes one or more input devices <NUM>, which may include for example, a keyboard or a touch screen. An input device may be used for example to configure the measurement system or to provide input parameters. The system <NUM> includes one or more output devices <NUM>, which may include for example a display. In addition, the computer system <NUM> may contain one or more interfaces (not shown) that may connect the computer system <NUM> to a communication network, in addition or as an alternative to the interconnection mechanism <NUM>.

The system <NUM> may include a storage system <NUM>, which may include a computer readable and/or writeable nonvolatile medium in which signals may be stored to provide a program to be executed by the processor or to provide information stored on or in the medium to be processed by the program. The medium may, for example, be a disk or flash memory and in some examples may include RAM or other non-volatile memory such as EEPROM. In some embodiments, the processor may cause data to be read from the nonvolatile medium into another memory <NUM> that allows for faster access to the information by the processor/ASIC than does the medium. This memory <NUM> may be a volatile, random access memory such as a dynamic random access memory (DRAM) or static memory (SRAM). It may be located in storage system <NUM> or in memory system <NUM>. The processor <NUM> may manipulate the data within the integrated circuit memory <NUM> and then copy the data to the storage <NUM> after processing is completed. A variety of mechanisms are known for managing data movement between storage <NUM> and the integrated circuit memory element <NUM>, and the disclosure is not limited thereto. The disclosure is not limited to a particular memory system <NUM> or a storage system <NUM>.

The system <NUM> may include a general-purpose computer platform that is programmable using a high-level computer programming language. The system <NUM> may be also implemented using specially programmed, special purpose hardware, e.g. an ASIC. The system <NUM> may include a processor <NUM>, which may be a commercially available processor such as the well-known Pentium class processor available from the Intel Corporation. Many other processors are available. The processor <NUM> may execute an operating system which may be, for example, a Windows operating system available from the Microsoft Corporation, MAC OS System X available from Apple Computer, the Solaris Operating System available from Sun Microsystems, or UNIX and/or LINUX available from various sources. Many other operating systems may be used.

Claim 1:
A power distribution unit (PDU) (<NUM>) comprising:
an input (<NUM>) configured to receive input power;
a plurality of outputs (<NUM>, <NUM>, <NUM>, <NUM>, <NUM>, <NUM>) each coupled to the input and configured to receive input power, and each output of the plurality of outputs having an output configured to provide output power;
a plurality of output current sensors (<NUM>), each output current sensor of the plurality of output current sensors being coupled to a respective output of the plurality of outputs and being configured to detect output current provided by the respective output; and
a controller (<NUM>) coupled to the plurality of output current sensors and configured to:
determine a plurality of time intervals based on a frequency of the input power;
receive, from each output current sensor of the plurality of output current sensors, a current value at each time interval of the plurality of time intervals for each output of the plurality of outputs;
generate a plurality of current measurement sums, each current measurement sum of the plurality of current measurement sums being based on the received current values associated with a respective time interval of the plurality of time intervals;
determine a root-mean-square (RMS) value based on the plurality of current measurement sums; and
determine, based on the RMS value, an RMS current value of the input power.