Design a Transmission Shift Controller

11 views (last 30 days)
MB on 26 Mar 2022
Edited: J Chen on 4 Apr 2022
Would appreciate some direction on how to design a transmission shift controller in Simulink/Simscape without using State Flow. Basically I need to output a number (1,2,3) noting the desired transmission gear based upon an input engine speed.
My needs are very basic for now (just learning). I envision:
  • Input: RPM, engine speed
  • Output: GEAR, the desired transmission gear (number 1,2,3)
  • UP, engine speed upshift point (increment)
  • DN, engine speed downshift point (decrement)
And then the controller would simply:
  • If RPM>UP then increment GEAR just once.
  • If RPM<DN then decrement GEAR just once.
Also, I imagine that since the engine has substantial inertia, there may need to be some DELAY parameter setting the minimum time between any subsequent GEAR changes because although the transmission may shift gears instantly, the non-instantaneous engine speed change can trick the shift logic to shift twice.
Any design direction is appreciated. Thanks.

Answers (1)

J Chen
J Chen on 4 Apr 2022
Edited: J Chen on 4 Apr 2022
Use a MATLAB Function block in SImulink. You can put the logic in the block. Persist variables could be useful (link).


Find more on Tires and Vehicles in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!