Make a test circuit (cheap 2 resistors used instead of the LSU4 sensor) for initial WBO2 PID tuning:
- 'Rppn=100 Ohm between pump+ and nernst
- Rnpm=100 Ohm between nernst and pump-
That's all. This way the current "pump" (current generator) is tested, which is an important part of the WBO2 circuit.
- You can measure the resulting nernst voltage (with DVM, DC voltage mode): Over Rnpm, Urnpm=appr. 450 mV (400..490mV) should be measured when the WBO2 is switched on (either RPM signal, or mde02 command).
- With the WBO2 turned off, Urnpm=very small, appr. +-10mV
Example Setup
- Rnpm is the name of the test resistor (above)
- Urnpm is the voltage over Rnpm, that is "between nernst and pump-"
- This setup is on an unmodified 3.2 board using the new 12x12 firmware code as released.. no changes yet.
- The board is being triggered and running @1200RPM
Signal hookup...
- Pump- (100Ohm) Nernst (100Ohm) Pump+
Resultant Voltages...
- Pump- --> Pump+ 0.415V Obviously after RPM is applied (or mde02), otherwise it would be only a few mV
- Pump- --> Nernst 0.210V definitely too low, we want sg. close to 0.45V
- Nernst --> Pump+ 0.205V
- Gnd --> Nernst 4.18V
- Gnd --> Pump- 3.97V
- Gnd --> Pump+ 4.38V
Note that the polarity of the notation was (most certainly) inconsistent. I inverted the second value (please check if I got it right).
Measure relative from pump- if possible (measurements referenced to GND are also helpful to clear things), and use consistent notation.
Questions:
- Now which of these measurements is important?
- How do I adjust the values to make it right?
- What should the default values be for a LSU4 setup?
What wbo2_... config was used? I suspect that pump integral (or integral_limit) is too low, that's why the pump cannot reach enough current to bring nernst 0.45V above pump-.
In fact you can disturb the circuit by changing the resistors to some degree, or connect a resistor (like 1..10k) between nernst and GND (or between nernst and 5V). The (faked) lambda reading will change, but the Urnpm=appr. 450 mV should hold.
Reading is slightly off, say pump- is 3.98V (relative to GND) and Unernst=4.3V (relative to GND) instead of 4.43V. How can it be tuned?
- wbo2_pump_pid_kd=00 (I doubt that any other value makes sense)
- wbo2_pump_pid_kp=20..40 ... too high value will result in significant oscillation.
- nernst_dc_target adjusts above mentioned Urnpm (target-value). If other factors are OK, the target nernst DC voltage (ideally Upump- + 450mV) can be directly set with this. Adjust until OK.
- Make sure the multiple wbo2_pump_pid_ki * wbo2_pump_pid_ilimit is high enough. If this is too low, pump+ will be limited: as a result, nernst_dc_target can not always be reached.
- I revised a theoretical reasonable maximum for the multiple : wbo2_pump_pid_ki * wbo2_pump_pid_ilimit (sg. like 0x80 * 0x0A) but that might be off a few bits (dunno where I got it wrong):
- in practice this multiple was not enough to raise pump command sufficiently (from 0x63 to FF) so I had to use higher, appr. 0x80 * 0x40 values.
- While the multiple value is the most important, for same multiple value, the PID integral term operation will be faster for lower pump_pid_ilimit (and necessarily higher wbo2_pump_pid_ki, so the multiple remains same)
Don't connect real sensor until PID (and nernst_dc_target) is tuned with that so nernst is stable and fine (450mV above pump- ).
[[Detailed.Sensor.Wide.Install]]
Go back to: