Buckle up, Specialized nerds!
Went back to my linear model based on official pre-SL documentation. Here are 3 screen shots of the interactive graphical version at
www.desmos.com
Here's the setup. Px = 300W is the SL's max mechanical motor power at 80 rpm cadence. B = 2.3 is the boost factor originally published for the SL 2's motor. As a motor property, B should be a constant, independent of both E (the assist mode "ease" setting) and M (the "motor power" setting).
This model's "linear" in that motor power Pm is directly proportional to E, B, and rider power Pr
below saturation and proportional to both Px and M but independent of Pr
above saturation. As indicated in pre-SL 2 documentation.
Here's a closer look at the graph for E = M = 50. Pr plots on the horizontal axis and various kinds of power at the crank plot on the vertical axis.
Let's focus on the blue Pm plot and its pre-saturation ramp and post-saturation flat. Any realistic model of Specialized's power-sensing mid-drive PAS
must capture the following features:
o Since Specialized mid-drives have no throttles, the Pm ramp
must start at (0,0). Check.
o Since the post-saturation Pm cap is fixed, the post-saturation Pm plot must be a horizontal straight line. Check.
o Since I never feel a thing when I pedal my SL 1 through Prs, the ramp and flat
must meet at Prs. No jumps. Check.
o The orange vertical automatically marks the Prs (saturation Pr)
predicted by the model. It always falls at the ramp-flat intersection, just as it should. Check.
Discrepancies
In the E = M = 50 case, the model predicts Prs = 130W, as shown by the orange vertical above.
But something's wrong, cuz the Specialized Prs table for the SL 2's regular MicroTune gives Prs = 200W for E = M = 50 at 80 rpm. I used the graph's Pri slider to mark this official value with a gray vertical. Big discrepancy.
Now let's look at the E = 50, M = 100 case:
Model says Prs = 261W (orange vertical), but the official Prs table for dynamic MicroTune says Prs = 385W (gray vertical). Even bigger discrepancy.
How to fix it?
So what could we change about the model to bring it into agreement with these official SL 2 MicroTune tables? If we keep the model assumption that the saturation motor power Pms = Px M / 100, the only wiggle room left is in the shape or slope of the pre-saturation Pm ramp. Can we fix that somehow? Maybe.
Fix the ramp's shape?
You'll be relieved to know that we don't have the data needed to pick a better ramp shape by picking a nonlinear relationship between Pm and Pr. Dead end.
Just fix the ramp's slope?
But we do have the data for a stab at a slope fix. If we keep the Pm ramp a straight line — i.e., keep Pm there strictly proportional to Pr — how could we fudge the slope to get official SL 2 Prs values out of the linear model?
In the existing model, the linear Pm ramp is given by
Pm = E B Pr / 100
with slope S = E B / 100. Boost B is supposedly a motor constant baked into the SL 2, so no fudging opportunities there. Simply picking a different constant B value won't get the job done.
The only way forward would be to introduce a fudge factor F that's a nonlinear function of E, like so:
Pm = F(E) E B Pr / 100
so the ramp slope becomes S = F(E) E B / 100
For the dynamic MicroTune table, this fudge factor F would vary with E as shown in the last column below:
Since E only comes in multiples of 5, it'd be easy enough to interpolate the above into a complete E-based look-up table for code or spreadsheet use. A Desmos graphical model might also be possible.
But what about the regular (E = M) MicroTune Prs data? This F(E) fudge factor has at least the right shape to work there, too. Stay tuned.