I can no longer recall where I found this three years ago, but I used it on my BLI DC-version J Class 4-8-4 in which a friend installed a heavy steam Tsunami. It is long and involved, but so are decoders in general, and their manuals even more. However, I wanted something better from that J, and I got it. If you want to see the magic resident in every Tsunami, go through this, ponder it, and then start fiddling with values. My formerly jerky J now moves off like a real locomotive.
Try it...it works!
"
Tsunami PID/BEMF CV Tuning Concepts
I spent quite some time on the phone with Soundtraxx today. The following is a write up of what I was told. It includes knowledge I have gained recently in researching the PID process in general and the Tsunami decoders in particular. A PID controller is a well-known method of doing "process control". In our case the "process" is the speed of our Tsunami equipped locomotives. And the task we are working towards is producing a process/procedure that will allow the user to find/discover the best/correct settings for their particular locomotive that will give them the performance they want.
It is also important to understand that the values for a particular locomotive – make and model and scale – may not work for other locomotive … and may not even work for a ‘sister’ locomotive (one that was produced in the same run of the same make and model). And when we are talking about this kind of thing there is an assumption that the decoders are also the same make and model. Yes, certainly if you have two sister locos and you have one of them running the way you like it then you should try the same settings (CVs) for this new one … and at least use them as a starting point. But don’t be surprised if you find you have to change one or more CV values – nor even if the settings for one are significantly different from those that ‘work’ in the other one.
One of the most important aspects of a PID controller is the idea that it is not expected to achieve the "perfect" value on the first pass. It is an iterative process and will reach the targer (in our case target speed) after several successive corrections. And, precisely due to this iterative nature – the formula that is a PID controller uses the history of the past corrections … in addition to the current measurements (in our case the BEMF value that is read during the "off" segments of the PWM. The idea is to "home in" on the correct value for the PWM – and then to keep adjusting the PWM in very tiny adjustments … all with the goal of having the motor turn at a constant RPM for a given speed setting. And also with the goal of changing from any current speed step to a new speed step … smoothly (a nice steady increase or decrease in speed that results in the operator seeing his train moving in a manner that approximates what happens on a real train.
CV 209 is the Kp in the PID. It should usually be a low number (25 and below). Kp is the ‘current error’ value. Think of it as the ‘base value’ (size) of the error (difference between the target and the actual). But the value of CV209 is a range from 1 to 255 – so what CV 209 really represents is a "percentage" of the Kp that will be used.
CV 210 is the Ki in the PID. It should usually be a low number – and it will usually be a lower number than 209. Ki is the integral error value – that is to say that it is the sum of the past few changes (corrections). Think of it as an ‘adjustment’ to the Kp – based upon what has happened the past few times the PID value has been computed. Again the value of CV210 is not the actual value of the Ki but rather it is the percentage of the computed Ki that will be used to form the actual correction (final PID output calculation) to the PWM.
There is a "D" in the Tsunami PID controller. It is not "externalized" and Soundtraxx does not think that we, the users, should be messing with the "D" in the PID formula. The Kd in the PID calculation represents the rate of change, over time, of the PID calculation. Think of it as the slope of the curve of the error. The value for the "D" works the same way as the values for 209 and 210 … it is also a range/percent.
Turn off all momentum (CVs 3 and 4) before starting. It is probably even a good idea to just do a decoder reset.
It is highly unlikely that you will be successful in tuning the motor performance CVs correctly – if the locomotive wheels or the test track are not clean. Always start all such procedures with cleaning the wheels and track!
Use 128 speed step mode for all tuning (and running?). It is very hard for the PID controller to do its job – to provide smooth changes of speed and relatively constant RPM when the speed isn’t changing – if you only provide it with 28 steps (because each individual value represents a much larger percentage of the range of the throttle (think PWM).
CV 212 is the "intensity" of the PID calculation that will be used. Think of the PID calculation as a number. That number is actually a ‘correction’ for an error (the result of the PID calculation). If the value of 212 is 255 then 100% of that correction will be used. If the value of 212 is 128 then 50% of the correction will be used. An example will help. Let’s say that the target speed is 100, the current speed is 90. So the "error" is –10. And the PID calculation (for simplicity of this example of how 212 works) is +10. Sooooo, if 212 has a value of 128 then the PID correction, this time around, would be +5. As the value of 212 is reduced the number of iterations of the PID correction process that are required to reach a given target from a given start/error point will take longer and longer. Truly low values of 212 can produce a loco that is very ‘sluggish’ in terms of throttle response.
CV 213 is the specification of how often a BEMF measurement is taken. It is a frequency in a number of milliseconds – if the value in 213 is 23 then it takes a measurement every 23 milliseconds. Let’s use an example from real life … this is "how often does the nurse take your temperature?".
CV 214 is the duration of the BEMF ‘window’ (it is NOT the "D" in PID). It is how long the window is open. This is the "how long does the nurse leave the thermometer under your tongue?".
If you set the BEMF cut off level (CV 10) to a small value then the PID controller will be ‘in use’ over less of the entire speed range. This is, in general, a good thing. Values between 20 and 40 are recommended.
What does "starts moving" mean? Many of the tuning procedures ask you to do something until the locomotive start to move. There are 3 kinds of ‘movement’. There is the first little bit of movement – it may even be a little lurch – but the loco does not move continuously and will spend more time stopped than moving. The second phase is where the loco is moving but it may not be at a steady rate and it may not be "smooth". This is not "tie crawling" speed. The third phase is where the loco is definitely moving and is well above "tie crawling". You would still call it ‘slow’ but you wouldn’t call it very slow. For most PID tuning procedures when it says "until it starts moving" we are talking about the 2^{nd phase.}
Locomotives should be tuned "light" (no train cars behind them). You need to know that the loco will perform well on its own. A loco with a train behind it may require more throttle in order to move at the same speed as it does light – and that’s a good thing and is a better simulation of an actual locomotive (and will sound better).
This is all I’m going to write up at this time. I intend to use this information in order to develop a procedure (or small set of procedures) that will allow you to find the best settings for the motor performance CVs - 209, 210, 212, 213, and 214 primarily … but also the BEMF cutoff, the momentum, and the trim CVs.
- Jim Betz (14 June 2010)"