The present invention relates generally to the management of transitions between different firing patterns used during skip fire operation of an engine.
Skip fire engine control is understood to offer a number of benefits including the potential of increased fuel efficiency. In general, skip fire engine control contemplates selectively skipping the firing of certain cylinders during selected firing opportunities. Thus, for example, a particular cylinder may be fired during one firing opportunity and then may be skipped during the next firing opportunity and then selectively skipped or fired during the next. This is contrasted with conventional variable displacement engine operation in which a fixed set of the cylinders are deactivated during certain low-load operating conditions.
Many skip fire controllers are arranged to provide a set of available firing patterns or firing fractions. In some circumstances the set of available firing patterns or fractions will vary as a function of various operating parameters such as engine load or speed. Typically the available firing patterns are selected, in part, based on their vibration characteristics. Although careful selection of the available firing patterns helps facilitate smooth operations, transitions between different firing patterns can cause undesirable noise, vibration and harshness (NVH) concerns. Therefore, there are continuing efforts to provide improved schemes for transitioning between different firing patterns or different firing fractions.
Various methods and data structures for managing transition between different firing fractions during skip fire operation of an engine are described. In one embodiment, transitions are constrained to occur when firing sequence segments of a designated length are shared by the first and second firing fractions. Is some circumstances transitions between a current and target firing fraction may be conducted as a series of steps through intermediate firing fractions. Such an approach is useful, for example, when the current and target firing fractions do not share common sequences of the designated length. Rules may be provided to require operation at such intermediate firing fractions for minimum stays.
In a separate aspect, a data structure that uses current firing fraction phase as a first index and a target firing fraction as a second index may be used to determine a phase of the target firing fraction to enter at a transition. The entries in such a data structure may provide a firing decision indicative of whether or not to fire the next working chamber and a representation of a phase to be utilized as the current firing fraction phase when making a following firing decision. The nature of the data structures used may vary widely. By way of example, lookup tables work well.
In various embodiments, constraints may be provided that limit the number of intermediary firing fractions that may be skipped during a transition thereby requiring that some transitions step through one or more intermediate firing fractions. For example, a rule may dictate that jumps of no more than a designated maximum number of firing fractions may be made during any single step of the transition. The designated maximum number of firing fractions that may be jumped in any single step of a transition may vary as a function of a variety of relevant factors, as for example: engine speed; the first operational firing fraction; the direction of the transition; and selected operating conditions at the time of the transition.
In still other embodiments, any time the current and target firing fractions are separated by intermediate firing fractions, each available intermediate firing fraction must be stepped through in a sequential step-wise manner as part of the transition. As mentioned above, latency requirements within each intermediate firing fraction may be imposed such that each intermediate firing fraction must be executed for a designated period—as for example, a minimum of one full engine cycles, a set of full engine cycles or other appropriate period.
In still another embodiments generally related to the first described transition approach, if no sequences of the designated length are shared between the first and second firing fractions, than an intermediate firing fraction that is not a normal operational firing fraction may be used to facilitate the transition.
The invention and the advantages thereof, may best be understood by reference to the following description taken in conjunction with the accompanying drawings in which:
In the drawings, like reference numerals are sometimes used to designate like structural elements. It should also be appreciated that the depictions in the figures are diagrammatic and not to scale.
The present invention relates generally to the management of transitions between different firing patterns used during skip fire operation of an engine. In general, transitions are preferentially made at points in the current firing pattern where a segment of a given length in the target firing pattern matches a corresponding sequence in the current firing pattern. The length of the matching sequence strings may be varied, but preferably string lengths in the range of one to eight are used to facilitate smoother transitions.
Although the concept of skip fire control has been around for some time and its potential benefits with respect to fuel economy are known, to date, skip fire control has not achieved wide spread acceptance. The applicant has developed a dynamic skip fire control technology that has the potential of making skip fire control of standard automobile engines practical and has filed a number of patent applications directed at various dynamic skip fire control arrangements and the integration of skip fire control into powertrain control in general. These include U.S. Pat. Nos. 7,954,474; 7,886,715; 7,849,835; 7,577,511; 8,099,224; 8,131,445; 8,131,447; and 8,336,521 U.S. patent application Ser. Nos. 13/309,460, 13/654,217, 13/654,244, 13/774,134 and U.S. Provisional Patent Application Nos. 61/682,065; 61/677,888; 61/683,553; 61/682,151; 61/682,553; 61/682,135; and 61/682,168; each of which is incorporated herein by reference in its entirety. Many of these applications describe dynamic skip fire control in which the determination of whether or not to fire a particular cylinder is made shortly before each working cycle begins.
It has been observed that for any given skip fire firing fraction, the smoothest operation tends to occur when the firings are spaced in the most even manner possible for that particular firing fraction. Some of the patents and patent applications identified above describe the use of a sigma-delta converter when making firing decisions. When first order sigma delta conversion is used, the firings are inherently spaced in the most even manner. Many older skip fire controllers define a set of available firing patterns and often at least some of those firing patterns utilize the most even spacing of the firings for the associated firing fraction as well.
When most even spacing of the firings is given as a constraint, the firing pattern associated with any quantized firing fraction is set. That is, for any quantized firing fraction, it is possible to identify the associated firing pattern that has the most evenly spaced firings. Although the firing pattern associated with a particular firing fraction may be fixed, the point of entry into the sequence (sometimes referred to herein as the “phase” of the sequence) may vary based on the starting conditions.
Looked at an entirely different way, in a physical engine having a fixed number of cylinders there are a limited set of sequences that those cylinders can actually be fired in while still conforming to a “most evenly spaced firings” constraint. For example, if a desired firing fraction is ½, firing pattern of F-S-F-S . . . and S-F-S-F . . . are most evenly spaced and may be used. In contrast, firing patterns of S-S-F-F . . . and F-F-S-S . . . would never satisfy the most evenly spaced firing constraints. Here “F” refers to a fire and “S” refers to a skip.
For every available firing faction a list of possible firing sequences can be defined and therefore, all of the potential physical cylinder firing sequences can be defined. More generally, for any given string length, it is possible to define all of the combination of patterns that satisfy the most equal spacing criteria for all possible firing fractions.
In a four cylinder engine, during any particular engine cycle there are a total of sixteen (i.e., 24) different sequences that the four cylinders could potentially be fired in during any particular engine cycle. Two of those sixteen different sequences could never be used at any firing fraction if the engine is constrained to only utilize most evenly spaced firings. Specifically, F-F-S-S and S-S-F-F would not be appropriate for any firing fraction, but all of the other combinations would be possible under at least some conceptually possible firing fractions.
In a six cylinder engine, there are a total of 64 (i.e., 26) different sequences that the six cylinders could potentially be fired in during any particular engine cycle and of those, 36 satisfy the most even spacing criteria at some firing fraction. In an eight cylinder engine, there are a total of 256 (i.e., 28) different sequences that the eight cylinders could potentially be fired in during any particular engine cycle and of those, 76 satisfy the most even spacing criteria at some firing fraction.
More generally, the table below gives the number of different sequences for strings of different lengths that can conform with the most even spacing criteria at some firing fraction:
Some of the firing fractions may be rendered using different sets of cylinders while still conforming to a most equal spacing requirement. For example, a firing fraction of ⅛th could be rendered as any one of: 1-0-0-0-0-0-0-0, 0-1-0-0-0-0-0-0, 0-0-1-0-0-0-0-0, 0-0-0-0-1-0-0-0, 0-0-0-0-0-1-0-0, 0-0-0-0-0-0-1-0, or 0-0-0-0-0-0-0-1 (which are represented as 128, 64, 32, 16, 8, 4, 2 and 1 in decimal respectively). Each of these firing sequences renders an overall firing fraction of ⅛ and they differ only in the phase of the firing. Some firing fractions have corresponding firing sequences having a repeating pattern length that does not repeat evenly within an 8-bit segment and therefore a number of different 8-bit strings can be parsed from such pattern. By way of example, a firing sequence of 1/9th requires a firing followed by eight skips. When viewed in 8-bit segments, there are nine possible mappings. These can be seen diagrammatically in
It should be apparent that for any given most evenly spaced firing pattern, the number of potential 8-bit sequences can be readily determined. More generally, if an engine has a set of available firing fractions or firing patterns, all of the potential 8-bit sequences for each of the available firing fractions/patterns can be readily determined. Consider for example, a skip fire controller that can be operated at any firing fraction between zero (0) and one (1) having an integer denominator of nine (9) or less. Such a controller would have a set of 29 potential firing fractions—as firing density increases, specifically: 0, 1/9, ⅛, 1/7, ⅙, ⅕, 2/9, ¼, 2/7, ⅓, ⅜, ⅖, 3/7, 4/9, ½, 5/9, 4/7, ⅗, ⅝, ⅔, 5/7, ¾, 7/9, ⅘, ⅚, 6/7, ⅞, 8/9 and 1.
Column 301 indicates the level and column 302 indicates the associated firing fraction for each sequence. Column 312 gives a unique identifier to each sequence for any particular level. Column 321 gives a complete list of the 8-bit segments that are used in the associated sequence (with the list being provided converted to decimal equivalent form). It can be seen that many of the 8-bit segments are used in more than one firing fraction. By way of example, 34 (corresponding to 0-0-1-0-0-0-1-0) is used in the 2/9, ¼ (3rd) and 2/7 sequences; 90 (0-1-0-1-1-0-1-0) is used in the 5/9, 4/7 and ⅗ sequences; 170 (1-0-1-0-1-0-1-0) is used in the 4/9, ½ (1st), and 5/9 sequences; and 85 (0-1-0-1-0-1-0-1) is used in the 4/9, ½ (1st), and 5/9 sequences. Not surprisingly, the commonly used firing segments occur in fairly close firing fractions aligned by the firing density and each of the sequences in the illustrated embodiment have at least one 8-bit segment that matches one of its neighbors.
This characteristic of nearby firing fractions can be used to help smooth transitions between different firing fractions. Specifically, the transition between firing fractions can be controlled in a manner that causes transitions to occur at a point where a string of a designated length matches between the current firing fraction and the firing fraction that is being transitioned to. To facilitate understanding, consider an example of a transition from a firing fraction of 5/9 (55.6%) to a firing fraction of ⅗ (60%) in the example controller illustrated in
There will be many times when the transition between the current operating firing fraction and a target firing fraction involves a change that is much larger than in the example given above, such that the current operating and target firing fractions do not have any overlapping firing strings. In such cases, the transition may be made stepwise through any number of different intermediate firing fractions, with each step being accomplished at an appropriate matching location in the sequence. Since the transitions between compatible firing fractions occur very quickly, such a stepped approach can still be accomplished quickly enough for most applications. Of course, if the requested change in firing fraction is so large that a stepwise transition is deemed too slow, a more direct change in firing fraction can be ordered with the tradeoff that more noticeable NVH may be observed. In some preferred embodiments, the transitions are constrained to step through every firing fraction between the original firing fraction and the target firing fraction.
In the example above, a string length of eight (8) was used, which happened to correspond to the number of cylinders in the engine used in the example. This is convenient, however, neither of these constraints is required. Thus, the string length considered for the purposes of transition may be widely varied and there is no need for the string length to correspond to the number of cylinders in the controlled engine. Generally, string lengths on the order of 4-8 are preferred, although depending on design goals, using string lengths as low as 1 can provide improved vibration characteristic.
In the example given in
Shortening of the analyzed string can also be used to facilitate larger jumps between firing fractions. It should be appreciated that the analysis of shorter string lengths will statistically cause more matches to occur between firing fractions and matches to occur between more disparate firing fractions. Therefore, if for any reason a more rapid transition is desired than would be accomplished by stepping through several transitions, the string length analyzed can be reduced which may facilitate making larger firing fraction steps during the transition, thereby speeding-up the transition. To provide an extreme example, if the string length analyzed is reduced to three bits, the transition from a ⅜ firing fraction to any other firing fraction other than one or zero can be made in a single step. Generally string lengths in the range of 1 to 8-bits are believed to be suitable for many applications although string lengths on the order of 4 to 8 are presently preferred. A string length of 8-bits as provided in the example works quite well in applications having a relatively large number of available firing fractions such as the 29 level example provided above.
The described transition management approach can be implemented in almost any skip fire controller. By way of example, it may be implemented in the form of a skip fire transition module 509 that is part of a skip fire firing control module (firing controller) 503 that is part of a powertrain or engine control unit (ECU) 500 as diagrammatically illustrated in
The transition module 509 and more generally the skip fire controller 503 can be implemented in a wide variety of manners including, for example, algorithmically by a processor, through the use of look-up table, through the use discreet logic (analog or digital), by a combination of such techniques and/or in any other suitable manner.
In some preferred embodiments, the transition module 509 is configured to require that the transition between an original firing fraction and a target firing fraction be accomplished by a step-wise transition through each intermediate firing fraction between the original firing fraction and the target firing fraction using the described firing sequence segment matching approach. However, this is not a requirement. Rather, when sequence segment matches occur between more disparate firing fractions, the transition module can be configured to select the largest possible conforming jump during each transition. In some embodiments, the nature of the transitions may be based in part on the magnitude of the requested change in firing fraction. For example, if a large change in firing fraction is desired, the analyzed string may be reduced to fewer bits (including possibly as little as a single bit) to insure a more instantaneous transition. This may be particularly desirable in circumstances where a large step change in firing fraction is requested, as may occur if a driver steps on or releases the accelerator pedal. Although such changes might be expected to induce more noticeable NVH characteristics, that tradeoff may be desirable to help ensure that the engine is very responsive to requests for large changes in the engine output.
The columns 655 are based on firing fraction alone with the columns being sequenced at progressively higher firing fractions. The portion of the table of interest is the region centered around the intersection of the same firing fractions. These “identity” regions 660 are surrounded by solid lines—and more particularly, a solid line bounds a complete list of the 8-bit string states for each unique firing sequence 101 identified in
For each row, the table entries represent the next eight firing decisions that should be made in the event that the firing fraction associated with the associated columns is used as the basis for making those firing decision. When viewed in this manner, the first bit of the 8-bit string represented by a table entry 665 represents the next (first following) firing decision, the second bit represents the second firing decision and so on—with a “1” corresponding to a fire, and a “0” corresponding to a skip. During operation of an engine in the skip fire mode, the appropriate firing decision for the next firing opportunity at the same firing fraction can conceptually be looked up by using the current firing fraction and the known history of the last 8 firing opportunities as the index to the table 600 and then looking at the entry associated with that same firing fraction. The table entry indicates gives the next firing decision as the first bit in the table entry. To illustrate this principle, consider a situation where the firing fraction is ¼ and the current 8-bit firing history is 68. The corresponding table entry 665 is 68, which means that the next eight firing decisions at the same firing fraction will be 0-1-0-0-0-1-0-0. Since the first bit of that sequence is a zero, that implies that the next firing decision should be a skip.
More interesting is the values of the table entries in the adjacent column(s) which define when and how to implement a change in firing fraction. If at this state (i.e. a firing fraction of ¼ with the current history being 68) a request is made to increase the firing fraction to 2/7, then the corresponding table entry 667 in the 2/7 column is read and that will provide the next eight firing decisions at the new firing fraction of 2/7th. Table entry 667 is “137” which corresponds to 1-0-0-0-1-0-0-1. Alternatively, if at the same point, a decision was made to transition to a lower firing fraction of 2/9, then by reading table entry 669 it can be seen that the next eight firing decisions should be “34” which corresponds to 0-0-1-0-0-0-1-0. Thus, the table defines appropriate transitions between different firing fractions that are consistent with the matching history transition protocol described above.
It should be appreciated that the reason this works in the illustrated example of FF=¼ and history sequence=68 is that the sequence 68 occurs at each of the relevant firing fractions, i.e., 2/7, ¼ and 2/9. Therefore, the transition can be made immediately and the table simply indicates the phase at which the new sequence is entered. However, as described above, not all of the possible sequence segments will match in one or both directions. For example, as best seen in
As discussed above, in the event that a transition request is made at the time that the engine cycle state doesn't overlap with a possible engine cycle state available at the desired target firing fraction, this can readily be determined by the lack of an entry in the column corresponding to the target firing fraction. In such circumstances, the current firing sequence may be continued until such a transition point occurs at which point the appropriate transition sequence can be looked up in the table.
In the illustrated embodiment, transition values are only provided for the engine cycle states that are also used in the target firing fraction. However, in other embodiments it is possible for the table to also define a specific desired transition pattern for any particular transition. This is particularly useful in circumstances where a particular firing pattern/phase in current use does not have any engine cycle states that match with the target firing fraction. In such circumstances, the table can be populated with a value that provides the most desirable transition even though it doesn't conform with the preferred transition framework described above.
In the embodiment illustrated in
Referring next to
Consider, for example, a transition between a ⅜ firing fraction and a ⅖ firing fraction. ⅜ is equivalent to 30/80 and ⅖ is equivalent to 32/80 and the midpoint between the two is 31/80. Column 710 lists the firing fractions that are available at a ⅜ firing fraction and column 712 lists the firing fractions that are available at a ⅖ firing fraction. Column 711 lists firing factions that are available at a firing fraction at the midpoint—31/80. It can be seen that every one of the engine cycle states at the operational firing fractions ⅜ and ⅖ are also available at the intermediate firing fraction. Therefore, another conceptual approach to viewing the management of a transition from ⅖ to ⅜ would be to immediately transfer to the new firing fraction (e.g., from ⅜ to ⅖) if the current engine cycle state has a match in the target firing frequency. When there is not a match, a transition can always immediately be made to the intermediate firing fraction (e.g. to 31/80 in the example). At the intermediate firing fraction, there will always eventually be an engine cycle state reached that matches an engine cycle state that is available at the adjacent target firing fraction and the transition to the new firing fraction can be completed at such a position. In many situations the actual transition path followed using the intermediate firing fraction approach will be exactly the same as would occur under the previously described approach in which the firing sequence associated with the current firing fraction is used until an engine cycle state is reached that has an analog in the target firing sequence. However an advantage to the midpoint transition approach is that it also facilitates transitions in circumstances where there are no direct matched engine cycle states between the current and target firing fractions as may occur with certain firing fractions as discussed above.
From the forgoing, it should be apparent that there are many ways that the described transition approach can be implemented. One additional algorithmic approach is illustrated in the flow chart of
The transition controller identifies the sequence segments associated with the current firing fraction at the selected string length in step 412. This can be accomplished using a lookup table or any other suitable means. By way of example, a two dimensional lookup table with firing fraction and string length as the indices works well.
The controller also identifies any matching sequence segments in adjacent firing fractions in the direction of the target firing fraction (415). In some implementations, the controller would only identify matching sequence segments in the immediately adjacent firing fraction in the direction of the target firing fraction. In others it might identify any and all matching sequence segments in the target firing fraction and any available intermediate firing fractions that are between the current firing fraction and the target firing fraction. The difference depends on the desired transition characteristics as described below. Again, look-up tables are well suited for this step. Although the process is described as having separate steps to identify the matching sequence segments for the purposes of explanation, it should be appreciated that a single lookup table or other simplified approaches can be used to identify the matching sequence segments.
In step 418 a determination is made as to whether any matches exist. If not, the string length may be decremented (421) and the steps 412-421 are repeated using progressively shorter string lengths until at least one match is identified. In most cases, a single iteration would be sufficient to insure a match is found. When a match occurs, a determination is then made at 424 as to whether the current phase of the firing sequence is the same as the matching sequence. For example, if the string length is 8 and the matching sequence segments can be represented in decimal form as 90 and 181, then a determination is made as to whether the preceding eight firing opportunities can also be represented as a 90 or 181. If so, a switch is made to the matching adjacent firing fraction and the next firing is dictated by the firing sequence associated with this new firing fraction in step 427. If the new firing fraction is the target firing fraction (as determined at 430) then the logic returns to 403 where it awaits the next firing fraction change request. If the new firing fraction is an intermediary firing fraction, then the logic returns to step 409 and the process is repeated to sequentially step through any necessary intermediate firing fractions until the desired firing fraction is obtained.
If in step 424, a determination is made that the current phase is not one of the matching sequences, then the next firing is directed in accordance with the current firing fraction sequence as indicated at 435. After that firing, the transition controller checks to see whether the new sequence phase has a matching sequence segment. This process is repeated until a match is found, at which point the logic transitions to 427 as previously described. The described process can then be repeated as long as the engine is operated in a skip fire mode.
Several of the embodiments described above are based on the concept of transitioning between firing fractions at locations where there are matching firing sequences between the current and target (or next) firing fractions. When a change is commanded, the controller can determine whether the current state of the engine is appropriate for changing the firing fraction to or towards a target firing fraction. If a sequence match occurs, the transition is made at that point. If there is no sequence match, a similar determination can be made at the next opportunity and so on until a sequence match is found. Once a sequence match is found, a transition occurs. If the transition is to the target firing fraction, the transition is completed and the skip fire controller continues operation at that firing faction until another change is requested. If the transition is to an intermediate firing fraction, then the process is repeated to determine when it is appropriate to transition to the following firing fraction. In this way, step-wise firing fraction changes may be made through intermediate firing fractions until the target firing fraction is reached.
The match determinations may be made as frequently as desired. For example, in some implementations, the match determinations are made on an engine cycle by engine cycle basis, while in others, they may be made on a firing opportunity by firing opportunity basis. In still other embodiments, the determinations may be made at other appropriate intervals or under other appropriate constraints.
When the determinations are made on an engine cycle by engine cycle basis, the controller determines the presence or absence of a match only once each full engine cycle (i.e., once every two rotations of the crankshaft in 4-stroke engines). Changes are then implemented only at a designated point in the engine cycle (e.g., beginning with the first firing decision associated with an engine cycle). In such an arrangement the controller would wait for a matching engine cycle to implement the change. A feature of this approach is that it tends to provide relatively slow transitions—particularly in circumstances where a long bit length is considered. For example, consider an 8-cylinder engine in which the sequence evaluated matches the cylinder count (i.e. 8-bits), which implies that the firing status of all of the cylinders is evaluated. As can be seen in
If desired, such transitions can be speed up considerably by making the transition determinations on a firing opportunity by firing opportunity basis. Using the 4/9 to ½ transition in an 8-cylinder engine that considers 8 bits, the maximum wait for making a transition would be 8 firing opportunities (which correspond to one engine cycle).
In some embodiments, it may be desirable to require a “hold” for at least a minimum period at each step. The length of the hold may vary based on the design requirements of any particular system and they may vary based on the transitions being made. That is, a transition through a firing fraction of 4/9 could have a different minimum dwell time than a transition through a firing fraction of ½ and so on.
Any number of rules may be implemented to guide the transition between different firing fractions. For example, one potential constraint could be that the engine must be operated for a designated period during each intermediate step of the transition. The nature of the hold period can be widely varied, as for example: (i) a full engine cycle; a full firing sequence or some other designated period. Another constraint can be the maximum number of firing fractions that may be skipped in any single step. Such maximum skip rules may be simple (e.g., the most you can skip is two firing fractions); they may be based in part on the direction of the transition (e.g., to higher or to lower firing fractions; they may be based in part on engines speed; (e.g., at higher engine speeds larger skips are permitted); they may be based in part on the current firing fraction (i.e., the controller is allowed to move as many as two firing fractions higher and three firing fractions lower from a firing fraction of X, and to move as many as three firing fractions higher and four firing fractions lower from a firing fraction of Y, etc.); they may be based on specific operating conditions (e.g., larger skips may be permitted when the driver is aggressively accelerating or braking; or and/or various combinations of these and other rules may be implemented (e.g, the maximum skips may be based on combinations of engine speed, current firing fraction, direction of skip, current operating conditions, etc.).
Referring next to
The illustrated transition table has a first column 801 that indicates an initial firing fraction. Each firing fraction has a plurality of different rows 802, with each row corresponding to a unique stage in a recurring, most evenly spaced firing sequence that is associated with the firing fraction, with no accounting for the physical cylinder that is fired. The stages are represented in binary form for illustrative purpose in a second column 803.
To understand what is shown in column 803 consider the repeating, most evenly spaced, firing sequence that is dictated by a 2/9 firing fraction, which is a nine bit sequence “100010000”. The first row 802(a) associated with the 2/9 firing fraction represents the first bit in the 100010000 sequence (underlined)- and is represented in column 803 as a “1” signifying that it is the first bit in the sequence. The second row 802(b) associated with the 2/9 firing fraction represents the second bit in the 100010000 sequence—and is represented in column 803 as “10” signifying that it is the second bit in the sequence. The third row 802(c) associated with the 2/9 firing fraction represents the third bit in the 100010000sequence—and is represented in column 803 as “100” signifying that it is the third bit in the sequence. The fourth row 802(d) associated with the 2/9 firing fraction represents the fourth bit in the 100010000sequence—and is represented in column 803 as “1000” signifying that it is the fourth bit in the sequence and the remaining bits (5-9) are represented sequentially in a similar manner. Each of the other firing fractions have similar sets of rows that represent each bit in their associated recurring sequences.
The table has a column 805 associated with each firing fraction that is supported by the skip fire controller. The table entries indicate the location in the firing sequence of the associated firing fraction column that would be appropriate for the next firing if the associated firing fraction (column) was requested at a time when the current state of the firing sequence corresponds to the associated row. To illustrate the use of the table, consider a situation where an engine is operating at a firing fraction of 2/9 and the current phase in the firing sequence is “100” corresponding to row 802(c). This suggests that the last two firing opportunities were skips. In normal 2/9 operation, the firing decision for the next firing opportunity should be another skip. The transition table entry 813 corresponding to the 2/9 firing fraction column 805(a), row 802(a) is “1000”, with the final zero representing the “skip” firing decision for the next firing opportunity. Thus, the appropriate skip/fire decision for the “next” firing opportunity can be made by a simple table lookup using the current engine state as a first index (i.e. the row index) and the desired firing fraction as a second index (i.e., the column index).
In the stated example, transition table entry 813 (i.e. “1000”) is the value returned from the lookup. It should be appreciated that the last bit of table entry 813 value “1000” indicates the firing decision (in this case a skip) and the full value “1000” indicates the phase of the 2/9 firing fraction sequence that the engine will be at once that firing decision is made. This phase is used as the current engine state for the following firing decision lookup.
Continuing operation at the 2/9 firing fraction, the following firing decision lookup reads the value in row 802(d) [corresponding to 2/9 state “1000”] at column 805(a) [corresponding to the commanded firing fraction for the next firing opportunity], which returns entry 814—“10001”. The last bit of the value “10001” indicates that the next firing decision should be a “fire” as well as the appropriate phase for the following lookup. The table can continue to be traversed in this manner to provide the firing decisions as long as the engine continues to be operated at the 2/9 firing fraction.
If the skip fire controller determines that the firing fraction should change to a ⅜ firing fraction when the last firing decision state is represented by entry 814, (i.e., FF= 2/9; phase=“10001”) then the same approach is used to determine the next firing decision. In such a case, the control algorithm returns table entry 815 which correspond to row 802(e) (i.e., current state FF= 2/9; phase=“10001”) and column 805(b) (i.e., target FF=⅜). The returned value “10” indicates that the next firing decision should be a “skip” and indicates the appropriate phase in the ⅜ firing fraction sequence (row 802(k)) that should be used for the following lookup. When the next firing opportunity arises, the lookup row 802(k) is used to determine whether to skip or fire the next cylinder. Assuming that the firing fraction remains at 3/8, “101” which is the value of field 819 would be returned indicating that the next cylinder should be fired. The appropriate firing decisions can then be made using table 800 by repeating the same table lookup process.
The described table-based 1-bit transition approach can be used to dynamically make the firing decisions on a firing opportunity by firing opportunity basis in a manner that helps smooth transitions relative to conventional skip fire operation. An advantage of the approach is that can implement requested changes very quickly, although it can be susceptible to more vibration than filtered sigma delta approach described in some of the referenced applications (e.g., U.S. patent application Ser. No. 13/654,244).
It has been observed that large changes in firing fraction tend to be particularly susceptible to generating vibrations. Therefore, it will often be desirable to place constraints on the maximum firing fraction jumps that can be executed as explained earlier with respect to the previously described embodiments. When one or more intermediate firing fractions are used in a transition, it may also be desirable to require that the controller dwell at each intermediary stage for some designated period (e.g. 1 or a set number of engine cycles). As indicated above, such constraints do not need to be the same for all operating conditions. Rather, the constraints may be varied based on a variety of factors such as the current firing fraction, engine speed, direction of the change, nature of the change request, etc.
Although a specific transition table 800 and table navigation algorithm has been described, it should be appreciated that the information provided in the table can be represented in many other formats including various different table formats or through the use of different types of data structures. The column and row headers are for illustrative purposes to facilitate explanation of the approach and do not need to be literally incorporated into the table or other data structure.
One of the keys to the described approach is the fact that sequence phase information is used to determine the appropriate transitions between firing fraction. In particular, it is noted that the current sequence phase information is used in determining the phase at which a target firing sequence should be entered. It should be appreciated that this feature is common to the various described embodiments.
In the description above, a table was used to make the firing decisions both during steady state operation and during transitions. It other embodiments, transition tables can readily be used only to define transitions alone while other techniques are used dictate the firing sequence during continuous operation at a particular firing fraction (so long as current firing sequence phase information is available or derivable at the time of a desired transition).
Although only a few embodiments of the invention have been described in detail, it should be appreciated that the invention may be implemented in many other forms without departing from the spirit or scope of the invention. For example, although transition management has been described primarily in the context of a skip fire controller that favors a most even spacing of the firings, it should be appreciated that the same approach could be used for any given set of firing patterns that any particular skip fire controller may utilize. The invention is particularly useful in the context of skip fire controllers that are arranged to utilize a set of predetermined firing fractions, however again, that is not a requirement. Thus, although the examples are primarily based on a particular 8 cylinder engine having a particular set of available firing fractions, it should be appreciated that similar tables can be constructed for different engines and for engines that are operated using different types of skip fire control constraints or definitions. This includes engines having different numbers of cylinders; engines having different sets of available firing fractions, etc.
Although a few particular controller architectures and control methods have been described for illustrative purposes, it should be appreciated that the actual logic of the controller may be widely varied and that described functionalities may be combined, implemented in other ways, rearranged and generally altered in any way appropriate for a particular implementation.
The examples given above relate primarily to 4-stroke piston engines suitable for use in motor vehicles. However, it should be appreciated that the described transition management approaches are very well suited for use in virtually any type of internal combustion engine that is operated in a skip fire manner. These include engines for virtually any type of vehicle—including cars, trucks, boats, aircraft, motorcycles, scooters, etc.; for non-vehicular applications such as generators, lawn mowers, leaf blowers, models, etc.; and virtually any other application that utilizes an internal combustion engine. The various described approaches work with engines that operate under a wide variety of different thermodynamic cycles—including virtually any type of two stroke piston engines, diesel engines, Otto cycle engines, Dual cycle engines, Miller cycle engines, Atkinson cycle engines, Wankel engines and other types of rotary engines, mixed cycle engines (such as dual Otto and diesel engines), hybrid engines, radial engines, etc. It is also believed that the described approaches will work well with newly developed internal combustion engines regardless of whether they operate utilizing currently known, or later developed thermodynamic cycles.
In the embodiments discussed above, it was assumed that all of the cylinders would be used or otherwise operated in the skip fire operational mode. However, that is not a requirement. If desired for a particular application, the firing control unit can readily be designed to utilize skip fire control on a subset of the available cylinders (working chambers). In view of the foregoing, it should be apparent that the present embodiments should be considered illustrative and not restrictive and the invention is not to be limited to the details given herein, but may be modified within the scope of the appended claims.
This application claims priority of U.S. Provisional Application No. 61/801,472, filed Mar. 15, 2013, which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61801472 | Mar 2013 | US |