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.

1 Like

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…

I have been searching the TR forums looking for information relating to PowerMatch and am as yet to come across the answer to my queries (listed at the end). If anyone can point me in the right direction after reading the information below it would be greatly appreciated.

First off let me start by indicating the equipment I am using. I have the latest Kickr Core and a left side only Stages generation 3 power meter both of which I calibrate prior to a workout. I calibrate the Kickr Core through the Wahoo app and the Stages through my Garmin 520 head unit.
Additionally I’m new to smart trainers previously using Trainerroad with a Taxc Cycletrack and my Stages (this was always painful trying to get the correct combination of resistance on the Tacx Cycletrack and gear ratio on the bike).

The training sessions on the new Kickr Core felt easy and my watts were much higher for the same HR in comparison to a training session on the Taxc Cycletrack. As an example 200 watts on the Kickr Core at 138bpm vs 200 watts on the Taxc Cycletrack at 148bpm. This was the reason I decided to test the power reading of the Kickr Core against the Stages.

For the test I was running Trainerroad on an iPad with the Kickr Core connected (via bluetooth) and the Stages though a Garmin 520. What I discovered was there is a delta of 30 watts that tracks for pretty much entire power range I generally utilise. As an example while Trainerroad was indicating the Kickr Core was at 280 watts the Garmin 520 was indicating the Stages was at 250 watts, disappointing to say the least. I am going to a friend’s house tonight to put my bike on his smart trainer (a Tacx Neo) and compare that to the Stages.

It was then that I found the PowerMatch “Auto” function (which works very well). There were a couple of teething problems such as, connecting the Kickr Core to both Trainerroad (through the iPad) and the Wahoo app (through my phone), remember I’m new to smart trainers. However like a lot of people I’d like to not have to use PowerMatch and have confidence that the Kickr Core and Stages power readings are close (give or take a few %).

I did attempt to use the manual option of PowerMatch but it seemed to have no effect. I set it at -30 and then compared it to the Stages and there was still a delta of 30 watts (Stages being lower). I then set it to +30 and then compared it to the Stages and there was still a delta of 30 watts (Stages being lower).

Hopefully the information above will be enough to help with the following queries:

  1. 30 watts seems like a significant difference, has any one had this issue and what was the resolution? Hopefully should see tonight if the issue is with the Kickr Core or the Stages.
  2. If I decide to use the manual option of Powermatch I’m assuming that I should set this to +30?
  3. With the +30 added to manual Powermatch the reading for watts from Trainerroad should then show 30 watts lower, as an example 250 instead of 280?
  4. Am I missing anything in regards to manual PowerMatch?