00:00 |
- The function we're going to discuss in this module is more relevant for a professional level race car as opposed to a road car.
|
00:07 |
The starting grid of a race is a pretty high pressure and high stakes environment.
|
00:11 |
All the cars are lined up in their qualifying positions, the lights go out and the racing begins.
|
00:17 |
Everyone is flat on the throttle and the jockeying for position starts straight away.
|
00:21 |
Now race cars can be very touchy to drive and a small mistake getting the car away from the grid cleanly can lead to a stalled engine.
|
00:28 |
On the starting grid this is almost certainly going to cost a few race positions as well as being a very dangerous situation for the driver.
|
00:36 |
We need to get the engine started again as soon as possible and it would be helpful if this was possible without the driver needing to take his hands off the steering wheel.
|
00:45 |
To help with this, let's have a look at designing a stall recovery function using our PMU.
|
00:50 |
The desired operation of this function is to detect than an unintended engine stall has occurred and engage the starter motor to restart the engine.
|
00:58 |
We'll need the driver to depress the clutch before this happens, otherwise the engine will try to start in gear which is not going to end well.
|
01:06 |
We'll also want to include a modality to this function so that it's only active when it has been specifically enabled and has an automatic cancel feature that'll disable the system once a minimum wheel speed has been reached.
|
01:18 |
As this will be a reliable indicator that the vehicle has gotten away from the start line cleanly.
|
01:23 |
Any function that automatically engages vehicle systems that can put the car in motion like the starter motor or gear selection, need to be treated with a lot of caution as a runaway race car is a pretty dangerous thing.
|
01:37 |
The inputs to this function are going to be an enable mode button, a clutch pedal depressed switch, engine speed and wheel speed.
|
01:45 |
The output is going to be the channel controlling the starter motor solenoid.
|
01:48 |
We'll look at the enable stall recovery mode logic first.
|
01:52 |
This is going to be a single momentary button input which is pressed to both enable and disable the stall recovery mode.
|
01:59 |
Stall recovery will also be disabled automatically if a vehicle speed of above 20 km/h is present.
|
02:06 |
The output of the momentary button is fed into a toggle function which switches its state between on and off whenever it sees an off to on transition on its input.
|
02:17 |
Or a low to high rising edge.
|
02:20 |
This turns our momentary button into a latching button.
|
02:24 |
We also take the output of this toggle block and run it into an "and" function.
|
02:29 |
The other input to which is an "if" function that is true when the vehicle speed is above 20 km/h.
|
02:36 |
The output of this and function is then fed back into the toggle function's input.
|
02:41 |
This gives us a signal on the output of the toggle block that we can switch between on and off with a single button press but if it's on and a vehicle speed of above 20 km/h is present, the feedback that we've implemented will switch it off again.
|
02:56 |
This toggle function output is then also fed into an "and" function with 2 other inputs.
|
03:01 |
This "and" function will only evaluate to true if all 3 input conditions are met simultaneously.
|
03:08 |
These other inputs are an "if" function that evaluates to true when the engine speed is 0 and the clutch pedal is being depressed by the driver.
|
03:17 |
So finally we're at the point in the logic chart where every input condition is met and the PMU should automatically engage the starter.
|
03:24 |
But if the engine fails to fire for some reason, we don't want the starter to just sit there cranking continuously.
|
03:30 |
So we'll feed the output of this "and" function into a pulse function that will output true for 10 seconds when it sees an off to on transition on its input.
|
03:40 |
This then goes into another "and" function, the other input of which is another "if" statement based on the engine speed being below 600 RPM, the output of which is connected to the output channel wired to the starter solenoid.
|
03:54 |
Now this is a lot of logic to have to follow through but if we break it down into its 3 main sections, it becomes much simpler to understand as a whole.
|
04:03 |
The first is the logic around enabling and disabling the stall recovery mode.
|
04:07 |
A single button press can toggle this mode on and off and if it's enabled and a wheel speed above 20 km/h an hour is detected, it will auto cancel.
|
04:18 |
Then there is the "and" function that does the real work.
|
04:21 |
It says that the anti stall must be enabled, the engine speed must be 0 and the clutch must be depressed.
|
04:28 |
If all 3 conditions are met, the function is going to crank the engine.
|
04:32 |
The last stage is some control logic around protecting the starter motor from excessive cranking.
|
04:37 |
It prevents the above logic from cranking the motor for more than 10 seconds and will disengage the starter motor solenoid once the engine speed is above 600 RPM, at which point we can assume the engine has been restarted.
|
04:50 |
If the engine doesn't start on the first try, the driver will be able to release the clutch pedal and depress it again and the function will attempt to start the motor again.
|
04:59 |
If the motor does start but the driver stalls the car again, the function will still be enabled, allowing another quick restart attempt.
|
05:05 |
One thing really important to mention here is that the driver and pit crew training on race car functions like this is crucially important as they need to know that this function exists, its intended usage as well as how to both enable and disable it.
|
05:20 |
Having a car unexpectedly attempt to start its engine could seriously injure someone so safety needs to be forefront when we're designing functions like this.
|
05:30 |
In this course module, we've discussed the design of a stall recovery function.
|
05:34 |
This function is intended to help the driver get the engine started again after an unintentional engine stall on the starting grid.
|
05:42 |
The function shows how a complex operation is built out of relatively simple functional blocks and understanding a function like this is much simpler if we break it down into more manageable sections.
|