Closed moorepants closed 2 months ago
This now builds the Browser data from scratch seemingly correctly.
I've tested this with the new balance assist bike measurements and several of the original bike measurements and everything seems to work. I used this test script for the balance assist and manually checked other bikes:
import pprint
import numpy as np
import matplotlib.pyplot as plt
import bicycleparameters as bp
from bicycleparameters.parameter_sets import Meijaard2007ParameterSet
from bicycleparameters.models import Meijaard2007Model
data_dir = "/home/moorepants/Data/bicycle-parameters"
v = np.linspace(0.0, 10.0, num=401)
bicycle = bp.Bicycle("Balanceassistv1", pathToData=data_dir,
forcePeriodCalc=True, forceRawCalc=True)
print('Bicycle short name:', bicycle.bicycleName)
print('Directory:', bicycle.directory)
pprint.pprint(bicycle.extras)
M, C1, K0, K2 = bicycle.canonical()
print('M:', M)
print('C1:', C1)
print('K0:', K0)
print('k2:', K2)
A, B = bicycle.state_space(3.2)
print('A:', A)
print('B:', B)
print(*bicycle.eig([1.0, 2.0]))
bicycle.plot_bicycle_geometry(show=False)
bicycle.plot_eigenvalues_vs_speed(v)
par = bp.io.remove_uncertainties(bicycle.parameters['Benchmark'])
par['v'] = 1.0
par_set = Meijaard2007ParameterSet(par, False)
par_set.plot_all()
model = Meijaard2007Model(par_set)
model.plot_eigenvalue_parts(v=v)
bicycle.add_rider('Jason')
bicycle.plot_bicycle_geometry(show=False)
par = bp.io.remove_uncertainties(bicycle.parameters['Benchmark'])
par['v'] = 1.0
par_set = Meijaard2007ParameterSet(par, True)
par_set.plot_all()
model = Meijaard2007Model(par_set)
model.plot_eigenvalue_parts(v=v)
plt.show()
Results from script:
In [1]: run calc_balance_assist.py
We have foundeth a directory named: /home/moorepants/Data/bicycle-parameters/bicycles/Balanceassistv1.
Found the RawData directory: /home/moorepants/Data/bicycle-parameters/bicycles/Balanceassistv1/RawData
Recalcuting the parameters.
Calculating the period for: Balanceassistv1ForkCompoundFirst1.mat
The period is: 1.62270+/-0.00004
Calculating the period for: Balanceassistv1ForkCompoundFirst2.mat
The period is: 1.62128+/-0.00008
Calculating the period for: Balanceassistv1ForkCompoundFirst3.mat
The period is: 1.62073+/-0.00008
Calculating the period for: Balanceassistv1ForkCompoundFirst4.mat
The period is: 1.62014+/-0.00006
Calculating the period for: Balanceassistv1ForkTorsionalFirst1.mat
The period is: 1.51347+/-0.00017
Calculating the period for: Balanceassistv1ForkTorsionalFirst2.mat
The period is: 1.51608+/-0.00029
Calculating the period for: Balanceassistv1ForkTorsionalFirst3.mat
The period is: 1.50943+/-0.00020
Calculating the period for: Balanceassistv1ForkTorsionalSecond1.mat
The period is: 1.2406+/-0.0004
Calculating the period for: Balanceassistv1ForkTorsionalSecond2.mat
The period is: 1.24048+/-0.00018
Calculating the period for: Balanceassistv1ForkTorsionalSecond3.mat
The period is: 1.24008+/-0.00016
Calculating the period for: Balanceassistv1ForkTorsionalThird1.mat
The period is: 0.73596+/-0.00010
Calculating the period for: Balanceassistv1ForkTorsionalThird2.mat
The period is: 0.73716+/-0.00009
Calculating the period for: Balanceassistv1ForkTorsionalThird3.mat
The period is: 0.73708+/-0.00009
Calculating the period for: Balanceassistv1FrameCompoundFirst1.mat
The period is: 1.79750+/-0.00011
Calculating the period for: Balanceassistv1FrameCompoundFirst2.mat
The period is: 1.79909+/-0.00008
Calculating the period for: Balanceassistv1FrameCompoundFirst3.mat
The period is: 1.80003+/-0.00005
Calculating the period for: Balanceassistv1FrameTorsionalFirst1.mat
The period is: 3.2877+/-0.0004
Calculating the period for: Balanceassistv1FrameTorsionalFirst2.mat
The period is: 3.29309+/-0.00034
Calculating the period for: Balanceassistv1FrameTorsionalFirst3.mat
The period is: 3.30595+/-0.00028
Calculating the period for: Balanceassistv1FrameTorsionalSecond1.mat
The period is: 3.7128+/-0.0004
Calculating the period for: Balanceassistv1FrameTorsionalSecond2.mat
The period is: 3.71415+/-0.00030
Calculating the period for: Balanceassistv1FrameTorsionalSecond3.mat
The period is: 3.71615+/-0.00030
Calculating the period for: Balanceassistv1FrameTorsionalThird1.mat
The period is: 3.09983+/-0.00029
Calculating the period for: Balanceassistv1FrameTorsionalThird2.mat
The period is: 3.09881+/-0.00027
Calculating the period for: Balanceassistv1FrameTorsionalThird3.mat
The period is: 3.09933+/-0.00022
Calculating the period for: Balanceassistv1FwheelCompoundFirst1.mat
The period is: 1.533589+/-0.000020
Calculating the period for: Balanceassistv1FwheelCompoundFirst2.mat
The period is: 1.53278+/-0.00004
Calculating the period for: Balanceassistv1FwheelCompoundFirst3.mat
The period is: 1.531369+/-0.000020
Calculating the period for: Balanceassistv1FwheelCompoundFirst4.mat
The period is: 1.53265+/-0.00007
Calculating the period for: Balanceassistv1FwheelTorsionalFirst1.mat
The period is: 0.88159+/-0.00004
Calculating the period for: Balanceassistv1FwheelTorsionalFirst2.mat
The period is: 0.882016+/-0.000024
Calculating the period for: Balanceassistv1FwheelTorsionalFirst3.mat
The period is: 0.881827+/-0.000022
Calculating the period for: Balanceassistv1RwheelCompoundFirst1.mat
The period is: 1.347828+/-0.000024
Calculating the period for: Balanceassistv1RwheelCompoundFirst2.mat
The period is: 1.348834+/-0.000016
Calculating the period for: Balanceassistv1RwheelCompoundFirst3.mat
The period is: 1.348391+/-0.000012
Calculating the period for: Balanceassistv1RwheelCompoundFirst4.mat
The period is: 1.347953+/-0.000034
Calculating the period for: Balanceassistv1RwheelTorsionalFirst1.mat
The period is: 0.89414+/-0.00004
Calculating the period for: Balanceassistv1RwheelTorsionalFirst2.mat
The period is: 0.89384+/-0.00004
Calculating the period for: Balanceassistv1RwheelTorsionalFirst3.mat
The period is: 0.893628+/-0.000033
Calculating the period for: RodRodTorsionalFirst1.mat
The period is: 0.964128+/-0.000019
Calculating the period for: RodRodTorsionalFirst2.mat
The period is: 0.96481+/-0.00008
Calculating the period for: RodRodTorsionalFirst3.mat
The period is: 0.96553+/-0.00006
The glory of the Balanceassistv1 parameters are upon you!
Bicycle short name: Balanceassistv1
Directory: /home/moorepants/Data/bicycle-parameters/bicycles/Balanceassistv1
{'betas': {'B': [-5.6883121758109+/-0.027688544632344214,
-0.8869114035744998+/-0.027688544632344214,
-2.7544137032084324+/-0.027688544632344214],
'H': [-2.775357654232365+/-0.027688544632344214,
-0.5552988456955772+/-0.027688544632344214,
-1.1417294743656718+/-0.027688544632344214]},
'intercepts': {'B': [-0.1617987808277105+/-0.003710977527879129,
-1.1086703853269324+/-0.025856069984397746,
-0.3165490315996673+/-0.0011488504490626953],
'H': [-0.5358131793589308+/-0.029016809884671143,
-1.4137057446586518+/-0.04935910583134944,
-2.917937765619192+/-0.1870702072638602]},
'pendulumInertias': {'B': [1.3902007491332655+/-0.0033993520318617446,
1.765979579999164+/-0.004316462936817831,
1.229564442351413+/-0.0030051631739689048],
'H': [0.2930164951250737+/-0.0007173878735482011,
0.19693536282436983+/-0.000483224835435766,
0.06947637471905611+/-0.00016996943023044883]},
'slopes': {'B': [-0.676636585016892+/-0.04036538672907974,
1.226832704636709+/-0.06936308498583547,
-0.4077610145494889+/-0.032292292505428186],
'H': [-0.38353805801273044+/-0.03176156947309774,
0.6204197159449089+/-0.03834643650802733,
2.1858301573111802+/-0.15998035386628937]}}
M: [[11.688942525993475+/-0.31574109405775974
0.4406131920896975+/-0.09313074600925858]
[0.4406131920896975+/-0.09313074600925858
0.19410189902471633+/-0.012528339174387606]]
C1: [[0.0 10.225105813876123+/-0.24076876958954888]
[-0.5615672307821129+/-0.0064467652819582555
0.6877300951088847+/-0.10856276279423908]]
K0: [[-17.639329159626296+/-0.3207567189033697
-0.7225780895249696+/-0.14676266542251712]
[-0.7225780895249696+/-0.14676266542251712
-0.18194110186637624+/-0.05477447173282242]]
k2: [[0.0 16.273256477906656+/-0.21941157753886148]
[0.0 0.7462886916588964+/-0.135262198266855]]
A: [[0.0 0.0 1.0 0.0]
[0.0 0.0 0.0 1.0]
[14.678735393679776+/-0.16958538022236266
-13.683072997301307+/-0.2778234417273669
-0.3816389372179702+/-0.06327106564952367
-2.5938164365370975+/-0.08073967915213698]
[3.1860891990140985+/-0.7867921014859718
0.8819026286099074+/-1.6735963080014773
10.124425874915588+/-0.24833309553833918
-5.450057778241475+/-0.3623241344014487]]
B: [[0.0 0.0]
[0.0 0.0]
[0.0935563415068749+/-0.0013859765541739102
-0.21237380200143693+/-0.03301808462548941]
[-0.21237380200143693+/-0.03301808462548941
5.6340236974024975+/-0.19248665262474718]]
[[-3.73879106+0.62776527j -3.73879106-0.62776527j 2.82758845+0.45733248j
2.82758845-0.45733248j]
[-3.83787261+0.83559703j -3.83787261-0.83559703j 2.01546738+1.51314516j
2.01546738-1.51314516j]] [[[-0.02252645+0.09492353j -0.02252645-0.09492353j
-0.13483573-0.04650224j -0.13483573+0.04650224j]
[ 0.23240054+0.03902143j 0.23240054-0.03902143j
-0.29334183+0.04744493j -0.29334183-0.04744493j]
[ 0.024632 -0.36904055j 0.024632 +0.36904055j
-0.35999296-0.19315396j -0.35999296+0.19315396j]
[-0.89339338+0.j -0.89339338-0.j
-0.85114807+0.j -0.85114807-0.j ]]
[[ 0.02776644+0.05737999j 0.02776644-0.05737999j
-0.19467024-0.02314574j -0.19467024+0.02314574j]
[ 0.23289269+0.05070633j 0.23289269-0.05070633j
-0.24982379+0.1875593j -0.24982379-0.1875593j ]
[-0.15451061-0.19701553j -0.15451061+0.19701553j
-0.35732867-0.34121381j -0.35732867+0.34121381j]
[-0.93618255+0.j -0.93618255-0.j
-0.78731615+0.j -0.78731615-0.j ]]]
There is no rider on the bicycle, now adding Jason.
No parameter files found, calculating the human configuration.
Merging, can tweak more in other PRs but all seems to work.
Fixes #13