-
Notifications
You must be signed in to change notification settings - Fork 20
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
Add RawData files for the Balanceassistv1 #110
Conversation
Christoph and Jason measured the Balanceassistv1 bicycle, i.e. the first balance assist bicycle we received from Bosch/Gazelle, with the standard procedure. This is a modified Gazelle Grenoble step through frame with the e-bike battery in the downtube. The torsional and compound pendulum data files will be added to Figshare and the periods recorded in these files result from that data and the current version of BicycleParameters. The measurements were recorded mostly on July 30-1, 2024 and various corrections recorded upt to and including August 8, 2024.
@chrismo-schmidt would you like to double check these? I made some changes and took the final measurements so the rider can sit on the bike. |
Resulting figures: Resulting parameters without rider:
with Jason as rider:
|
Test script: 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)
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
pprint.pprint(par)
par_set = Meijaard2007ParameterSet(par, False)
par_set.plot_all()
model = Meijaard2007Model(par_set)
model.plot_eigenvalue_parts(v=v)
bicycle.add_rider('Jason')
print(bicycle)
bicycle.plot_bicycle_geometry(show=False)
par = bp.io.remove_uncertainties(bicycle.parameters['Benchmark'])
par['v'] = 1.0
pprint.pprint(par)
par_set = Meijaard2007ParameterSet(par, True)
par_set.plot_all()
model = Meijaard2007Model(par_set)
model.plot_eigenvalue_parts(v=v)
plt.show() Which does give this warning:
which is from calculating the inertia ellipsoids I believe. |
It does look like it is failing to draw the inertia ellipsoid of the handelbar. |
If I truncate the pendulum period measurements the fork decayed oscillation fits are signficantly poorer, this must result in the inertia of the fork not being quite right and thus the principal inertia calc for the ellipsoid exposes that. If I skip truncated from 100% to 90% of the decay in the signal, then the fits are great and inertia of fork seems to be correct. I guess I'll just skip the truncation if the time array is given. |
…timates for the Balanceassistv1 fork measurements.
Here are the final results (based on not truncating the period time series if the measurement has a time variable in the mat file). Test script: 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)
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
pprint.pprint(par)
par_set = Meijaard2007ParameterSet(par, False)
par_set.plot_all()
model = Meijaard2007Model(par_set)
model.plot_eigenvalue_parts(v=v)
bicycle.add_rider('Jason')
print(bicycle)
bicycle.plot_bicycle_geometry(show=False)
par = bp.io.remove_uncertainties(bicycle.parameters['Benchmark'])
par['v'] = 1.0
pprint.pprint(par)
par_set = Meijaard2007ParameterSet(par, True)
par_set.plot_all()
model = Meijaard2007Model(par_set)
model.plot_eigenvalue_parts(v=v)
plt.show() Script text output
Figures Without RiderFigures With Rider |
Christoph and Jason measured the Balanceassistv1 bicycle, i.e. the first balance assist bicycle we received from Bosch/Gazelle, with the standard procedure. This is a modified Gazelle Grenoble step through frame with the e-bike battery in the downtube. The torsional and compound pendulum data files will be added to Figshare and the periods recorded in these files result from that data and the current version of BicycleParameters. The measurements were recorded mostly on July 30-1, 2024 and various corrections recorded upt to and including August 8, 2024.