Abstract:
Apparatus and method for controlling a plurality of pulse width modulated devices from a single controller including condition sensors to input the controller, a logic unit to determine the error between the sensed values and the desired values of the conditions and a direct memory access unit which is digitally coded with the error values, the pulse width modulated device being connected to receive the outputs of the direct memory access unit and operable to control the conditions.

Description:
BACKGROUND OF INVENTION 
     1. Field of the Invention 
     In many applications, it is desirable to control a plurality of variables simultaneously. For example, a control system may maintain a predetermined temperature, control the level of sound and control the humidity of a home or business. In aircraft applications, it is desirable to control servo motors which adjust the angle of attack, altitude, yaw, and roll, etc. Other applications include platform stabilization where it is desirable to sense unwanted vibrations in each of a number of axes and provide counter vibrations to stabilize the platform. In such applications, system information is provided via multiple sensors to a controller which uses the error between desired and sensed conditions to calculate the actuator effort necessary to drive the system to the desired state. In some cases, actuators are pulse width modulated (PWM) so that the on and off times of the actuators produce the average actuator effort required. When a processor is used as the controller, outputs from the processor in the form of a series of logical &#34;1&#39;s&#34; and &#34;0&#39;s&#34; may be used so that a, for example, &#34;1&#34; turns the actuator on while a &#34;0&#34; turns the actuator off. 
     2. Description of the Prior Art 
     In the past, processors with specially designed outputs have been required in order to provide the necessary pulse width modulation signals. This has limited the choice of processors as well as the number of channels available for PWM control. 
     BRIEF DESCRIPTION OF THE INVENTION 
     Many common processors such as the Texas Instruments TMS320C3X contain a direct memory access (DMA) function which is used to access external memory in parallel with the execution of other processor functions. We have discovered that the direct memory access (DMA) function may be used alternately to control the pulse width modulation of multiple actuators simultaneously. In addition, since the DMA is designed to operate in parallel with other processor functions, the modulation function can be implemented with minimal impact to the computational efficiency of the processor. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 shows a block diagram of the present invention; 
     FIG. 2 shows a six by six matrix of one possible output from the DMA of FIG. 1; 
     FIG. 3 shows a graph of the application of the signals of FIG. 2; 
     FIG. 4 shows a six by six matrix of the outputs of FIG. 2 with current smoothing; and 
     FIG. 5 shows a graph like FIG. 3 with the application of current smoothing. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     In FIG. 1, a processor or controller such as the Texas Instrument TMS320C3X is shown by reference numeral 10. The standard architecture of the controller includes a parallel input port (PP) 12, an arithmetic logic unit (ALU) 14, a direct memory access (DMA) 16, a clock 17, a random access memory (RAM) 18, a primary data bus 19, and an expansion data bus 20. Port 12 receives input data from terminals such as 21 and 22. The ALU reads the input port 12, processes the data in accordance with a predetermined program, and writes the result to RAM 18 using the primary data bus 19. The DMA 16 then reads the data in RAM 18 and writes the data to the DMA 16 output using the expansion data bus 20. The normal function of the DMA is to read and write to memory independently so that the main processor does not have to wait for data retrieval from slower memory devices. The outputs from the DMA and the sampling of the parallel port 12 are timed by the clock 18 from signals conducted via a bus 23. 
     In FIG. 1, a plurality of sensors, 1 through n, are identified by reference numerals 30 and 32 and are used to sense the values of a plurality of conditions such as temperature, humidity, or vibration in various axes which may exist in a plurality of controlled devices or controllable environments such as plants 1 through n identified by reference numerals 34 and 36 with which sensors 30 and 32 are associated respectively. The output of the first sensor 30, indicative of a first condition being sensed in plant 34, is shown on a line 37 connected to input terminal 21 of controller 10 and the output of the nth sensor 32, indicative of another condition being sensed in plant 36, is shown on a line 38 connected to input terminal 22 of controller 10. There may, of course, be a number of other sensors for other conditions and a number of other inputs to port 12 but these have not been shown for simplicity. 
     The conditions transduced by the sensors 30-32 are read by the ALU 14 via the input port 12 at each sample period. The ALU 14 compares the sensor readings to the desired values and computes the required control effort in terms of a duty cycle according to the resident program. The ALU 14 then encodes the duty cycles for all of the actuators as a series of digital words. Each bit in a word corresponds to a single actuator. The value of each bit represents the desired state (ON/OFF) of the corresponding actuator. Each word represents the desired combination of actuator states at a particular time. These words are written in the desired chronological order to sequential memory locations in RAM 18 as will be discussed in connection with FIG. 2. The DMA then reads the digital words (representing the pulse width modulation) sequentially from RAM 18 and writes them to the output in DMA 16 using the expansion data bus 20. When the DMA 16 reaches the last digital word, the DMA is directed by the processor to repeat the sequence. A single cycle of the pulse width modulation (PWM is produced each time the DMA 16 completes this sequence. The DMA 16 continues producing the same set of duty cycles until the next sample period when the sequence of digital words stored in RAM 18 is updated. The encoding of multiple duty cycles as digital words which are stored in volatile memory and read by an independent DMA operation is a central concept of this invention. 
     DMA 16 writes to a plurality of output lines shown by reference numerals 40 and 42, and others (not shown) which present the PWM words to digital latching devices 1 through n shown by reference numerals 44 and 46. These latching devices retain the value of each word until the next PWM cycle. The latched signals are presented via a plurality of connectors such as lines 48 and 49 to a plurality of amplifiers, 1 through n shown by reference numerals 50 and 52. Amplifiers such as 50 and 52 are shown connected via a plurality of connectors shown by lines 58 and 59 to actuators 1 through n identified by reference numerals 60 and 62. Depending on the condition being controlled, actuators 60 and 62 apply control effort, such as torque, force, etc. to the plant(s) being controlled. These operations are shown in FIG. 1 by dashed lines 64 and 66 connected to the plants 34 and 36 respectively. The conditions being sensed in plants 34 and 36 change in accordance with he digital on/off operation called for by the pulse width modulation. Controller 10 will continue to receive signals from sensors 30 and 32 and will update the information in RAM 18 at each sample period. The DMA 16 will then read the new duty cycle data and write it to latches 40 and 42. 
     As an example, if the top of a platform is to be isolated from undesired vibrations at its base, sensor 30 may sense vibration in the x axis while sensor 32 may sense vibration in the y axis. Vibrations in other axes would be sensed by other sensors not shown. Controller 10 would receive these signals through input port 12 and provide the desired correction signals via DMA 16 to amplifiers 50 and 52. Actuators 60 and 62 would then apply the forces to, for example, linear magnetic actuators in plants 34 and 36, to provide counter vibrations in a direction and for a time necessary to nullify undesired vibrations. 
     FIG. 2 shows one possible sequence of digital PWM words stored in RAM 18. In this case, it is assumed that there are 6 conditions being controlled. Therefore, there are 6 controller outputs driving 6 actuators and 6 controller inputs received from 6 sensors. The condition being sensed by sensor 30 may cause Controller 10 to conclude that there is an error and that a 50% duty cycle should correct this. Assuming the PWM period contains 6 states, the desired PWM sequence for the first actuator is three ones followed by three zeros as shown in column A1 of FIG. 2. This set of signals will be fed in serial fashion to amplifier 50 causing actuator 60 to operate to change the condition of plant 34 which is sensed by sensor 30. The condition being sensed by another 4 sensors (not shown) may necessitate duty cycles in 4 other actuators (not shown). These duty cycles are stored in RAM 18 as shown in columns A2, A3, A4, and A5 of FIG. 2. The condition being sensed by sensor 32 may result in a duty cycle as shown in column A6 of FIG. 2. This signal will be serially presented on output 42 to amplifier 52 causing actuator 62 to operate to change the condition of plant 36 which is sensed by sensor 32. It is thus seen that the DMA function can be used to control a plurality pulse width modulated actuators simultaneously. 
     It should be noted that in the example of FIG. 2, the first digital PWM word, identified by reference numeral 80 in the top row, contains all ones indicating that all 6 actuators are commanded ON simultaneously. This corresponds to a peak in the power requirement for the system. The next word, identified by reference numeral 82, contains 4 ones and 2 zeros. The remaining words contain 3, 2, 1, and 0 logical ones, respectively. Thus the power consumption of the system exhibits large fluctuations which are typically undesirable. This can be seen in FIG. 3 where the current requirements (i) are plotted against time (t). It is seen that during the time t1, six units of currents are required; during the time t2, four units of current are required; during time t3, three units of current are required; during time t4, two units of current are required; during time t5, one unit of current is required; and during time t6, no units of current are required. This continues to occur for each repetition of the PWM cycle until the sensors indicate a different set of duty cycles is required. By identifying the first three columns of FIG. 2 by &#34;A&#34; and the last three columns by &#34;B&#34; the effect of the &#34;A&#34; and &#34;B&#34; contributions can be seen in FIG. 3 by the shaded portions &#34;A&#34; and &#34;B&#34;. 
     To alleviate the problem of power fluctuations, the arrangement of the columns in FIG. 2 may be altered to give the same duty cycles but with the ON times staggered. Thus the power fluctuations may be smoothed by reversing the &#34;B&#34; or last three columns A4, A5, and A6 as shown in FIG. 4. In FIG. 4, rows 80-90 of FIG. 2 have been renumbered 80a-90a for convenience. By reversing the last three columns, row 80a now contains 3 ones and 3 zeros; row 82a contains 3 ones and 3 zeros; row 84a contains 3 ones and 3 zeros; row 86a contains 2 ones and 4 zeros; row 88a contains 2 ones and 4 zeros; and row 90a contains 3 ones and 3 zeros. The effect of this is seen in the graph of FIG. 5 where, as in FIG. 3, the contributions of the first three columns A1, A2, and A3 are again represented by regions marked &#34;A&#34; while the contributions of last three columns A4, A5 and A6 are again represented by regions marked &#34;B&#34;. It is seen that the current requirement remains at 3 units except for times t4 and t5 where the current drops to 2 units. Thus the current requirements remain relatively steady throughout the pulse width modulation cycle. This is in sharp contrast to the fluctuations shown in FIG. 3. It should be noted that reversing the last three columns has been employed as an example and that reversing different combinations of columns will produce a similar smoothing effect. This technique can also be applied to systems with either more outputs or fewer outputs. The smoothing algorithm may be implemented using common programming techniques. 
     It is therefore seen that we have provided a controller which is operable to control a plurality of pulse width modulated actuators without hardware modification by a unique application of a direct memory access function. We have also implemented the pulse width modulation in a manner which minimizes abrupt changes in system current. Many modifications and alterations will occur to those skilled in the art. For example, while &#34;1&#39;s&#34; have to be used for turning &#34;on&#34; and &#34;0&#39;s&#34; for &#34;off&#34; the opposite may be employed. Furthermore, &#34;on&#34; and &#34;off&#34; actuations are not always required since the actuation may cause a variable to increase and decrease to provide condition control Also while amplifiers 50-52 have been used, the outputs from latches 44-46 may, in some cases, be directly used to control actuators 60-62. We therefore do not wish to be limited to the specific disclosures used in connection with the preferred embodiments.