Suspension controller

Abstract: In a vehicle suspension controller (15) in which the output of a vehicle body-mounted absolute vertical acceleration sensor (16) is integrated to provide an absolute vertical velocity signal, the sensor output is high-pass filtered to remove DC components and to pass components in the frequency range of 1-2 Hz. The filter comprises a second order digital all-pass filter embodied recursively on a 16-bit, fixed point, digital signal processor (67). A first stage normalized lattice two-pair network reduces to a unity gain stage; and a second stage single multiplier two-pair lattice network minimizes computational time. The 32-bit internal accumulators of the 16-bit digital signal processors (67) are used advantageously to prevent errors due to internal overflow of the recursive variable (e n-1 ).

Description: The invention relates to a suspension controller for motor vehicles, and to a method of filtering a vehicle body acceleration signal from a sensor of such a controller. Prior art document WO-A-91/00187 discloses a suspension controller for controlling the suspension of a motor vehicle, which vehicle comprises a body and at least one wheel connected thereto by a suspension actuator, the controller comprising an accelerometer disposed on the vehicle body and adapted in use to provide a vehicle body acceleration signal representative of the acceleration of the vehicle body in a direction substantially perpendicular to the plane of the road; an integrator for integrating the vehicle body acceleration signal so as to produce a vehicle body velocity signal; means responsive to the vehicle body velocity signal for controlling the suspension actuator; and a high-pass filter disposed between the accelerometer and the integrator for suppressing d.c. components of the vehicle body acceleration signal. A key parameter for use in the control of some vehicle suspensions is the absolute vertical velocity at some point of the vehicle body. At present, there exist no practical absolute velocity sensors for directly measuring this parameter. It can be obtained, however, by integrating the output of a vertical absolute acceleration sensor at the same point, provided that the acceleration sensor output signal is high-pass filtered to remove all DC components that might otherwise cause integrator saturation and drift. The natural frequency of vibration of a typical vehicle body is in the range of 1 to 2 Hertz. To prevent loss of information in this frequency range, a high-pass filter must have a steep rise from zero Hertz (DC), where full suppression is desired, to the beginning of its passband at 1 Hertz, where minimum suppression is desired. Using a traditional, one pole filter design and an integrator with a low frequency, one pole rolloff for additional high pass filtering, the filter pole lies very close to the integrator pole; and quantization error becomes significant in a digital machine embodiment of the filter. A sixteen bit, fixed point, digital signal processor (DSP) is desirable for its comparatively low cost; but substantial integrator drift may occur with a standard one pole high-pass filter on such a processor due to quantization errors. Alternative fixed point digital signal processors with greater resolution or floating point computing machines increase the cost. The present invention seeks to provide an improved suspension controller and method of filtering a vehicle body acceleration signal from a sensor of such a controller. According to an aspect of the present invention, there is provided a suspension controller as specified in claim 1. According to another aspect of the present invention, there is provided a method of filtering a vehicle body acceleration signal as specified in claim 4. With the invention, a sixteen-bit, fixed point, digital signal processor may be used for a high-pass filter with acceptable quantization error and speed of processing if it is programmed with a digital second order all-pass filter configured as a high-pass filter. The input to the filter routine for this signal processor is summed with its output divided by two. The filter routine itself may comprise a normalized lattice two-pair network for the first stage, which reduces to a negative unity gain, and a single multiplier two-pair lattice network for the second stage. The resulting routine requires only one 16x32 bit multiplication. An embodiment of the present invention is described below, by way of illustration only, with reference to the accompanying drawings, in which: Figure 1 is a schematic diagram of a motor vehicle with a suspension controller according to an embodiment of this invention; Figure 2 is a block diagram of an embodiment of controller for use in the suspension controller of Figure 1; Figures 3A to 3D are block diagrams useful in explaining the operation of the controller of Figure 2; and Figure 4 is a flow chart of the high pass filter operation of the controller of Figure 2. Figure 1 shows a vehicle having a body 10 comprising a sprung mass. Body 10 is substantially rectangular in shape and is supported on four wheels 11, located at suspension points adjacent each of its corners, by suspension apparatus 12. Each suspension apparatus 12 comprises a weight-bearing suspension spring in parallel with a suspension actuator connected to exert a controllable force in parallel with the spring between the body 10 and wheel 11 at that suspension point. The suspension actuator may be a hydraulic or electric actuator capable of providing power to the suspension, as used in fully active suspension control. Alternatively, the actuator may be a variable damper, capable only of dissipating power, as used in semi-active suspension control in which case it may provide damping control in either a continuous or a discrete manner. Suspension apparatus 12 further includes an axle for rotatably supporting wheel 11 and such other suspension components, such as control arms, as are provided in standard vehicle suspension apparatus. At each corner of body 10, a suspension position sensor 13 may be connected between the body and unsprung mass to measure the relative vertical position thereof and to generate an output vertical suspension position signal for input to a controller 15. The relative vertical suspension position signal may be differentiated to produce a relative body/wheel vertical velocity signal. An acceleration sensor 16 is also positioned at each corner of body 10; and sensor 16 generates an absolute vertical acceleration signal of that corner of body 10 for input to controller 15. The absolute body corner velocities at the four corners of the body may be derived from these acceleration signals by first deriving vehicle body heave, roll and pitch accelerations, integrating these accelerations to provide vehicle body heave, roll and pitch velocities and transforming these to vehicle body corner velocities. From the difference between the body corner velocity and relative body/wheel velocity at each corner, controller 15 is able to compute the vertical wheel velocity at that corner; and from the wheel velocity and various body corner velocities, controller 15 is able to compute the desired force between the body and wheel at that corner of the vehicle. The acceleration sensors 16 should be mounted with care so as to minimize cross-axis sensitivity which might contaminate the vertical acceleration signal with horizontal acceleration information. Additional signals which may optionally be generated are a vehicle deceleration or braking signal by brake sensor 17, a vehicle speed signal from vehicle speed sensor 18 and a vehicle steering signal from vehicle steering sensor 19. These latter signals are not required for the calculating the vertical velocity of the body 10 so will not be further described. However, many examples of such sensors and their uses in suspension control are known in the art. The hardware configuration of controller 15 is shown in block diagram form in Figure 2. The analog inputs from sensors 13, 16, and 17 to 19 are processed in input apparatus 60, which includes sensor interface circuitry, anti-aliasing filters and any required additional analog signal processing, such as the differentiating of the relative position signals from sensors 13 to form relative velocity signals. The integration of the body corner acceleration signals from sensors 16 is performed in software within the digital circuitry to be described. With regard to the input signals, it should be noted that the control has been found to work well, at least in the case of an on/off damping actuator, with a loop frequency of 1 KHz, which means that, to avoid aliasing distortion, the input signals should be low-pass filtered to avoid any significant input signals at frequencies above 500 Hz. The differentiator, especially, needs to be designed with care, since differentiation, by nature, accentuates the high frequencies in the signal and heavy filtering tends to introduce phase delays which can slow system response. The processed and filtered input signals are read into the system by a multiplexer 61, which feeds each signal, in turn, to a sample-and-hold circuit 62 and an analog-to-digital (A/D) converter 63. The signals can be pipelined through this portion of the apparatus to speed data read-in. The output of the A/D converter 63 is fed to an eight-bit data bus connected also to a microprocessor 64, RAM 65 and output buffers 66. A separate 16-bit data bus connects dual port RAM 65 to a digital signal processor (DSP) 67. Microprocessor 64, which may, for example, be one of the 68HC11 family made by the Motorola (R) Corporation, contains the basic system operating software and controls the data handling and decision making tasks of the controller 15, while the digital signal processor 67, which may be a TMS320C15 or TMS320C17 made by Texas Instruments (R) Corporation, is optimized for mathematical computations such as multiplication, which would greatly slow down a general purpose microprocessor. Such multiplications are used both in the solution of the control equations and in the digital integration routine to be described. The output buffers 66 interface the digital processing apparatus with the four actuators 12 and may further include digital low-pass filtering to prevent the output of signals having frequencies higher than those to which the actuators need respond. A more complete description of the hardware can be found in the paper "Dual Processor Automotive Controller" by Kamal N. Majeed, published in the proceedings of the IEEE/Applications of Automotive Electronics, Dearborn, Michigan, Oct. 19, 1988. However, cost savings may be achieved in a mass produced system by the replacement of the dual port RAM 65 with ordinary RAM and the use of a software controlled interface bus between the microprocessor 64 and digital signal processor 67 and a three-line serial interface for input and output, as will be apparent to the skilled person. As previously mentioned, the derived vehicle body heave, roll and pitch accelerations are each high-pass filtered and integrated to generate corresponding velocities. The problems involved in this process in a vehicle having a natural resonant body frequency of 1 to 2 Hz and a 16-bit, fixed point digital signal processor are discussed in the introduction to this description. A solution to these problems can be found in the use of a digital all-pass filter. A digital all-pass filter passes all frequencies but causes the phase to shift through a selected frequency range determined by the filter parameters. The transfer function for a second order all-pass filter is given by the following equation: A(z) = k 2 + k 1 (1+k 2 )z -1 + z -2 1 + k 1 (1+k 2 )z -1 + k 2 z -2 , wherein k₁ determines the centre of the phase shift and k₂ determines the bandwidth of the phase transition. The constant k₁ is calculated as k 1 = -cos(ω 0 ), wherein ω₀ is the normalized digital centre frequency of the phase shift, which is defined as the centre frequency divided by the folding frequency. The constant k₂ is derived from k 2 = [1-tan(Ω/2)]/[1+tan(Ω/2)], wherein Ω is the normalized digital bandwidth, defined as the bandwidth divided by the folding frequency, which latter is one half of the sampling rate. The digital all-pass filter may be implemented in several forms. The most computationally efficient form is the single multiplier lattice two-pair network, as seen in Figure 3(A), since it requires only a single multiplier k m . A second alternative is the normalized lattice two-pair network, as seen in Figure 3(B). In the case of a high-pass filter, the centre frequency is zero (DC). To produce the velocity signal in the required frequency bands, a filter bandwidth of 0.1 Hz is provided. The normalized centre frequency ω₀ = 0.0 and, since the desired phase shift is 2π radians, k₁ = -1.0. Normalizing the bandwidth provides Ω = Bandwidth*2π Sampling Frequency = 0.2π 500 = 0.00062832, wherein the Bandwidth and Sampling Frequency are both in Hz; and k₂ therefore equals 0.9994. To minimize computations, the single multiplier two-pair lattice network is used for the second stage of the filter. The normalized lattice two-pair network is used for the first stage, due to the reduction in structure when k m = ±1. Substituting k₁ = -1.0 for k m in the normalized two-pair lattice network, the √(1-|k₁|²) term reduces to 0.0. In addition, since this is the first stage, the AP m-1 (z) block is unity. Thus, the first stage reduces to a negative unity gain stage. The final, reduced all-pass filter lattice network is shown in Figure 3(C). To implement the high pass filter utilizing qthe all-pass filter design, a band-reject structure is used, as shown in Figure 3(D). The input is passed through the all-pass filter network, and the output of the all-pass filter is summed with the input, with an initial scale factor of 0.5 to compensate for the doubling effect of the summing junction. From the diagrams in Figures 3(C) and 3(D), the difference equations are derived as follows: a n = k 2 (x n - e n-1 ); b n = a n + x n ; e n = -b n ; y n = a n + e n-1 (all-pass output); y hpf = 0.5(x n + y n ) (high-pass output). Since the intermediate variable e is the only recursive variable, these difference equations can be reduced, while maintaining the benefits of the lattice structure: e n = -[k 2 (x n - e n-1 ) + x n ]; y hpf = 0.5(e n-1 - e n ). Although the total gain for the all-pass, high pass filter is unity, the intermediate variables can overflow. Since e is a recursive variable, intermediate overflows are not acceptable; and compensation for such overflow should be provided. The greatest overflow in the intermediate variables will occur at the centre frequency of the filter or, in this case, at DC. Simulation of a 0.1 Hz bandwidth filter with a DC input shows that an overflow slightly larger than a factor of 3,000 occurs for e. The next greatest power of two is 4,096. Thus the input must be shifted to the right by 12 bits (divided by 4096) prior to any arithmetic with e. Since most 16-bit digital signal processors have 32-bit accumulators (to accommodate 16x16 bit multiplications), shifts on arithmetic operations are easily accomplished. Finally, the output must be shifted left by 11 bits (multiplied by 2048) to compensate for the right shift of the input minus one bit for the 0.5 scaling factor. If e is stored as a 16-bit number, using two's complement representation, quantization errors will occur due to the 12-bit shift. Thus e must be stored as a 32-bit number; and this will require 16x32 bit multiplication with the processor described. This multiplication requires significantly more time (x50) than a 16x16 bit multiplication. Although this multiplication increases cycle time on a 16-bit machine, the total time is still less than a traditional filter with extended (32-bit) precision, due to the minimum multiplication implementation. The flow chart for the implementation of this filter is shown in Figure 4. BUFFER, TEMP and e n-1 are all 32-bit variables; while x n and y n are 16-bit variables. k₂ is a 16-bit constant. A triple equal sign (===) represents a 32-bit operation; and a double equal sign (==) represents a 16-bit operation. In most machines, BUFFER is the accumulator and TEMP is a temporary RAM register. Referring to Figure 4, x n is divided by 4096 (shifted 12 bits right) and added to e n-1 in step 100. This corresponds to the first summing junction of Figure 3(C), in which x n is the input and e n-1 is the intermediate value from the z⁻¹ block. The result is placed in BUFFER. In step 101, the quantity in BUFFER is multiplied by k₂. In step 102, the quantity in BUFFER is added to the input x n divided by 4096 (shifted 12 bits right) and the result is stored in BUFFER. This corresponds to the second summing junction in Figure 3(C). In step 103, the quantity in BUFFER is stored in TEMP for use in the next cycle as the recursive variable e n-1 . In step 104, the present e n-1 (from last cycle) is subtracted from the quantity stored in BUFFER with the difference stored in BUFFER. This corresponds to the third and last summing junction in Figure 3(C). In step 105, BUFFER is multiplied by 2,048 (shifted 11 bits left). This is the net result of multiplying by 4,096 (shift 12 bits left) to compensate for the original 12-bit shift right at the input and a divide by 2 (shift 1 bit right) for the 0.5 factor in Figure 3(D). In step 106, the 16 most significant bits of BUFFER become y n , which is output as the filtered signal to a standard integrator routine to perform the integration and thus generate the absolute vertical body velocity signal. In step 107, the quantity in TEMP is retained as e n-1 for the next cycle.

Claims: A suspension controller for controlling the suspension of a motor vehicle, which vehicle comprises a body (10) and at least one wheel (11) connected thereto by a suspension actuator (12), the controller (15) comprising an accelerometer (16) disposed on the vehicle body and adapted in use to provide a vehicle body acceleration signal representative of the acceleration of the vehicle body in a direction substantially perpendicular to the plane of the road; an integrator (64,65,67) for integrating the vehicle body acceleration signal so as to produce a vehicle body velocity signal; means (66) responsive to the vehicle body velocity signal for controlling the suspension actuator (12); a high-pass filter (64,65,67) disposed between the accelerometer and the integrator for suppressing d.c. components of the vehicle body acceleration signal and for passing components of the vehicle body acceleration signal lying in the range of substantially 1 to 2 Hz; the high-pass filter comprising, means for feeding the vehicle body acceleration signal to a second order all-pass digital filter (AP(Z)) having a phase shift centre substantially at zero Hz and a phase shift bandwidth of substantially 0.1 Hz, and means for summing the output of the second order all-pass digital filter with the vehicle body acceleration signal and for reducing the sum thereof by a factor of one half. A suspension controller according to claim 1, wherein the second order all-pass digital filter includes a first stage comprising a normalized lattice two-pair network and a second stage comprising a single multiplier two-pair network. A suspension controller according to claim 2, wherein the first stage normalized lattice two-pair network comprises a unity gain stage. A method of filtering a vehicle body acceleration signal representative of acceleration of a vehicle body in a direction substantially perpendicular to the plane of the road, which vehicle includes a body (10), at least one wheel (11) connected thereto by a suspension actuator (12) a suspension controller (15) comprising an accelerometer (16) disposed on the vehicle body and adapted to provide the vehicle body acceleration signal, an integrator (64,65,67) for integrating the vehicle body acceleration signal so as to produce a vehicle body velocity signal, means (66) responsive to the vehicle body velocity signal for controlling the suspension actuator and a 16-bit fixed point digital signal processor (67) including a plurality of 32-bit buffers; the method, performed in cyclical manner, being adapted to filter the vehicle acceleration signal prior to integration thereof and to suppress components of the vehicle body acceleration signal at substantially zero Hz and to pass components of the vehicle body acceleration signal being in the range of substantially 1 to 2 Hz, and comprising for each cycle the steps of dividing the vehicle body acceleration signal (x n ) by 4096, adding the quotient thereof to a stored recursive variable (e n-1 ) from a previous cycle, and storing the sum in a first buffer; multiplying the contents of the first buffer by a constant (k₂) and storing the product in the first buffer; adding to the contents of the first buffer the vehicle acceleration signal (x n ) divided by 4096 and storing the sum in the first buffer and a second buffer; subtracting the stored recursive variable (e n-1 ) from a previous cycle from the first buffer and storing the difference in the first buffer; multiplying the contents of the first buffer by 2048 and feeding the product (y n ) thereof, truncated to 16 bits, to the integrator; and storing the contents of the second buffer as the stored recursive variable (e n-1 ) for a subsequent cycle. A method according to claim 4, wherein the first buffer is a 32-bit accumulator and the steps of dividing by 4096 and multiplying by 2048 are performed by right or left shifting respectively.

Inventors: HANSON REED DAVID, MAJEED KAMAL NAIF, TRACHT STEVEN LEE, WESTERKAMP JOHN J, HANSON, REED DAVID, MAJEED, KAMAL NAIF, TRACHT, STEVEN LEE, WESTERKAMP, JOHN J
Applicants: GEN MOTORS CORP, GENERAL MOTORS CORPORATION
Application year: 1992
Main classification: B60G17
IPC codes: B60G23, B60G17