Patent ID: 12252188

DETAILED DESCRIPTION

The general principle behind the present disclosure is that an offset torque (i.e. a torque applied by a motor in an opposite direction to that applied by another motor generating a feedback torque) is only applied when necessary, and in circumstances where “rattle” is likely to occur. In general, it has been found that higher frequency sinusoidal movements of a steering wheel (and of a steering column to which the steering wheel is attached) will create a stronger rattle. In the present disclosure, a higher offset is applied when higher frequency movements are detected, in order to avoid rattle, and a lower offset supplied when lower frequencies are detected, in order to reduce friction.

In the present disclosure, an acceleration of the steering shaft is measured or calculated and an envelope of the acceleration as it varies with rattle frequency is detected and scaled to arrive at a value for the offset torque to be applied. The output is scaled to a desired range by using two parameters, namely a maximum rattle frequency (“max_rattle_freq”) and a maximum rattle angle (“max_rattle_angle”).

The acceleration of the steering shaft is used as an input because an offset torque is only required when “rattle” is detected, and it is known that rattle occurs during sinusoidal or sharp movements of the steering wheel, and the offset will ramp up in accordance with the detected envelope as the rattle frequency increases, as will be explained. It is not desirable to use the speed of rotation of the steering wheel as an input, because rotation at a constant speed does not predict rattle. During rotation of the steering wheel at a constant speed, the acceleration will remain at zero (or at a low value as a result of noise) but will be sinusoidal during a “rattle” condition due to the nature of the sinusoidal derivative.

If speed were to be used as an input and the steering shaft were rotated at a constant speed, as the speed is non-zero then the envelope detector would output a non-zero torque offset. However, rotation at constant speed does not create rattle, and so speed is a poor predictor of rattle. In contrast, acceleration remains at zero during constant speed and will react to sharp or abrupt changes, resulting in an increased torque offset, which is desirable.

The following equations define the position, velocity and acceleration respectively of the steering shaft (N.B. angles in degrees are converted to radians).

The equations assume mostly sinusoidal behaviour during rattle conditions, even if the driver of the vehicle makes only one or a few short, sharp turns.

position=sin⁢(2⁢π⁢ft)*2⁢π3⁢6⁢0velocity=d⁢positiond⁢t=d⁢sin⁢(2⁢π⁢ft)d⁢t=cos⁢(2⁢π⁢ft)*2⁢π⁢f*2⁢π3⁢6⁢0acceleration=d⁢velocityd⁢t=d⁢cos⁢(2⁢π⁢ft)*2⁢π⁢fd⁢t=-sin⁢(2⁢π⁢ft)*4⁢π2⁢f2*2⁢π3⁢6⁢0

The acceleration to position magnitude ratio is therefore as follows:

❘"\[LeftBracketingBar]"a⁢c⁢c⁢elerationposition❘"\[RightBracketingBar]"=|-sin⁢(2⁢π⁢ft)*4⁢π2⁢f2*2⁢π3⁢6⁢0sin⁢(2⁢π⁢ft)|=4⁢π2⁢f2⁢2⁢π3⁢6⁢0❘"\[LeftBracketingBar]"a⁢c⁢c⁢elerationposition❘"\[RightBracketingBar]"∼f2

Therefore, it can be seen that the relationship between acceleration and position of the steering shaft is quadratic. Consequently, any offset calculated on the basis of acceleration will increase in a quadratic manner depending on the “rattle” frequency.

It should also be noted that the above equations do not just define position, velocity and acceleration, but on the assumption of sinusoidal movement of the steering shaft during a rattle condition, it is possible to derive a relationship between position, velocity and acceleration, which allows for scaling after passing through an envelope detector (using parameters such as max_rattle_angle for scaling, which defines the maximum position amplitude during rattle).

FIG.3shows the relationship300between a rattle frequency in Hz (x-axis) against an amplitude (in degrees) of the position of a steering shaft in a steer-by-wire system and the relationship302between the rattle frequency in Hz (x-axis) against the derived shaft velocity (in rad s−1) of the shaft.

FIG.4shows the relationship400between the rattle frequency in Hz (x-axis) against a derived shaft acceleration (in rad s−2) and the detected envelope402of the sinusoidal acceleration signal during rattle. It will be seen fromFIG.4that the envelope detector is tuned to detect the envelope of the sinusoidal acceleration signal during rattle.

In addition, however, it is necessary to apply scaling to the detected acceleration envelope so that at the maximum rattle angle amplitude (“max_rattle_angle”) and the maximum rattle frequency (“max_rattle_freq”), the maximum dynamic offset is achieved. By varying the maximum rattle frequency and the maximum rattle angle, the desired envelope shape can be altered, based on the desired response.

It is also possible, but not essential, to apply an initial constant offset torque. If an initial constant offset torque is applied, the same envelope shape is retained at values greater than the constant offset value, as will be explained. In other words, any applied constant offset value becomes the minimum value for a dynamic offset output.

This is illustrated inFIG.5, which shows first, second and third scaled dynamic offsets500,502,504having a zero constant offset, a constant offset of 0.25 Nm and a constant offset of 0.5 Nm respectively. It will be observed that for the zero constant offset500, the scaled dynamic offset corresponds to the detected acceleration envelope, as modified by the scaling. For the 0.25 Nm and 0.5 Nm constant offsets502,504, the constant offset torque is applied as a minimum value until the value determined by the envelope is reached (just above 5 Hz and just above 7 Hz respectively), after which the dynamic offset corresponds to the detected acceleration envelope, as modified by the scaling.

In other words, if the offset is scaled to achieve 1 Nm (at max_dynamic_offset set to 1 Nm) at 10 Hz with 10° rattle amplitude, it will scale automatically to whatever max_dynamic_offset is applied. When a constant offset is applied (see curves502,504) that constant offset becomes the minimum offset. If the dynamic offset exceeds the constant offset than the offset follows the dynamic pattern.

By way of example, if the maximum rattle angle amplitude (“max_rattle_angle”) is 10° and the maximum rattle frequency (“max_rattle_freq”) is 10 Hz, and if a maximum dynamic offset torque (“max.dyn.offset”) of 1 Nm is desired, then the following is true:

dyn.offset=envelope.det.output*scalingscaling=max.dyn.offsetmax.envelope.det.output=16⁢8⁢9.0⁢3≈0.0⁢0⁢1⁢4⁢5(Note⁢the⁢maximum⁢value⁢of689.03in⁢Figure⁢4,calculated⁢as⁢follow:)max.envelope.det.output=4⁢π2⁢f2⁢2⁢π3⁢6⁢0*max_rattle⁢_angle⁢(in⁢degrees)=4⁢π2*(max_rattle⁢_frequency)2*2⁢π3⁢6⁢0*max_rattle⁢_angle=4*π2*1⁢02*2⁢π3⁢6⁢0*1⁢0=689.03rad/s2

In the above, max.envelope.det.output is the value of the maximum amplitude of the acceleration signal at a given frequency.

One example of how the acceleration envelope is detected and scaling applied is shown schematically in the algorithm ofFIG.6. Many different methods of envelope detection can be used, and the algorithm shown inFIG.6is based on a simplified version of that found at https://www.mathworks.com/help/dsp/ug/envelope-detection.htm.

The algorithm ofFIG.6produces a dynamic motor offset (“dynamic_motor_offset”)600and comprises four main functions as follows:602: scaling of the envelope detector output to the motor offset604: avoidance of zero value for square root operation606: a simplified amplitude modulation (AM) envelope detector608: a minimum constant offset

Each of the above units will be discussed in more detail below, together with an explanation of their interoperability.602: scaling of the envelope detector output to the motor offset

The value for the defined maximum rattle angle amplitude (“max_rattle_angle”) is input at620and the value is converted to radians at622. The value for the maximum defined rattle frequency (“max_rattle_freq”) is input at624and is squared at626. A pi constant is input at628which is squared at630. The outputs of622,626and630are multiplied at632and amplified at634, the amplified output being supplied to an acceleration limiting module636which also receives a steering shaft acceleration signal from638generated in response to input of a shaft speed signal at640. The acceleration limiting module limits the acceleration to the maximum scaling amplitude. The output from634is also fed to an offset sensitivity stage642.604: avoidance of zero value for square root operation

This function comprises three “if/else” statement blocks638,639,640, and the output “acceleration_limited” from the acceleration limiting module636is fed to the input of each of the three blocks638,639,640. At block639, if the input u1=0, an output signal is sent to a further input of block638, and if the input u1≠0, an output signal is sent to a further input of block640. (In fact, if used for code generation, if u1=0, the actual value of “acceleration_limited” would be increased by a very small amount, e.g. 0.001, because a zero value might introduce errors in the square root operation, as it uses division operation.)

Blocks638,640in combination have a zero mitigation function and effectively form a “if/else” function. The overall effect of function604is that if the output from the acceleration limiting module636, some small number (e.g. 0.001) is added on top of the input, and in all other cases the signal is allowed to pass unchanged. The output of each of operators638,640is supplied to, and merged by, a zero mitigation step “zero_mitigation”650of the AM envelope detector606.606: a simplified amplitude modulation (AM) envelope detector

The AM envelope detector is a simplified detector in order to reduce CPU load and produces a signal output quality which is sufficient for the particular application. Generally, the envelope detector connects all of the peaks in the acceleration signal and produces an envelope which, as indicated inFIG.4, increases with rattle frequency. The amplitude modulation (AM) envelope detector function is effectively in the form of an infinite impulse response low-pass filter, based on discrete time implementation and is well known to those skilled in the art.

The output of the zero mitigation step650is squared at652and amplified at654and forms one input of a low pass envelope filter656which removes high-frequency components from the sinusoidal/high-frequency signal received from amplifier654, to leave only the envelope of the signal. The other inputs to the processing step are an envelope filter time constant (“envelp_filter_time_const”)658whose value is calculated to achieve a desired cut-off frequency and a delayed output from the low pass envelope filter656via delay circuit660which inputs a previous output of the filter, which is required for the calculation to achieve correct filter performance.

The output of the low pass envelope filter656supplied to a square root input of a square root value iterator component670and the output of670is fed to one input of a dynamic offset component680, which is a multiplier, the other input of which is received from the output of the offset sensitivity stage642. Block642outputs a scaling value obtained from a first input “max_dyn_offset” from a “gb_scaled_dyn_offset” operator684(described further below) and the “max_envelope_det_output” from602, and the scaling value is equal to the max_dyn_offset/max_envelope_det_output. The dynamic offset value calculated at component680is equal to “envelope_detector_output” from component670multiplied by the scaling value from component642.608: a minimum constant offset

The output of the dynamic offset component680is fed to a relational operator686of the minimum constant offset unit608, and the relational operator686also receives an input from the output of the “gb_scaled_offset” operator674, which receives inputs from a “motor_offset_scaled_shaft” operator676and a “gearbox_ratio” detector678. The “motor_offset_scaled_shaft” operator676is a motor offset scaled to user side values (e.g. offset at the motor gearbox ratio). A user inputs the desired degree of “feel” at the steering wheel, which is scaled down to the motor level for the control circuit. The “motor_offset_scaled_shaft” operator676is used either to set a minimum offset in a dynamic mode or to set an offset value in a static mode.

The offset component680also comprises a switch688which receives inputs from the output of the dynamic offset component680, the output of a relational operator686and the output of the “gb_scaled_offset” operator674. The “gb_scaled_offset” operator674in turn receives inputs from the “gearbox_ratio” detector678and from a “max_dyn_offset_scid_shaft” operator685which is used to set the maximum offset allowed in the software control. The switch688thereby operates to produce an output which will output either minimum offset or dynamic offset, whichever is larger. In other words, switch688ensures that a minimum offset value is set when the dynamic offset setting falls below a threshold. For example, if the minimal offset is 0.5 Nm but the dynamic offset produced is 0.3 Nm than the actual offset applied in a dynamic mode will be 0.5 Nm (minimum offset) because the minimum offset>the dynamic offset. However, in the event of severe rattling such that the dynamic offset were to be, for example, 0.7 Nm then688will output 0.7 Nm because the minimum offset<the dynamic offset.

The output of switch688is fed to an “offset_saturation” operator696, which also receives an input from the output of a “gb_scaled_dyn_offset” operator684. The offset saturation block696limits the constant offset from block608which is allowed to be applied in dynamic mode as a precaution, so that the value cannot exceed that set by the user at685. The operator684receives inputs from operator685and a gearbox ratio indicator function678and produces an output “gb_scaled_dyn_offset” equal to “shaft_Scaled_dyn_offset” from operator685divided by a “gearbox_ratio” value from678and thereby scales down the value selected at685to motor level values. As mentioned above, the output of684is also fed to an input of the offset sensitivity stage642.

The output of the “offset_saturation” operator696is also fed to one input of an “offset_switch”698, which also receives inputs from an “offset_type_switch” operator697(which allows manual switching between dynamic offset and static (manual) offset) and from the gearbox scaled offset operator674whose output equals “motor_offset_scaled_shaft” from block676divided by “gearbox_ratio” from operator678and is therefore scaled to motor level by the gearbox ratio. The “offset_switch”698thereby receives the values of both the dynamic mode and the static mode and switches the output (i.e. allows one value through) depending on the value of the “offset_type_switch” operator697. In essence, if “offset_type_switch”=1, the output of696will be allowed through, and if “offset_type_switch”=0, the output of674will be allowed through. A “dynamic_motor_offset” operator600receives a signal from the offset switch698which is a scaled value of the envelope, adjusted to provide a minimum constant offset, if selected. The offset switch698selects which type of offset to use as the output based on the value of the “offset_type_switch” signal from switch697, namely dynamic offset (value 1) or static offset (value 0), both of which are provided to the offset switch698at the same time.

FIGS.7(a) to7(c)depict graphs that show the relationship between time (x-axis) and the position, acceleration and generated offset respectively in practical testing of the arrangement ofFIG.6.

In the tests to whichFIG.7refers, the settings were as follows:maximum amplitude: 10°maximum rattle frequency: 10 Hzmaximum dynamic offset: 1 Nm (the motor is scaled with 85% gearbox efficiency)constant offset: 0 Nm

The testing was carried out manually under laboratory conditions and consequently maintaining the amplitude at the same level as the maximum setting was difficult. However, it will be observed that the peak position amplitude is between 8° to 12°. The internal frequency counter also indicates that the rattle frequency peaked at 7 Hz, noting that anything outside of the sinusoidal shape of the acceleration signal can be ignored, because of how the frequency is calculated. The frequency counter was implemented specifically for calculating frequency of a sinusoid will signal. In the event of non-sinusoidal (or even non-periodic) signals, then the output of the counter is unusable and can be ignored for the purposes of the tests.

So filtering was required for the acceleration, otherwise the signal became too noisy. Filtering of the acceleration signal is generally required for the algorithm to work, because acceleration is acquired by means of differentiating velocity signals, which commonly are already noisy, and consequently the derived acceleration signal is even noisier.

FIG.7indicates that at 7 Hz, the shaft position peak amplitude was of the order of 11°, which corresponds to an acceleration amplitude of the order of 370 to 375 rad s−2, corresponding to a dynamic offset of the order of 0.45 to 0.50 Nm. If this is inserted into the amplitude equations, the following is obtained:

envelope.det.output=4⁢π2*(frequency)2*2⁢π3⁢6⁢0*angle=4⁢π2*(7)2*2⁢π3⁢6⁢0*1⁢1≈371⁢r⁢a⁢ds2
Scaling is the same due to settings, but 85% efficiency is applied to the gearbox:
scaling≈0.00145*0.85≈0.00128
dyn·offset=envelope·det·output*scaling=371*0.00128≈0.475 Nm

Overall, therefore, operation of the algorithm on real hardware behaves as expected.

The disclosure is not restricted to the details of the foregoing exemplary arrangement.