4 Port EBCS Tuning with Cortex Electronic Boost Controller

Discussion in 'Mazdaspeed 3/6 ECU Tuning' started by andale927, Apr 1, 2020.

Watchers:
3 users.
  1. andale927

    andale927 Greenie Member

    Joined:
    Feb 26, 2017
    Posts:
    136
    Trophy Points:
    63
    Location:
    Chicago, IL
    Ratings:
    +363 / -0
    So this is somewhat of a copy paste from my build thread, but I feel like it deserves its own thread for future reference.

    So what are the benefits of a 4 port boost control solenoid and why would you want one?

    With a standard 3-port setup, you increase boost by "interrupting" boost pressure from reaching the bottom port of your wastegate. This setup is great and allows you to ~double your wastegate spring pressure. This works very well for lower boost levels on a car which is not traction limited.

    When you are making more power, you generally need a larger wastegate spring in order to meet your goal power level. This makes traction in lower gears suffer, as the minimum boost that you can run is reduced.

    It is possible to run under WG spring pressure by closing the throttle plate, but I have never been able to get consistent results doing this.

    In comes the 4 port boost control solenoid. With this setup, you are able to also divert pressure to the top port of the WG. By doing this you are able to run a much lower spring pressure and achieve the same boost levels. The rule of thumb is 4-6x spring pressure. In theory, since all boost can be sent to the top port, the wastegate will only open whenever exhaust back pressure exceeds Spring Pressure + Boost Pressure.

    So why not run a 4-Port with the OEM boost control? In short, it isn't really meant to handle it. The closed loop boost control tables are lacking the needed refinement to achieve good results without oscillation. Additionally the OEM control frequency of 32Hz is too high to give you a wide range of linear boost control from the solenoid. I believe Nishan tried it on OEM and ditched it due to instability.

    ___________________________________________________________________

    The SIRHC Labs Cortex is a standalone controller that basically gives you all the functionality that you need. Boost by gear, throttle position, map switching on the fly, etc.
    IMG_20200326_011003.jpg

    The glovebox is a good location to install it.

    The controller requires a TPS signal, Tach Signal (CPS Wire), and Vehicle Speed Sensor input. They sell an Wheel Speed adapter which normalizes the signal from an ABS sensor so that the EBC can read it. Since we have a magneto-resistive type of wheel speed sensor you will need to install a 0.1 uF capacitor to bypass the DC component of the signal.

    In hindsight, it is much easier to buy their CAN adapter which pulls Vehicle Speed and Tach signal from the bus.

    Once it is installed, it is time to setup the gear ratio tables.
    It detects the gear you're in by taking the ratio between the tach signal and the WSS:
    upload_2020-3-31_19-45-45.png

    Once you log all the gears, you can enter the ratios:
    upload_2020-3-31_19-46-7.png
    Voila, gear detection (blue line):
    upload_2020-3-31_19-46-24.png
    Up to 6 different profiles that you can easily change on the fly:
    upload_2020-3-31_19-49-23.png
    It also has full PID closed loop functionality, on a per gear basis.
    upload_2020-3-31_19-50-26.png
    It even has 2 additional outputs that you could use as a progressive meth controller.
    upload_2020-3-31_19-53-26.png


    This isn't a how-to, but more of a guide on setting it up and whether it works..
    __________________________________________________________________
    I went with a 5.80 PSI wastegate spring, with a maximum pressure goal of 36 PSI.

    I chose a control frequency of 18Hz, which is on the lower side. The lower the control frequency, the larger the linear range of the solenoid (for a number of reasons, mostly valve dead time).

    The 4 port solenoid is much more sensitive to changes than a 3 port, so tuning it is much less forgiving. The next step for me is to map out a series of duty cycles and the corresponding boost result. The closer the open loop values are to the target, the better results can be achieved once closed loop is brought in.

    TBC... (I will continue updating this thread with the tuning process and my results.)
     
    • Like Like x 4
  2. andale927

    andale927 Greenie Member

    Joined:
    Feb 26, 2017
    Posts:
    136
    Trophy Points:
    63
    Location:
    Chicago, IL
    Ratings:
    +363 / -0
    So, I started by testing a series of WGDCs in 3rd gear to map out a boost curve for each starting duty cycle. Note that I will be using spool control logic in the 2500 – 4000rpm range, but it is currently disabled. Spool control will be disabled for throttle positions under 75% for the most linear curve. My goal with this map is to maximize traction.

    Capture.PNG

    You’ll notice some dips and waviness. This isn’t due to the 4-port, but rather due to the Cortex dropping gear detection. This was my fault as I didn’t account for the 2-tooth gap on the crank pulley. Once the correct number of teeth were entered in the software, everything worked perfectly. Don’t feel like redoing the above graph so you’ll have to deal with it :D.

    As you can see the 4 port has very little response until it reaches its linear range. Then it starts coming to life. Since I didn’t want to do a million pulls, I did a linear interpolation between each duty cycle setting to come up with a starting WGDC table for the target boost pressure that I want to run (with RPM included as a variable as well).

    Now the next step for me is to determine the maximum boost pressure that I want to run in 3rd gear. I’ll do a series of pulls in order to determine that (logging 35 MPH – 70mph). I will use that curve for 100% TPS input and scale down from there.

    Once that is done, you can begin on closed loop tuning. Since the 4 port is very sensitive, its important to have your open loop settings dialed in as much as possible, before beginning closed loop tuning.


    I also did a little write up on closed loop tuning:

    _________________________________________________________________________
    Okay so now that you have your open loop tabled dialed in you need to start on the closed loop tuning.

    Proportional Gain

    This is your linear response to a boost error. A good example is your suspension. The spring rate is the proportional response to the error in displacement.

    Boost Example:
    Open loop duty cycle: 40%
    Boost Result: 18 PSI
    Boost Target: 24 PSI
    Boost Error = Boost Target – Boost Result = 6 PSI

    If you set your Proportional gain to 0.4 the closed loop duty cycle will be:
    Final Duty Cycle = Boost Error * 0.4 + Open Loop Duty Cycle
    Final Duty Cycle = (6) * 0.4 + 40 % = 42.4%

    This correction occurs at your control frequency rate (18Hz for me).


    You want to set your proportional gain so that you reach your target boost quickly. There will be some overshoot of the target boost and oscillation. You want to find a balance between reaching your target quickly, and minimizing overshoot of the target.


    Derivative Gain

    This is the response due to rate of change of boost error. In the suspension example, this is your shock absorber (damping force). The greater the rate of change of displacement error, the greater the damping force.

    Boost Example:
    Derivative gain set to 0.1
    Start Duty Cycle = 42.4%
    Boost is ramping up at 10 PSI per second.
    Rate of Change of error * Derivative Gain = Negative Duty Cycle
    10 PSI * .1 = -1% Duty Cycle
    End Duty Cycle = 41.4%

    The purpose of derivative gain is basically to reduce overshoot and bring your boost curve to a flat line.

    Integral Gain
    This is the response due to cumulative boost error. Area under the Boost Error curve for you maths people. There is no suspension example.
    In simple words, this is a response due to boost error over time.

    Boost Example:
    Integral Gain set to 0.3
    Boost Target: 24 PSI
    Start Duty Cycle @ 5s = 41.4%

    @ Time = 5 Seconds Boost is at 23 PSI and it remains this way until Time = 6 Seconds

    1 PSI Boost Error * 0.3 Integral Gain = 0.3% / Second

    End Duty Cycle @ 6s = 41.7%

    The purpose of integral gain is to correct a small boost error in the final curve over time.

    Note: This example uses a long period of 1 second, in reality this will be occurring at your control frequency (18Hz in my case).


    TBC… Next post will be a more specific how-to for the closed loop settings and results.
     
    Last edited: Apr 2, 2020
    • Like Like x 6
  3. Hacktun3d

    Hacktun3d Greenie N00B Member

    Joined:
    Feb 26, 2018
    Posts:
    6
    Trophy Points:
    3
    Location:
    NC
    Ratings:
    +5 / -0
    You ever get this fully dialed in?
     
    • Like Like x 1
  4. Cupra_machiwi

    Cupra_machiwi Greenie N00B Member

    Joined:
    Jul 23, 2023
    Posts:
    1
    Trophy Points:
    1
    Location:
    Mexico
    Ratings:
    +0 / -0
    The best post about cortex I have found, thanks a lot.. I wish you had continued it tho lol
     
    Cupra_machiwi, via a mobile device, Jul 23, 2023
    #4
Loading...

Share This Page

Users Viewing Thread (Users: 0, Guests: 0)