Dynamic hysteresis control systems and methods

A control system includes an error module, a selection module, a control module, and a hysteresis module. The error module determines an error value based on a difference between a desired position and a measured position of one of a throttle valve and an exhaust gas recirculation (EGR) valve of a vehicle. The selection module sets a control value equal to one of the error value and zero based on a comparison of the error value and a hysteresis value. The control module generates a control signal based on the desired position and the control value and actuates the one of the throttle valve and the EGR valve using the control signal. The hysteresis module selectively varies the hysteresis value.

FIELD

The present disclosure relates to internal combustion engines and more particularly to valve control systems and methods.

BACKGROUND

Internal combustion engines combust an air and fuel mixture within cylinders to drive pistons, which produces drive torque. Air flow into the engine is regulated via a throttle. More specifically, the throttle adjusts throttle area, which increases or decreases air flow into the engine. As the throttle area increases, the air flow into the engine increases. A fuel control system adjusts the rate that fuel is injected to provide a desired air/fuel mixture to the cylinders and/or to achieve a desired torque output. Increasing the amount of air and fuel provided to the cylinders increases the torque output of the engine.

In spark-ignition engines, spark initiates combustion of an air/fuel mixture provided to the cylinders. In compression-ignition engines, compression in the cylinders combusts the air/fuel mixture provided to the cylinders. Spark timing and air flow may be the primary mechanisms for adjusting the torque output of spark-ignition engines, while fuel flow may be the primary mechanism for adjusting the torque output of compression-ignition engines.

Engine control systems have been developed to control engine output torque to achieve a desired torque. Traditional engine control systems, however, do not control the engine output torque as accurately as desired. Further, traditional engine control systems do not provide a rapid response to control signals or coordinate engine torque control among various devices that affect the engine output torque.

Traditional engine speed control systems primarily control engine idle speed using air flow in spark-ignition engines and using fuel flow in compression-ignition engines. In addition, engine speed control systems have been developed for coordinated torque control to control engine idle speed in the torque domain. However, controlling engine idle speed in the torque domain is naturally unstable since engine speed must be continuously adjusted to achieve a desired torque. For example, the speed of an unloaded engine (e.g., an engine that is decoupled from a transmission) will continuously increase in response to a slightly positive desired torque, such as 1 Newton-meter (Nm).

SUMMARY

A control system includes an error module, a selection module, a control module, and a hysteresis module. The error module determines an error value based on a difference between a desired position and a measured position of one of a throttle valve and an exhaust gas recirculation (EGR) valve of a vehicle. The selection module sets a control value equal to one of the error value and zero based on a comparison of the error value and a hysteresis value. The control module generates a control signal based on the desired position and the control value and actuates the one of the throttle valve and the EGR valve using the control signal. The hysteresis module selectively varies the hysteresis value.

A method includes: determining an error value based on a difference between a desired position and a measured position of one of a throttle valve and an exhaust gas recirculation (EGR) valve of a vehicle; setting a control value equal to one of the error value and zero based on a comparison of the error value and a hysteresis value; generating a control signal based on the desired position and the control value; actuating the one of the throttle valve and the EGR valve using the control signal; and selectively varying the hysteresis value.

DETAILED DESCRIPTION

Air flows into an engine through a throttle valve. A control module determines a desired position for the throttle valve and controls opening of the throttle valve in closed-loop based on the desired position. More specifically, the control module determines a closed-loop adjustment based on a closed-loop control value and adjusts the desired position based on closed-loop adjustment. The control module then controls the opening of the throttle valve based on the (adjusted) desired position.

The control module selectively sets the closed-loop control value equal to either an error value or zero based on a comparison of the error value and a hysteresis value. The error value may be determined based on a difference between the desired position and a measured position of the throttle valve. The control module selectively sets the closed-loop control value equal to the error value when the error value is greater than the hysteresis value. The control module selectively sets the closed-loop control value equal to zero when the error value is less than the hysteresis value, even when the error value is greater than zero.

When the closed-loop control value is zero, the closed-loop adjustment may also be zero. Accordingly, the desired position may effectively be left unadjusted when the closed-loop control value is zero. Not adjusting the desired position may reduce busyness of the throttle valve during steady-state conditions. However, not adjusting the desired position when the error value is greater than zero (but less than the hysteresis value) reduces throttle control accuracy.

Part-to-part differences, aging, analog-to-digital conversion, calculation errors, and/or other sources of error may cause the error value to increase under some circumstances. The increase in the error value may cause the error value to become greater than the hysteresis value if the hysteresis value is set to a predetermined value. Setting the hysteresis value to a predetermined value may therefore increase the busyness of the throttle valve under some circumstances.

The control module of the present disclosure determines the hysteresis value dynamically. The control module monitors changes in the desired position, the measured position, and a signal used to control opening of the throttle valve. The control module determines the hysteresis value based on one or more of the changes.

Referring now toFIG. 1, a functional block diagram of an example engine system100is presented. The engine system100includes an engine102that combusts an air/fuel mixture to produce drive torque for a vehicle based on driver input from a driver input module104. Air is drawn into an intake manifold110through a throttle valve112. For example only, the throttle valve112may include a butterfly valve having a rotatable blade. An engine control module (ECM)114controls a throttle actuator module116, which regulates opening of the throttle valve112to control the amount of air drawn into the intake manifold110.

Air from the intake manifold110is drawn into cylinders of the engine102. While the engine102may include multiple cylinders, for illustration purposes a single representative cylinder118is shown. For example only, the engine102may include 2, 3, 4, 5, 6, 8, 10, and/or 12 cylinders. The ECM114may instruct a cylinder actuator module120to selectively deactivate some of the cylinders, which may improve fuel economy under certain engine operating conditions.

The engine102may operate using a four-stroke cycle. The four strokes, described below, are named the intake stroke, the compression stroke, the combustion stroke, and the exhaust stroke. During each revolution of a crankshaft (not shown), two of the four strokes occur within the cylinder118. Therefore, two crankshaft revolutions are necessary for the cylinder118to experience all four of the strokes.

During the intake stroke, air from the intake manifold110is drawn into the cylinder118through an intake valve122. The ECM114controls a fuel actuator module124, which regulates fuel injection to achieve a desired air/fuel ratio. Fuel may be injected into the intake manifold110at a central location or at multiple locations, such as near the intake valve122of each of the cylinders. In various implementations (not shown), fuel may be injected directly into the cylinders or into mixing chambers associated with the cylinders. The fuel actuator module124may halt injection of fuel to cylinders that are deactivated.

The injected fuel mixes with air and creates an air/fuel mixture in the cylinder118. During the compression stroke, a piston (not shown) within the cylinder118compresses the air/fuel mixture. The engine102may be a compression-ignition engine, in which case compression in the cylinder118ignites the air/fuel mixture. Alternatively, the engine102may be a spark-ignition engine, in which case a spark actuator module126energizes a spark plug128in the cylinder118based on a signal from the ECM114, which ignites the air/fuel mixture. The timing of the spark may be specified relative to the time when the piston is at its topmost position, referred to as top dead center (TDC).

The spark actuator module126may be controlled by a timing signal specifying how far before or after TDC to generate the spark. Because piston position is directly related to crankshaft rotation, operation of the spark actuator module126may be synchronized with crankshaft angle. In various implementations, the spark actuator module126may halt provision of spark to deactivated cylinders.

Generating the spark may be referred to as a firing event. The spark actuator module126may have the ability to vary the timing of the spark for each firing event. The spark actuator module126may even be capable of varying the spark timing for a next firing event when the spark timing is changed between a last firing event and the next firing event.

During the combustion stroke, the combustion of the air/fuel mixture drives the piston down, thereby driving the crankshaft. The combustion stroke may be defined as the time between the piston reaching TDC and the time at which the piston returns to bottom dead center (BDC).

During the exhaust stroke, the piston begins moving up from BDC and expels the byproducts of combustion through an exhaust valve130. The byproducts of combustion are exhausted from the vehicle via an exhaust system134.

The intake valve122may be controlled by an intake camshaft140, while the exhaust valve130may be controlled by an exhaust camshaft142. In various implementations, multiple intake camshafts (including the intake camshaft140) may control multiple intake valves (including the intake valve122) for the cylinder118and/or may control the intake valves (including the intake valve122) of multiple banks of cylinders (including the cylinder118). Similarly, multiple exhaust camshafts (including the exhaust camshaft142) may control multiple exhaust valves for the cylinder118and/or may control exhaust valves (including the exhaust valve130) for multiple banks of cylinders (including the cylinder118).

The cylinder actuator module120may deactivate the cylinder118by disabling opening of the intake valve122and/or the exhaust valve130. In various other implementations, the intake valve122and/or the exhaust valve130may be controlled by devices other than camshafts, such as electromagnetic actuators.

The time at which the intake valve122is opened may be varied with respect to piston TDC by an intake cam phaser148. The time at which the exhaust valve130is opened may be varied with respect to piston TDC by an exhaust cam phaser150. A phaser actuator module158may control the intake cam phaser148and the exhaust cam phaser150based on signals from the ECM114. When implemented, variable valve lift (not shown) may also be controlled by the phaser actuator module158.

The engine system100may include a boost device that provides pressurized air to the intake manifold110. For example,FIG. 1shows a turbocharger including a hot turbine160-1that is powered by hot exhaust gases flowing through the exhaust system134. The turbocharger also includes a cold air compressor160-2, driven by the turbine160-1, that compresses air leading into the throttle valve112. In various implementations, a supercharger (not shown), driven by the crankshaft, may compress air from the throttle valve112and deliver the compressed air to the intake manifold110.

A wastegate162may allow exhaust to bypass the turbine160-1, thereby reducing the boost (the amount of intake air compression) of the turbocharger. The ECM114may control the turbocharger via a boost actuator module164. The boost actuator module164may modulate the boost of the turbocharger by controlling the position of the wastegate162. In various implementations, multiple turbochargers may be controlled by the boost actuator module164. The turbocharger may have variable geometry, which may be controlled by the boost actuator module164.

An intercooler (not shown) may dissipate some of the heat contained in the compressed air charge, which is generated as the air is compressed. The compressed air charge may also have absorbed heat from components of the exhaust system134. Although shown separated for purposes of illustration, the turbine160-1and the compressor160-2may be attached to each other, placing intake air in close proximity to hot exhaust.

The engine system100may include an exhaust gas recirculation (EGR) valve170, which selectively redirects exhaust gas back to the intake manifold110. The EGR valve170may be located upstream of the turbocharger's turbine160-1. The EGR valve170may be controlled by an EGR actuator module172.

The engine system100may measure the speed of the crankshaft in revolutions per minute (RPM) using an RPM sensor180. The temperature of the engine coolant may be measured using an engine coolant temperature (ECT) sensor182. The ECT sensor182may be located within the engine102or at other locations where the coolant is circulated, such as a radiator (not shown).

The pressure within the intake manifold110may be measured using a manifold absolute pressure (MAP) sensor184. In various implementations, engine vacuum, which is the difference between ambient air pressure and the pressure within the intake manifold110, may be measured. The mass flow rate of air flowing into the intake manifold110may be measured using a mass air flow (MAF) sensor186. In various implementations, the MAF sensor186may be located in a housing that also includes the throttle valve112.

The throttle actuator module116may monitor the position of the throttle valve112using one or more throttle position sensors (TPS)190. For example, first and second throttle position sensors190-1and190-2monitor the position of the throttle valve112and generate first and second throttle positions (TPS1and TPS2)191and192, respectively, based on the throttle position. The ambient temperature of air being drawn into the engine102may be measured using an intake air temperature (IAT) sensor193. The ECM114may use signals from the sensors to make control decisions for the engine system100.

The ECM114may communicate with a transmission control module194to coordinate shifting gears in a transmission (not shown). For example, the ECM114may reduce engine torque during a gear shift. The ECM114may communicate with a hybrid control module196to coordinate operation of the engine102and an electric motor198.

The electric motor198may also function as a generator, and may be used to produce electrical energy for use by vehicle electrical systems and/or for storage in a battery. In various implementations, various functions of the ECM114, the transmission control module194, and the hybrid control module196may be integrated into one or more modules.

Each system that varies an engine parameter may be referred to as an actuator that receives an actuator value. For example, the throttle actuator module116may be referred to as an actuator and the throttle opening area may be referred to as the actuator value. In the example ofFIG. 1, the throttle actuator module116achieves the throttle opening area by adjusting an angle of the blade of the throttle valve112.

Similarly, the spark actuator module126may be referred to as an actuator, while the corresponding actuator value may be the amount of spark advance relative to cylinder TDC. Other actuators may include the cylinder actuator module120, the fuel actuator module124, the phaser actuator module158, the boost actuator module164, and the EGR actuator module172. For these actuators, the actuator values may correspond to number of activated cylinders, fueling rate, intake and exhaust cam phaser angles, boost pressure, and EGR valve opening area, respectively. The ECM114may control actuator values in order to cause the engine102to generate a desired engine output torque.

Referring now toFIG. 2, a functional block diagram of an example engine control system is presented. An example implementation of the ECM114includes a driver torque module202, an axle torque arbitration module204, and a propulsion torque arbitration module206. The ECM114may include a hybrid optimization module208. The example implementation of the ECM114also includes a reserves/loads module220, an actuation module224, an air control module228, a spark control module232, a cylinder control module236, and a fuel control module240. The example implementation of the ECM114also includes a boost scheduling module248and a phaser scheduling module252.

The driver torque module202may determine a driver torque request254based on a driver input255from the driver input module104. The driver input255may be based on, for example, a position of an accelerator pedal and a position of a brake pedal. The driver input255may also be based on cruise control, which may be an adaptive cruise control system that varies vehicle speed to maintain a predetermined following distance. The driver torque module202may store one or more mappings of accelerator pedal position to desired torque and may determine the driver torque request254based on a selected one of the mappings.

An axle torque arbitration module204arbitrates between the driver torque request254and other axle torque requests256. Axle torque (torque at the wheels) may be produced by various sources including an engine and/or an electric motor. Generally, torque requests may include absolute torque requests as well as relative torque requests and ramp requests. For example only, ramp requests may include a request to ramp torque down to a minimum engine off torque or to ramp torque up from the minimum engine off torque. Relative torque requests may include temporary or persistent torque reductions or increases.

The axle torque requests256may include a torque reduction requested by a traction control system when positive wheel slip is detected. Positive wheel slip occurs when axle torque overcomes friction between the wheels and the road surface, and the wheels begin to slip against the road surface. The axle torque requests256may also include a torque increase request to counteract negative wheel slip, where a tire of the vehicle slips in the other direction with respect to the road surface because the axle torque is negative.

The axle torque requests256may also include brake management requests and vehicle over-speed torque requests. Brake management requests may reduce axle torque to ensure that the axle torque does not exceed the ability of the brakes to hold the vehicle when the vehicle is stopped. Vehicle over-speed torque requests may reduce the axle torque to prevent the vehicle from exceeding a predetermined speed. The axle torque requests256may also be generated by vehicle stability control systems.

The axle torque arbitration module204outputs a predicted torque request257and an immediate torque request258based on the results of arbitrating between the received torque requests254and256. As described below, the predicted and immediate torque requests257and258from the axle torque arbitration module204may selectively be adjusted by other modules of the ECM114before being used to control actuators of the engine system100.

In general terms, the immediate torque request258is the amount of currently desired axle torque, while the predicted torque request257is the amount of axle torque that may be needed on short notice. The ECM114controls the engine system100to produce an axle torque equal to the immediate torque request258. However, different combinations of actuator values may result in the same axle torque. The ECM114may therefore adjust the actuator values to allow a faster transition to the predicted torque request257, while still maintaining the axle torque at the immediate torque request258.

In various implementations, the predicted torque request257may be based on the driver torque request254. The immediate torque request258may be less than the predicted torque request257, such as when the driver torque request254is causing wheel slip on an icy surface. In such a case, a traction control system (not shown) may request a reduction via the immediate torque request258, and the ECM114reduces the torque produced by the engine system100to the immediate torque request258. However, the ECM114controls the engine system100so that the engine system100can quickly resume producing the predicted torque request257once the wheel slip stops.

In general terms, the difference between the immediate torque request258and the (generally higher) predicted torque request257can be referred to as a torque reserve. The torque reserve may represent the amount of additional torque (above the immediate torque request258) that the engine system100can begin to produce with minimal delay. Fast engine actuators are used to increase or decrease current axle torque. As described in more detail below, fast engine actuators are defined in contrast with slow engine actuators.

In various implementations, fast engine actuators are capable of varying axle torque within a range, where the range is established by the slow engine actuators. In such implementations, the upper limit of the range is the predicted torque request257, while the lower limit of the range is limited by the torque capacity of the fast actuators. For example only, fast actuators may only be able to reduce axle torque by a first amount, where the first amount is a measure of the torque capacity of the fast actuators. The first amount may vary based on engine operating conditions set by the slow engine actuators. When the immediate torque request258is within the range, fast engine actuators can be set to cause the axle torque to be equal to the immediate torque request258. When the ECM114requests the predicted torque request257to be output, the fast engine actuators can be controlled to vary the axle torque to the top of the range, which is the predicted torque request257.

In general terms, fast engine actuators can more quickly change the axle torque when compared to slow engine actuators. Slow actuators may respond more slowly to changes in their respective actuator values than fast actuators do. For example, a slow actuator may include mechanical components that require time to move from one position to another in response to a change in actuator value. A slow actuator may also be characterized by the amount of time it takes for the axle torque to begin to change once the slow actuator begins to implement the changed actuator value. Generally, this amount of time will be longer for slow actuators than for fast actuators. In addition, even after beginning to change, the axle torque may take longer to fully respond to a change in a slow actuator.

For example only, the ECM114may set actuator values for slow actuators to values that would enable the engine system100to produce the predicted torque request257if the fast actuators were set to appropriate values. Meanwhile, the ECM114may set actuator values for fast actuators to values that, given the slow actuator values, cause the engine system100to produce the immediate torque request258instead of the predicted torque request257.

The fast actuator values therefore cause the engine system100to produce the immediate torque request258. When the ECM114decides to transition the axle torque from the immediate torque request258to the predicted torque request257, the ECM114changes the actuator values for one or more fast actuators to values that correspond to the predicted torque request257. Because the slow actuator values have already been set based on the predicted torque request257, the engine system100is able to produce the predicted torque request257after only the delay imposed by the fast actuators. In other words, the longer delay that would otherwise result from changing axle torque using slow actuators is avoided.

For example only, when the predicted torque request257is equal to the driver torque request254, a torque reserve may be created when the immediate torque request258is less than the driver torque request254due to a temporary torque reduction request. Alternatively, a torque reserve may be created by increasing the predicted torque request257above the driver torque request254while maintaining the immediate torque request258at the driver torque request254. The resulting torque reserve can absorb sudden increases in required axle torque. For example only, sudden loads imposed by an air conditioner or a power steering pump may be counteracted by increasing the immediate torque request258. If the increase in the immediate torque request258is less than the torque reserve, the increase can be quickly produced by using fast actuators. The predicted torque request257may also be increased to re-establish the previous torque reserve.

Another example use of a torque reserve is to reduce fluctuations in slow actuator values. Because of their relatively slow speed, varying slow actuator values may produce control instability. In addition, slow actuators may include mechanical parts, which may draw more power and/or wear more quickly when moved frequently. Creating a sufficient torque reserve allows changes in desired torque to be made by varying fast actuators via the immediate torque request258while maintaining the values of the slow actuators. For example, to maintain a given idle speed, the immediate torque request258may vary within a range. If the predicted torque request257is set to a level above this range, variations in the immediate torque request258that maintain the idle speed can be made using fast actuators without the need to adjust slow actuators.

For example only, in a spark-ignition engine, spark timing may be a fast actuator value, while throttle opening area may be a slow actuator value. Spark-ignition engines may combust fuels including, for example, gasoline and ethanol, by applying a spark. By contrast, in a compression-ignition engine, fuel flow may be a fast actuator value, while throttle opening area may be used as an actuator value for engine characteristics other than torque. Compression-ignition engines may combust fuels including, for example, diesel, by compressing the fuels.

When the engine102is a spark-ignition engine, the spark actuator module126may be a fast actuator and the throttle actuator module116may be a slow actuator. After receiving a new actuator value, the spark actuator module126may be able to change spark timing for the following firing event. When the spark timing (also called spark advance) for a firing event is set to a calibrated value, a maximum amount of torque may be produced in the combustion stroke immediately following the firing event. However, a spark advance deviating from the calibrated value may reduce the amount of torque produced in the combustion stroke. Therefore, the spark actuator module126may be able to vary engine output torque as soon as the next firing event occurs by varying spark advance. For example only, a table of spark advances corresponding to different engine operating conditions may be determined during a calibration phase of vehicle design, and the calibrated value is selected from the table based on current engine operating conditions.

By contrast, changes in throttle opening area take longer to affect engine output torque. The throttle actuator module116changes the throttle opening area by adjusting the angle of the blade of the throttle valve112. Therefore, once a new actuator value is received, there is a mechanical delay as the throttle valve112moves from its previous position to a new position based on the new actuator value. In addition, air flow changes based on the throttle opening area are subject to air transport delays in the intake manifold110. Further, increased air flow in the intake manifold110is not realized as an increase in engine output torque until the cylinder118receives additional air in the next intake stroke, compresses the additional air, and commences the combustion stroke.

Using these actuators as an example, a torque reserve can be created by setting the throttle opening area to a value that would allow the engine102to produce the predicted torque request257. Meanwhile, the spark timing can be set based on the immediate torque request258, which is less than the predicted torque request257. Although the throttle opening area generates enough air flow for the engine102to produce the predicted torque request257, the spark timing is retarded (which reduces torque) based on the immediate torque request258. The engine output torque will therefore be equal to the immediate torque request258.

When additional torque is needed, the spark timing can be set based on the predicted torque request257or a torque between the predicted and immediate torque requests257and258. By the following firing event, the spark actuator module126may return the spark advance to a calibrated value, which allows the engine102to produce the full engine output torque achievable with the air flow already present. The engine output torque may therefore be quickly increased to the predicted torque request257without experiencing delays from changing the throttle opening area.

When the engine102is a compression-ignition engine, the fuel actuator module124may be a fast actuator and the throttle actuator module116and the boost actuator module164may be emissions actuators. The fuel mass may be set based on the immediate torque request258, and the throttle opening area, boost, and EGR opening may be set based on the predicted torque request257. The throttle opening area may generate more air flow than necessary to satisfy the predicted torque request257. In turn, the air flow generated may be more than required for complete combustion of the injected fuel such that the air/fuel ratio is usually lean and changes in air flow do not affect the engine output torque. The engine output torque will therefore be equal to the immediate torque request258and may be increased or decreased by adjusting the fuel flow.

The throttle actuator module116, the boost actuator module164, and the EGR valve170may be controlled based on the predicted torque request257to control emissions and to minimize turbo lag. The throttle actuator module116may create a vacuum within the intake manifold110to draw exhaust gases through the EGR valve170and into the intake manifold110.

The axle torque arbitration module204may output the predicted torque request257and the immediate torque request258to a propulsion torque arbitration module206. In various implementations, the axle torque arbitration module204may output the predicted and immediate torque requests257and258to the hybrid optimization module208.

The hybrid optimization module208may determine how much torque should be produced by the engine102and how much torque should be produced by the electric motor198. The hybrid optimization module208then outputs modified predicted and immediate torque requests259and260, respectively, to the propulsion torque arbitration module206. In various implementations, the hybrid optimization module208may be implemented in the hybrid control module196.

The predicted and immediate torque requests received by the propulsion torque arbitration module206are converted from an axle torque domain (torque at the wheels) into a propulsion torque domain (torque at the crankshaft). This conversion may occur before, after, as part of, or in place of the hybrid optimization module208.

The propulsion torque arbitration module206arbitrates between propulsion torque requests279, including the converted predicted and immediate torque requests. The propulsion torque arbitration module206generates an arbitrated predicted torque request261and an arbitrated immediate torque request262. The arbitrated torque requests261and262may be generated by selecting a winning request from among received torque requests. Alternatively or additionally, the arbitrated torque requests261and262may be generated by modifying one of the received requests based on another one or more of the received torque requests.

The propulsion torque requests279may include torque reductions for engine over-speed protection, torque increases for stall prevention, and torque reductions requested by the transmission control module194to accommodate gear shifts. The propulsion torque requests279may also result from clutch fuel cutoff, which reduces the engine output torque when the driver depresses the clutch pedal in a manual transmission vehicle to prevent a flare (rapid rise) in engine speed.

The propulsion torque requests279may also include an engine shutoff request, which may be initiated when a critical fault is detected. For example only, critical faults may include detection of vehicle theft, a stuck starter motor, electronic throttle control problems, and unexpected torque increases. In various implementations, when an engine shutoff request is present, arbitration selects the engine shutoff request as the winning request. When the engine shutoff request is present, the propulsion torque arbitration module206may output zero as the arbitrated predicted and immediate torque requests261and262.

In various implementations, an engine shutoff request may simply shut down the engine102separately from the arbitration process. The propulsion torque arbitration module206may still receive the engine shutoff request so that, for example, appropriate data can be fed back to other torque requestors. For example, all other torque requestors may be informed that they have lost arbitration.

The reserves/loads module220receives the arbitrated predicted and immediate torque requests261and262. The reserves/loads module220may adjust the arbitrated predicted and immediate torque requests261and262to create a torque reserve and/or to compensate for one or more loads. The reserves/loads module220then outputs adjusted predicted and immediate torque requests263and264to the actuation module224.

For example only, a catalyst light-off process or a cold start emissions reduction process may require retarded spark advance. The reserves/loads module220may therefore increase the adjusted predicted torque request263above the adjusted immediate torque request264to create retarded spark for the cold start emissions reduction process. In another example, the air/fuel ratio of the engine and/or the mass air flow may be directly varied, such as by diagnostic intrusive equivalence ratio testing and/or new engine purging. Before beginning these processes, a torque reserve may be created or increased to quickly offset decreases in engine output torque that result from leaning the air/fuel mixture during these processes.

The reserves/loads module220may also create or increase a torque reserve in anticipation of a future load, such as power steering pump operation or engagement of an air conditioning (A/C) compressor clutch. The reserve for engagement of the A/C compressor clutch may be created when the driver first requests air conditioning. The reserves/loads module220may increase the adjusted predicted torque request263while leaving the adjusted immediate torque request264unchanged to produce the torque reserve. Then, when the A/C compressor clutch engages, the reserves/loads module220may increase the adjusted immediate torque request264by the estimated load of the A/C compressor clutch.

The actuation module224receives the adjusted predicted and immediate torque requests263and264. The actuation module224determines how the adjusted predicted and immediate torque requests263and264will be achieved. The actuation module224may be engine type specific. For example, the actuation module224may be implemented differently or use different control schemes for spark-ignition engines versus compression-ignition engines.

In various implementations, the actuation module224may define a boundary between modules that are common across all engine types and modules that are engine type specific. For example, engine types may include spark-ignition and compression-ignition. Modules prior to the actuation module224, such as the propulsion torque arbitration module206, may be common across engine types, while the actuation module224and subsequent modules may be engine type specific.

For example, in a spark-ignition engine, the actuation module224may vary the opening of the throttle valve112as a slow actuator that allows for a wide range of torque control. The actuation module224may disable cylinders using the cylinder actuator module120, which also provides for a wide range of torque control, but may also be slow and may involve drivability and emissions concerns. The actuation module224may use spark timing as a fast actuator. However, spark timing may not provide as much range of torque control. In addition, the amount of torque control possible with changes in spark timing (referred to as spark reserve capacity) may vary as air flow changes.

In various implementations, the actuation module224may generate an air torque request265based on the adjusted predicted torque request263. The air torque request265may be equal to the adjusted predicted torque request263, setting air flow so that the adjusted predicted torque request263can be achieved by changes to other actuators.

The air control module228may determine desired actuator values based on the air torque request265. For example only, the air control module228may determine a desired manifold absolute pressure (MAP)266, a desired throttle position267, and/or a desired air per cylinder (APC)268based on the air torque request265. The desired MAP266may be used to determine a desired boost, and the desired APC268may be used to determine desired cam phaser positions and the desired throttle position267. In various implementations, the air control module228may also determine an amount of opening of the EGR valve170based on the air torque request265.

The actuation module224may also generate a spark torque request269, a cylinder shut-off torque request270, and a fuel torque request271. The spark torque request269may be used by the spark control module232to determine how much to retard the spark timing (which reduces engine output torque) from a calibrated spark timing.

The cylinder shut-off torque request270may be used by the cylinder control module236to determine how many cylinders to deactivate. The cylinder control module236may instruct the cylinder actuator module120to deactivate one or more cylinders of the engine102. In various implementations, a predefined group of cylinders (e.g., half) may be deactivated jointly.

The cylinder control module236may also instruct the fuel control module240to stop providing fuel for deactivated cylinders and may instruct the spark control module232to stop providing spark for deactivated cylinders. In various implementations, the spark control module232only stops providing spark for a cylinder once any fuel/air mixture already present in the cylinder has been combusted.

In various implementations, the cylinder actuator module120may include a hydraulic system that selectively decouples intake and/or exhaust valves from the corresponding camshafts for one or more cylinders in order to deactivate those cylinders. For example only, valves for half of the cylinders are either hydraulically coupled or decoupled as a group by the cylinder actuator module120. In various implementations, cylinders may be deactivated simply by halting provision of fuel to those cylinders, without stopping the opening and closing of the intake and exhaust valves. In such implementations, the cylinder actuator module120may be omitted.

The fuel control module240may vary the amount of fuel provided to each cylinder based on the fuel torque request271. During normal operation of a spark-ignition engine, the fuel control module240may operate in an air lead mode in which the fuel control module240attempts to maintain a stoichiometric air/fuel ratio by controlling fueling based on air flow. The fuel control module240may determine a fuel mass that will yield stoichiometric combustion when combined with the current amount of air per cylinder. The fuel control module240may instruct the fuel actuator module124via a fueling rate to inject this fuel mass for each activated cylinder.

In compression-ignition systems, the fuel control module240may operate in a fuel lead mode in which the fuel control module240determines a fuel mass for each cylinder that satisfies the fuel torque request271while minimizing emissions, noise, and fuel consumption. In the fuel lead mode, air flow is controlled based on fuel flow and may be controlled to yield a lean air/fuel ratio. In addition, the air/fuel ratio may be maintained above a predetermined level, which may prevent black smoke production in dynamic engine operating conditions.

The air control module228may output the desired throttle position267to a throttle control module280. The air control module228may determine the desired throttle position267based on the air torque request265. The throttle control module280(see alsoFIG. 3) determines an error between the desired throttle position267and an indicated throttle position (not shown inFIG. 2). The throttle control module280may determine the indicated throttle position based on one or more of the first and second throttle positions191and192measured using the first and second throttle position sensors190-1and190-2, respectively.

The throttle control module280selects one of the error and zero based on a comparison of the error and a hysteresis value. The throttle control module280selects zero when the error value is less than the hysteresis value and selects the error when the error is greater than or equal to the hysteresis value. The throttle control module280of the present disclosure determines the hysteresis value dynamically.

The throttle control module280generates a desired pulse width modulation (PWM) signal282using closed-loop control based on the desired throttle position267and the selected one of the error and zero. The throttle actuator module116actuates the throttle valve112based on the desired PWM signal282. More specifically, the desired PWM signal282may drive (e.g., a motor of) the throttle actuator module116to actuate the throttle valve112. While the desired PWM signal282is shown and discussed, the throttle control module280may control the throttle actuator module116using another suitable type of signal. Further, while the throttle control module280is shown and discussed as being located within the ECM114, the throttle control module280may be implemented in another suitable location. For example only, the throttle control module280may be implemented externally to the ECM114, within another module of the vehicle, or independently.

The air control module228may output the desired MAP266to the boost scheduling module248. The boost scheduling module248uses the desired MAP266to control the boost actuator module164. The boost actuator module164then controls one or more turbochargers (e.g., the turbocharger including the turbine160-1and the compressor160-2) and/or superchargers.

The air control module228outputs the desired APC268to the phaser scheduling module252. Based on the desired APC268and the RPM signal, the phaser scheduling module252may control positions of the intake and/or exhaust cam phasers148and150using the phaser actuator module158.

Referring back to the spark control module232, the calibrated spark timing may vary based on various engine operating conditions. For example only, a torque relationship may be inverted to solve for desired spark advance. For a given torque request (Tdes), the desired spark advance (Sdes) may be determined based on
Sdes=T−1(Tdes,APC,I,E,AF,OT,#).  (2)
This relationship may be embodied as an equation and/or as a lookup table. The air/fuel ratio (AF) may be the actual air/fuel ratio, as reported by the fuel control module240.

When the spark advance is set to the calibrated spark timing, the resulting torque may be as close to a maximum best torque (MBT) as possible. MBT refers to the maximum engine output torque that is generated for a given air flow as spark advance is increased, while using fuel having an octane rating greater than a predetermined octane rating and using stoichiometric fueling. The spark advance at which this maximum torque occurs is referred to as an MBT spark timing. The calibrated spark timing may differ slightly from MBT spark timing because of, for example, fuel quality (such as when lower octane fuel is used) and environmental factors. The engine output torque at the calibrated spark timing may therefore be less than MBT.

Referring now toFIG. 3, a functional block diagram of an example implementation of the throttle control module280is presented. While the principles of the present disclosure have been and will be shown and discussed in conjunction with the throttle valve112, the principles of the present disclosure are also applicable to other types of valves of the vehicle, such as the EGR valve170.

The throttle control module280may include an indicated position determination module304, an error module308, and a hysteresis module312. The throttle control module280may also include a comparison module316, a selection module320, and a closed-loop control module324.

The indicated position determination module304determines the indicated throttle position340based on at least one of the first and second throttle positions191and192measured using the first and second throttle position sensors190-1and190-2, respectively. For example only, the indicated position determination module304may generally set the indicated throttle position340equal to or based on the first throttle position191. When a fault has been attributed to the first throttle position sensor190-1, the indicated position determination module304may set the indicated throttle position340equal to or based on the second throttle position192. The indicated throttle position340may also be referred to as a measured throttle position.

The error module308receives the desired throttle position267and the indicated throttle position340. The error module308determines the error value344based on the difference between the desired throttle position267and the indicated throttle position340. More specifically, the error module308may set the error value344equal to the desired throttle position267less the indicated throttle position340.

The hysteresis module312determines a hysteresis value348dynamically. The determination of the hysteresis value348is discussed further below in conjunction withFIG. 4. The hysteresis value348corresponds to a magnitude of the error value344below which the error value344can be ignored for purposes of controlling the throttle valve112. Use of the hysteresis value348, as discussed below, may allow the throttle control module280to leave the desired throttle position267unadjusted despite the error value344being greater than zero.

The selection module320outputs one of the error value344and zero356as a closed-loop control value360. For example only, the selection module320may include a multiplexor or another suitable type of selection device. The selection module320outputs the one of the error value344and zero356based on the selection signal352.

More specifically, the selection module320outputs the error value344as the closed-loop control value360when the selection signal352is in the first state. The selection module320outputs zero356as the closed-loop control value360when the selection signal352is in the second state. In this manner, the error value344is provided to the closed-loop control module324when the error value344is greater than or equal to the hysteresis value348. Zero356is provided to the closed-loop control module324when the error value344is less than the hysteresis value348.

The closed-loop control module324determines the desired PWM signal282based on the desired throttle position267and the closed-loop control value360. More specifically, the closed-loop control module324determines an adjustment based on the closed-loop control value360. For example only, the closed-loop control module324may determine the adjustment using proportional (P) control, proportional-integral (PI) control, proportional-integral-derivative (PID) control, or another suitable type of closed-loop control. The closed-loop control module324may set the desired throttle position267equal to a sum of the adjustment and the desired throttle position267.

The closed-loop control module324determines the desired PWM signal282based on the (adjusted) desired throttle position267. For example only, the closed-loop control module324may determine the desired PWM signal282using a function or a mapping that relates the desired throttle position267to the desired PWM signal282. The throttle actuator module116(e.g., a motor) actuates the throttle valve112based on the desired PWM signal282.

Referring now toFIG. 4, a functional block diagram of an example implementation of the hysteresis module312is presented. The hysteresis module312may include an incrementing module404, a string length counter408, and a resetting module412. The hysteresis module312may also include a first accumulation module416, a first delaying module420, a second accumulation module424, and a second delaying module428. The hysteresis module312may also include a third accumulation module432, a third delaying module436, a delta determination module440, and a hysteresis determination module444.

The throttle control module280may perform control loops at a predetermined loop rate. For example only, the loop rate may be approximately one control loop per 3.125 milliseconds (ms). The incrementing module404increments460a value464of the string length counter408once per control loop. The value464of the string length counter408tracks the number of control loops performed since the string length counter408was last reset.

The resetting module412selectively resets the string length counter408to a predetermined reset value, such as zero. The resetting module412may reset the string length counter408, for example, upon vehicle startup. The resetting module412may also reset the string length counter408when the value464is greater than a first predetermined value. For example only, the first predetermined value may be approximately 20. In this manner, the resetting module412may reset the string length counter408every predetermined number (e.g., 20) control loops. The resetting module412may reset the string length counter408via a resetting signal468. The resetting module412may set the resetting signal468, for example, to an active state to reset the string length counter408.

The first accumulation module416determines a first accumulated change472based on a first previous desired position476and a second previous desired position480. More specifically, the first accumulation module416determines an absolute value of a difference between the first previous desired position476and the second previous desired position480for a present control loop. The first accumulation module416may add the absolute value to the first accumulated change472from a last control loop to determine the first accumulated change472of the present control loop. The last control loop refers to the control loop performed immediately before the present control loop.

The first delaying module420provides the first and second previous desired positions476and480to the first accumulation module416. The first and second previous desired positions476and480are values of the desired throttle position267received N and N+1 control loops before the present control loop, respectively. N is an integer greater than or equal to two. N may be a variable in various implementations. The first delaying module420may determine N based on, for example, the error value344. For example only, N may increase as the error value344increases. N may be a predetermined value in other implementations. For example only, N may be set to an integer between two and eight, inclusive.

The second accumulation module424determines a second accumulated change484based on the indicated throttle position340and a last indicated throttle position488. More specifically, the second accumulation module424determines an absolute value of a difference between the indicated throttle position340and the last indicated throttle position488. The second accumulation module424adds the absolute value to the second accumulated change484from the last control loop to determine the second accumulated change484of the present control loop.

The second delaying module428provides the last indicated throttle position488to the second accumulation module424. The last indicated throttle position488is the value of the indicated throttle position340from the last control loop. For example only, the second delaying module420receives the indicated throttle position340during the last control loop, stores the indicated throttle position340for one control loop, and outputs the stored indicated throttle position340as the last indicated throttle position488during the present control loop.

The third accumulation module432determines a third accumulated change492based on the desired PWM signal282and a last desired PWM signal496. More specifically, the third accumulation module432determines an absolute value of a difference between the desired PWM signal282and the last desired PWM signal496. The third accumulation module432adds the absolute value to the third accumulated change492from the last control loop to determine the third accumulated change492of the present control loop.

The third delaying module436provides the last desired PWM signal496to the third accumulation module432. The last desired PWM signal496is the value of the desired PWM signal282received during the last control loop. For example only, the third delaying module436receives the desired PWM signal282during the last control loop, stores the desired PWM signal282for one control loop, and outputs the stored desired PWM signal282as the last desired PWM signal496during the present control loop.

The delta determination module440selectively determines a delta value494based on the first and second accumulated changes472and484, respectively. The delta determination module may, for example, set the delta value494equal to the second accumulated change484less the first accumulated change472.

The delta determination module440may selectively determine the delta value494when the value464of the string length counter408is greater than the first predetermined value. For example only, the delta determination module440may determine the delta value494each time when the predetermined number of control loops have been performed. In such implementations, the first accumulation module416, the second accumulation module424, and the third accumulation module432may reset the first, second, and third accumulated changes472,484, and492, respectively, after the string length counter408is greater than the first predetermined value.

In various implementations, the delta determination module440may determine the delta value494each control loop once the predetermined number of control loops have been performed. In such implementations, the first accumulation module416may determine the first accumulated change472as the sum of the absolute values determined for the predetermined number of most recently performed control loops. The second accumulation module424and the third accumulation module432may also determine the second accumulated change484and the third accumulated change492, respectively, for the predetermined number of most recently performed control loops.

The hysteresis determination module444may increase (e.g., increment) the hysteresis value348when the delta value494is greater than a first predetermined value and the third accumulated change492is greater than a second predetermined value. The hysteresis determination module444may decrease (e.g., decrement) the hysteresis value348when the third accumulated change492is less than or equal to the second predetermined value and the delta value494is less than or equal to the first predetermined value. The hysteresis determination module444may decrease (e.g., decrement) the hysteresis value348when the delta value494is greater than the first predetermined value and the third accumulated change492is less than or equal to the second predetermined value. The hysteresis determination module444may maintain the hysteresis value348when the delta value494is less than or equal to the first predetermined value and the third accumulated change492is greater than the second predetermined value. For example only, the first predetermined value may be approximately 0.5, and the second predetermined value may be approximately 100.

The hysteresis determination module444may increment or decrement the hysteresis value348by a predetermined increment amount or a predetermined decrement amount, respectively. For example only, the predetermined increment amount may be approximately 0.002, and the predetermined decrement may be approximately 0.001. The predetermined increment amount may be approximately twice the magnitude of the predetermined decrement amount.

The hysteresis determination module444may increment or decrement the hysteresis value348by a variable amount in various implementations. The hysteresis determination module444may determine the variable amount, for example, using function or a mapping that relates the delta value494to the variable amount.

The hysteresis determination module444may limit the hysteresis value348to a predetermined minimum value or a predetermined maximum value before outputting the hysteresis value348. For example only, the predetermined minimum value may be approximately 0.035, and the predetermined maximum value may be approximately 0.21. Upon vehicle startup, the hysteresis determination module444may initialize the hysteresis value348to the predetermined minimum value.

Referring now toFIG. 5, a flowchart depicting an example method500of controlling opening of the throttle valve112is presented. Control begins with504where control determines whether the value464of the string length counter408is less than the first predetermined value. If true, control continues with508; if false, control continues with528, which is discussed further below. For example only, the first predetermined value may be approximately 20.

At508, control increments the string length counter408. Control determines the accumulated changes at512and continues with516. More specifically, control determines the first accumulated change472, the second accumulated change484, and the third accumulated change492at508. Control may determine the first accumulated change472by adding the absolute value of the difference between the first and second previous desired positions476and480to the last value of the first accumulated change472. Control may determine the second accumulated change484by adding the absolute value of the difference between the last indicated throttle position488and the indicated throttle position340to the last value of the second accumulated change484. Control may determine the third accumulated change492by adding the absolute value of the difference between the last desired PWM signal496and the desired PWM signal282to the last value of the third accumulated change492.

Control determines whether the error value344is less than the hysteresis value348at516. If true, control determines the desired PWM signal282based on the desired throttle position267and the closed-loop control value360being zero356at520and control ends; if false, control determines the desired PWM signal282based on the desired throttle position267and the closed-loop control value360being the error value344at524and control ends. Control may set the error value344equal to the desired throttle position267less the indicated throttle position340. While control is shown and discussed as ending, the method500may be illustrative of one control loop, and control may return to504.

Referring back to528(i.e., when the value464of the string length counter408is not less than the first predetermined value at504), control determines the delta value494. Control may set the delta value494equal to the second accumulated change484less the first accumulated change472. Control determines whether the delta value494is greater than the first predetermined value at532. If true, control continues with536; if false, control continues with552, which is discussed further below. For example only, the first predetermined value may be approximately 0.5.

At536, control determines whether the third accumulated change492is greater than the second predetermined value. If true, control increases the hysteresis value348at540and continues to544; if false, control decreases the hysteresis value348at548and continues to544. At544, control limits the hysteresis value348to the predetermined minimum and maximum values. Control may also reset the string length counter408and the first, second, and third accumulated changes472,484, and492, respectively, at544. Control then continues to516, which is discussed above. For example only, the second predetermined value may be approximately 100.

Referring back to552(i.e., when the delta value494is not greater than the first predetermined value at532), control determines whether the third accumulated change492is less than or equal to the second predetermined value. If true, control decreases the hysteresis value348at548and continues to544; if false, control maintains the hysteresis value348at556and continues to544.544is discussed above.