Starter-generator speed control
By employing a field-programmable gate array controller in the starter-generator system, combined with a hybrid control algorithm of torque mode and speed mode, and using a lookup table to adjust the current value, the complex authentication and control problems in the prior art are solved, and simplified robust speed control is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- SAFRAN POWER USA LLC
- Filing Date
- 2020-05-06
- Publication Date
- 2026-07-24
AI Technical Summary
Existing starter-generator speed control methods require a large amount of software code and digital signal processors in airborne systems, leading to certification challenges and a lack of simplified speed control algorithms.
A field-programmable gate array (FPGA)-based controller is used. By determining the current and previous speed ranges, the measured current values, and the acceleration or deceleration conditions, the target current value is adjusted using a lookup table. Combined with a hybrid control algorithm of torque mode and speed mode, the system is simplified to hardware implementation.
It provides a simplified system solution, reduces the certification burden, achieves robust speed control, lowers the difficulty of development and certification, and improves the reliability and efficiency of the system.
Smart Images

Figure CN115667686B_ABST
Abstract
Description
Background Technology
[0001] Currently, the most common methods for improving speed control modes in starter-generator (SG) systems include field-oriented control (FOC) and space vector modulation (SVM) control algorithms. Both algorithms provide accurate and stable speed control, but both employ software code and digital signal processors (DSPs). This can present certification challenges for implementation in airborne systems. For FPGA-based starter controllers, simplified speed control algorithms can introduce new functionality without incurring significant recertification burdens. Summary of the Invention
[0002] According to one aspect, a system for controlling an engine starter may include a controller that determines a current speed band associated with engine starting for a current time increment, determines a previous speed band associated with engine starting for a previous time increment within the engine starting process, receives measured current values, determines a target current value based on the current speed band, the previous speed band, and whether acceleration or deceleration occurs between the current speed band and the previous speed band, and adjusts the current used for engine starting based on the target current value.
[0003] The controller can determine the target current value based on the mode of the system used for engine starter control. The mode of the system used for engine starter control can be a speed mode or a torque mode. The controller can determine the target current value based on two or more different lookup tables. The controller can select a first lookup table from the two or more different lookup tables based on the mode of the system used for engine starter control. The controller can select a row of the first lookup table based on the current speed associated with engine starting. The controller can select a column of the first lookup table based on acceleration or deceleration. The controller can operate in a coasting state, which is the initial state for engine starting. The controller can determine the target current value based on an external low-speed threshold. The controller can determine the target current value based on a threshold target and below a nominal threshold.
[0004] According to one aspect, a system for engine starter control may include a controller that determines a current speed band associated with engine start for a current time increment, determines a previous speed band associated with engine start for a previous time increment within the engine start, receives measured current values, determines a target current value based on whether acceleration or deceleration occurs between the current speed band, the previous speed band, the current speed band, and the previous speed band, and the mode of the system for engine starter control, and adjusts the current for engine start based on the target current value.
[0005] The system used for engine starter control can operate in either speed mode or torque mode. The controller can determine the target current value based on two or more different lookup tables. Alternatively, the controller can determine the target current value based on an external low-speed threshold.
[0006] A method for engine starter control may include: determining a current speed band associated with engine start for a current time increment, determining a previous speed band associated with engine start for a previous time increment within the engine start, receiving a measured current value, determining a target current value based on whether acceleration or deceleration occurs between the current speed band, the previous speed band, the current speed band and the previous speed band, and the mode of the system for engine starter control, and adjusting the current for engine start based on the target current value.
[0007] The system mode for engine starter control is either speed mode or torque mode. A method for engine starter control may include determining a target current value based on two or more different lookup tables, selecting a first lookup table from the two or more different lookup tables based on the system mode for engine starter control, selecting a row from the first lookup table based on the current speed associated with engine starting, and / or selecting a column from the first lookup table based on acceleration or deceleration determination. Attached Figure Description
[0008] Figure 1 This is an exemplary illustration of a speed curve associated with one aspect of an engine starter control system.
[0009] Figure 2 This is an exemplary flowchart of a method for controlling an engine starter according to one aspect.
[0010] Figure 3 This is an exemplary component diagram of a system for controlling an engine starter, based on one aspect.
[0011] Figure 4 This is an exemplary logic diagram of a system for controlling an engine starter, based on one aspect.
[0012] Figure 5 This is an exemplary logic diagram of a system for controlling an engine starter, based on one aspect.
[0013] Figure 6 This is an exemplary logic diagram of a system for controlling an engine starter, based on one aspect.
[0014] Figure 7 This is an exemplary flowchart of a method for controlling an engine starter according to one aspect.
[0015] Figure 8A and Figure 8B This is an exemplary flowchart of a method for controlling an engine starter according to one aspect. Detailed Implementation
[0016] Typically, jet engine starting is achieved by delivering starting torque from the starter (e.g., electric or air-based) to the engine. This torque causes the engine to accelerate, and when a predetermined speed can be reached, the engine controller sends a command to initiate engine ignition and supply fuel to the engine.
[0017] As the engine speed continues to increase through acceleration, the starter continues to supply torque. When the engine's "start cut-off speed" is reached, the start command can be removed and the starter stops delivering torque.
[0018] From one perspective, engine starting efficiency or engine reliability can benefit from splitting the starting process into two modes: torque mode and speed mode. For example, the starting process can begin in torque mode and then transition to speed mode. In speed mode, a constant rotational speed can be maintained. When the engine's optimal starting conditions are met, a command to switch to torque mode can be issued, and the starter switches to supplying acceleration torque to the engine in torque mode until the starting cutoff speed is reached.
[0019] Typically, battery current feedback control is used to regulate the current consumed from the starting power supply to a target value, thereby generating the maximum torque achievable at that target current value. The current is regulated by comparing the target current value with a measured current value and adjusting the inverter pulse width upwards to increase the current or downwards to decrease it as needed. The target current can be taken from one of two or more configuration lookup tables to provide selection between two or more starting curves (e.g., high torque or low torque) based on the operating mode.
[0020] As in Figure 1 As seen in the exemplary speed curve, the engine starter control system can operate in two modes: torque mode and speed mode. The engine starter control system can adjust a target current value. This adjusted target current value can be provided as input to an existing battery current feedback control algorithm, replacing the lookup table target current value. For example, in speed mode, the engine starter control system can obtain the target current input value from a different source than in torque mode. During torque mode, the target value can be obtained from a configuration table or a lookup table. During speed mode, the target current input value can be obtained via a function of the speed control algorithm, as will be discussed in more detail herein.
[0021] According to one aspect, starter-generator operation in speed control mode involves transitions between torque mode and speed mode, and a return to torque mode. The engine starter control system can use speed and acceleration and / or deceleration information to define the target starter current used to maintain constant speed operation.
[0022] Figure 1 This is an exemplary illustration of a speed curve associated with an engine starter control system, according to one aspect. According to one aspect, the starting sequence of the engine starter control system can begin in torque mode. This occurs when a first speed control band (Vo-V1) threshold may be crossed (e.g., Figure 1 Point A on the...
[0023] The starting sequence may include the following segments and speed control bands:
[0024] 0-A: Torque Mode
[0025] A: The external low-speed threshold was crossed.
[0026] PWM = PWM – Mo, where Mo can be a configurable constant (e.g., ranging from 0 to 63). Acceleration can be calculated (α = Δvelocity / Δtime) (α = Δvelocity / Δtime).
[0027] B: When the velocity crosses the next threshold, calculate the acceleration and adjust the PWM.
[0028] PWM = PWM - m(V, α), where v can be the starter rpm, α can be the acceleration, and m can be a constant from the m(α, V) lookup table.
[0029] C: Continue calculating the acceleration for each pass and adjust the PWM per m(V,α) to achieve zero acceleration at the target velocity.
[0030] D / E: The velocity crosses the same threshold indicating zero acceleration. PWM remains unchanged.
[0031] F: The threshold target has been crossed, indicating deceleration. This depends on the rate and does not change or increase the PWM.
[0032] G: Below the nominal threshold, it can be crossed. Increase the PWM per m(V,α).
[0033] H: Continue to calculate acceleration and adjust PWM based on the above BG until torque mode or timeout.
[0034] I: Torque mode or timeout signal detected.
[0035] Torque mode
[0036] In torque mode, the current can be adjusted by comparing a target current value with a measured current value, where the target current value can be obtained from a current lookup table, such as a lookup table stored in the configuration register of the engine controller or in a memory driver. Alternatively, the memory driver can be a memory element. According to one aspect, a first lookup table for high torque mode and a second lookup table for low torque mode can exist. The `config_register_low_torque_batt_I_target` signal and / or the `config_register_high_torque_batt_I_target` signal can be used to select either the first or second lookup table. In other words, the value received from the configuration register can be used to implement the high or low torque configuration table accordingly.
[0037] Speed Mode
[0038] In speed mode, the current can be adjusted by comparing a target current value with a measured current value, which can be determined based on engine acceleration and instantaneous speed information or based on the speed control algorithm described herein.
[0039] Depending on external conditions (e.g., temperature, etc.), the engine's dwell speed can vary. Therefore, multiple preset constant speed mode values can be achieved.
[0040] The controller can determine the target current value based on the mode of the system used for engine starter control (i.e., speed mode / speed start mode or torque mode). In other words, the mode of the system used for engine starter control is either speed mode or torque mode.
[0041] Implementing hybrid (e.g., torque / speed / torque) starting algorithms with preset speed mode speed selection in hardware can provide original equipment manufacturers (OEMs) with simplified system solutions. Implementing such systems in hardware and / or firmware eliminates the need for software development beyond the firmware used for such control, offering a faster development and certification pathway. In this way, for example, simple, robust, hardware-based control can be provided for jet engine brushless starter generators without the use of microcontrollers.
[0042] Upon entering the starting mode, a coasting state can be inserted into the starting sequence state machine as the initial state. The controller can operate in this coasting state, which serves as the initial state for engine starting. During the coasting state, the SGCU (Starter Generator Control Unit) does nothing. In other words, the SGCU can wait until appropriate conditions are met before operating. Furthermore, conditions can be added throughout the starting sequence as starting exit conditions. This exit condition can be based on a timer that counts the amount of time spent operating in speed control. If the timer expires before the transition to torque control occurs, the starting process can be aborted.
[0043] Switching the target current value used for battery current feedback control and modifying the start-up sequence state machine can be implemented within the SGCU logic. Furthermore, separate logic for determining when to switch the target current value to speed control and the target current value during speed control can be implemented within the SGCU.
[0044] Figure 2 This is an exemplary flowchart of a method 200 for controlling an engine starter, according to one aspect. Figure 2The method 200 for controlling an engine starter may include resetting or running the acceleration_timer signal 202, observing the increment or time pulse 204, determining the associated current or present speed band 206 (e.g., the controller may determine the current speed band associated with engine starting for the current time increment), determining 208 whether the speed band has changed (e.g., the controller may determine the current speed band and the previous speed band associated with engine starting for the current time increment and the previous time increment, respectively), if the speed band has indeed changed, stopping the acceleration timer 210, determining 212 whether the timer has timed out, if the timer has indeed timed out, setting the acceleration_timer signal 214 to its maximum value, determining 216 whether the current speed band is greater than the previous speed band and setting 218, 2 The 20 acceleration_deceleration flag sets the 222 speed_band_previous and speed_band_present values, resets the 224 acceleration_timer_maxed_out signal, sets the 226 acceleration band value based on the flag value, sets the 228 battery_current target value from the lookup table based on speed_band_present and acceleration_band, adjusts 244 PWM accordingly, and limits 246 PWM if the nominal battery_current target is reached or if the reverse PWM table value is reached. The acceleration_band signal indicates which column of the target current adjustment lookup table to use, while speed_band indicates which row of the target current adjustment lookup table to use.
[0045] If the speed band does not change (208), determine if the acceleration_timer signal (230) is at its maximum value. If the acceleration_timer signal is at its maximum value, stop the acceleration_timer signal (232). Set the value of acceleration_band (236) based on the acceleration_deceleration flags (218 and 220). Set the acceleration_timer_maxed_out signal (240) to 1. Set the battery_current target value (228) from the lookup table based on speed_band_present and acceleration_band. Adjust PWM (244) accordingly. Limit PWM (246) if the nominal battery_current target is reached or if the reverse PWM table value is reached. The acceleration_band signal indicates which column of the target current adjustment lookup table to use, while speed_band indicates which row of the target current adjustment lookup table to use.
[0046] In this way, the controller can determine a target current value based on the current speed range, the previous speed range, and whether acceleration or deceleration occurs between the current speed range and the previous speed range, and adjust the current used for engine starting based on the target current value. The controller can determine the target current value based on two or more different lookup tables or depending on the system mode. For example, the controller can select a first lookup table from two or more different lookup tables based on the mode of the system used for engine starter control. The controller can select a second lookup table from two or more different lookup tables based on whether the mode of the system used for engine starter control is a different mode.
[0047] Furthermore, the controller can select rows of a first lookup table based on the current speed associated with engine start. The controller can select columns of the first lookup table based on acceleration or deceleration, or whether acceleration or deceleration occurs within a predetermined range of the speed mode. For example, the controller can determine a target current value based on an external low-speed threshold, which may indicate a threshold associated with torque mode operation when the measured current is below a certain level. As another example, the controller can determine a target current value based on a threshold target (i.e., a target current) and a threshold below the nominal value that can be crossed while maintaining the speed mode.
[0048] Figure 3This is an exemplary component diagram of a system for engine starter control, based on one aspect. A brushless motor control algorithm can be used to control a brushless starter generator (SG). When the brushless SG operates in starter operation mode, the brushless motor control algorithm can be optimized to efficiently drive the brushless generator.
[0049] Figure 3 This is an exemplary component diagram of a system for engine starter control according to one aspect. The system for engine starter control can control a brushless SG during engine start-up mode. The system for engine starter control may include a controller 302. The controller 302 may include a comparator 304, a pulse width modulation (PWM) duty cycle generator 306, a randomizer 308, a sequencer 312, and a clock 314.
[0050] exist Figure 3 As can be seen, the DC power supply 352 provides DC power to the inverter 356, which drives a multiphase starter generator (SG) 358 that can be associated with N phases. A system for engine starter control may include an SGCU or controller 302 that controls the inverter 356. For example, a system for engine starter control may control the brushless SG 358 during engine start-up mode by controlling the current supplied from the DC power supply 352 to the inverter 356.
[0051] Current sensor 354 can measure the current associated with DC power supply 352 (e.g., the controller can receive the measured current value) and provide this measurement as an input to controller 302. Furthermore, multiphase SG 358 can provide position angle and rotational speed (e.g., the time derivative of the position angle) as input to controller 302 via resolver 362 of the multiphase SG. The rotational speed can be the time derivative of the position angle associated with the SG. SG 358 may include resolver 362 that determines the position angle and / or rotational speed.
[0052] Using the position angle provided by the resolver 362 of the multiphase SG, the controller 302 can determine the target current via a lookup table, which can be stored in the controller 302's memory drive (also referred to as a memory element) 320. The lookup table can indicate the target current at a given rotational speed of the multiphase SG. In this way, the controller 302 can determine the target current value based on the input of the position angle and / or rotational speed, as well as the lookup table. In other words, the rotational speed can be used to address the target current lookup table stored in the controller 302's memory or memory drive 320, and the associated calculations performed by the controller 302's processor. According to one aspect, the target current value varies with the rotational speed within the lookup table. In this way, the controller 302 can regulate the source current in a manner that controls the inverter PWM so that the instantaneous power supply current value equals the target current value from the lookup table. The target current from the target current lookup table can be determined by the SGCU based on the rotational speed associated with the SG 358 driven by the inverter 356.
[0053] Comparator 304 within controller 302 compares a target current value with a current associated with DC power supply 352 provided by the output of a DC source current sensor. Comparator 304 determines whether to increase or decrease the current value of the PWM duty cycle. Comparator 304 can determine whether to increase or decrease the current value of the PWM duty cycle based on the need to increase or decrease the inverter input current. For example, the PWM duty cycle can be increased or decreased by the same amount each time a current correction is determined. Comparator 304 can receive a current reading from current sensor 354 and a target current from a target current lookup table (e.g., which may be stored in memory driver 320 or received by controller 302, depending on other aspects) and generate an output comparator signal indicating an increase or decrease in the current value of the PWM duty cycle based on the comparison between the current reading and the target current.
[0054] An incrementing or decrementing control loop can be run until the PWM adjustment results in a match between the controlled variable (e.g., the target current from the lookup table) and the measured feedback value (e.g., the current measured from the current sensor 354).
[0055] The randomizer 308 within controller 302 can generate a random time-varying update signal (based on clock 314), which can be fed to PWM duty cycle generator 306 to indicate when to update the pulse width with a new adjustment from comparator 304. Controller 302 for SGCU randomized current feedback control may include clock 314 driving randomizer 308. Clock 314 may be a pseudo-random clock.
[0056] The PWM duty cycle generator 306 can receive a random time-varying update signal, and this signal can control the period time associated with the PWM duty cycle generator 306. The PWM duty cycle generator 306 can receive a signal from the comparator 304 and generate an output PWM signal. The output of the PWM duty cycle generator 306 provides the generated pulse width to the sequencer 312, which in turn changes the amount of current drawn from the DC source. The use of random feedback correction mitigates resonance in the starter generator or SG358 during speed acceleration and reduces unwanted torque fluctuations.
[0057] The sequencer 312 can receive the output PWM signal and generate a gate control signal for controlling the inverter 356 based on the output PWM signal. The sequencer 312 can also receive the position angle associated with the SG 358 driven by the inverter 356 and generate a gate control signal for controlling the inverter 356 based on the position angle.
[0058] According to one aspect, the randomizer 308 can change the frequency associated with the update frequency of the battery current value. For example, a control pulse can be provided that enables the updating of the battery current value to be changed. A battery current feedback signal (e.g., battery_current_feedback_logic) can be implemented to control the field-programmable gate array (FPGA) design for the system used for engine starter control. The battery current feedback signal can be provided such that if the current exceeds the midpoint, it decreases, and if the current falls below the midpoint, it increases by an increment (e.g., + / - 3 increments or units per sampling period).
[0059] Examples of such variations could include: waiting 3ms until the next update, waiting 2ms until the next update, waiting 3ms until the next update, waiting 4ms until the next update, etc. The randomizer 308 can control the periodicity of the control pulses in a periodic manner. This can be achieved, for example, using a pseudo-random number generator within the randomizer 308. The randomizer 308 can include a state machine that controls the sequencer 312. For example, the output signal of the pseudo-random number generator (e.g., prng_to_start_batt_curr_fb_correction) can be utilized by the firmware module sm_battery_current_feedback, which can be a state machine that acts as the controller 302 of the sequencer 312 for the battery current feedback algorithm.
[0060] In this way, mechanical and / or electrical resonances during engine starting or SG 358 speed acceleration caused by control loop adjustments can be mitigated or avoided. Starter torque ripple can be significantly reduced, thereby improving the reliability of the system used for engine starter control.
[0061] Figure 4 This is an exemplary logic diagram 400 for a system for engine starter control, according to one aspect. According to one aspect, the force_torque_mode_until_start_end signal or bit can be derived based on one or more other signals or bits. The force_torque_mode_until_start_end signal or bit can be used to determine whether the system for engine starter control is in torque mode (e.g., in the case of using a lookup table) or can participate in speed mode. The force_torque_mode_until_start_end signal or bit can be generated based on the speed_band_continuous_max_value signal, speed_band_initialized signal, coasting_active signal, allow_coasting signal, allow_speed_control signal, torque_mode_commanded signal, and start_mode_active signal. Figure 4 As seen, the inverted values of the speed_band_continuous_max_value signal, the speed_band_initialized signal, the coasting_active signal, and the allow_coasting_signal are ANDed. The output of this first AND gate 402 can be ORed with the inverted value of the allow_speed_control signal and the product of the AND operation 404 of the torque_mode_commanded signal and the start_mode_active signal. The product of this OR gate 406 and the inverted value of the start_mode_active signal can be used to drive unit 408, such as a memory unit or a flip-flop. For example, the product of the OR gate 406 can be used to drive the setting of a memory unit, while the inverted value of the start_mode_active signal can be used to drive the resetting of a memory unit, which yields the force_torque_mode_until_start_end signal.
[0062] According to one aspect, if this occurs, speeds exceeding the upper limit at the start of starting and coasting may not be allowed to enter torque mode. The speed_select signal can be set to active while starting is in progress. The speed_band_initialized signal can indicate whether to utilize speed band values; see reference [link / reference]. Figure 1The speed band AI. The coasting_active signal can be set by the state within the start state machine. The allow_coasting signal and allow_speed_control can indicate new configuration register bits. The speed_select signal can be associated with the torque mode of the command after debounce. The start_mode_active signal can be set to 1 during the initial steps of the start state machine and to 0 during the final steps of the start state machine.
[0063] When activated, the `force_torque_mode_until_start_end` signal enables torque control mode operation until the start-up is complete and disables speed control until the next start-up occurs. In this way, Figure 4 The logic can be used to determine the operating mode of the system used for engine starter control, so that the starter operates in torque control in a manner that does not involve a transition to speed control until the start-up is complete.
[0064] Figure 5 This is an exemplary logic diagram 500 for a system for controlling an engine starter, according to one aspect. According to one aspect, the speed_control_active signal can be generated based on one or more other signals. The speed_control_active signal can be used to set the corresponding speed_control_active bit. When the speed_control_active bit is activated, the speed control algorithm runs (i.e., instead of using a strict lookup table). According to one aspect, the force_torque_mode_until_start_end signal or bit can be used to set the speed_control_active signal or bit.
[0065] The speed_control_active signal or bit can be set based on the gate_drives_enabled, speed_band_continuous, force_torque_mode_until_start_end, and start_mode_active signals. For example, the inverted gate_drives_enabled, speed_band_continuous, and force_torque_mode_until_start_end signals can be ANDed using AND gate 502, and the inverted force_torque_mode_until_start_end and start_mode_active signals can be ORed using OR gate 504. The AND gate output can be used to drive the setting of memory cell 508, and the OR gate output can be used to drive the resetting of memory cell 508. The memory cell can be used to derive the speed_control_active signal.
[0066] From one perspective, the output of an AND gate can indicate whether the speed is within a speed band, such as... Figure 1 Within the specified speed band. The `gate_drives_enabled` signal can be set by the startup state machine, and the `speed_band_continuous` signal can indicate whether the speed band is initialized for the gate drive to be enabled. Memory cell resets can have priority, and the `speed_control_active` signal is activated when the speed is below the upper limit of the speed band or locked in torque mode. In this way, when the speed is within the specified speed band and it is determined that torque mode is not locked, Figure 5 The logic can enable speed control via the activated speed_control_active signal. Once activated, speed control can remain active until a transition to torque mode is desired.
[0067] Figure 6 This is an exemplary logic diagram 600 of a system for controlling an engine starter, based on one aspect. Figure 6The logic can be a timer driven by the start_mode_active signal. For example, the start_mode_active signal can start the timer, and the inverted start_mode_active signal can be used to reset the timer. The force_torque_mode_until_start_end signal can be used to stop the timer. The timer can generate a speed_control_timer signal, which indicates the amount of time that start-mode operation has been in effect (without any transition to torque control).
[0068] According to one aspect, if the timer times out, the exit condition for the startup process can be met, and startup can be aborted by setting `speed_control_timer_timeout` to equal 1. Stopping the timer can take precedence over starting it. The timeout value can be a predefined timer value for `speed_control_timer_timeout`, which can be latched to the startup exit condition. In this way, Figure 6 The logic or timer can be enabled when entering a start mode associated with pure speed mode or until a permanent transition to torque mode. The timer can be reset when the start mode terminates based on its stopping. If the timer expires, an exit condition for start can be initiated within the start sequence state machine.
[0069] Figure 7 This is an exemplary flowchart of a method 700 for controlling an engine starter, according to one aspect. Figure 7 Method 700 can be used to determine the speed band associated with the starting process. According to one aspect, the input to this flowchart can be a speed measurement. The output can be a speed_band_initialized bit or signal and a speed_band_continuous word or signal. The speed_band_initialized bit can indicate when to use the value from the speed_band_continuous word or signal. To determine the speed band, Figure 7 Method 700 utilizes a speed window variable. A speed window value indicates whether the current speed falls between two speed values. Therefore, if the speed hovers precisely at the boundary or limit between two speed windows, the speed window value may fluctuate back and forth between the two values. Speed window values can be implemented to include hysteresis to mitigate this repetitive back-and-forth value variation.
[0070] The method 700 for engine starter control may include starting 702 by setting the speed_band_initialized bit to <= zero, determining 706 whether a first speed measurement is available, when the first speed measurement is available, determining 708 the current speed_window_now from the speed measurement, setting 710 speed_window_last_cycle <= speed_window_now, determining 712 whether speed_window_now = 0, if speed_window_now = 0, then setting speed_band_continuous <= 0 at 716, if speed_window_now is not equal to 0, then setting speed_band_continuous <= (speed_window_now – 1) at 714. In this way, since the speed band value is unknown, initialization of the value can occur.
[0071] The method 700 for engine starter control may include setting 718 speed_band_initialized <= 1, determining 720 whether another speed measurement is available, and if so, determining 722 speed_window_now from the updated speed measurement. At 724, if speed_window_now < speed_window_last_cycle, then set speed_band_continuous <= speed_window_now. If speed_window_now > speed_window_last_cycle, then set speed_band_continuous <= (speed_window_now - 1). In this way, the method 700 for engine starter control can determine the current speed window and check whether any changes have occurred in the speed window.
[0072] The method 700 for engine starter control may include 726 setting speed_window_last_cycle <= speed_window_now to remember the current speed window, so that the method 700 can tell whether the speed window has changed at the next speed measurement.
[0073] Figure 8A and[[ID=II]] Figure 8B is an exemplary flowchart of a method 800 for engine starter control according to one aspect. The method 800 may utilize the speed_control_active signal to determine when the method 800 should implement the speed mode. The speed control method 800 may use the data from Figure 7 Method 700 outputs the `speed_band_continuous` value to generate the target current value. Method 800 also generates bits (e.g., `use_batt_i_target_value_from_speed_control`) that can indicate when to use the generated target current value. To generate the target current value, Method 800 calculates the time required to change the speed band in order to estimate the acceleration. Method 800 can then determine whether the speed is increasing (e.g., accelerating) or decreasing (e.g., decelerating). This information can be used to select an adjustment value for the target current value from a lookup table.
[0074] Method 800 for engine starter control may include starting 802 by setting 804 use_batt_I_target_value_from_speed_control<=0, determining 806 whether speed_control_active=1, and if speed_control_active=1, sampling 808 the speed_select_1 signal to set the speed_control_variable_select signal, initializing the acceleration_deceleration flag 810, the acceleration_timer_expired_flag 812, and at 814, speed_band_sample<=speed_band_continuous, at 816, speed_band_previous<=speed_band_sample, at 818, batt_I_target_value_for_speed_control<=measured battery current value for battery current feedback control, and at 820, use_batt_I_target_value_from_speed_control<=1.
[0075] Method 800 for controlling an engine starter may include starting or resetting 822 acceleration_timer, waiting for 824 acceleration_timer to increment, sampling 826 speed_band_continuous and setting speed_band_sample <= speed_band_continuous, determining 828 whether speed_band_sample = speed_band_previous and determining 830 whether acceleration_timer has timed out.
[0076] If `speed_band_sample` is not equal to `speed_band_previous`, check 832 to see if `acceleration_timer_expired_flag` is set to 1. If `acceleration_timer_expired_flag` is set to 1, then `acceleration_timer` is set to its maximum value at 834. If `speed_band_sample` > `speed_band_previous` at 836, then the `acceleration_deceleration` flag is set to 1 at 838; otherwise, the `acceleration_deceleration` flag is set to 0 at 840, `speed_band_previous` is set to `<= speed_band_sample` at 842, and `acceleration_timer_expired_flag` is set to 0 at 844.
[0077] If speed_band_sample = speed_band_previous and acceleration_timer has timed out, then set acceleration_timer_expired_flag to 1.
[0078] The acceleration_band (846) is set based on the acceleration_deceleration flag and the acceleration_timer value. The target_current_adjustment_value (848) can be set using the speed_control_table_select, speed_band_sample, and acceleration_band lookup table based on the target current adjustment.
[0079] Method 800 may include determining 850 if ((batt_i_target_value_for_speed_ctrl+target_current_adjustment_value)<0 Amperes), then setting batt_i_target_value_for_speed_ctrl<=0 Amperes, otherwise setting batt_i_target_value_for_speed_ctrl<=(batt_i_target_value_for_speed_ctrl+target_current_adjustment_value).
[0080] Method 800 may include determining whether 852 is speed_control_active = 1. If yes, the acceleration_timer is reset and the system waits for another target current adjustment. If no, the system observes to perform speed control.
[0081] It should be understood that the various features and functions disclosed above, and other features and functions, or their alternatives or variations, can be expected to be combined into many other different systems or applications. Furthermore, those skilled in the art can subsequently make various substitutions, modifications, variations, or improvements therein that are not currently foreseen or anticipated, and which are also intended to be covered by the appended claims. In addition, any logic described herein can be implemented as hardware circuitry or firmware.
Claims
1. A system for controlling an engine starter, comprising a controller capable of: Determine the current speed band associated with engine start-up, which is increasing over the current time. Identify the previous speed band associated with engine start-up, which is an incremental step within the previous time interval; Receive the measured current value; The target current value is determined based on the current speed band, the previous speed band, and whether acceleration or deceleration occurs between the current speed band and the previous speed band; as well as The current used for engine starting is adjusted based on the target current value.
2. The system for engine starter control according to claim 1, wherein the controller further determines the target current value based on the mode of the system for engine starter control.
3. The system for engine starter control according to claim 2, wherein the mode of the system for engine starter control is a speed mode or a torque mode.
4. The system for controlling an engine starter according to claim 1, wherein the controller further determines the target current value based on two or more different lookup tables.
5. The system for engine starter control according to claim 4, wherein the controller selects a first lookup table from the two or more different lookup tables based on a mode of the system for engine starter control.
6. The system for engine starter control according to claim 5, wherein the controller selects a row of the first lookup table based on the current speed associated with engine starting.
7. The system for engine starter control according to claim 5, wherein the controller selects a column of the first lookup table based on acceleration or deceleration determination.
8. The system for controlling an engine starter according to claim 1, wherein the controller operates in a coasting state as the initial state of engine starting.
9. The system for engine starter control according to claim 1, wherein the controller further determines the target current value based on an external low-speed threshold for the current speed band.
10. The system for engine starter control according to claim 1, wherein the controller further determines the target current value based on a threshold target for the current speed band and below a nominal threshold.
11. A method for controlling an engine starter, comprising: Determine the current speed band associated with engine start-up, which is increasing over the current time. Identify the previous speed band associated with engine start-up, which is an incremental step within the previous time interval; Receive the measured current value; The target current value is determined based on the current speed band, the previous speed band, whether acceleration or deceleration occurs between the current speed band and the previous speed band, and the mode of the system used for engine starter control. as well as The current used for engine starting is adjusted based on the target current value.
12. The method for controlling an engine starter according to claim 11, wherein the mode of the system for controlling the engine starter is a speed mode or a torque mode.
13. The method for controlling an engine starter according to claim 11, further comprising determining the target current value based on two or more different lookup tables.
14. The method for engine starter control according to claim 13, comprising selecting a first lookup table from the two or more different lookup tables based on a mode of the system for engine starter control.
15. The method for controlling an engine starter according to claim 14, comprising selecting a row of the first lookup table based on the current speed associated with engine starting.
16. The method for controlling an engine starter according to claim 14, comprising selecting a column of the first lookup table based on an acceleration or deceleration determination.