One problem I have found with the speed control is that the speed of the loco is affected by the load it is pulling. Again, nothing new there. In real life, the driver would apply the throttle or regulator enough to get the loco moving, and then ease off as the loco accelerates.
The locos will be told some basic speed instructions - shunt, normal and fast. The chips can be pre-programmed to put appropriate amounts of power to the motors. But what happens about the load issue. I might find a nice slow speed whereby the loco trundles along at what appears to be a nice scale speed, but when I couple up some carriages, the loco struggles to move. Or the loco stops when zigzagging through a set out points.
My plan is to collect information from one of the axles that are not powered. By painting black and white striped on either the axle or the inside of one wheel, a detector can be setup to "see" if the axle or wheel is moving. By detecting the movement of the non-powered axle, the chip can know if the loco is moving, and if so, then how fast.
Infra-red light is fired at the wheel. Gloss white stripes reflect the light back (matt black stripes don't), so the detector can see the wheel moving by the light coming back as bright or dull/none. These pulses of light can be counted.
Given this information, the chip could automatically adjust the voltage to the motor. If the motor was told to shut ahead, then it would expect the wheel to be turning at a pre-determined rpm. If the wheel is less than the required rpm, then the chip could increase the voltage by a step. If faster than required then the voltage could be reduced by a bit. This routine continuously monitor the speed, and adjust the power accordingly.
In theory, inertia control could be included in this. The amount the motor power is increased and the time taken to increase it would allow the trains to accelerate and decelerate at different rates.
The chips can control a servo motor from radio control sets, so the same theory could be applied to live steam locos too. Instead of altering the voltage to the motor, the servo could change the position of the regulator.
Well, that is the theory!