Title: Implemention of traction control on older Motronic Post by: tightmopedman9 on August 09, 2016, 12:23:17 AM Anyone have experience implementing custom traction control? I'm in the process of writing a traction control routine for M4.4 and was wondering what the best method for implementation would be.
My current (untested) routine intercepts the ignition code and performs a check of the current gear before the routine outputs the ignition start signal (rising slope for dwell charging start). If the detected gear is equal to 0, meaning no gear sync/loss of traction, then ignition will be cut. From what I have read, for traction control to work it must be quick. This routine I designed is executed every ignition event, which I assume will be quick enough, but I think gear status is updated only once every main loop iteration, which varies from 30hz-13hz depending on RPM. I could possibly move the gear detection routine into the ignition timer overflow routine along with ignition logic, but I think the additional code overhead might cause timing issues with the rest of the code. My question is, how many ignition events should I cut to restore traction (x of y events), or would it be better to retard timing instead of cutting ignition? I was thinking of starting a timer at the beginning of traction control and increasing ignition cut events while gear detection remains at 0. Will 13hz be quick enough for effective traction control? Gear detection is based on comparing VMESS to RPM, I know that aftermarket systems use wheel speed sensors, will this system of traction control even work? Title: Re: Implemention of traction control on older Motronic Post by: nubcake on August 09, 2016, 02:04:25 AM Gear detection is based on comparing VMESS to RPM, I know that aftermarket systems use wheel speed sensors, will this system of traction control even work? There is an easy way to say for sure: test it. :) But in my opinion even if it works - it will be very sloppy with ~0.075sec (13hz) reaction time. Besides, I have no idea how gear detection works in M4.4, but if it's the same as ME7 - you will run into a lot of trouble trying to calibrate it absolutely accurately. I'm using it for custom gear-based rev matching routine, and it's very "meh" to rely on. Drivetrain play, tire pressures, etc - make it bounce all over the place. Also, I assume the car is 2wd, and is getting vfzg from non-driven wheels? That sounds unlikely, but I'd like to hear more info. :) If M4.4 is torque-based, it might make more sense to use torque regulating mechanism for traction control purposes. Title: Re: Implemention of traction control on older Motronic Post by: tightmopedman9 on August 09, 2016, 09:42:36 PM Yes, you are right, testing on the car is the best course of action. I've just been waiting for my wheels to get back from paint for the past 2 weeks, and have been stuck with 'thought experiments'. They come back tomorrow though.
From what I can tell; the gear detection routine assumes a gear of 5, lookups the equivalent final gear ratio from a table, divides the gear ratio by the current speed and compares this to the current RPM. If they match within a given range (a 1x5 table based on gear) then the current gear is considered synced and placed into XRAM 0xFA94. If they do not match then the gear is decremented and the loop run again. I can't tell what the caller of the function due to some funky non-standard multi-bank code switching. M4.4 is load based, which I guess is somewhat equivalent to torque, but it is so rudimentary that a torque based routine would be impossible. Title: Re: Implemention of traction control on older Motronic Post by: prj on August 10, 2016, 05:24:03 AM If you want it to be even close to fast enough you need to roll your own routine.
You also need a clutch switch, without it there is nothing to do. Divide RPM by speed and set limits for each gear. Make phase 1 of the algorithm lock on to the current gear. After that if the RPM/speed division goes below the gear threshold and the clutch switch is 0, cut ignition (here you will have to experiment) until it goes back above the threshold. Whenever clutch is pressed and released re-lock onto the current gear. Since you probably have wheelspin only in lower gears, you only need to detect 2 or 3 gears this way. I never tried it, but this is how i would do it. |