Dual mode control of a variable displacement refrigerant compressor

An improved control method for an electronically controlled variable displacement refrigerant compressor, where the control has normal and high speed displacement control modes, with smooth transitions between such control modes. The displacement control mechanism is in the form of a solenoid valve, and the valve is pulse-width-modulated (PWM) at a variable duty cycle to regulate displacement of the compressor. When the compressor is operating in a normal speed range, a first control mode determines a normal PWM duty cycle to satisfy cooling demand; when the compressor is operating in a high speed range, a second control mode determines an alternate PWM duty cycle based on compressor speed. The solenoid valve is operated in accordance with the duty cycle corresponding to the lower displacement. A smooth transition from the normal control mode to the high speed control mode is achieved by scheduling the alternate duty cycle as a function of compressor speed. Once in the high speed control mode, the parameters of the first control mode are adjusted so that the normal duty cycle matches the alternate duty cycle. This ensures a smooth transition from the high speed control mode to the normal control mode when the compressor speed falls back into the normal speed range.

TECHNICAL FIELD 
This invention relates to a control method for an electronically controlled 
variable displacement refrigerant compressor that is mechanically driven 
by a motor vehicle engine, where the displacement is controlled in a 
normal mode or a high speed mode. 
BACKGROUND OF THE INVENTION 
Variable displacement refrigerant compressors have been utilized in 
automotive air conditioning systems, with the displacement regulated in 
accordance with cooling demand via either a hydraulic control valve or 
solenoid control valve. In a typical arrangement, the compressor includes 
one or more pistons coupled to a variable angle wobble plate or swash 
plate, and the control valve adjusts a differential pressure acting on a 
wobble plate control mechanism to vary the wobble plate angle, and hence 
the compressor displacement. In the control of such a compressor, it has 
been found that the compressor durability can be improved without 
significant loss of cooling during high speed operation of the engine by 
overriding the normal displacement control and de-stroking the compressor 
to reduce its displacement to a lower value. By way of example, a 
hydraulic de-stroking implementation is disclosed in the U.S. Pat. No. 
5,071,321, and electronic de-stoking implementations are disclosed in the 
U.S. Pat. Nos. 4,606,705 and 5,145,326. 
A drawback with known controls of the type described above is that the 
transition between normal and high-speed displacement control modes is 
abrupt and tends to produce disturbances in the compressor and the engine 
powertrain. These disturbances are undesired for reasons of both 
durability and driveability. Accordingly, what is desired is a dual mode 
control that minimizes disturbances to the compressor and engine 
powertrain when transitioning from one control mode to the other. 
SUMMARY OF THE INVENTION 
The present invention is directed to an improved control method for an 
electronically controlled variable displacement refrigerant compressor, 
where the control has normal and high speed displacement control modes, 
with smooth transitions between such control modes. 
In a preferred embodiment, the displacement control mechanism is in the 
form of a solenoid valve, and the valve is pulse-width-modulated (PWM) at 
a variable duty cycle to regulate a displacement control pressure within 
the compressor. When the compressor is operating in a normal speed range, 
a first control determines a normal PWM duty cycle based on cooling 
demand; when the compressor is operating in a high speed range, a second 
control determines an alternate PWM duty cycle based on compressor speed. 
The solenoid valve is operated in accordance with the duty cycle 
corresponding to the lower displacement. 
According to the invention, a smooth transition from normal control to high 
speed control is achieved by scheduling the alternate duty cycle as a 
function of compressor speed. Once in the high speed control mode, the 
parameters of the first control are adjusted so that the normal duty cycle 
matches the alternate duty cycle. This ensures a smooth transition from 
high speed operation to normal operation when the compressor speed falls 
back into the normal speed range.

DESCRIPTION OF THE PREFERRED EMBODIMENT 
Referring to the drawings, and particularly to FIG. 1, the reference 
numeral 10 generally designates an automotive air conditioning (AC) system 
including an electronically controlled multi-cylinder variable 
displacement refrigerant compressor 12 of the variable angle wobble plate 
type. The other elements of the system 10 are conventional, and include 
condenser 13, orifice tube 14, evaporator 16 and accumulator 18 arranged 
in order between the compressor discharge cavity 20 and suction cavity 22. 
A variable speed engine drive shaft (not shown) is coupled to a compressor 
pulley 48 via drive belt 50, and the pulley 48 is coupled to a compressor 
drive shaft 46 by an electromagnetic clutch 44. A number of pistons (only 
one of which is shown in FIG. 1) are mounted in the compressor crankcase 
27 so as to be reciprocally driven by the shaft 46 through a tiltable 
wobble plate mechanism, generally designated by the reference numeral 25. 
The stroke of the pistons 24, and hence the displacement of the compressor 
12, is determined by the operating angle of the wobble plate 26. The 
wobble plate operating angle is regulated by pulse-width-modulating (PWM) 
a solenoid actuated control valve 28 to control the pressure in crankcase 
27. The control valve 28 includes two valves mechanically coupled to an 
armature 29: a normally closed ball poppet valve 30 coupling the crankcase 
27 to a compressor discharge cavity 20 and a normally open flat poppet 
valve 31 coupling the crankcase 27 to a compressor suction cavity 22. When 
the solenoid coil 33 is de-energized, gas pressure in the crankcase 27 
bleeds off into suction cavity 22 through poppet valve 31; when coil 33 is 
energized, high pressure gas enters crankcase 27 from discharge cavity 20 
through poppet valve 30. In general, increasing the PWM duty cycle (i.e., 
the on/off energization ratio of solenoid coil 33) increases the crankcase 
pressure to decrease the operating angle of the wobble plate 26, and hence 
the compressor displacement, whereas decreasing the PWM duty cycle 
decreases the crankcase pressure, thereby increasing the operating angle 
of wobble plate 26, and hence the compressor displacement. 
As described in detail below, the solenoid coil 33 is controllably 
energized by the electronic controller 54 based on four inputs: a target 
evaporator outlet air temperature EOAT.sub.tar, the drive speed CS of 
compressor 12, the actual outlet pressure COP.sub.act of condenser 13, and 
the actual outlet air temperature EOAT.sub.act of evaporator 18. The 
actual pressure and temperature values COP.sub.act and EOAT.sub.act may be 
obtained with suitable conventional transducers 13a, 16a, as indicated. 
The controller 54 may also be used to control the activation of the 
compressor clutch 44, as indicated by line 55. 
FIG. 2 depicts the electronic controller 54 and air conditioning system 10 
in block diagram form. A demand device (not shown) sets the target 
evaporator outlet air temperature EOAT.sub.tar, and the controller 54 
outputs a PWM duty cycle DC.sub.out to the AC system 10. As indicated in 
FIG. 1, transducers in the AC system 10 provide signals indicative of the 
compressor speed CS, the actual evaporator outlet air temperature 
EOAT.sub.act and the actual condenser outlet pressure COP.sub.act. 
In the preferred embodiment, the normal control comprises two closed loop 
PID controllers: Evaporator Outlet Air Temperature (EOAT) Controller 70, 
and Compressor Outlet Pressure (COP) Controller 72. That is, each 
Controller 70, 72 develops proportional, integral and differential control 
terms that contribute to the respective output. The input EOAT.sub.tar is 
compared to EOAT.sub.act at summing junction 74 to provide an error input 
EOAT.sub.err to EOAT Controller 70, which produces a target compressor 
outlet pressure COP.sub.tar. The COP.sub.tar signal, in turn, is compared 
to COP.sub.act at summing junction 76 to provide an error input 
COP.sub.err to COP Controller 72, which produces a PWM duty cycle 
PID.sub.-- DC. Thus, the EOAT Controller 70 develops a condenser outlet 
pressure COP.sub.tar for eliminating the evaporator outlet temperature 
error EOAT.sub.err, and the COP Controller 72 develops a solenoid duty 
cycle PID.sub.-- DC (referred to herein as the normal mode duty cycle) for 
eliminating the compressor pressure error COP.sub.err. In the preferred 
digital implementation, both control loops are executed many times per 
second so that COP.sub.tar may be a highly dynamic quantity based upon 
changes in vehicle speed, system voltage, ambient temperature, or any 
other disturbance to the AC system 10. 
The compressor speed CS is applied as an input to the High Speed Destroke 
Logic block 80, which controls the status of a high speed indicator, 
referred to herein as the HIGH SPD flag. When the HIGH SPD flag is set to 
indicate a high speed condition, the block 82 determines an alternate PWM 
duty cycle DC.sub.min for solenoid valve 56, both the HIGH SPD flag and 
DC.sub.min being applied as inputs to the PID Post Processor 78. The PID 
Post Processor 78 sets the output duty cycle DC.sub.out equal to the 
higher of normal mode duty cycle PID.sub.-- DC and alternate duty cycle 
DC.sub.min when the HIGH SPD flag is set so that under high speed 
operation, the solenoid valve 56 is operated at a low duty cycle to 
suitably de-stroke, or reduce the displacement of, compressor 12. 
During high speed operation, the PID Post Processor 78 additionally 
determines alternate control parameters for EOAT Controller 70 and COP 
Controller 72 so that the normal mode duty cycle PID.sub.-- DC matches the 
alternate duty cycle DC.sub.min. In the illustrated embodiment, the EOAT 
and COP Controllers 70, 72 are PID controllers, and the PID Post Processor 
78 determines alternate integral terms for causing COP.sub.tar to equal 
COP.sub.act, and PID.sub.-- DC to equal DC.sub.min. When the compressor 
speed falls back into the normal speed range, the alternate control 
parameters are replaced with calculated parameters based on cumulative 
error, and the integral terms of the EOAT and COP Controllers 70, 72 
transition toward values that provide a normal mode duty cycle PID.sub.-- 
DC that brings EOAT.sub.act into conformance with EOAT.sub.tar, as 
described above. This results in a smooth transition from the high speed 
control mode to the normal control mode, improving the quality of control 
of the AC system 10. 
FIG. 3 is a flow diagram representative of a main loop computer program 
executed by the controller 54 in carrying out the control of this 
invention. Block 90 designates a series of initialization instructions for 
setting various parameters and variables to initial values at the onset of 
each period of operation of the AC system 10. For example, the cumulative 
error and integral control terms may be reset to zero. After 
initialization, the blocks 92-100 are repeatedly executed in sequence to 
read and process input signals such as CS, EOAT.sub.tar, EOAT.sub.act and 
COP.sub.act, to perform the High-Speed Logic, to update the EOAT and COP 
control loops, and to perform the PID Post Processing function. 
The input signal processing designated by block 92 provides a background 
updating function for the EOAT and COP control loops, computing and 
storing parameters such as EOAT.sub.err and COP.sub.err, as well as 
differential error terms EOAT.sub.del and COP.sub.del. The differential 
error terms EOAT.sub.del, COP.sub.del represent the difference in error 
terms EOAT.sub.err, COP.sub.err, respectively, over a predetermined time 
interval or execution loop. The EOAT and COP control loops subsequently 
use these terms to update COP.sub.tar and PID.sub.-- DC, respectively. 
The High-Speed Logic function of block 94 is described in further detail in 
the flow diagram of FIG. 4. Referring to FIG. 4, the blocks 110-118 are 
executed to determine the status of the HIGH SPD flag. The compressor 
speed CS is compared to an upper reference speed REF.sub.up at block 110, 
and to a lower reference speed REF.sub.lo at block 116. If CS exceeds 
REF.sub.up, block 112 is executed to set the HIGH SPD flag, indicating a 
high speed operating condition. Once the HIGH SPD flag is set, as 
determined at block 114, it remains set until CS falls below REF.sub.lo. 
When CS falls below REF.sub.lo, blocks 118-122 are executed to clear the 
HIGH SPD flag, to reset a HIGH SPD TIMER to zero, and to set the alternate 
duty cycle DC.sub.min to zero. 
Once the HIGH-SPD flag is set, the blocks 124-126 increment the HIGH-SPD 
TIMER, one count per loop, until the timer count reaches a reference count 
REF corresponding to a predefined time interval. So long as the timer 
count is less than REF, the block 128 sets the alternate duty cycle 
DC.sub.min to a predetermined initial value, referred to as DC.sub.init. 
Once the timer count reaches REF, the block 130 sets the alternate duty 
cycle DC.sub.min to a value determined as a function of the compressor 
speed CS. The CS vs. DC.sub.min relationship may be determined based on 
field testing; in general, DC.sub.min increases with increasing compressor 
speed. Alternatively, the HIGH-SPD TIMER may be dispensed with, and 
DC.sub.min may be determined as a function of the compressor speed CS as 
soon as the HIGH-SPD flag is set. 
The EOAT Control of main flow diagram block 96 is described in further 
detail in the flow diagram of FIG. 5. Referring to FIG. 5, the blocks 
190-192 are first executed to update the proportional and differential 
control terms EOAT.sub.prop and EOAT.sub.diff. The proportional control 
term EOAT.sub.prop is determined according to the product of EOAT.sub.err 
and a proportional gain term G.sub.eoat.sbsb.--.sub.prop, whereas the 
differential control term EOAT.sub.diff is determined according to the 
product of EOAT.sub.del and a differential gain term 
G.sub.eoat.sbsb.--.sub.diff. The blocks 194-198 then determine if the EOAT 
or COP control loops are already at their respective authority limits. 
Block 194 identifies a minimum compressor displacement condition wherein 
PID.sub.-- DC is at 100%, COP.sub.act is greater than COP.sub.tar, and 
EOAT.sub.act is less than EOAT.sub.tar. Block 196 identifies a maximum 
compressor displacement condition wherein PID.sub.-- DC is at 0%, 
COP.sub.act is less than COP.sub.tar, and EOAT.sub.act is greater than 
EOAT.sub.tar. Finally, block 200 identifies a COP Control loop limit 
condition where COP.sub.tar is at either a maximum allowable value 
COP.sub.tarmax or a minimum allowable value COP.sub.tarmin. If none of the 
limit conditions defined by blocks 194-198 are in effect, the block 200 
updates the cumulative error term EOAT.sub.errsum. If any of the limit 
conditions defined by blocks 194-198 are in effect, block 200 is skipped, 
freezing the cumulative error term EOAT.sub.errsum at its previous value. 
The blocks 194-198 thus perform an anti-wind-up function that limits the 
value of the integral control term EOAT.sub.int in a limit condition where 
the EOAT or COP control loops are already at the limit of their respective 
authority. The block 202 then computes the integral control term 
EOAT.sub.int based on the cumulative error term EOAT.sub.errsum and an 
integral gain term G.sub.eoat.sbsb.--.sub.int. The block 204 computes the 
combined error term EOAT.sub.-- PID according to the sum of the 
proportional, differential and integral control terms, and block 206 
computes COP.sub.tar as a function of EOAT.sub.-- PID, and the maximum and 
minimum allowable target condenser outlet pressure values COP.sub.tarmax 
and COP.sub.tarmin. In general, block 206 scales EOAT.sub.-- PID such that 
COP.sub.tar is midway between COP.sub.tarmax and COP.sub.tarmin when 
EOAT.sub.-- PID is equal to zero, and such that it increases toward 
COP.sub.tarmax when EOAT.sub.-- PID is positive, and decreases toward 
COP.sub.tarmin when EOAT.sub.-- PID is negative. 
The COP Control of main flow diagram block 98 is described in further 
detail in the flow diagram of FIG. 6. Referring to FIG. 6, the blocks 
210-212 are first executed to update the proportional and differential 
control terms COP.sub.prop and COP.sub.diff. The proportional control term 
COP.sub.prop is determined according to the product of COP.sub.err and a 
proportional gain term G.sub.cop.sbsb.--.sub.prop, whereas the 
differential control term COP.sub.diff is determined according to the 
product of COP.sub.del and a differential gain term 
G.sub.cop.sbsb.--.sub.diff. The block 214 then determines if the COP 
Control loop is in a limit condition where COP.sub.tar is at either the 
maximum or minimum allowable values COP.sub.tarmax or COP.sub.tarmin. If 
not, there is no wind-up condition, and the block 216 updates the 
cumulative error term COP.sub.errsum. If block 214 is answered in the 
affirmative, block 216 is skipped, freezing the cumulative error term 
COP.sub.errsum at its previous value. It will be recognized that this 
mirrors the function performed by blocks 194-198 of the EOAT control of 
FIG. 5. The block 218 then computes the integral control term COP.sub.int 
based on the cumulative error term COP.sub.errsum and an integral gain 
term G.sub.cop.sbsb.--.sub.int. The block 220 computes the combined error 
term COP.sub.-- PID according to the sum of the proportional, differential 
and integral control terms, and block 222 scales COP.sub.-- PID to form 
the normal duty cycle PID.sub.-- DC. 
The PID Post Processing function of main flow diagram block 100 is 
described in further detail in the flow diagram of FIG. 7. Referring to 
FIG. 7, the block 140 initially sets the output duty cycle DC.sub.out to 
the normal duty cycle PID.sub.-- DC. Block 142 then determines the current 
EOAT State. The Off State signifies normal mode operation, the Low State 
signifies high-speed mode operation with EOAT.sub.act lower than 
EOAT.sub.tar, and the High State signifies high-speed mode operation with 
EOAT.sub.act higher than EOAT.sub.tar. 
Initially, of course, the EOAT State is set equal to Off. If the HIGH-SPD 
flag is set during the Off State, and the alternate duty cycle DC.sub.min 
is greater than or equal to the normal duty cycle PID.sub.-- DC, as 
determined at blocks 142-146, the block 148 sets the output duty cycle 
DC.sub.out equal to the alternate duty cycle DC.sub.min, and the block 150 
determines the polarity of the error term EOAT.sub.err. If EOAT.sub.err is 
negative, block 152 sets the EOAT State to High. If EOAT.sub.err is 
positive, blocks 154-156 set the EOAT State to Low and adjust the PID data 
of the EOAT and COP control loops to ensure a smooth transition back to 
the normal control mode. As explained above, the adjusted PID data serves 
to modify the EOAT and COP controls so that the normal mode duty cycle 
PID.sub.-- DC matches the alternate duty cycle DC.sub.min. A flow diagram 
detailing the adjustment of the PID data is described below in reference 
to FIG. 8. 
If the EOAT State is Low, and the HIGH-SPD flag is cleared, as determined 
at blocks 142 and 158, the blocks 160-162 are executed to set the EOAT 
State to Off, and to adjust the PID data of the EOAT and COP control 
loops. Similarly, if the EOAT State is High and the HIGH-SPD flag is 
cleared, as determined at blocks 142 and 164, the blocks 166-168 are 
executed to set the EOAT State to Off, and to adjust the PID data of the 
EOAT and COP control loops. 
If the EOAT State is Low, and the HIGH-SPD flag remains set, block 170 is 
executed to determine if the error term EOAT.sub.err is more negative than 
a reference value such as -1.degree. C. If so, the block 172 sets the EOAT 
State to High, and the block 174 sets the output duty cycle DC.sub.out 
equal to the alternate duty cycle DC.sub.min. If the error term 
EOAT.sub.err is less negative than the reference value, and the alternate 
duty cycle DC.sub.min is greater than or equal to the normal duty cycle 
PID.sub.-- DC, as determined at blocks 170 and 176, the block 178 sets the 
output duty cycle DC.sub.out equal to the alternate duty cycle DC.sub.min, 
and the block 180 adjusts the PID data of the EOAT and COP control loops. 
If the EOAT State is High, and the HIGH-SPD flag remains set, block 182 
sets the output duty cycle DC.sub.out equal to the alternate duty cycle 
DC.sub.min, and the block 184 determines if the error term EOAT.sub.err is 
more positive than a reference value such as +1.degree. C. If so, the 
block 186 sets the EOAT State to Low, and block 188 adjusts the PID data 
of the EOAT and COP control loops. 
In view of the above, it will be understood that the PID Post Processing 
routine signals adjustment of the PID data of the EOAT and COP control 
loops whenever the high speed control mode is in effect and EOAT.sub.act 
is lower than the target EOAT.sub.tar. When EOAT.sub.act is higher than 
the target EOAT.sub.tar, DC.sub.min will be greater than the control loop 
output PID.sub.-- DC, and adjustment of the PID data can be suspended. 
Finally, it will be seen that the PID Post Processing routine signals 
adjustment of the PID data whenever the HIGH-SPD flag transitions from set 
to clear. 
Referring to FIG. 8, the adjustment of the PID data as performed by the 
blocks 156, 162, 180, 168 and 188 of the PID Post Processing flow diagram 
of FIG. 7 involves (1) setting COP.sub.tar equal to COP.sub.act (block 
230), (2) computing and storing a cumulative error term EOAT.sub.errsum 
that will cause the output of the EOAT control loop, COP.sub.tar, to be 
equal to COP.sub.act (blocks 232-240), and (3) computing and storing a 
cumulative error term COP.sub.errsum that will cause the normal mode duty 
cycle PID.sub.-- DC to be equal to the alternate duty cycle DC.sub.min 
(blocks 242-248). The adjusted error term EOAT.sub.errsum is determined by 
computing the proportional and differential control terms EOAT.sub.prop 
and EOAT.sub.diff at blocks 232-234, computing a combined PID term 
EOAT.sub.-- PID that would cause COP.sub.tar to be equal to COP.sub.act at 
block 236, computing an integral control term EOAT.sub.int based on 
EOAT.sub.-- PED, EOAT.sub.prop and EOAT.sub.diff at block 238, and 
computing the cumulative error term EOAT.sub.errsum based on the 
EOAT.sub.int and G.sub.eoat.sbsb.--.sub.int at block 240. Similarly, the 
adjusted error term COP.sub.errsum is determined by computing the 
differential control term COP.sub.diff at block 242, computing a combined 
PID term COP.sub.-- PID that would cause PID.sub.-- DC to be equal to 
DC.sub.out at block 244, computing an integral control term COP.sub.int 
based on COP.sub.-- PID and COP.sub.diff at block 246 (COP.sub.prop is 
zero since COP.sub.tar is equal to COP.sub.act), and computing the 
cumulative error term COP.sub.errsum based on the COP.sub.int and 
G.sub.cop.sbsb.--.sub.int at block 248. 
In summary, the present invention provides an improved dual control method 
for a variable displacement compressor where transitions between a normal 
control mode and a high speed control mode occur without causing 
unnecessary disturbances in the control and powertrain. While the 
invention has been described in reference to the illustrated embodiment, 
it is expected that various modifications in addition to those suggested 
above will occur to those skilled in the art. In this regard, it will be 
understood that the scope of this invention is not limited to the 
illustrated embodiment, and that controls incorporating such modifications 
may fall within the scope of this invention, which is defined by the 
appended claims.