How does powermatch work?

How does powermatch work?
If I have a PM that I start spinning at 250w and the erg mode interval is set to 200w, what does the trainer Road software tell the trainer to do?

1 Like

From a fundamental standpoint, Powermatch is a feedback control loop. The “input” is the target power, the “plant” is you producing the power and your power meter is the “sensor”. the output signal tells the resistance unit to increase, decrease or maintain resistance.
I do not know the specific design of this control system, this is just an educated estimation (I’m an engineering student)


One thing that’s not explicitly spelled out in that article, is whether TR will compare the power measured by your power meter to a) the target power of the interval or b) the power measured/reported by the trainer. They’re not the same thing (unless you’re using a kickr with it’s internal power smoothing turned on). I suspect the answer is (a) just based on how clunky PowerMatch seems to be. (b) is what I think it should be.

Either way, I’ve found that PowerMatch just introduces too much lag and overcompensation, so I don’t use it. Fortunately my Neo seems to be pretty accurate as long as I’m in the big ring, so I don’t worry about it too much. Being off by 1-2% in the avg power for an interval is just not something to worry about.

It is essentially ‘b)’,

  • PowerMatch compares between your Power Meter to the Smart Trainer. It takes the delta between the two and adjusts the Smart Trainer resistance level, such that the Power Target is reached, according to the Power Meter. From the article:
    • “Put simply, PowerMatch will use the power readings from your power meter to control your smart trainer.”
  • They made changes to PowerMatch recently and many people are reporting much better results from the revised version. I recommend retesting it to see if it works to your needs.
  • One comment, and several below this as well.

Leave it to an engineer to make it so I am now even more confused after the explanation :rofl:.


Good thing there’s the marketing team to give it a fancy name like “PowerMatch”… :slight_smile:

@MI-XC That’s what we are here for…
but i really should be able to give you a better answer, sorry

Here goes from a former control systems engineer (I used to design much more complex control systems that had to work in much more critical environments):

Here’s the simplest control system:
You feed a desired input (the requested power), you measure the “actual” power [from the power meter], you multiple that by some gain, and that signal gets fed to the trainer. The trainer than increases / decreases resistance to try and get the delta between the input and the measured “actual” power to be zero.

You can get more complex than the above by measure the rate of change of power, etc.

The gain determines how quickly or slowly the system will try and reduce the error / delta between requested power and the measured power. But there are lots of trade-offs with increasing the gain. Too high a gain and you will widely overshoot, and can produce an unstable situation. E.g., a small error leads to a larger error, which just keeps going.

Some of the things you have to trade-off are:

  • Do you allow a small amount of error - e.g., an error of +/- 1 watt. This introduces hysteresis into the system, but that can be beneficial as the system doesn’t try and “chase” eliminating small “errors” that can constantly crop up from slight changes in pedaling cadence / force during different parts of your pedal stroke, etc.
  • How responsive do you want to make the system to differences between the requested and measured power. You might think more responsive is better, but the trade-off is too responsive won’t feel realistic, plus large instantaneous changes in requested power can lead to crushing resistance. Think the requested wattage goes from 150 to 250 watts, at that instance the system will see a large error, and try to immediately eliminate this error. As a rider, you would feel like you just hit a very steep gradient, which wouldn’t be realistic
  • For any trainer model, there will be slight variations, and power match is designed using a simulation of how there trainer will react. So you have to develop power match (or any control system) to be able to tolerate a certain amount of variability between how individual trainers of the same make & model will behave.
  • Accuracy / linearity of the power meter also plays a part. And you have to (or should) model this as well. This introduces a certain of variability, similar to the variability that trainers can introduce.

Hope this helps


@AlphaDogCycling Reads like lecture notes :slight_smile: thanks for the more in-depth explanation.

1 Like

Ah man, you teased me with PID and never delivered! :joy:


So I take from this that if I am using a power meter (Assioma Duo pedals in my case), I need only zero offset those pedals, and there’s no need for spin down calibration of my Wahoo Kickr 18, is that correct (since the pedals are essentially running the show with Power Match)?

Yup, ZO for the PM is most important. We’ve seen comments fro TR that differ about the need to calibrate the trainer. It seems most often recommended.

1 Like

@Todd_Palmer a normal spin-down is probably not needed on a daily basis if you are using Power Match, but you should periodically do an advanced spin-down.

1 Like

Thanks much! I’ll get that done today.

I also have a question for the engineers at TR with regards to PowerMatch.

Is the predictive model just an offset (i.e. zeroth order) or do you also esitimate the slope (i.e. first order) to account for power transmission losses between where the bike’s power meter and the trainer’s power meter are located?

PID-type controllers suffer greatly when the errors are not sufficiently whitened…

There is no way the app can know/estimate the losses you refer to. The app receives the power meter measured power and the trainer measured/estimated power, and it sets a power demand to the trainer. The trainer contains the inner loop - changing the load to close the error between the demand and its measure/estimate - and the app contains the outer loop, closing the error between its own requested power and the powermeter output. I’d assume they voluntarily use a low gain on the outer loop to compensate for the unknown gains in the inner loop and unknown trainer and meter time constant equivalents. A smart control scheme would use a predictive model built from the delta between required and demanded power vs power demand, making the outer loop much more responsive. I don’t know if they use such a scheme.

What? Reread my post. I said “account for” not estimate the losses. I’m just talking about doing online linear regression (for example a Kalman filter) as opposed to just taking a simple moving average. It’s super simple. Power transmission losses are usually quoted as percentages which means that you need at least a linear model to capture its effects.

See you even say it yourself but without any mathematical details. It’s not considered “smart control” to do linear regression, more like “first thing you should try” control. A zeroth order control system that doesn’t try to make any assumptions about the errors is called naive control. :wink:

Does anyone here have an idea which is a better way to go in this case - Wahoo KICKR & Favero Assioma DUOs. Powermatch is available either directly via the Wahoo app, or via the TR app. My guy instinct is that Wahoo probably have a bit more insight into this and that is the way I have gone for now, but if anyone genuinely knows I’d be keen to swap over and achieve better results via the TR Powermatch feature…