|Publication number||US3033453 A|
|Publication date||May 8, 1962|
|Filing date||Dec 2, 1957|
|Priority date||Dec 2, 1957|
|Publication number||US 3033453 A, US 3033453A, US-A-3033453, US3033453 A, US3033453A|
|Inventors||Lode Tenny D|
|Original Assignee||Honeywell Regulator Co|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (1), Referenced by (19), Classifications (10)|
|External Links: USPTO, USPTO Assignment, Espacenet|
y 8, 1962 T. D. 'LQDE 3,033,453
COMPUTERS Filed Dec. 2, 1957 5 sheets-sheet 1 /IO INCREMENTAL x INPUT ll COMPUTER l2 f(x) OUTPUT 45? I3 27 'To TIMER TIMER f(x) 34 CORRECTION 4 3; 6 22 TO TIMER-L STORAGE R T DELAY SUBT AC 5R OF m) l6 EXACT flx) HIGH Q ACCURACY Fig-I COMPUTER |4 INPUT 23| 240 270 2 $30 MULTIPLIER/ 9 MULTIPLIER r 25s n 9 MuLTlPLlER g-n ADDER ZQSINEB 266 267 243 253 256 272 264 95 MULTIPLIER 247 MULTlPLItH g 250 x0 97 273 MULTIPLIER MULTIPLIER I 50 x 0 244 INVENTOR. TENNY 0. LODE F lg. 5
ATTORNEY Patented May 8, 1962 United States Patent Ofiice This invention relates to computers, and more specifically to periodic correction of a computer output.
In applications where the present value of a function of a variable is needed, it is apparent that the computation process used to determine the function of the variable must be very fast to minimize any resultant error due to time lag. The computation in this type of application is sometimes called real time computation, referring to the fact that the computed function of a changing variable actually represents the true value of the variable at that time. Real time computation, then implies very fast computation and, in the case of digital devices, relatively frequent sampling of the variable involved.
One method used in digital computers to obtain a function of a variable is to compute the sum of a series expansion chosen to represent the function. An expansion according to Maclaurins series, for example, may be used to determine the value of a function to any desired accuracy. Computing a series, however, ordinarily involves many repetitive computations and requires, relatively, considerable time. For this reason it is not ordinarily thought of as a method that can be reconciled with real time requirements.
Another method of computation, namely incremental computation, is a scheme wherein the output, the computed function, is changed by suitable increments according to corresponding changes in the input, the changing variable. This method of computation requires relatively few steps between input and output and may be suificiently fast to be correctly referred to as real time computation. An inherent drawback of incremental computation appears, unfortunately, when one considers that in incremental computation the output function is not completely computed over and over again, but rather the output function is merely modified in accordance with changes of the input variable. It is evident from this that small errors, due to either the approximations sometimes employed in incremental computation or due to actual errors occasionally arising out of faulty operation of the computer, or both, are cumulative. Thus, small errors, accumulated over a period of time, may become very serious.
While incremental computation is extremely fast, it is seen that its feature otaccumulating errors is highly objectionable. On the other hand, while computation by a series expansion may be as accurate as is desired, its relatively slow speed usually precludes its use in real time applications.
My invention, which combines the above types of computation, takes advantage of both the speed of incremental computation and the accuracy of slower methods by, roughly, correcting the output of an incremental computer periodically with a value obtained through the use of a very accurate computer (using a series expansion for example) and other apparatus. My invention will be more thoroughly understood through reference to the more detailed explanation to follow and the drawings, of Which:
FIGURE 1 is a diagram showing my invention,
FIGURE 2 is a block diagram. of a computer, 31'? ranged according to my invention, for computing an exponential function of a variable,
FIGURE 3 is a block diagram of a computer, ar-
a generalization of ranged according to my invention, for computing logarithm of a function,
FIGURE 4 is a block diagram of a computer, arranged according to my invention, for computing the sine and cosine of a function,
FIGURE 5 is a more detailed block diagram of a portion of the diagram in FIGURE 4,
FIGURE 6 is a block diagram of an arrangement for obtaining the sum of a series expansion of a variable.
STRUCTURE OF FIGURE -1 Referring now to FIGURE 1, there is shown an incremental computer 10 having a variable input 11, an output 12 and a correction input 13. A high-accuracy computer 14 has a variable input 15 and a function output 16. Function output 16 is connected to, an input 17 of a subtracter 2t). There'is also a storage delay device 21, which has an input 22 and an output 23. Output 23 of storage device 21 is connected to another input 24 of subtracter 20. Subtracter 20 also has an output 25 connected to switch 26. Another switch 27 is connected between function output 12 of incremental computer 10 and input 22 of storage delay device 21. Still another switch 30 is connected between variable input 11 of incremental computcr 10 and variable input 15 of high accuracy computer 14. A timer 31 operates switches 26, 27 and 30. Switch 30 is operated by timer 31 through connection 32, switch 26 is operated through connection 33, and switch 27 is operated by timer 31 through connection 34. A further input 35, labeled X input, is connected to input 11 of incremental computer 10.
OPERATION OF FIGURE 1 Incremental computer 10 is of the type previously mentioned, which, although capable of very rapid computation, is also subject to cumulative errors over a period of time. More detailed explanation will be given later, but is not necessary, at this point, to understand the general scheme of my invention as shown in FIGURE 1. High-accuracy computer 14 will also be explained'in more detail later, but it is sufiicient -for the present to understand that, while its operation is relatively slow, almost'any desired degree of accuracy can be obtained from it. I
As stated before, incremental computer 10 is *fast enough so that, with a changing x input, the. f(x) output may be considered the real time tunction of the x input, neglecting accumulated errors. With incremental computer 10 operating over relatively long periods of time, however, the accumulated errors in the f(x) output may become so large that the output is no longer usable. It is this difficulty that must be avoided. My invention overcomes the difliculty as follows. Let an x input be applied to input 35 and the entire computer be operating normally. Timer 31 operates switches 30 and 27 simultaneously so that at one instant a sample of the x input is fed to high'accuracy computer 14 and at the same instant a sample of the incrementally computed f(.x) at output 12 is stored in storage delay device 21. Highaccuracy computer 14 now computes the precise or exact value of fix) from the x sample. sent to subtracter 20, where it is compared with the output of storage delay device 21. The output of subtracter 20, then, is the difference between the accurately computed f(x) from the high-accuracy computer'14 and the stored value of ('x). It must be stressed that the sample of the x input from which the exact f(x) was computed and the sample of the incrementally computed f( x) were obtained simultaneously; Therefore, were the incremen tally computed f(x) without error, it would equal the exact f(x), and the output of subtracter 20 would, be
1 zero. Assuming some error in the incrementally com- This exact f(x) is.
puted f(x), however, that error will now appear at output 25 of Subtracter 20. Timer 31 now operates switch 26 to connect subtracter output 25 to correction input 13. Incremental computer is so arranged that output 12 is changed in the amount of the correction appearing at correction input 13, and of course, is increased or decreased according to the sign of the value appearing at correction input 13. This correction being accomplished, the f(x) output of incremental computer 10 is corrected for all errors that existed at the time of sampling the x input and the incrementally computed f(x) output. A complete correction cycle, then, consists of simultaneous ly sampling the input and output of the incremental computer, computing the exact f(x) of the sampled x input, comparing this exact f(x) with the stored incrementally computed f(x), and transmitting the difierence obtained thereby to the incremental computer to change the incremental computer f(x) accordingly. The frequency of the correction cycle is limited, of course, by the time required to perform the series expansion of f(x), or whatever precise method is used to obtain an exact f(x), but the correction cycles may otherwise be timed as desired. Whatever the time between correction cycles, the greatest error ever appearing at the incremental computers output is that small error accumulated between two successive correction cycles.
For example, when a correction cycle is performed once every second, the incrementally computed f(x) is corrected each second for the error that existed one second previous. Hence the error is reduced to that accumulated in one second, allowed to accumulate for an additional second, and reduced again to the value accumulated in the previous second. In most cases, this is completely negligible.
With the arrangement outlined in FIGURE 1, none of the speed of the incremental computer is lost, but most of the accuracy of the more precise computer 14 is gained. It is apparent then that the best features of both computers have been combined. The result is a device capable of both high speed and great accuracy.
ALGORITHM FOR e In performing an incremental computation of a function several algorithms may be used, the one presented below being only representative.
Generally, an incremental computation is performed by changing the computed function by small increments, the value of which is, of course, determined by the corresponding change in the variable.
For example: Let y=e The ratio of the change in y due to a change in x is:
-g= e y and dy=e dx and Ay=Ae Ee Ax Accordingly, to correct the e output for Ax, a small change in x, e Ax must be added to the present value of e Specifically:
where e is the incrementally corrected e e is the present e and Ax is the incremental change in x.
STRUCTURE OF FIGURE 2 FIGURE 2 shows a specific computer arranged according to the scheme of FIGURE 1. The computer in HG- URE 2 gives a real time output which is an exponential function of the input. An input 40 is labeled x input and an output 41 is labeled e output. Input 40 is connected to two switches, 42 and 43. The other side of switch 42 is connected to a minuend input 44 of a subtracter 45 and is also connected to an input 46 of a storage delay device 47. The output 50 of storage delay device 47 is connected to the subtrahend input 51 of subtracter 45. Switch 43, which has one side connected to x input 40, has its other side connected to input 52 of series expansion device 53. The output 54 of series expansion device 53 is connected to a minuend input 55 of a substracter 56, which also has a subtrahend input 57 and an output 60. Arithmetic Operations in Digital Computer-s by R. K. Richards, published by D. Van Nostrand Company, Inc., 1955, chapters 4 and 8 explain various subtracter circuits suitable for use in this invention. Output 60 is connected through a switch 61 to an input 62 of an accumulator 63. Accumulators of the type suitable for use in the practice of this invention are explained in an article titled Digital Differential Analysis by Klein, Williams, Morgan and Ochi, published by Instruments and Automation, June, 1957, page 105. Subtracter 45 has its output 64 connected to an input 65 of a multiplier 66, which also has another input 67 and an output 68. The before mentioned reference, Arithmetic Operations in Digital Computers, chapters 5 and 9 explain various multiplier circuits suitable for use in this invention. Output 68 is connected through a switch 70 to another input 71 of accumulator 63. Accumulator 63 has an output 72 which is connected to e output 41, to input 67 of multiplier 66, and through a switch 73 to an input 74 of a storage delay device 75. Various types of storage delay circuits can be used in the practice of this invention. A discussion of storage circuits can be found in the above mentioned reference Arithmetic Operations in Digital Computers page 326 through 330, and in Pulse and Digital Circuits by Millrnan and Taub published by McGraw Hill Book Company Inc. 1956. Storage delay device 75 has an output 76, which is connected to subtrahend input 87 of subtracter 56. Switches 42, 43, 61, 70, and 73 are operated by a timer 77. Either an electro-mechanical or electronic timer could be used in this invention. The Design of Switching Circuits by Keister, Ritchie and Washburn, published by D. Van Norstrand Company Inc., 1951, chapter 17 explains the construction of various types of timers. Connections 80, 81, 82, 83, and 84 operate respectively switches 42, 43, 61, 70, and 73.
OPERATION OF FIGURE 2 Referring now to FIGURE 2 it will be seen how the above algorithm is performed. Assume the entire computer is operating normally. To get a value of Ax switch 42 is operated at set intervals by a timer 77. This connects x input 40 periodically to minuend input 44 and storage delay input 46. Storage delay device 47 is arranged so that the x sample present to its input 46 is delayed by the amount of one switching time of switch 42, so that the x sample appearing at storage delay output 50 is always one step behind the x sample presented to input 44 of subtracter 45. With this arrangement, every time an x sample appears at input 44 the immediately preceding 2: sample appears at input 51 of subtracter 45. The difference between these consecutive x samples is, of course, the change in x, Ax, that occurred between the times of taking the two samples. This difference is found by subtracter 45, so that its output 64 presents the value Ax for each sample taken by switch 42. Switch 42 normally operates quite rapidly; for example, in one embodiment 30 samples per second were taken.
Now that Ax is available, it must be multiplied by the present value of e according to the relation above. In FIGURE 2 output 64 of Subtracter 45 is connected to input 65 of multiplier 66. This introduces the Ax values to multiplier 66. The e output at output 72 of accumulator 63 is connected to another input 67 of multiplier 66, so that this e is multiplied by Ax therein, and the value e Ax appears at output 68 of multiplier 66. As
switch 70 is closed by timer 77, the increment e Ax is presented to input 71 of accumulator 63 and is added to the present e output, thereby modifying the e output by the proper amount, determined by the incremental change in x input. The timer 7'? synchronizes switch 79 with switch 42 so that switch 7% is closed once for every closing of switch 42, but delayed by the short time required for operation of subtracter 45 and multiplier 66. Since samples of the x input are taken at frequent intervals, the 6 output keeps pace with changes in the x input, so that the computations performed are of the real time variety.
As in FIGURE 1, the correction arrangement of FIG- URE 2 takes simultaneous samples of the x input and the e output. The e output sample is stored during the time that a precise e value is computed from the sampled x input, the stored e value is subtracted from the precise e value, and the difference is added into the accumulator to correct the e output for all error contained therein before the correction sampling. In FIGURE 2 this is accomplished by simultaneously closing switches 43 and 73 so than an x input sample is introduced to the series expansion device 53 at exactly the same time that the e output sample is stored by storage delay device 75. Series expansion device 53 then computes an exact value of e for the x sample. This exact value is designated in FIGURE 2 as e appearing at output 54 of series expansion box 53 and is presented to minuend input 55 of subtracter 56 where it has subtracted from it the stored output value, 2%. The output 60 of subtracter 56, e -e is sent to accumulator 63 upon the appropriately timed closing of switch 61, thereby completing one correction cycle. It is to be noted that this correction cycle corrects the e output for any error that was present at the time of the correction sampling. The correction cycles are performed at a considerably slower rate than the incremental modification cycles, for the determination of the very accurate value accomplished by the series expansion device requires a relatively long time. In one embodiment, for example, the incremental sampling took place at 30 times per second, while the correction sampling occurred once per second. Nevertheless, the accumulated error during one second is negligible, so that the 3 output is always extremely accurate.
ALGORITHM FOR Log x The algorithm used in the incremental computation of Log x is derived as follows: Let y=Log x then doc 21,1-? and A11: g Ay w Since y=Log x, the Log x output must change by for each Ax change of input.
The manner in which this is accomplished is explained in connection with FIGURE 3.
STRUCTURE OF FIGURE 3 FIGURE 3 is an arrangement quite similar to that shown in FIGURES 1 and 2, but is arranged for the real time computation of Log x. An x input 90 is connected to one side of a switch '91, the other side of which is connected to a minuend input 920i a subtracter 93 and is also connected to an input 94 of a storage delay device 95 and to an input 96 of a divider 97. The x input 90 is also connected to one side of a switch 100, the other side of which is connected to the input 101 of a series expansion device 102. The output 1030f series expansion box 102 is connected to the minuend input 104 of subtracter 105, which also has a subtrahend input 106 and a differsubtracter 93 is connected toan input 116 of divider 97. 1 Output 117 of divider '97 is connected through switch to an input 121 of accumulator 112. The output add to the present cosine 0 1122 (Log x output) of accumulator 112 is connected through switch 123 to the input 124 of a storage delay device 125, which has its output 126 connected to input 106 of subtracter 105. A timer 127 operates switches 91,
100., 110, 120, and 123, respectively, through connections 130, 131, 132, 133, and 134.
OPERATION OF FIGURE 3 As was mentioned, the operation of FIGURE 3 is very similar to the operation already explained of FIG- URES 1 and 2, a dilference lying in the algorithm used in the incremental computation of Lo x.
In FIGURE 3, Ax is obtained the same way it is in FIGURE 2. This is through the successive sampling of the x input by switch 91 and subtractingof the present sample from the just previous sample in subtracter 93, whose output 115 presents Ax. This Ax is divided by x in divider 97, according to the above algorithm. The value Ax appearing at output 117 of the divider 97 is then fed to input 121 through switch 120, which is appropriately synchronized with switch 91 as explained before in connection with FIGURE 2. The output 122 of accumulator 112 is, in this way, modified appropriately with each input sample according to the incremental change of the x input between sampling periods. The Log x output of FIGURE 3 is, of courseQsubject to the same errors mentioned before. It is also corrected in the same manner explained before.
In FIGURE 3, switches and 123 are operated by timer 127 to talre simultaneous samples of the x input and Log x output, the latter of which is stored in the storage delay device 125 and the former of which is used in the series expansion device 102' to obtain a precise value of Log x. The precise value is designated Log, x and the stored sampled value of Log, x is designated (Log x)s. As before, the stored value is subtracted from the precise value, in subtracter 105, and the diiference is sent through a switch to the input 111 of accumulator 112 where it is added to the Log x output.
The output is thereby corrected for-all error appearing therein at the time of the correction sampling. The correction sampling may take place at whatever speed desired within the limitations of the speed of the series expansion process in series expansion device 102.
ALGORITHMS FOR SINE AND COSINE To determine what incremental modification must be made of a cosine 0 output for incremental changes in the 0 input. Let
y=cos 6 then dy=sin 0dr) and Aya-HAB To incrementally compute cos 0, then, the computer must output a value sin 0A9 for each A6 increment.
The incremental computation of sin 0 is very similar.
y=sin 0 then dy=cos 0d!) and Ayzcos 0A0 Therefore the sin 0 output must be changed by an amount equal to cos 0A0 for each A0 increment of the input. The computer of FIGURE 4, as is explained below, accomplishes this in a fashion very similar to those at- STRUCTURE OF FIGURE 4 FIGURE 4 shows an arrangement by which both sine and cosine outputs are obtained from an angular input. FIGURE 4 is, in a sense, a double computer, one half computing the sine output and the other half computing the cosine output. A input is connected through three switches 141, 142, and 143 to an input 144 of a cosine series expansion device 145, to an input 146 of a storage delay device 147, and to an input 150 of a sine series expansion device 151, respectively. The minuend input 152 of a subtracter 153 is also connected to input 146 of storage delay device 147. Subtracter 153 also has a subtrahend input 154, which is connected to output 155 of storage delay device 147. The output 156 of subtracter 153 is connected to-an input 157 of a multiplier 160 and is also connected to an input 161 of a negative multiplier 162. The term negative multiplier means that its output is opposite in sign to the actual product of its inputs. Another input 163 of negative multiplier 162 is connected to the output 164 of a sine accumulator 165, the output 166 of negative multiplier 162 is connected through a switch 167 to an input 170 of a cosine accumulator 171. The output 172 of cosine accumulator 171 is connected to output 173, which is labeled cosine 6 output and is also connected to an input 174 of multiplier 160. Output 172 is further connected through a switch 175 to the input 176 of a storage delay device 177. The output 180 of storage delay device 177 is connected to the subtrahend input 181 of a subtracter 182, which also has a minuend input 183 connected to the output 184 of cosine series expansion device 145. The output 185 of subtracter 182 is connected through a switch 186 to an input 187 of cosine accumulator 171.
Multiplier 160 has its output 190 connected through a switch 191 to an input 192 of sine accumulator 165. Sine accumulator 165 has a further input 193 connected through a switch 194 to the output 195 of a subtracter 196. 511btracter 196 has a subtrahend input 197 connected to the output 200 of a storage delay device 261, the input 202 of which is connected through a switch 203 to output 164 of sine accumulator 165. Sine 0 output 164 is also connected to output 204. Subtracter 1% has a minuend input 205 connected to the output 266 of sine series expansion device 151.
Connections 216, 211, 212, 213, 214, 215, 216, 217, and 218 of timer 297 which control, respectively, switches 141, 142, 143, 175, 186, 167, 121, 194, and 203.
OPERATION OF FIGURE 4 As was noted, in the incremental computation of the sine 6 output there is need for the cosine 0 value and in the incremental computation of the cosine 0 output the sine 0 value is needed. As a result, the arrangement shown in FIGURE 4 is a rather happy combination.
With the arrangement of FIGURE 4 in normal operation, the 6 input at 140 is sampled periodically through switch 142. The samples are presented directly to minuend input 152 of subtracter 153 and are also sent through storage delay device 147 to the subtrahend input 154 of subtracter 153. Thus, subtracter 153 subtracts the delayed sample of 0 from the present sample of 0 and presents in its output 156 the value A0, the incremental change of the 0 input that occurs between two successive samplings. A0 is sent both to the negative multiplier 162 of the cosine section of FIGURE 4 and to multiplier 160 of the sine section of FIGURE 4. Each section performs its respective algorithm as outlined above.
To perform the sine computation cos 0 from the cosine 0 output is sent to multiplier 160, which therefore multiplies A0 by cos 0 givingas a product the change in sin 0 corresponding to the change in the 0 input. This sin 0 increment is labeled A sine 0 at output 190 of output 160.
8 A sine 0 is transmitted through switch 190 to input 192 of sine accumulator 165, thereby modifying the sine 0 output in accordance with the above algorithm.
To perform the cosine algorithm, A0 and sin 0 are multiplied by negative multiplier 162, so that its output 166 presents A cos 0, the change in cos 0 corresponding to the change in the 9 input. A cos 0 is fed through switch 167 to the cosine accumulator 171 and is added to the cosine 0 output therein. The cosine 0 output is therefore modified correctly in accordance with the algorithm explained above.
The periodic correction of the sine 0 output and the cosine 0 output of FIGURE 4 is substantially the same as that explained before. For the correction of the sine 6 output, the 0 input and the sine 6 output are simultaneously sampled by the operation of switches 143 and 203, respectively. The sampled sine 0 value is stored in storage delay device 201, a sine series expansion is performed on the 0 sample by series expansion device 151, and the stored sine 0 is subtracted from the precisely computed value in subtracter 196. The difference is then sent, by operation of switch 194, to sine computer 165, wherein it is added to the incrementally computed sine 0 output, thus correcting the sine 0 output for all error present at the time of the correction sampling. This correction cycle is repeated as frequently as desired, tempered, of course, by design considerations.
The cosine correction cycle is identical with the sine correction cycle, except that series expansion device 145 performs the series expansion of the cosine, where series expansion device 151 performs the series expansion of the sine of the 0 sample. The computer of FIGURE 4 therefore, produces real time sine 0 and cosine 0 outputs, which are incrementally computed and periodically corrected to present a very high degree of accuracy.
FIGURES 5 AND 6 FIGURE 5 shows an arrangement for obtaining the sine of an angle by means of a series expansion, and FIGURE 6 outlines a more general arrangement for obtaining functions of a variable by means of series expansons.
The expansion of sine 0, according to Maclaurins series is z a: 5 n I From this it can be seen that since 0 can be computed by obtaining the odd powers of 0, multiplying these powers by appropriate constants, and adding all of the terms.
In FIGURE 5, a 6 input 230 is connected to inputs 231 and 232 of multiplier 233 and to input 234 of multiplier 235 and to input 236 of multiplier 237. Multiplier 233 has an output 248, which is connected to an input 241 of multiplier 235, to input 242 of a multiplier 243, and to an input 244 of a multiplier 245. Multiplier 235 has an output 246 connected to an input 247 of multiplier 243, which in turn has an output 250 connected to an input 251 of multiplier 245. There are three other multipliers, 252, 253, 254. Multipliers 252, 253, 254 have inputs 255, 256, and 257 respectively connected to outputs 246 and 250 and an output 269 of multiplier 245. An adder 261 has inputs 262, 263, 264, and 265 and an output 266. Output 266 is connected to an output terminal 267. Multipliers 237, 252, 253, and 254, respectively, have out- .puts 279, 271, 272, and 273 which are connected in that order to inputs 262, 263, 264, and 265 of adder 261. No specific type of multiplier or adder are required for the practice of this invention. However, chapters 5 and 9 of the before mentioned reference Arithmetic Operations in Digital Computers show various multipliers suitable for use in this invention, while the chapters 4 and 8 discuss various suitable adder circuits.
Multiplier 233 multiplies 6 by 0 giving a 0 output 240. This 0 is fed to input 241 of multiplier 235, where it is Multiplier 253 multiplies a by a factor A which, to match the series above, is
1 5T and in a similar fashion is multiplied by a factor A; in multiplier 254, where A; equals The outputs of multipliers 237, 252, 253, and 254 are added in adder 261, which then gives as its output a very close approximation of sine 0. The accuracy of this ap proximation may be increased by any desired amount simply by adding more multipliers to the arrangement of FIGURE so as to include more of the terms in the basic sine expansion given above. In certain instances, expansions other than the Maclaurin series described above may be employed to advantage in a similar manner.
FIGURE 6 shows an arrangement which may be utilized quite generally in obtaining values of functions by series expansions. A cascade of multipliers 28 1?, 281, 282, 283, 284, 285, and 286 are arranged to produce outputs of the powers or" x from x to ad. The .1: input 287 is connected to both inputs 290 and 291 of multiplier 280, so that the output 292 of multiplier 280 is x This x output is connected to an input 293 of multiplier 281, which also has another input 294 connected to x input 287, so that the output 295 of multiplier 281 is x As may be seen by reference to FIGURE 6 this process is continued in the remainder of the multipliers 282, 233, 284, 285, and 286, so that x x x x and x are available at their respective outputs 296, 297, 298, 299, and 390. A second group of multipliers is arranged to multiply their respective inputs by constant values. These are multipliers 301, 3112, 363, 304, 365, 3%, 307, and 3118. The constant values of these multipliers are labeled A through A respectively, on FIGURE 6. The outputs of multipliers 301 through 308 are, respectively, 369, 31%, 311, 313, 314, 315, and 316, all of which are connected to adder 317, wherein they are added together, the sum being presented at output 318 of adder 317. a
The operation of FIGURE 6 is similar to that of FIG- URE 5, but more generalized.
The Maclaurin series for cos x is:
Accordingly, to compute cosine x the constants A through A are adjusted as follows:
It is seen, however, that the output 318 does not take 7 into account the first factor in the series, 1. This, of course, simply requires the addition of the value 1, whereupon it represents an accurate determination of cosine x. This value 1 may, if desired, be added directly into adder 317 by means of a constant correction device 320, as shown in dashed lines in FIGURE 6.
The Maclaurin series for e is:
The arrangement of FIGURE 6 may therefore be used to obtain e by setting constants A; through A' as follows:
The value 1 may again be introduced to adder 317 by constant correction device 321 Other basic expansions may be performed by apparatus of FIGUREG by adjusting the multiplying factors A through A according to the series expansions utilized. A short list of such expansions is given on page 349 of Differential and Integral Calculus by Clyde E. Love, Fourth Edition, published by the MacMillan Company in 1947. The series expansion devices of FIGURES l, 2, 3, and 4 operate as just explained.
While I have shown and explained several arrangements embodying my invention, many changes and modifications of this invention will undoubtedly occur to those who are skilled in the art and I therefore wish to be understood that I intend to be limited by the scope of the ap-v pended claims and not by the specific embodiments of my invention which is disclosed herein for the purpose of illustration only.
1. Self-correcting computing apparatus comprising: a computer for computing the value of a function of a continuously changing variable, said computer having an input for receiving signals representative of said variable and an output for presenting a continuously computed value of said unc-tion; further means for computing a relatively precise value of said function of a sample value of said variable, said further means having an input and an output; a first sampling means connected from the input of said further means to the input of said computer for periodically applying a sample value of said variable to said further means; storage means; second sampling means for periodically connecting the output of said computer with said storage means to store a sample of the output of said computer; means causing said second sampling means to operate simultaneously with said first sampling means; comparison means having an output, and having a first input connected to the output of said further means and a second input connected to said storage means for determining the difiference between said relatively precise value and said stored sample of the output of said computer and presenting said diiference at the output of said comparison means; and means connecting the output of said comparison means to said com puter for modifying the output of said computer in accordance with said difference.
2. Apparatus for correcting for error in incremental computation of a function of a changing variable comprising: means for periodically simultaneously sampling a first signal representing a variable and a second signal representing an incrementally computed function thereof; means for storing the sample of said second signal; means for computing a signal representing relatively exact value of the function from the sample of said first signal; means for comparing the signal representing said relatively exact value with the stored sample of said second signal to determine the difference therebetween; and means for adding said difference to said second signal.
3. Apparatus for continuously computing the value of e, where x is an independent variable, comprising: input means producing a first signal representative of the value x; incremental computing means having an input connected to said input means to receive said first signal and having an output presenting an incrementally computed signal representative of e means connected to said input means and to the output of said incremental computing means for sampling periodically and simultaneously said first signal and said incrementally computed signal and storing said incrementally computed signal; further computing means connected to said sampling means for receiving the sample of said first signal and computing therefor a second signal representative of a relatively precise value of e; means for comparing said second signal with the stored sample of said incrementally computed signal and determining the difference; and means for modifying said incrementally computed signal in accordance with said difference.
4. Self-correcting computing apparatus for continuously computing the value of e where x is an independent variable comprising; means producing a signal representative of x; means for incrementally computing signal representing e from said signal representing x; means for periodically and simultaneously sampling the signal representing the value of x and the signal representing the incrementally computed value of e and storing the latter; means for computing from the sampled signal representing the value of x; a signal representing an exact value of 2*; means for comparing the signal representing said exact value of e with the stored signal representing the value of e and computing the difierence therebetween; and means for modifying the signal representing the incrementally computed value of e in accordance with said difference.
5. Apparatus for correcting for error in a real time computer comprising: 7 means producing a first signal representing a variable; means producing a second signal representing an incrementally computed function of said variable; means for periodically simultaneously sampling said first signal and said second signal; means for storing the sample of said second signal; further means for computing a signal representing a relatively exact value of the function of the sample of said first signal; means for comparing the signal representing said relatively exact value with. the stored sample of said second signal and for determining the difference therebetween; and means for modifying the second signal representing said incrementally computed function in the amount of said difference.
6. Self-correcting computing apparatus for continuously computing the value of sine 0, where is an independent variable, comprising: means producing a signal representing 0; means for incrementally computing a signal representing sine 0; means for periodically and simultaneously sampling the signal representing 0 and the incrementally computed signal representing sine 6 and storing the latter; means for computing from the sampled signal representing 0 a signal representing an exact value of sine 9 by a series expansion method; means for comparing said signal representing an exact value of sine 0 with the stored signal representing sine 0 and computing the difference; and means for modifying the incrementally computed signal representing sine 0 in accordance with said difference.
7. Self-correcting computing apparatus for continuously computing the value of cos 0, Where 0 is an independent variable, comprising: means producing a first signal representing 6; means for incrementally computing from said first signal a second signal representing cos 0; means for periodically and simultaneously sampling said first and second signals and storing the latter; means for computing from the sampled value of said first signal a third signal representing an exact value of cos 6 by a series expansion method; means for comparing said third signal with the stored value of said second signal and computing the difference; and means for modifying said second signal in accordance with said difference.
8. Self-correcting computing apparatus comprising: an incremental computer for computing the value of a function of a continuously changing variable, said incremental computer having an input for receiving signals representative of said variable and an output for presenting signals representing an incrementally computed value of said function; further means for computing a signal representing a relatively precise value of said function of a sample value of the signal representing said variable, said further means having an input and an output; a first sampling means connected from the input of said further means to the input of said incremental computer for periodically applying a sample value of the signal representing said variable to said further means; storage means; second sampling means for periodically connecting the output of said incremental computer with said storage means to store a sample of the output of said incremental computer, said second sampling means operating simultaneously with said first sampling means; comparison means having an output, and having a first input connected to the output of said further means and having a second input connected to said storage means for determining the difference between the signal representing said relatively precise value and said stored sample of the output of said incremental computer; and means for presenting said difference to said incremental computer for modifying the output of said incremental computer in accordance with said difference.
9. Apparatus for correcting for error in a real time computer comprising: means producing a first signal representing a variable; a real time computer receiving said first signal and producing a second signal representing a function of said variable; means for periodically simultaneously sampling said first and second signals; means for storing the sample of said second signal; further means for obtaining a third signal representing a relatively exact value of the function of the sample of said first signal; means for comparing said third signal with the stored sample of said second signal and for determining the ditference therebetween; and means for modifying said second signal in the amount of said dif ference.
References Cited in the file of this patent FOREIGN PATENTS 705,168 Great Britain Mar. 10, 1954
|Cited Patent||Filing date||Publication date||Applicant||Title|
|GB705168A *||Title not available|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US3231726 *||Jun 22, 1961||Jan 25, 1966||Gen Precision Inc||Coordinate conversion system for strap down inertial guidance systems|
|US3243811 *||Nov 1, 1961||Mar 29, 1966||Cubic Corp||Digital phase measuring and filtering system|
|US3248706 *||Sep 27, 1961||Apr 26, 1966||Gen Precision Inc||Computer|
|US3272972 *||Jan 15, 1962||Sep 13, 1966||United Aircraft Corp||Random orientation inertial system|
|US3283130 *||Nov 21, 1961||Nov 1, 1966||Sperry Rand Corp||Digital computer having time shared arithmetic units respectively for fast and slow computations|
|US3330943 *||Nov 26, 1963||Jul 11, 1967||System Dev Corp||Digital computer checking means for analog computer|
|US4130876 *||May 27, 1977||Dec 19, 1978||Nippon Gakki Seizo Kabushiki Kaisha||Method of and apparatus for composing approximate sinusoidal waveform|
|US4486850 *||Dec 27, 1976||Dec 4, 1984||Hyatt Gilbert P||Incremental digital filter|
|US4551816 *||Sep 27, 1982||Nov 5, 1985||Hyatt Gilbert P||Filter display system|
|US4553213 *||Sep 27, 1982||Nov 12, 1985||Hyatt Gilbert P||Communication system|
|US4553221 *||Sep 27, 1982||Nov 12, 1985||Hyatt Gilbert P||Digital filtering system|
|US4581715 *||Sep 28, 1982||Apr 8, 1986||Hyatt Gilbert P||Fourier transform processor|
|US4686655 *||Sep 27, 1982||Aug 11, 1987||Hyatt Gilbert P||Filtering system for processing signature signals|
|US4744042 *||Nov 30, 1984||May 10, 1988||Hyatt Gilbert P||Transform processor system having post processing|
|US4944036 *||Aug 10, 1987||Jul 24, 1990||Hyatt Gilbert P||Signature filter system|
|US5053983 *||Apr 4, 1986||Oct 1, 1991||Hyatt Gilbert P||Filter system having an adaptive control for updating filter samples|
|US5363112 *||Jul 5, 1989||Nov 8, 1994||The Boeing Company||Noise suppression processor for a carrier tracking loop|
|US5459846 *||Dec 2, 1988||Oct 17, 1995||Hyatt; Gilbert P.||Computer architecture system having an imporved memory|
|US20080285549 *||May 23, 2008||Nov 20, 2008||Broadcom Corporation||Synchronous read channel|
|U.S. Classification||708/534, 708/494|
|International Classification||G06F7/60, G06F7/48, G06F7/64, G06F7/544|
|Cooperative Classification||G06F7/544, G06F7/64|
|European Classification||G06F7/544, G06F7/64|