Closed WouterJD closed 4 years ago
Hi Wouter, the speedScale was estimated (calibrated) by comparing the "raw wheel speed" value from the brake unit with a speedometer. The unit for the raw speed seems to be about 1 mm per second. So, to convert from "raw speed" to kph, you have to multiply it with 3.6/1000 which is about 1/290. Other implementations are using values between 1/277 and 1/360.
The "Power2LoadMagic" was estimated with the assumption, that the "raw load" value from the motor brake scales with the force and after fitting a measurement series to the function
power = const * raw-load * raw-speed
with const = 1/Power2LoadMagic
Very probably the assumption is not correct and the conversion from "load" to real power needs further investigations.
Thanks for response, I appreciate that.
I have measured speed using TTS4 and my Tacx Fortius at a given ratio. Cadence=92 gives 40 km/hour. Let's assum "Tacx knows Tacx"
Using the 289.75 magic, Cadence = 92 gives a slightly higher speed. And with 301 the speed gets close to the TTS measurement.
Since it's just the display value in the used software, any value would be good.
I did another run.
speed = rawSpeed / scale
the fitting gave a value of scale=286.7. speed = (rawSpeed - offset) / scale
the fitting for the same run gave me offset=-60 and scale=288.7. A comparison with TTS4 confirms these values. Strange.
What kind of powerback/brake do you have? Is it a US (110V / 60Hz) or EU (230V / Hz) ?
My powerback says: firmwareVersion= 00.00.09.65 serial= 410502330 (Tacx T1941 Year 2005 #02330) Date= 0c.08 Unknown= 00.00
I've also done some further investigations.
The calibration value in byte 10,11 of the command frame is a simple offset to the brake-load.
A load of "1000" with calibration 0 results in the same force as a load of 2000 with calibration 1000.
So, real brake load is: realLoad = commandLoad - calibration
.
The problem with the brake calibration is a drift when the brake, or the wheel, or whatever gets warm.
I made a calibration run after a very long warm-up. At the end of the warm-up the brake gave calibration values of about 0x430. The motor was warm (but not hot) at the end. The calibration run itself was done with calibration_0=0 and with the assumption of
power = a + b1_0 * rawSpeed + c1 * rawSpeed * commandLoad
The fitting gave the following values:
a ~= -35.4
b1_0 ~= .01334
c1 ~= .0000070529
So, you can use these values to estimate the power for a given load (with calibration=0 in byte 10,11) and after a similar calibration run (speed=20 kph , load=0x430). At least the force (loss) of turning the rear wheel should be the same . The loss between your pedal and the rear wheel can be different and cannot be compensated with a calibration run of the brake.
Or if you assume a calibration_0 <> 0:
power = a + (b1_0 + c1 * ( commandLoad - calibration_0 ) * rawSpeed
I.e with calibration_0=1040 (the standard tacx value)
power = a + b1_1040 * rawSpeed + c1 * commandLoad * rawSpeed
a ~= -35.4
b1_1040 ~= 0,006
c1 ~= .0000070529
With theses values you can estimate the power of a given load (but now with calibration=1040 in byte 10,11).
--
There is still a drift over time. After some time my power meter shows smaller values than the software model and the brake is very warm. To correct this, one have to reduce the calibration (byte 10,11 in the command) by about "25" for 1 Watt at 20 kph. The brake increase the force (without increasing the power values of the software model).
Maybe a temperature sensor at the brake may help to compensate the drift.
I have tested the algorithm as described below. Summary: the algorithm does what it should do.
Method: bike on the Fortius, power meter on bicycle.
Test Results (Target Power in column header, result power in the table)
50W 100W 150W 200W 250W 300W
10 km/hr 46 97 145 194 245 285
20 km/hr 50 100 145 197 245 290
30 km/hr 63 102 154 196 245 295
40 km/hr 105 120 160 210 260 305
50 km/hr 123 130 165 210 250 310
Conclusions: a- 50Watt at 50km/hr gives odd readings but that's not too strange. b- Overall measured power correponds with TargetPower. c- Multiple measurements give different results within 5% Tests are done intermittently and hence have different brake and tyre temperatures.
Assumption Attempts to improve the algorithm may be useless, since it should not be more exact than the Tacx Fortius (was designed for). After all, changing the algorythm remains empirical
No more info required, thanks
Thanks for the great explanation of the interface. It sure helps a lot to understand how Tacx Fortius communicates. Excellent work. I will keep you posted when I find more info.
I would like to understand the two magic constants beging used, Power2LoadMagic and speedScale.
I would really appreciate some background on these two formula's.
Thanks, Wouter