Haltech Closed loop PS1k Boost control - does it work??
#1
Closed loop PS1k Boost control - does it work??
Im struggling. to make it work with a gt35. Anyone have any feedback on this.
Kan had to double the Htz of the solenoid to get it to hold. And even then the spikes are a problem.
I've tried it with the start map and without.
Let me know your expieriences. Advice etc. I'm ready to go Greddy spec 2 and be done.
Kan had to double the Htz of the solenoid to get it to hold. And even then the spikes are a problem.
I've tried it with the start map and without.
Let me know your expieriences. Advice etc. I'm ready to go Greddy spec 2 and be done.
#3
It works very well, but it's a PITA to setup if you don't have experience with it. There have been some hints discussed here on how to use the closed loop function. The open loop control is much easier to setup and works very well. You'll just get some boost variance with ambient conditions.
#4
I plan to try to set up Open loop to get some control and verify the solenoid and wg are working right. I'm glad to hear closed loop it works well when set up correctly. Is it something that can be set up without a dyno?
#5
Yeah, off the dyno might actually be better. The dyno may or may not load the car the same as it's loaded on the road. That will effect how it's setup.
Search for Crispeed's explanation of how to set it up. He's had great success with it. You do need to run it in open loop first to establish the start duty cycle. That's pretty key. You need to get the start duty real close to what the actual DC is to run the base boost you're looking for. That limits the amount of PID correction the ECU needs to make to maintain a given boost level.
Search for Crispeed's explanation of how to set it up. He's had great success with it. You do need to run it in open loop first to establish the start duty cycle. That's pretty key. You need to get the start duty real close to what the actual DC is to run the base boost you're looking for. That limits the amount of PID correction the ECU needs to make to maintain a given boost level.
#6
#7
Let me start by saying that I've never tried it on a Haltech but I've set it up on AEM EMS and most importantly, on OEM Subaru boost control. OEM Subaru boost control is far more complex than any affordable standalone I've seen (I've never messed with Motec).
I have seen Crispeed's explanation of it. I'm sure he has made his method work, but I think he oversimplifies the way PID boost control works as a whole and he doesn't really differentiate between the way proportional and integral control affect a control system.
The proportional gain is the simplest form of closed loop control. It is the same as the "gain" option on your typical Greddy, Turbosmart, etc external boost controller. It measures the difference between the target boost and the current boost, then adds additional solenoid duty based on the level of authority you give it. Too much proportional = spiking or oscillation, but it is predictable and much easy to fix. Too little proportional and you may underboost. Proportional gain doesn't "learn" anything. It doesn't measure how much the boost has been drifting from the target over time. That is why it is stable and easy to use.
You can run a closed loop boost control system using proportional gain only. The OEM's do it all the time. For example, the Evo X has two solenoids that bleed pressure from the wastegate. One is controlled by closed loop with proportional gain only--it is based on a target engine load as calculated by the MAF sensor. There is a second boost control solenoid that bleeds more air and is run in open loop only. The Evo X runs around 23psi peak boost from the factory and then it drops off in a controlled fashion.
Subaru uses Proportional + Integral. Where guys really get killed is the integral control. That is the source of most maddening spiking and oscillation and the main thing that drives everybody nuts. What you get is called "integral windup." As time passes, the ECU is measuring the difference between the target boost and the measured boost. It will continuously add more duty cycle and the spikes and swings will get out of control. That's why the Haltech has "boost control start pressure" and the "Delay till control" timer. It's to keep the integrator (and the derivative if you use that) from going nuts. Derivative control is almost never used for boost control. You're welcome to experiment with it, but for most cars I would ignore it.
The key is to be VERY careful with the integral control. Integral control is highly sensitive to your target boost table, control start pressure, and Delay Till Control. The longer the integrator calculates an "underboost" condition, the more it will ramp up duty cycle and give you those crazy swings. On a Subaru or an AEM EMS you have more tables to limit the authority of the closed loop system (duty cycle limit tables) to keep this under control.
The Haltech uses fixed Proportional and Integral control values (scalars). That's part of the problem. You can't easily adjust how much authority the closed loop control is given, nor can you adjust the closed loop gains with the weather. On a 2008+ STi I have the ability to adjust proportional and integral response based on how far the boost is presently deviating from the target, the weather, and the coolant temperature.
I have seen Crispeed's explanation of it. I'm sure he has made his method work, but I think he oversimplifies the way PID boost control works as a whole and he doesn't really differentiate between the way proportional and integral control affect a control system.
The proportional gain is the simplest form of closed loop control. It is the same as the "gain" option on your typical Greddy, Turbosmart, etc external boost controller. It measures the difference between the target boost and the current boost, then adds additional solenoid duty based on the level of authority you give it. Too much proportional = spiking or oscillation, but it is predictable and much easy to fix. Too little proportional and you may underboost. Proportional gain doesn't "learn" anything. It doesn't measure how much the boost has been drifting from the target over time. That is why it is stable and easy to use.
You can run a closed loop boost control system using proportional gain only. The OEM's do it all the time. For example, the Evo X has two solenoids that bleed pressure from the wastegate. One is controlled by closed loop with proportional gain only--it is based on a target engine load as calculated by the MAF sensor. There is a second boost control solenoid that bleeds more air and is run in open loop only. The Evo X runs around 23psi peak boost from the factory and then it drops off in a controlled fashion.
Subaru uses Proportional + Integral. Where guys really get killed is the integral control. That is the source of most maddening spiking and oscillation and the main thing that drives everybody nuts. What you get is called "integral windup." As time passes, the ECU is measuring the difference between the target boost and the measured boost. It will continuously add more duty cycle and the spikes and swings will get out of control. That's why the Haltech has "boost control start pressure" and the "Delay till control" timer. It's to keep the integrator (and the derivative if you use that) from going nuts. Derivative control is almost never used for boost control. You're welcome to experiment with it, but for most cars I would ignore it.
The key is to be VERY careful with the integral control. Integral control is highly sensitive to your target boost table, control start pressure, and Delay Till Control. The longer the integrator calculates an "underboost" condition, the more it will ramp up duty cycle and give you those crazy swings. On a Subaru or an AEM EMS you have more tables to limit the authority of the closed loop system (duty cycle limit tables) to keep this under control.
The Haltech uses fixed Proportional and Integral control values (scalars). That's part of the problem. You can't easily adjust how much authority the closed loop control is given, nor can you adjust the closed loop gains with the weather. On a 2008+ STi I have the ability to adjust proportional and integral response based on how far the boost is presently deviating from the target, the weather, and the coolant temperature.
Trending Topics
#8
The first thing you need to do is set up everything open loop. When I do this, the aim is stable steady boost with spool that is a little bit slower than can be achieved so that in open loop control you never spike. The reason why you do this is because the proportional gain will assist in spool up later.
So let's say the intended boost is a flat 15psi, but we will allow a max of 16ish under some conditions. Realistically you have to be willing to accept a small spike for max spool, or if you cannot tolerate much spiking you have to be willing to put up with slower response. There is always a trade off.
Pick a gear to begin tuning. I like to do the majority of boost control tuning in 2nd on the street, as We start by setting a flat duty curve once you get into boost. Here I have picked 40%. Note that ALL of the numbers I am using here are made up, but they are based on what I have used before with the Haltech/AEM/MAC/Grimmspeed solenoid in non-Haltech applications.
Raise and lower this entire part until you are slightly below the intended boost. So lets's say you want 15psi. You set everything to 30% at first. That gives you 12psi. You set it to 40% duty and you get 14 psi peak boost at 4000rpm. The spool is a little slow, and the boost tapers off after peaking. Note that the 40% I used in this first screenshot would end up being close to whatever "Start duty" you might use later for closed loop control. Now to control the boost tapering we add duty at higher rpms a little bit so that our boost tapers off less and less. We may have started at 14psi but with a flat 40% duty we taper down to 11psi. Well then you add duty up top, and you might go from a peak of 14psi tapering down to 13psi:
There is more than one way to proceed. You could add more duty down low in the open loop duty cycle table in order to improve spool. The other thing you can do is start trimming gears.
In this example I base my gear compensations on what I've already set up for 2nd gear. Note that the numbers in the table are positive, but you are actually putting in how much % to subtract. I could choose to reduce duty cycle in 1st gear to reduce wheel spin. Then I can trim duty cycle in higher gears to reduce spiking. There is more than one way to do it. At this point I should have a functioning open-loop system. You do have the option of playing around with the plumbing as well. That will affect the sensitivity of the duty cycle response. For example, you connect the solenoid to the top port of the external gate or you can experiment with connecting it to the side port and running it like an internal gate.
The whole point of this exercise is to get the duty cycles close to what you need to reach your intended boost, 15psi in our case. You are going to use these values as a good starting point when it comes time to go closed-loop. For closed loop you will set up a fully-functioning system using proportional gain only. For the proportional setup, you are going to set all the PID values to 0 and then increase proportional steadily until the target boost levels are achieved. It may require jumping back and forth between your proportional gain value and your duty table. Then you can adjust your other compensation tables. For integral control, you will have to set up the target table very carefully. If the target is too far from the achievable boost at that load point, you will get integral windup (see wikipedia article on integral windup). You can also use the delay timer and control start pressure to keep the integral gain from causing problems.
Then if you really want to you can set up derivative. It's really a 3 stage process (open loop, proportional, proportional + integral) based on the classic Ziegler-Nichols tuning method for PID control systems. I can post more about setting up closed loop later but if you don't have your open loop right, closed loop will never work correctly.
So let's say the intended boost is a flat 15psi, but we will allow a max of 16ish under some conditions. Realistically you have to be willing to accept a small spike for max spool, or if you cannot tolerate much spiking you have to be willing to put up with slower response. There is always a trade off.
Pick a gear to begin tuning. I like to do the majority of boost control tuning in 2nd on the street, as We start by setting a flat duty curve once you get into boost. Here I have picked 40%. Note that ALL of the numbers I am using here are made up, but they are based on what I have used before with the Haltech/AEM/MAC/Grimmspeed solenoid in non-Haltech applications.
Raise and lower this entire part until you are slightly below the intended boost. So lets's say you want 15psi. You set everything to 30% at first. That gives you 12psi. You set it to 40% duty and you get 14 psi peak boost at 4000rpm. The spool is a little slow, and the boost tapers off after peaking. Note that the 40% I used in this first screenshot would end up being close to whatever "Start duty" you might use later for closed loop control. Now to control the boost tapering we add duty at higher rpms a little bit so that our boost tapers off less and less. We may have started at 14psi but with a flat 40% duty we taper down to 11psi. Well then you add duty up top, and you might go from a peak of 14psi tapering down to 13psi:
There is more than one way to proceed. You could add more duty down low in the open loop duty cycle table in order to improve spool. The other thing you can do is start trimming gears.
In this example I base my gear compensations on what I've already set up for 2nd gear. Note that the numbers in the table are positive, but you are actually putting in how much % to subtract. I could choose to reduce duty cycle in 1st gear to reduce wheel spin. Then I can trim duty cycle in higher gears to reduce spiking. There is more than one way to do it. At this point I should have a functioning open-loop system. You do have the option of playing around with the plumbing as well. That will affect the sensitivity of the duty cycle response. For example, you connect the solenoid to the top port of the external gate or you can experiment with connecting it to the side port and running it like an internal gate.
The whole point of this exercise is to get the duty cycles close to what you need to reach your intended boost, 15psi in our case. You are going to use these values as a good starting point when it comes time to go closed-loop. For closed loop you will set up a fully-functioning system using proportional gain only. For the proportional setup, you are going to set all the PID values to 0 and then increase proportional steadily until the target boost levels are achieved. It may require jumping back and forth between your proportional gain value and your duty table. Then you can adjust your other compensation tables. For integral control, you will have to set up the target table very carefully. If the target is too far from the achievable boost at that load point, you will get integral windup (see wikipedia article on integral windup). You can also use the delay timer and control start pressure to keep the integral gain from causing problems.
Then if you really want to you can set up derivative. It's really a 3 stage process (open loop, proportional, proportional + integral) based on the classic Ziegler-Nichols tuning method for PID control systems. I can post more about setting up closed loop later but if you don't have your open loop right, closed loop will never work correctly.
The following users liked this post:
mr_vaughn (01-13-21)