Method Of Controlling A Vehicle Drivetrain And Controller In The Drivetrain

20230071874 · 2023-03-09

Assignee

Inventors

Cpc classification

International classification

Abstract

A method of controlling a vehicle drivetrain by an electric motor, in order to synchronize the speed of an internal combustion engine and the speed of gears in the drivetrain, wherein if a speed synchronization error e.sub.sync(t) is controlled to remain within a prespecified region for a specific period of time, the synchronization is finished, and a gear may be engaged.

Claims

1. A method of controlling a vehicle drivetrain by an electric motor in order to synchronize a speed of an internal combustion engine and a speed of gears in the drivetrain, comprising the steps of: Step I—Initialization: Determining an initial speed synchronization error (e.sub.sync(0)), Determining a form of a synchronization Performance Function (ρ.sub.sync(t)) and a synchronization Maximum Overshoot Parameter (M.sub.sync), Determining a form of Safety Margin functions (σ.sub.min(t)), (σ.sub.max(t)), Setting a Safety Margin violation flag (SLimViolFlag) to be OFF, Step II—k-th step of a synchronization cycle: Determining the speed synchronization error (e.sub.sync(t)) at a specific time instance t.sub.k, Determining an actual value of the synchronization Performance Function (ρ.sub.sync(t)) at the specific time instance t.sub.k, Determining the Safety Margins (σ.sub.min(t)), (σ.sub.max(t)) at the specific time instance t.sub.k, Determining a transformed synchronization error (ε.sub.sync(t)) at the specific time instance t.sub.k: ε s y n c = E s y n c ( e sync ρ sync ) , if the Safety Margin violation flag (SLimViolFlag) is OFF, using the synchronization Performance Function (ρ.sub.sync(t)) and the synchronization Maximum Overshoot Parameter (M.sub.sync) by using the synchronization Transformation Function E.sub.sync(⋅), ε s y n c = E s f ( e sync ρ s f ) , if the Safety Margin violation flag (SLimViolFlag) is ON, using a safe Performance Function (ρ.sub.sƒ(t)) and a safe Maximum Overshoot Parameter (M.sub.sƒ) by using the safe Transformation function E.sub.sƒ(⋅), If a new target speed (ω.sub.tgt) is requested, interrupt the synchronization process and re-initialize the synchronization cycle (go to Step I—Initialization), Determining a requested motor torque T.sub.SG(t) as an output of a Speed Synchronization Controller (SSC):
If |e.sub.sync(t)|≤iDisableThres, (T.sub.SG(t))=T.sub.PPC(ε.sub.sync(t))+T.sub.PI(e.sub.sync(t)),
If |e.sub.sync(t)|>iDisableThres, (T.sub.SG(t))=T.sub.PPC(ε.sub.sync(t))+T.sub.P(e.sub.sync(t)). Set the requested SG torque T.sub.SG, Step III—End of the synchronization cycle: If the speed synchronization error e.sub.sync(t) remains within a prespecified region for a specific time period Δt, the synchronization is finished.

2. The method of claim 1, further comprising the steps of a gear in the drivetrain is engaged when the synchronization is finished.

3. The method of claim 1, further comprising the steps of choosing the synchronization Performance Function (ρ.sub.sync(t)), the synchronization Maximum Overshoot Parameter (M.sub.sync) and the Safety Margins (σ.sub.min(t)), (σ.sub.max(t)) such that
M.sub.syncρ.sub.sync(0)<−σ.sub.min(0)<e.sub.sync(0)<σ.sub.max(t)<ρ.sub.sync(0), if e.sub.sync(0)≥0
−ρ.sub.sync(0<−σ.sub.max(0)<e.sub.sync(0<σ.sub.min(0)<M.sub.syncρ.sub.sync(0), if e.sub.sync(0)<0.

4. The method of claim 1, further comprising the steps of the safety margins (σ.sub.min(t)), (σ.sub.max(t)) satisfy the conditions 0<σ.sub.min(t)≤σ.sub.max(t) and
M.sub.syncρ.sub.sync(t)<−σ.sub.min(t)<σ.sub.max(t)<ρ.sub.sync(t), ∀t if e.sub.sync(0≥0
−ρ.sub.sync(t)<−σ.sub.max(t)<σ.sub.min(t)<M.sub.syncρ.sub.sync(t), ∀t if e.sub.sync(0<0.

5. The method of claim 1, further comprising the steps of setting the Safety Margin violation flag (SLimViolFlag) to be OFF or remaining OFF when the speed synchronization error e.sub.sync(t) lies within the Safety Margins (σ.sub.min(t)), (σ.sub.max(t)), which are within and at a safety distance of the Prescribed Performance Limits, and set to be ON or remaining ON when the speed synchronization error e.sub.sync(t) lies on the Safety Margins (σ.sub.min(t)), (σ.sub.max(t)) or surpasses them.

6. The method claim 5, further comprising the steps of wherein upon an abrupt speed change, if the speed synchronization error e.sub.sync(t) is forced to reach the Safety Margin (σ.sub.min(t)), (σ.sub.max(t)) at a time instance t.sub.viol, the Prescribed Performance Limits are expanded with the choice of a safe performance function ρ.sub.sƒ(t) and a safe Maximum Overshoot Parameter M.sub.sƒ, such that the speed synchronization error e.sub.sync(t) continues to evolve within expanded Prescribed Performance Limits.

7. The method of claim 6, wherein upon a “change-of-mind” situation at the time instance t=t.sub.step, the synchronization cycle is interrupted and re-initialized, using a new Performance Function p′.sub.sync(t) and a new Maximum Overshoot Parameter M′.sub.sync which are chosen such that the speed synchronization error e.sub.sync(t) continues to evolve within new Prescribed Performance Limits.

8. The method of claim 1, further comprising the steps of determining the transformed synchronization error ε.sub.sync(t) by the equation ε s y n c = { E s y n c ( e s y n c ρ s y n c ) , if SLimViolFlag = OFF E s f ( e s y n c ρ s f ) , if SLIMViolFlag = ON , where the synchronization Transformation Function E.sub.sync (⋅) and the safe Transformation Function E.sub.sƒ(⋅) are smooth, strictly increasing functions.

9. The method according to claim 8, further comprising the steps of the synchronization Transformation Function E.sub.sync(⋅) is defining a bijective mapping:
E.sub.sync:(−M.sub.sync,1).fwdarw.(−∞,∞), if e.sub.sync(0)≥0
E.sub.sync:(−1,M.sub.sync).fwdarw.(−∞,∞), if e.sub.sync(0)<0 and the safe Transformation Function E.sub.sƒ(⋅) is defining a bijective mapping:
E.sub.sƒ:(−M.sub.sƒ,1).fwdarw.(−∞,∞), if e.sub.sync(0)≥0
E.sub.sƒ:(−1,M.sub.sƒ).fwdarw.(−∞,∞), if e.sub.sync(0)<0.

10. The method of claim 1, further comprising the steps of: providing speed synchronization controller (SSC); and providing a vehicle having the drivetrain; synchronizing the speed of the internal combustion engine and the speed of gears in the drivetrain.

11. The method of claim 10, further comprising the steps of: providing a Prescribed Performance Control PPC part (T.sub.PPC(e.sub.sync(t))) calibrating the Prescribed Performance Control PPC part (T.sub.PPC(e.sub.sync(t))) to retain the speed synchronization error (e.sub.sync(t)) within the Prescribed Performance Limits at all time.

12. The method of claim 10, further comprising the steps of providing a switching-PI part T.sub.P-PI(e.sub.sync(t)), the a switching-PI part T.sub.P-PI(e.sub.sync(t)) switching between a PI part (T.sub.PI(e.sub.sync(t)) and a P part (T.sub.P(e.sub.sync(t)) according to whether the speed synchronization error (e.sub.sync(t)) is within a specific threshold or not.

13. The method of claim 10, further comprising the steps of: providing an electronic control unit (ECU), the speed synchronization controller (SSC) being part of the electronic control unit (ECU); providing a DHT Manager being part of the electronic control unit (ECU); controlling the vehicle with the electronic control unit (ECU); supervising the speed synchronization controller (SSC) with the DHT Manager.

14. The method of claim 13, further comprising the steps of: providing an internal combustion engine (3) being part of the drivetrain; providing a gearbox having an output shaft and being part of the drivetrain, the internal combustion engine coupled to the gear box; providing dog clutches having an input side, the dog clutches being part of the gearbox; and an electric machine integrated on the input side of the dog clutches in a P0, P1 or P2 configuration; transferring torque from the internal combustion engine to the output shaft of the gearbox.

15. The vehicle drivetrain of claim 14, further comprising the steps of providing the electric machine to be a Starter-Generator (SG) coupled to a crankshaft of the internal combustion engine.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

[0048] The present invention will become fully understood from the detailed description given hereinbelow and the accompanying drawings, which are given by way of illustration only, and thus, are not restrictive of the present invention, and wherein:

[0049] FIG. 1 shows components and an arrangement of an exemplary P1-P3 hybrid drivetrain;

[0050] FIG. 2 shows a control software architecture block diagram;

[0051] FIG. 3A shows a tracking error and Prescribed Performance Limits in case of e(0)≥0 and 0<M<1;

[0052] FIG. 3B shows a tracking error and Prescribed Performance Limits in case of e(0)<0 and 0<M<1;

[0053] FIG. 4A shows a further tracking error and Prescribed Performance Limits in case of e(0)≥0 and M=0;

[0054] FIG. 4B shows a further tracking error and Prescribed Performance Limits in case of e(0)<0 and M=0;

[0055] FIG. 5A shows a further tracking error and Prescribed Performance Limits in case of e(0)≥0 and M=1;

[0056] FIG. 5B shows a further tracking error and Prescribed Performance Limits in case of e(0)<0 and M=1;

[0057] FIG. 6 shows the proposed control scheme;

[0058] FIG. 7 shows a PPC protection measure;

[0059] FIG. 8 shows a further PPC protection measure;

[0060] FIG. 9 shows a synchronization cycle;

[0061] FIG. 10 shows a synchronization algorithm flowchart diagram; and

[0062] FIG. 11 shows a speed synchronization error and an integrator disabling threshold iDisableThres.

[0063] Corresponding parts are marked with the same reference symbols in all figures.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0064] The following description of the preferred embodiment(s) is merely exemplary in nature and is in no way intended to limit the invention, its application, or uses.

[0065] FIG. 1 shows the components and the arrangement of an exemplary P1-P3 hybrid powertrain. An internal combustion engine 3, ICE is coupled to gearbox 4, which transfers the torque over a given amount of gears to the output shaft, which propels the wheels of the vehicle. In a dedicated hybrid transmission (DHT), the gears are changed using dog clutches instead of synchronizers. This makes the gearbox smaller, more efficient and less costly. The function of the synchronizers, matching the speed of the input side, especially the 3, ICE, to the speed of the output side of the dog clutch, which has a speed proportional to the wheels, is done by actively controlling the speed of an electric machine. This electric machine has to be integrated on the input side of the dog clutches, which is the case in P0, P1 and P2 configurations. In the example, shown in FIG. 1, the High-Voltage Starter-Generator 1, SG is connected to the crankshaft of the ICE, which makes this a P1 machine. Whenever the dog clutches are in a neutral position, the ICE and the SG may rotate freely and independent of the speed of the output shaft and thus of the vehicle speed. In order to engage a gear by closing a dog clutch, the speed of the input side is synchronized to the speed of the output side by the SG. A speed control algorithm is used to do this quickly and precisely. The algorithm is implemented on an electronic control unit 2, ECU which has an interface 2.2 to the SG, e.g. a transmission control unit or a powertrain control unit. In principal, the ICE could also be used to control the speed of the input side, but a combustion engine ICE is less dynamic and has strong torque fluctuations, which makes the electric machine SG one solution for the speed synchronization.

[0066] The control software architecture diagram is seen in FIG. 2.

[0067] An auxiliary software part, called DHT Manager, shall be implemented in the ECU, to supervise the SSC functionality. A Speed Synchronization Error Debouncer detects and indicates if the speed synchronization error remains within a prespecified region, defined by a predetermined minimum threshold, for a specific time period. Reading the drivetrain signals such as vehicle speed, requested gear and actual gear and monitoring the DHT and SSC state, the DHT Manager shall decide when speed synchronization should take place and when it is safe to proceed to gear engagement.

[0068] When the speed of the input and output side are synchronized, the clutch is closed using a gear actuator GA, 5. While SG and ICE are synchronizing, e.g. during a gear change, they cannot deliver torque to propel the vehicle. Therefore, a second electric machine 6 may be used to fill the so-called torque gap during a shift. This electric machine 6 has to be connected to the output side of the dog clutches, which is called the P3 position. In FIG. 1 the second electric drive 6 is integrated in a P3 position.

Problem Statement

[0069] The equation of motion of the 3-phase induction motor used as Starter-Generator SG, when no gear is engaged, is


J.sub.res{dot over (ω)}.sub.SG=T.sub.SG+T.sub.ICE/i.sub.SG  (1)

where J.sub.res is the moment of inertia of the rotating parts, e.g. of the electric machines and the ICE, T.sub.SG and T.sub.ICE are torques provided by the SG and the ICE, i.sub.SG is the gear ratio between SG and ICE and ω.sub.SG is the angular velocity of the rotor of SG.

[0070] Speed Synchronization Problem:

[0071] SG angular speed ω.sub.Sg(t) is requested to track a desired target trajectory ω.sub.tgt(t) as dictated by the vehicle velocity v.sub.veh and the desired gear ratio i.sub.tgt

[00001] ω t g t = v v e h 3.6 .Math. r wheel .Math. i t g t

[0072] The goal is to design a state feedback controller, without using any information of the system dynamics, to solve the Speed Synchronization Problem. The speed synchronization should be fast and accurate despite of system uncertainties and unknown disturbances. Moreover, it should be guaranteed that the speed synchronization error converges to a predefined arbitrarily small residual set, with rate no less than a prespecified value, exhibiting maximum overshoot less than a sufficiently small preassigned constant.

[0073] Prescribed Performance Preliminaries

[0074] This section summarizes preliminary knowledge on Prescribed Performance, originally published by C. P. Bechlioulis and G. A. Rovithakis in “Robust Adaptive Control of Feedback Linearizable MIMO Nonlinear Systems with Prescribed Performance,” in IEEE Transactions on Automatic Control, vol. 53, no. 9, pp. 2090-2099, October 2008.

[0075] Considering in FIG. 3A and FIG. 3B a generic tracking error e(t)∈R, Prescribed Performance is achieved if e(t) evolves strictly within a predefined region that is bounded by a decaying function of time. The mathematical expression of Prescribed Performance is given ∀t≥0, by the following inequality:


Mρ(t)<e(t)<ρ(t), ∀t if e(0)≥0


−ρ(t)<e(t)<Mρ(t), ∀t if e(0)<0  (2)

where 0≤M≤1 is a Maximum Overshoot Parameter and ρ(t) is a bounded, smooth, strictly positive and decreasing function, satisfying

[00002] lim t .fwdarw. ρ ( t ) = ρ > 0 ,

called Performance Function. The aforementioned statements are illustrated in FIG. 3A and FIG. 3B for an exponential Performance Function ρ(t)=(ρ.sub.0−ρ.sub.∞)e.sup.−lt+ρ.sub.∞, with ρ.sub.0, ρ.sub.∞, l strictly positive constants and Maximum Overshoot Parameter M, where in FIG. 3A is depicted the case of e(0)≥0 and 0<M<1, whereas in FIG. 3B is depicted the case of e(0)<0 and 0<M<1.

[0076] The special cases of Maximum Overshoot Parameter M=0 are depicted in FIG. 4A in case of e(0)≥0 and FIG. 4B in case of e(0)<0, while the special cases of Maximum Overshoot Parameter M=1 are depicted in FIG. 5A in case of e(0)≥0 and FIG. 5B in case of e(0)<0.

[0077] The constant ρ.sub.0 is selected such that (2) is satisfied at t=0, e.g.


Mρ(0)<e(0)<ρ(0), if e(0)≥0


−ρ(0)<e(0)<Mρ(0), if e(0)<0

[0078] The constant ρ.sub.∞ represents the maximum allowable size of e(t) at the steady state that may be set arbitrarily small to a value reflecting the resolution of the measurement device, thus achieving practical convergence of e(t) to zero. Furthermore, the decreasing rate of ρ(t), which is related to the constant 1, introduces a lower bound on the required speed of convergence of e(t).

[0079] To introduce Prescribed Performance, an error transformation is incorporated modulating the tracking error e(t) with respect to the required performance bounds imposed by ρ(t) and M. More specifically

[00003] ε ( t ) = E ( e ( t ) ρ ( t ) ) ( 3 )

where ε is the transformed error and E(⋅) is a smooth, strictly increasing Transformation Function defining a bijective mapping:


E:(−M,1).fwdarw.(−∞,∞), if e(0)≥0


E:(−1,M).fwdarw.(−∞,∞), if e(0)<0  (4)

[0080] A candidate Transformation Function, could be

[00004] E ( e ( t ) ρ ( t ) ) = { a .Math. ln ( M + e ρ 1 - e ρ ) , if e ( 0 ) 0 a .Math. ln ( 1 + e ρ M - e ρ ) , if e ( 0 ) < 0 ( 5 )

where α is a positive design constant. Notice that since ρ(0) is selected such that (2) is satisfied at t=0, ε is finite owing to (4).

[0081] Design of the Speed Synchronization Controller SSC:

[0082] Let the speed synchronization error be defined as the difference between the SG angular actual speed and the SG target speed, i.e. e.sub.sync(t)=ω.sub.SG(t)−ω.sub.tgt(t). The goal is to impose certain Prescribed Performance Limits, depicted with dashed line in FIG. 9, as formed by a synchronization Performance Function ρ.sub.sync(t) and a synchronization Maximum Overshoot Parameter M.sub.sync. To this end, an SSC controller, as shown in FIG. 6 is employed, whose output torque T.sub.SG(t) is designed as the sum of a PPC part T.sub.PPC(ε.sub.sync(t) and a switching-PI part T.sub.P-PI(e.sub.sync(t))


T.sub.SG(t)=T.sub.PPC(ε.sub.sync(t))+T.sub.P-PI(e.sub.sync(t)).  (6)

[0083] The PPC part T.sub.PPC(ε.sub.sync(t)) is constructed with the use of the transformed synchronization error

[00005] ε s y n c ( t ) = E s y n c ( e s y n c ( t ) ρ s y n c ( t ) ) ,

where E.sub.sync(⋅) is a synchronization Transformation Function defining a bijective mapping:


E.sub.sync:(−M.sub.sync,1).fwdarw.(−∞,∞), if e.sub.sync(0)≥0


E.sub.sync:(−1,M.sub.sync).fwdarw.(−∞,∞), if e.sub.sync(0)<0

[0084] The switching-PI part T.sub.P-PI(e.sub.sync(t)) is further defined as:

[00006] T P - PI ( e s y n c ( t ) ) = { T PI ( e s y n c ( t ) ) , .Math. "\[LeftBracketingBar]" e s y n c ( t ) .Math. "\[RightBracketingBar]" iDisable Thres T P ( e s y n c ( t ) ) , .Math. "\[LeftBracketingBar]" e s y n c ( t ) .Math. "\[RightBracketingBar]" > iDisable Thres ( 7 )

where T.sub.PI(e.sub.sync(t)) is a PI part, T.sub.P(e.sub.sync(t)) is a P part and iDisableThres is the integrator disabling error threshold, which determines the condition for the switching between the PI part and P part. Specifically, the T.sub.P-PI(e.sub.sync(t)) is switching according to whether the speed synchronization error e.sub.sync(t) is within the region defined by iDisableThres threshold (|e.sub.sync(t)|≤iDisableThres), depicted as the area within the dotted lines of FIG. 11, or not.

[0085] In practice this would indicate that if the speed synchronization error e.sub.sync(t) is outside the area defined by iDisableThres (|e.sub.sync(t)|>iDisableThres), the controller integral part is disabled, whereas if the speed synchronization error is within this area (|e.sub.sync(t)|≤iDisableThres), the controller integral part is active. In order for this feature to be effective, the iDisableThres should be chosen less than the initial speed synchronization error (e.sub.sync(0)). FIG. 11 shows an example where iDisableThres is chosen as ⅓ of the initial speed synchronization error (e.sub.sync(0)).

[0086] The purpose of using the proposed switching-PI part, also known as “conditional integration”, is to inhibit the integral term of the controller when the speed synchronization error (e.sub.sync(t)) is big, in order to avoid large transients due to controller saturation (integrator windup). This may happen in case of large setpoint changes, large disturbances, delays or equipment malfunctions. Integrator windup may also occur when several controller terms are combined, as in our case, in driving the Starter-Generator SG, 1. In such situations, the controller might be easily saturated during transient by the nonlinear PPC term T.sub.PPC(ε.sub.sync(t)) in FIG. 6. The integral term is active only when the speed ω.sub.SG(t) of SG is very close to the target speed ω.sub.tgt(t), in order to eliminate any steady state errors.

[0087] A solution to the Speed Synchronization Problem is provided by demanding the SG torque T.sub.SG(t), as calculated by the output of SSC controller of equation (6), shown in FIG. 6.

[0088] PPC Protection Against Numerical Errors

[0089] An important computational issue of the Prescribed Performance Control PPC lies on the existence of the transformed synchronization error

[00007] ε s y n c ( t ) = E s y n c ( e s y n c ( t ) ρ s y n c ( t ) ) ,

calculated with the use of Transformation Function E.sub.sync(⋅). Note that if the speed synchronization error e.sub.sync(t) abruptly reaches or surpasses the Prescribed Performance Limits, shown as dashed line in FIG. 9, due to an unexpected disturbance, controller saturation, “change-of-mind” situations, e.t.c., the transformation E.sub.sync(⋅) is not defined, e.g. the argument of the logarithm in (5) is either infinite or negative. This leads to a numerical error in the calculations and fatally causes unexpected system behavior due to controller failure. Such phenomena are met frequently in industrial applications and it is important to protect the controller against them.

[0090] Distinction is made between two numerically hazardous cases HCa in FIG. 7 and HCb in FIG. 8, defined as: [0091] Case HCa: Abrupt speed change, which could lead the speed synchronization error e.sub.sync(t) outside the Prescribed Performance Limits (dashed line in FIG. 7), due to disturbance, insufficient controller action, e.t.c. (FIG. 7). [0092] Case HCb: “Change-of-mind” situations, where the target speed changes discontinuously during synchronization due to new gear request (FIG. 8). [0093] Safety Margins: Let us define the strictly positive functions σ.sub.min(t), σ.sub.max(t), where 0<σ.sub.min(t)≤σ.sub.max(t), satisfying the following inequalities:


M.sub.syncρ.sub.sync(t)<−σ.sub.min(t)<σ.sub.max(t)<ρ.sub.sync(t), ∀t if e.sub.sync(0)≥0


−ρ.sub.sync(t)<−σ.sub.max(t)<σ.sub.min(t)<M.sub.syncρ.sub.sync(t), ∀t if e.sub.sync(0)<0  (8)

[0094] The functions σ.sub.min(t), σ.sub.max(t) define the Safety Margins (dotted lines in FIG. 7, FIG. 8 and FIG. 9) and should be chosen in a reasonable way to be close to the Prescribed Performance Limits (dashed lines in FIG. 7, FIG. 8 and FIG. 9) but yet allow a safe distance from them.

[0095] The key idea behind the Safety Margins (dotted lines in FIG. 7, FIG. 8 and FIG. 9) is that whenever the speed synchronization error e.sub.sync(t) reaches them, a Safety Margin violation flag is raised (SLimViolFlag=ON in FIG. 9), which indicates that the speed synchronization error e.sub.sync(t) could surpass the Prescribed Performance Limits (dashed lines in FIG. 7, FIG. 8 and FIG. 9) in the next time instances. Once the violation flag SLimViolFlag=ON, the controller SSC reacts according to the respective protection measure (see Protection Measures against hazardous cases HCa, HCb). During normal operation, the speed synchronization error e.sub.sync(t) should evolve strictly within the Safety Margins (SLimViolFlag=OFF):


−σ.sub.min(t)<e.sub.sync(t)<σ.sub.max(t), ∀t if e.sub.sync(0)≥0


−σ.sub.max(t)<e.sub.sync(t)<σ.sub.min(t), ∀t if e.sub.sync(0)<0  (9)

[0096] In order to avoid getting into the aforementioned numerically hazardous situations, the following protection strategies are defined.

[0097] Protection Measures Against Hazardous Cases HCa, HCb:

[0098] In case of HCa (FIG. 7): If an unexpected condition forces the speed synchronization error e.sub.sync(t) to reach the Safety Margins (dotted line in FIG. 7) at the time instance t=t.sub.viol, the Prescribed Performance Limits (dashed line in FIG. 7) are immediately expanded with the choice of a safe Performance Function ρ.sub.sƒ(t) and safe Maximum Overshoot Parameter M.sub.sƒ, such that the speed synchronization error e.sub.sync(t) would continue to evolve within the safe Prescribed Performance Limits (dash-dotted line in FIG. 7). This is achieved with the use of a safe Transformation Function E.sub.sƒ(⋅), defining a defining bijective mapping:


E.sub.sƒ:(−M.sub.sf,1).fwdarw.(−∞,∞), if e.sub.sync(0)≥0


E.sub.sƒ:(−1,M.sub.sƒ).fwdarw.(−∞,∞), if e.sub.sync(0)<0

that constitutes the transformed synchronization error

[00008] ε s y n c ( t ) = E s f ( e sync ( t ) ρ s f ( t ) ) .

[0099] Note that such an unexpected situation (e.g. abrupt persistent disturbance) could prohibit an optimal synchronization performance by the available control effort (controller saturation). The characteristics of the safe Prescribed Performance Limits and their main difference with respect to the synchronization Prescribed Performance Limits is that they have to be chosen in a less constrained manner, in order to allow the speed synchronization error e.sub.sync(t) retain higher values and lower speed of convergence, without the risk of inducing numerical errors. E.g. the convergence region of the safe Prescribed Performance Limits, defined by ρ.sub.sƒ and M.sub.sƒ, has to be larger than the convergence region of the synchronization Prescribed Performance Limits, defined by ρ.sub.sync∞ and M.sub.sync, i.e. −M.sub.sƒ.Math.ρ.sub.sf∞<−M.sub.sync.Math.ρ.sub.sync∞<ρ.sub.sync<ρ.sub.sf∞, in case of e.sub.sync(0)≥0.

[0100] In case of HCb: If a “change-of-mind” situation takes place at the time instance t=t.sub.step, then the synchronization cycle is interrupted and re-initialized, using a new Performance Function ρ′.sub.sync(t), and new Maximum Overshoot Parameter M′.sub.sync, defining the new synchronization Performance Limits (dash-dotted line in FIG. 8). The new Performance Function ρ′.sub.sync(t) has to be chosen such that the new initial speed synchronization error e′.sub.sync(t′.sub.0) lies within the new Prescribed Performance Limits and the new Maximum Overshoot Parameter M′.sub.sync has to be chosen in a way to reflect the maximum allowed overshoot according to the desired synchronization performance.

[0101] The aforementioned hazardous cases HCa, HCb may occur more than once within a single synchronization cycle. Therefore, both conditions should be checked at every single iteration of the synchronization cycle, i.e. steps G and H of the synchronization algorithm flowchart diagram (FIG. 10).

[0102] Description of the Synchronization Cycle Steps in FIG. 9:

[0103] Step I—Initialization in FIG. 9: [0104] Calculate the initial speed synchronization error e.sub.sync(0), [0105] Choose the form of the synchronization Performance Function (ρ.sub.sync(t)) and the corresponding Maximum Overshoot Parameter (M.sub.sync), [0106] Choose the form of the Safety Margin functions σ.sub.min(t), σ.sub.max(t), [0107] Set the Safety Margin violation flag SLimViolFlag=OFF,

[0108] Step II—k-Th Step of the Synchronization Cycle, See FIG. 9: [0109] Calculate the speed synchronization error e.sub.sync(t) at the specific time instance t.sub.k, [0110] Calculate the actual value of synchronization Performance Function ρ.sub.sync(t) at the specific time instance t.sub.k, [0111] Calculate the Safety Margins σ.sub.min(t), σ.sub.max(t) at the specific time instance t.sub.k, [0112] Calculate the transformed synchronization error ε.sub.sync(t) at the specific time instance t.sub.k:

[00009] ε s y n c = E s y n c ( e s y n c ρ s y n c ) , [0113] if the Safety Margin violation flag SLimViolFlag=OFF, using the synchronization Performance Function ρ.sub.sync(t) and synchronization Maximum Overshoot Parameter M.sub.sync through the synchronization Transformation Function E.sub.sync(⋅),

[00010] ε s y n c = E s f ( e s y n c ρ s f ) , [0114] if the Safety Margin violation flag SLimViolFlag=ON (case HCa), using the safe Performance Function ρ.sub.sƒ(t) and safe Maximum Overshoot Parameter M.sub.sf through the safe Transformation Function E.sub.sƒ(⋅), [0115] If a new target speed is requested (case HCb), interrupt the synchronization process and re-initialize the synchronization cycle (go to Step I—Initialization in FIG. 9) [0116] Calculate the requested motor torque:


If |e.sub.sync(t)|≤iDisableThres, T.sub.SG(t)=T.sub.PPC(ε.sub.sync(t))+T.sub.PI(e.sub.sync(t))


If |e.sub.sync(t)|>iDisableThres, T.sub.SG(t)=T.sub.PPC(ε.sub.sync(t))+T.sub.P(e.sub.sync(t)) [0117] Request the SG torque T.sub.SG(t).

[0118] Step III (in FIG. 9)—End of the Synchronization Cycle:

[0119] If the speed synchronization error e.sub.sync(t) remains within a prespecified region defined by the threshold MinErrThres for a specific time period Δt, which may be detected and indicated by a Synchronization Error Debouncer (shown in FIG. 2):


|e.sub.sync(t)≤MinErrThres for Δt=SyncErrDebounceTime

then the synchronization is over, and gear may be engaged. Whereby SyncErrDebounceTime is the synchronization error debounce time period that signifies the successful completion of the synchronization cycle.

[0120] FIG. 10 shows synchronization algorithm flowchart diagram: [0121] Step A—Initialization, [0122] Step B—Calculate the initial speed synchronization error e.sub.sync(0), [0123] Choose the synchronization Performance Function ρ.sub.sync(t), [0124] Choose synchronization Maximum Overshoot Parameter M.sub.sync, [0125] Choose the Safety Margins σ.sub.min(t), σ.sub.max(t), [0126] Set the Safety Margin violation flag SLimViolFlag=OFF, [0127] Step C—Start the synchronization cycle, [0128] Step D—Calculate the speed synchronization error e.sub.sync(t), [0129] Step E—Check if |e.sub.sync(t)|≤MinErrThres for Δt≥SyncErrDebounceTime, [0130] If Yes: to to step F, [0131] If No: go to step G, [0132] Step F—End of synchronization cycle, [0133] Step G—Check if there is a “change-of-mind” situation (case HCb), [0134] If Yes: go to Step A, [0135] If No: go to step H, [0136] Step H—Check if the Safety Margin violation flag SLimViolFlag==ON (case HCa), [0137] If Yes: go to step J, [0138] If No: go to step I, [0139] Step I—Use the synchronization Performance Function ρ.sub.sync(t) and synchronization Maximum Overshoot Parameter M.sub.sync, [0140] Step J—Use the safe Performance Function ρ.sub.sƒ(t) and safe Maximum Overshoot Parameter M.sub.sƒ, [0141] Step K—Check if the speed synchronization error e.sub.sync(t) is within the Safety Margins, [0142] If No: go to step L, [0143] If Yes: go to step M, [0144] Step L—Set the Safety Margin violation flag SLimViolFlag=ON (HCa), continue with step H, [0145] Step M—Calculate the transformed synchronization error E.sub.sync (t), [0146] Step N—Check if |e.sub.sync(t)|≥iDisableThres, (see also FIG. 11) [0147] If No: go to step O, [0148] If Yes: go to step P, [0149] Step O—Calculate the speed controller output


T.sub.SG(t)=T.sub.PPC(ε.sub.sync(t))+T.sub.PI(e.sub.sync(t)), (see also FIG. 6 in combination with equation (7)), [0150] Step P—Calculate the speed controller output


T.sub.SG(t)=T.sub.PPC(ε.sub.sync(t))+T.sub.P(e.sub.sync(t)), (see also FIG. 6 in combination with equation (7)), [0151] Step Q—Set the requested SG torque T.sub.SG(t).

[0152] Step Q signifies the final step of a single iteration of the synchronization cycle (e.g. 1st iteration). Once the first iteration is finished at step Q, a second iteration is started by going back to step D. This iteration is repeated until step E is true and the synchronization is finished with step F.

[0153] A method of controlling a vehicle drivetrain by an electric motor (1, SG), in order to synchronize the speed of an internal combustion engine (3, ICE) and the speed of gears in the drivetrain, wherein if a speed synchronization error e.sub.sync(t) is controlled to remain within a prespecified region for a specific period of time, the synchronization is finished, and a gear may be engaged.

[0154] The description of the invention is merely exemplary in nature and, thus, variations that do not depart from the gist of the invention are intended to be within the scope of the invention. Such variations are not to be regarded as a departure from the spirit and scope of the invention.

LIST OF REFERENCE

[0155] 1 Starter-Generator [0156] 2 electronic control unit [0157] 3 internal combustion engine [0158] 4 gearbox [0159] 5 gear actuator [0160] 6 electric machine [0161] A to R step [0162] DHT Dedicated Hybrid Transmission [0163] ECU electronic control unit [0164] ED electric drive [0165] SG Starter-Generator [0166] ICE internal combustion engine [0167] e(t) tracking error [0168] ε(t) transformed error [0169] e.sub.sync(t) speed synchronization error [0170] ε.sub.sync(t) transformed synchronization error [0171] ω.sub.tgt target angular speed [0172] ω.sub.SG angular velocity of the SG rotor [0173] v.sub.veh velocity of the vehicle [0174] r.sub.wheel radius of a wheel [0175] i.sub.tgt target gear ratio [0176] T.sub.SG torque of SG [0177] T.sub.ICE torque of ICE [0178] PPC Prescribed Performance Control [0179] PI Proportional-Integral [0180] P Proportional [0181] T.sub.PPC PPC part [0182] T.sub.P-PI switching-PI part [0183] T.sub.PI PI part [0184] T.sub.P P part [0185] E(⋅) Transformation Function [0186] E.sub.sync(⋅) synchronization Transformation Function [0187] E.sub.sƒ(⋅) safe Transformation Function [0188] ρ(t) Performance Function [0189] ρ.sub.sync(t) synchronization Performance Function [0190] β.sub.sƒ(t) safe Performance Function [0191] M Maximum Overshoot Parameter [0192] M.sub.sync synchronization Maximum Overshoot Parameter [0193] M.sub.sƒ safe Maximum Overshoot Parameter [0194] HCa, HCb Hazardous Case a, Hazardous Case b [0195] σ.sub.min(t), σ.sub.max(t) Safety Margin functions [0196] MinErrThresh minimum error threshold [0197] SyncErrDebounceTime synchronization error debouncer [0198] SLimViolFlag Safety Margin violation flag [0199] iDisableThres integrator disabling threshold [0200] SSC speed synchronization controller