Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Power calibration by power table #257

Closed
wants to merge 22 commits into from

Conversation

decodeais
Copy link

@decodeais decodeais commented Feb 15, 2021

For me the original power measurement on the Tacx Flow worked ok, but in the rouvy tracks of my wife it was obvious that there was much power uphill but very low power downhill. I looked to the power table for the Tacx Flow in the Manual an found a lon linarity at high speed and low power. This looked not very important, but when I compensated it, downhill looked much more realistic for my wife.
This bilinear interpolation could make sense on other trainers too.
Please have a look on it

@switchabl
Copy link
Contributor

@decodeais Which head unit are you using with the Flow? T1902 (solid green) or T1904/T1932 (white/green or white/blue)? For the T1904/T1932 a lot of work has gone into the power curve (see #143 and #153) and the non-linearity is baked into the curve already. However accuracy depends a lot on the rolling resistance of the tyre (tyre material, pressure, trainer knob setting). The -c parameter can be used to account for that but there is no automatic calibration yet.

The T1902 is still using an older, less-acurate power curve. I have done some work on applying the new one but haven't gotten around to implementing it unfortunately.

@decodeais
Copy link
Author

I am using the t1932. Unfortunately I have no power meter to measure, but the tracks on Rouvy look much better. Now it is possible for me and my wife to ride with the same parameters. Our FortiusAnt program runs headless and so it was difficult to change the parameter every time. Our Problem only appeared on high speed with low power (<150W downhill). If we changed the c value we got to much power in other speed/power regions.
I think this bilinear interpolation could easy fix nearly every calibration problem for you.
The only problem is to find somebody who can measure the power values for the table.

@switchabl
Copy link
Contributor

switchabl commented Feb 16, 2021

@decodeais You are very welcome to try to improve the power model if you want. The two issues I linked have at least 3 independent sets of powermeter data that you could analyze. The data-quality may not be high enough for a (fine-grained) table-based model though (it was something we considered but ultimately didn't use).

In theory, a table-based model could give higher accuracy, unfortunately it will not remove the need for individual calibration. The rolling resistance of the tyre is a large contribution a lower speeds and it varies a lot depending on the tyre, tyre pressure, temperature and cylinder pressure (the knob on the trainer).

The power curves we currently use look something like this (this is not the final model but similar):
grafik
[shown are all the different resistance settings and powermeter data from one of the datasets; apparently some resistance levels are wrong/duplicated in the data]

When it comes to ride-feel, rather than just power estimation, it is also important to remember that the resistance range of the Flow is rather limited. This doesn't just limit the maximum gradients that can simulated, there is also a minimum resistance. This plot shows the range (in green) for a 70kg rider + 10kg bike with -c 10.
grafik
The Flow basically cannot simulate realistic downhill riding. With Rouvy it is recommended to set -G 50/50 which will "compress" the gradient range to fit better to make the trainer feel more responsive (by sacrificing some realism; Zwift does this by default):
grafik

@WouterJD
Copy link
Owner

Hi all.

Sorry for not engaging earlier in this discussion... but here I am :-)

We have a come a long way, leaving the power-tables [from antifier] behind us.
We have three formula's now:

  1. Magnetic brake on T1901
  2. Motor brake on T1932
  3. Magnetic brake on T1932

Note that the power-curve can be customized with -c -G -p (ref manual).

I am quite open to adopt improvements and extensions, but I think this will not be one of them.
I am not very fond of implementing tables again and would really like to see a foundation why this would be required.

So please let me know...

@decodeais
Copy link
Author

Sorry, my intension was not to start a great discussion about the calculations in the software. I hoped the easy possibility to make own adjustments would help to end this kind of discussion. If this table is erased everything is changed to default.
The comment from @switchabl let us make a lot of exhausting tests (different pressures, Parameters). At the end everything looked so confusing.
We located as a reason the Rouvy-software. I made an upload to Strava from Rouvy and one upload from FortiusAnt to Strava by a tcx-file. We had no Idea what happend in the Rouvy-software, but the tracks looked very different.
Do you have an easy explanation for these effects?
We will make more tests when the weather gets worse. Also it would be nice to make some measurements with a borrowed powermeter, but at this complicate times it will be impossible.

@switchabl
Copy link
Contributor

switchabl commented Feb 23, 2021

@decodeais I understand your intention and it is true that a look-up table gives a lot of flexibility. But in practice it is unfortunately a lot less useful than it might seem because you need to know the correct values. If you don't have a power meter all you can do is guess (and in all likelihood you will end up making things worse). If you do have a power meter it is still a lot of work and the correct values for my setup will be different from yours. And then if you pump up your tire tomorrow you might have to do it all over again.

Our power model is not as bad as you might think. Across the three different trainers and power meters we tested it was usually better than 10% accurate across a wide resistance and speed range. The main problem is that this is only true if you know the proper calibration value for your bike and trainer and right now there is no good way to find it without a power meter. But replacing 1 unknown parameter with 36 is not really going to fix that. There is a proper solution (spin-down calibration) and I am working on that. In the process I will probably collect an additional high-quality power meter dataset as well. But as you can imagine probably imagine after your own experiments that is a lot of work and I don't have a lot of time right now so it will probably take a while.

In the mean time the best advice I can give is this:

  • make sure your tire is inflated to 7-8 bars (assuming normal 23mm road/trainer tire)
  • leave default calibration value as it is (do not set -c or -p)
  • set -c 50/50 if you are using Rouvy
  • ride for ~5 minutes at low intesity to warm up the tire
  • then use the "runoff" function and adjust the knob on the trainer until you get a time of about 6.5s

About the tcx files: Rouvy uses its own physics simulation internally using only the power value. So if the speeds in particular are different that is not surprising. If the power or cadence values are different something is wrong.

@decodeais
Copy link
Author

decodeais commented Feb 23, 2021

I am sure you won't believe both graphics show the same ride. The first shows the uploaded tcx-file the second was from rouvy.
image

image

!!Attention corrected the pictures, it were so many tests.

@WouterJD
Copy link
Owner

I do believe you.
There are two discussions mixed here

  1. Convert requested power to trainer-resistance and vice-versa

  2. Why is registered power by FortiusAnt/TCX different from FortiusAnt-ANT-Rouvy?
    Note that both source for Power/Cadence is FortiusAnt; speeds has been addressed by @switchabl.
    This latter subject can be examined by taking the FortiusAnt/TCX and the RuouvyExportTcx; import smartly into excel and compare. I'm curious to read the results.

@decodeais
Copy link
Author

I created the tcx-file in Rouvy and found a mismatch when i compared the date. But the right one shows the same problem.
I have no idea how to check all the data.
We have to stop now, I think its to late for me.

@WouterJD
Copy link
Owner

WouterJD commented Mar 4, 2021

@decodais, @switchabl I would suggest not to integrate the power table.
Would this disappoint you very much?

@decodeais
Copy link
Author

It is OK. My wife wants to make some tests when the weather is not so good. If she insists on this table I will make a special version for her.

@WouterJD
Copy link
Owner

WouterJD commented Mar 5, 2021

My wife also has her own Fortius.
Note that the power can be tuned with the -c -e -p -G parameters!

For now closed; if you need support just pop-in again.

Reason to close that I want to keep issues and pull-request actual, to be able to keep track.

@WouterJD WouterJD closed this Mar 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants