The open loop dynamics of the bicycle-rider system can be described using many models, see [ASKL05], [LS06], and [MPRS07] for good overviews. The benchmarked Whipple model [MPRS07] provides a somewhat minimalistic model in a manageable analytic framework which is capable of describing the essential dynamics such as speed dependent stability, steer and roll coupling, and non-minimum phase behavior. I use this model as the standard base model to work with, as the fidelity of simpler models are generally not adequate. The model is 4th order with roll angle, steer angle, roll rate and steer rate typically selected as the independent states and with roll and steer torque as inputs. I neglect the roll torque input and in its place extend the model to include a lateral force acting at a point on the frame to provide a new input, accurately modelling imposed lateral perturbations (see Chapter Extensions of the Whipple Model for the details). I also examine a second candidate model which adds inertial effects of the rider’s arms to the Whipple model, also in Chapter Extensions of the Whipple Model. This model was designed to more accurately account for the fact that the riders were free to move their arms with the front frame of the bicycle. This model is similar in fashion to the upright rider in [SK10a], but with slightly different joint definitions. Constraints are chosen so that no additional degrees of freedom are added, keeping the system both tractable and comparable to the benchmarked Whipple model.

I make the assumptions that the model is (1) linear and (2) has two degrees of freedom. The best model for a given set of data is constrained by those two assumptions. The implications of this is that even if the model predicts the outputs from the measured inputs it may not reflect realistic parameter values in a first principles sense because all real systems have infinite order. Secondly, the identified model may not map to the assumption we make in first principles derivations about things such as joints, friction, inertia, etc. There may exist higher order models which both fit the output data well and better map parameter values to first principle constructs. For example, a bicycle model with side slip at each wheel will be sixth order and if the regression to find the best model has extra degrees of freedom in the two additional equations, the optimal solution may be such that the numerical values of the equation coefficients map more closely to the first principle parameters. For example, it may be possible to make a fourth order model behave similarly to a sixth order model with “correct” first principles parameters by choosing unrealistic parameter values. But if the primary goal is the control identification, rather than understanding the quality of our first principles derivations, the model of lowest order that still fits the data well is completely suited for the task.

I estimated the physical parameters of the first principles models with the techniques described in Chapter Physical Parameters. The bicycle was measured to get accurate estimates of the parameters used in the benchmark bicycle. Each rider’s inertial properties were estimated using Yeadon’s [Yea90b] method which allowed easy extraction of body segment parameters for more complicated rider biomechanic models such as the inclusion of moving arms as described above. The parameter computation is handled with two custom open source software packages [Dem11] and [MKSH11].

I have shown that a fourth order structured state space model is both adequate for describing the motion of the bicycle under manual control in a speed range from approximately 1.5 m/s to 9 m/s. The fact that higher order models may not be necessary for bicycle dynamic description is an important finding. More robust models of single track vehicles are typically higher than 4th order, with degrees of freedom associated with tire slip, frame flexibilities, and rider biomechanics. These findings suggest that the more complex models may be overkill for many modeling purposes. The data subsequently also reveals that fourth order archetypal first principles models are not robust enough to fully describe the dynamics. The deficiencies are most likely due to un-modeled effects, with the knife-edge, no side-slip wheel contact assumptions being the most probable candidate. Un-modeled rider biomechanics such as passive arm stiffness and damping and head motion may play a role too. The uncertainty in the estimates of the physical parameters from Chapter Physical Parameters is not large enough to explain the difference between the identified coefficient identification and their predictions from first principles. It is likely that something as simple as a “static” tire scrub torque is needed to improve the fidelity of the first principles derivations, but that doesn’t preclude that the additional of a tire slip model might also improve the models.

Figure 11.10 gives another view of the resulting data. It is a frequency response plot at the mean speed for a set of runs. The blue lines give the mean and one standard deviation bounds of the magnitude and phase of the system transfer function \(\frac{\phi}{T_\delta}(s)\) for the set of runs. Even though the spread in the identified parameters seems high in Figures 11.8 and 11.9 , the Bode plot shows that the identified system frequency response is not as variable, especially in magnitude. It is also apparent that the experimental magnitude mean has a -5 to -10 dB offset across the frequency range shown with respect to the Whipple model, although the Whipple model does fall within one standard deviation of the mean. This correlates with the amplitude differences in the trajectories shown in Figure 11.7 . Notice that the arm model has little to no offset between 2 and 10 rad/s, thus the better amplitude matching. The frequency response may give a better indication of the overall identified model quality.

I use this structured state space output error identification procedure for a collection of experiments (\(n=368\)) over a range of speeds between about 1 and 9 m/s. Figures 11.8 and 11.9 plot the identified coefficients of the dynamical equations of motion (i.e. the bottom two rows of the \(\mathbf{F}\) and \(\mathbf{G}\) matrices) as a function of speed for all of the experiments using box plots. Both the Whipple (green) and arm (red) model predictions are superimposed for comparison. The first notable thing is that the coefficients seem to generally have large variance, especially as the speed increases. Secondly, the roll acceleration, \(\ddot{\phi}\), equation seems to be better predicted by the two models and the data has less spread at the lower speeds, barring the \(\dot{\phi}\) coefficient which has large spread and no apparent relationship with speed for both equations. The roll equation also seems to have less spread in the experimental data. For example, the \(a_{\ddot{\phi}\delta}\) coefficient appears to be very tight and the first principles models predict it very well. The constant, linear, and quadratic trends in the coefficients are somewhat visible in the data but the variance in the coefficients clouds it. This variability in the coefficient predictions depends on many things including data quality, the ability to identify a process noise model, speed being constant during the run, choice of unknown coefficients, and more. With all of these improved, detailed regression models may be able to reveal the true trends . Nonetheless, these graphs reveal several important things:

The identified models are almost always unstable due to the high weave critical speed and, even though the measured inputs stabilize the true system, they will not necessarily stabilize the models. This poses an issue when gauging the model quality by the percentage variance of the output data explained by the model. A model that blows up during the simulation may not necessarily be a bad model, but it will return a very small percent variance and lose its ability to be compared by that criterion. [BBCL03] and [TJ10] both are able to run feed-forward simulations of their motorcycle models with the measured steering torque. They both are dealing with high speed motorcycles which typically only have a slightly unstable capsize mode. [TJ10] uses a controller to compensate the torque for unbounded errors so that the simulation doesn’t blow up. The method I use here is to choose short duration portions of the runs for simulation and search for the best set of initial conditions to keep the model stable during the duration. This generally works but there are ultimately some incomparable runs due to this issue.

Figure 11.7 shows typical example input and output data for a single run (#596) with both steer torque and lateral force as inputs. The plot compares the simulation response of the input to the measured response. Notice that the identified model predicts the trajectory extremely well. Similar results are found for the majority of the runs. The Whipple model predicts the trajectory directions but the magnitudes are large, meaning that for a given trajectory, the Whipple model requires less torque than that measured. The Whipple model with the arm inertial effects does a better job than the basic Whipple model, but still has some magnitude differences with respect to the identified model. It also has a harder time predicting the roll angle than both the identified model and the Whipple model.

It turns out that finding a model that meets the criterion is not too difficult when the output error form is considered (\(\mathbf{K}=0\)). This model may be able to explain the data well, but the parameter estimation is potentially poor because the parameters in the state and input matrices are adjusted such that the results fit both the true trajectories and the noise. Global minima in the search routine are quickly found when the number of parameters is between 10 and 14. When the \(\mathbf{K}\) matrix is added the number of unknown parameters increases by 16 and the global minimum becomes more difficult to find and I was rarely able, if ever, to find the global minimum for the general problem, even when reducing the number of outputs to one.

I made use of the Matlab System Identification Toolbox for the identification of the parameters \(\theta\) in each run of this model structure. In particular, a structured idss object was built with the initial guesses of the unknown parameters based on the Whipple model and the initial guesses for the initial conditions and the Kalman gain matrix being equal to zero. All of my attempts at identifying the Kalman gain matrix were plagued by local minima.

Before identification I further processed all of the signals that were generally symmetric about zero by subtracting the means over time. For some of the pavilion runs, this may have actually introduced a small bias, as the short duration runs with unbalanced perturbations may not have zero mean.

In general, the minimization problem is not trivial and may be susceptible to many of the issues associated with optimization including local minima. The number of unknown parameters in the \(\mathbf{K}\) matrix is a function of the number of states and the number of outputs, in our case in \(\mathbf{R}^{4\times4}\) which more than doubles the number of unknowns present in the \(\mathbf{A}\) and \(\mathbf{B}\) matrices. It is thus critical to reduce the number of unknown parameters to have a higher chance of finding the global minimum of the cost function. The accuracy of the system parameters depends on the ability to estimate the \(\mathbf{K}\) matrix along with the other parameters.

where \(p\) is the number of outputs and \(N\) is the number of samples. Then organize the predictor vector, \(\hat{Y}_N(\theta)\), the one step ahead prediction of \(Y_N\) given \(y(s)\) and \(u(s)\) where \(s \leq t - 1\)

We can now construct the cost function, which will enable the computation of the parameters which give the best fit using optimization methods. We’d like to minimize the error in the predicted output with respect to the measured output at each time step. First form \(Y_N\) which is a \(pN \times 1\) vector containing all of the current outputs at time \(kT\).

where \(q\) is the forward shift operator (\(q u(t) = u(t+1)\)) [Lju98] . The predictor is a vector of length \(p\) where each entry is a ratio of polynomials in \(q\). These are transfer functions in \(q\) from the previous inputs and outputs to the current output. In general, the coefficients of \(q\) are non-linear functions of the parameters \(\theta\).

where \(\mathbf{K}\) is the Kalman gain matrix. \(\mathbf{K}\) is a function of \(\mathbf{A}(\theta)\), \(\mathbf{C}(\theta)\) and the covariance and cross covariance of the process and measurement noises, but it can also be directly parameterized by \(\theta\). With that, this equation is called the directly parameterized innovations form [Lju98] and the entries of the four matrices in equation (3) can be estimated directly.

The additional terms \(w\) and \(v\) represent the process and measurement noise vectors, respectively, which are assumed to be sequences of white Gaussian noise with zero mean and some covariance. By making use of the Kalman filter, Equation (2) can be transformed such that the optimal estimate of the states, \(\hat{x}\), with respect to the process and measurement noise covariance are utilized, see [Lju98] .

Assuming that this model structure can adequately capture the dynamics of interest of the bicycle-rider system, our goal is to accurately identify the unknown parameters \(\theta\) which are made up of the unspecified entries in the \(\mathbf{F}\) and \(\mathbf{G}\) matrices. To do this one needs to recognize that this continuous formulation is not compatible with noisy discrete data. The following difference equation can be assumed if we sample the continuous system at \(t=kT\), \(k=1,2,\dots\), with \(T\) being the sample period and making the assumption that the variables are constant over the sample period (i.e. zero order hold).

For this analysis, I limit the inputs to steer torque and lateral force and the outputs to roll angle, steer angle, roll rate, and steer rate. The ideal fourth order system can be described with the following continuous state space description

During all of the experiments there are two measured external (or exogenous) inputs: the steer torque and the lateral force. Both inputs are generated manually, the first from the rider and the second from the person applying the pulsive perturbation. The outputs can be any subset of the measured kinematical variables or combinations thereof. The problem can then be formulated as follows: given the inputs and outputs of the system and some system structure, what model parameters give the best prediction of the output given the measured input. This a classic system identification problem.

Canonical Identification¶

One issue I faced with the state space realization was dealing with multiple experiments. Ideally I had hoped to identify a linear model that was a function of speed with respect to all or various subsets of the experiments. It is possible to concatenate runs, but discontinuities in the data potentially disrupt the identification. There is also the possibility of designing a cost function that gives the error in all the outputs across all of the runs simultaneously instead of on a per run basis. Both my recently obtained knowledge in system identification and the constraints of the methods available in the Matlab System Identification toolbox were limiting factors in these two approaches. But, Karl Åström suggested doing the system identification with respect to the second order form of the equations of motion. This would allow one to use both simple least squares for the solution and the ability to compute models from large sets of runs. This section deals with this approach.

Model structure¶ The identification of the linear dynamics of the bicycle can be formulated with respect to the benchmark canonical form realized in [MPRS07], Equation (11). If the time varying quantities in the equations are all known at each time step, the coefficients of the linear equations can be estimated given enough time steps. (11) \[\mathbf{M} \ddot{q} + v \mathbf{C}_1 \dot{q} + [g \mathbf{K}_0 + v^2 \mathbf{K}_2] q = T\] where the time-varying states roll and steer are collected in the vector \(q = [\phi \quad \delta]^T\) and the time varying inputs roll torque and steer torque are collected in the vector \(T = [T_\phi \quad T_\delta]^T\). This equation assumes that the velocity is constant with respect to time as the model was linearized about a constant velocity equilibrium, but the velocity can also potentially be treated as a time varying parameter if the acceleration is negligible. I extend the equations to properly account for the lateral perturbation force, \(F\), which was the actual input we delivered during the experiments. It contributes to both the roll torque and steer torque equations. (12) \[\mathbf{M} \ddot{q} + v \mathbf{C}_1 \dot{q} + [g \mathbf{K}_0 + v^2 \mathbf{K}_2] q = T + H F\] where \(H = [H_{\phi F} \quad H_{\delta F}]^T\) is a vector describing the linear contribution of the lateral force to the roll and steer torque equations. \(H_{\phi F}\) is approximately the distance from the ground to the force application point. \(H_{\delta F}\) is a distance that is a function of the bicycle geometry (trail, wheelbase) and the longitudinal location of the force application point. For our normal geometry bicycles, including the one used in the experiments, \(H_{\delta F} << H_{\phi F}\). I estimate \(H\) for each rider/bicycle from geometrical measurements and the state space form of the linear equations of motion calculated in Chapter Extensions of the Whipple Model. (13) \[\dot{x} = \mathbf{A} x + \mathbf{B} u\] where \(x = [\phi \quad \delta \quad \dot{\phi} \quad \dot{\delta}]^T\) and \(u = [F \quad T_\phi \quad T_\delta]^T\). The state and input matrices can be partitioned. (14) \[\begin{split}\mathbf{A} = \begin{bmatrix} 0 & \mathbf{I} \\ \mathbf{A}_l & \mathbf{A}_r \end{bmatrix}\end{split}\] (15) \[\begin{split}\mathbf{B} = \begin{bmatrix} 0 & 0\\ \mathbf{B}_F & \mathbf{B}_T \end{bmatrix}\end{split}\] where \(\mathbf{A}_l\) and \(\mathbf{A}_r\) are the 2 x 2 sub-matrices corresponding to the states and their derivatives, respectively. \(\mathbf{B}_F\) and \(\mathbf{B}_T\) are the 2 x 1 and 2 x 2 sub-matrices corresponding to the lateral force and the torques, respectively. The benchmark canonical form can now be written as (16) \[\mathbf{B}_T^{-1} [ \ddot{q} - \mathbf{A}_r \dot{q} - \mathbf{A}_l q] = T + \mathbf{B}_T^{-1} \mathbf{B}_F F\] where (17) \[\mathbf{M} = \mathbf{B}_T^{-1}\]\[v \mathbf{C}_1 = -\mathbf{B}_T^{-1} \mathbf{A}_r\]\[[g \mathbf{K}_0 + v^2 \mathbf{K}_2] = -\mathbf{B}_T^{-1} \mathbf{A}_l\]\[H = \mathbf{B}_T^{-1} \mathbf{B}_F\] The location of the lateral force point for each rider. Rider \(H\) Charlie \([0.902 \quad 0.011]^T\) m Jason \([0.943 \quad 0.011]^T\) m Luke \([0.902 \quad 0.011]^T\) m The location of the lateral force application point is the same for Charlie and Luke because they used the same seat height. The force was applied just below the seat, which was adjustable in height for different riders.

Data processing¶ Chapter Davis Instrumented Bicycle details how each of the signals were measured and processed. For the following analysis, all of the signals were filtered with a second order low pass Butterworth filter at 15 Hz. The roll and steer accelerations were computed by numerically differentiating the roll and steer rate signals with a central differencing method except for the end points being handled by forward and backward differencing. The mean was subtracted from all the signals except the lateral force.

Identification¶ A simple analytic identification problem can be formulated from the canonical form. If we have good measurements of \(q\), their first and second derivatives, forward speed \(v\), and the inputs \(T_\delta\) and \(F\), the entries in \(\mathbf{M}\), \(\mathbf{C}_1\), \(\mathbf{K}_0\), \(\mathbf{K}_2\), and \(H\) can be identified by forming two simple regressions, i.e. one for each equation in the canonical form. I use the instantaneous speed at each time step rather than the mean over a run to improve accuracy with respect to the speed parameter as it has some variability. The roll and steer equation each can be put into a simple linear form (18) \[\mathbf{\Gamma} \Theta = Y\] where \(\Theta\) is a vector of the unknown coefficients and \(\mathbf{\Gamma}\) and \(Y\) are made up of the inputs and outputs measured during a run. \(\Theta\) can be all or a subset of the entries in the canonical matrices. If there are \(N\) samples in a run and we desire to find \(M\) entries in the equation, then \(\mathbf{\Gamma}\) is an \(N \times M\) matrix and \(Y\) is an \(N \times 1\) vector. The Moore-Penrose pseudo inverse can be employed to solve for \(\Theta\) analytically. The estimate of the unknown parameters is then (19) \[\hat{\Theta} = [\mathbf{\Gamma}^T \mathbf{\Gamma}]^{-1} \mathbf{\Gamma}^T Y\] For example, if we fix the mass terms in the steer torque equation and let the rest be free the linear equation is (20) \[\begin{split}\begin{bmatrix} v(1) \dot{\phi}(1) & v(1) \dot{\delta}(1) & g \phi(1) & g \delta(1) & v(1)^2 \phi(1) & v(1)^2 \delta(1) & - F(1)\\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots & \vdots\\ v(N) \dot{\phi}(N) & v(N) \dot{\delta}(N) & g \phi(N) & g \delta(N) & v(N)^2 \phi(N) & v(N)^2 \delta(N) & - F(N)\\ \end{bmatrix} \begin{bmatrix} C_{1\delta\phi}\\ C_{1\delta\delta}\\ K_{0\delta\phi}\\ K_{0\delta\delta}\\ K_{2\delta\phi}\\ K_{2\delta\delta}\\ H_{\delta F} \end{bmatrix} \\ = \begin{bmatrix} T_\delta(1) - M_{\delta\phi} \ddot{\phi}(1) - M_{\delta\delta} \ddot{\delta}(1)\\ \vdots\\ T_\delta(N) - M_{\delta\phi} \ddot{\phi}(N) - M_{\delta\delta} \ddot{\delta}(N) \end{bmatrix}\end{split}\] The error in the fit is (21) \[\epsilon = \hat{Y} - Y = \mathbf{\Gamma} \hat{\Theta} - Y\] The covariance of \(\Theta\), Equation (23), of the parameter estimations can be computed with respect to the error. (22) \[\sigma^2 = \frac{\epsilon^T\epsilon}{N - d}\] (23) \[\mathbf{U} = \sigma^2 (\mathbf{\Gamma}^T \mathbf{\Gamma})^{-1}\] Equations (19), (21), (22), and (23) can be solved for each run individually, a portion of a run, or a set of runs. Secondly, all of the parameters in the canonical matrices need not be estimated. The analytical benchmark bicycle model [MPRS07] gives a good idea of which entries in the matrices we may be more certain about from our physical parameters measurements in Chapter Physical Parameters. I went through the benchmark formulation and fixed the parameters based on these rules, keeping in mind that even little numbers can have large effects to the resulting dynamics: If the parameter is greatly affected by trail, leave it free.

If the parameter is greatly affected by the front assembly moments and products of inertia, leave it free.

If the parameter is identically equal to zero, fix it. The reasoning for these assumptions are: Trail is difficult to measure and be certain about, especially since the bicycle tire deforms and creates a variable shaped tire contact patch which depends on the tires properties, pressure, and the configuration of the bicycle. The true trail is what is typically called pneumatic trail and gives the location in the tire patch at which the resultant contact force acts.

The front frame moments and products of inertia play a large role in the steer dynamics and I’m not as confident in the estimation of these due to the fact that our apparatus was more suited to the estimate the inertial properties of the rear frame than the front.

The zero entries in the velocity dependent stiffness and damping matrices that correspond to the roll angle and rate are assumed to hold from first principles. For the roll equation this leaves \(M_{\phi\delta}\), \(C_{1\phi\delta}\), and \(K_{0\phi\delta}\) as free parameters, and for the steer equation this leaves \(M_{\delta\phi}\), \(M_{\delta\delta}\), \(C_{1\delta\phi}\), \(C_{1\delta\delta}\), \(K_{0\delta\phi}\), \(K_{0\delta\delta}\), \(K_{2\delta\delta}\), and \(H_{\delta F}\) as free parameters. I start by identifying the three coefficients of the roll equation for the given data. This choice is due to there being more certainty in the roll equation estimates from first principles because there are fewer unknown parameters. (24) \[\begin{split}\begin{bmatrix} \ddot{\delta}(1) & v(1) \dot{\delta}(1) & g \delta(1) \\ \vdots & \vdots & \vdots\\ \ddot{\delta}(N) & v(N) \dot{\delta}(N) & g \delta(N) \\ \end{bmatrix} \begin{bmatrix} M_{\phi\delta} \\ C_{1\phi\delta} \\ K_{0\phi\delta} \end{bmatrix} \\ = \begin{bmatrix} H_{\phi F} F(1) - M_{\phi\phi} \ddot{\phi}(1) - C_{1\phi\phi} v(1) \dot{\phi}(1) - K_{0\phi\phi} g \phi(1) - K_{2\phi\phi} v(1)^2 \phi(1) - K_{2\phi\delta} v(1)^2 \delta(1) \\ \vdots\\ H_{\phi F} F(N) - M_{\phi\phi} \ddot{\phi}(N) - C_{N\phi\phi} v(N) \dot{\phi}(N) - K_{0\phi\phi} g \phi(N) - K_{2\phi\phi} v(N)^2 \phi(N) - K_{2\phi\delta} v(N)^2 \delta(N) \\ \end{bmatrix}\end{split}\] I then enforce the assumptions that \(M_{\phi\delta} = M_{\delta\phi}\) and \(K_{0\phi\delta} = K_{0\delta\phi}\) to fix these values in the steer equation to the ones identified in the roll equation, leaving fewer free parameters in the steer equation . This symmetry is enforced to coincide with the theory and choice of coordinates. Finally, I identify the remaining steer equation coefficients with (25) \[\begin{split}\begin{bmatrix} \ddot{\delta}(1) & v(1) \dot{\phi}(1) & v(1) \dot{\delta}(1) & g \phi(1) & v(1)^2 \delta(1) & - F(1)\\ \vdots & \vdots & \vdots & \vdots & \vdots & \vdots \\ \ddot{\delta}(N) & v(N) \dot{\phi}(N) & v(N) \dot{\delta}(N) & g \phi(N) & v(N)^2 \delta(N) & - F(N)\\ \end{bmatrix} \begin{bmatrix} M_{\delta\delta} \\ C_{1\delta\phi} \\ C_{1\delta\delta} \\ K_{0\delta\phi} \\ K_{2\delta\delta} \\ H_{\delta F} \end{bmatrix} \\ = \begin{bmatrix} T_\delta(1) - M_{\delta\phi} \ddot{\phi}(1) - K_{0\delta\delta} g \delta(1) - K_{2\delta\phi} v(1)^2 \phi(1) \\ \vdots\\ T_\delta(N) - M_{\delta\phi} \ddot{\phi}(N) - K_{0\delta\delta} g \delta(N) - K_{2\delta\phi} v(N)^2 \phi(N) \\ \end{bmatrix}\end{split}\]

Results¶ I selected data for three riders on the same bicycle, performing two maneuvers, in two different environments. There is little reason to believe the dynamics of the passive system should vary much with respect to different maneuvers, but there is potentially variation across riders due to the differences in their inertial properties and there may be variation across environments because of the differences in the wheel to floor interaction. I opted to compute the best fit model across series of runs to benefit from the large dataset. This leaves these four scenarios: All riders in both environments, one data set

All riders in each environment, two data sets

Each rider in both environments, three data sets

Each rider in each environment, six data sets The number of runs and time samples in each data subset. Rider Environment Number of runs Number of time samples, \(N\) (C)harlie (H)orse treadmill 24 267773 (C)harlie (P)avilion 87 118700 (C)harlie (A)ll 111 386473 (J)ason (H)orse treadmill 57 804995 (J)ason (P)avilion 93 112582 (J)ason (A)ll 150 917577 (L)uke (H)orse treadmill 25 272719 (L)uke (P)avilion 88 125878 (L)uke (A)ll 113 398597 (A)ll (H)orse treadmill 106 1345487 (A)ll (P)avilion 268 357160 (A)ll (A)ll 374 1702647 A total of 12 different models can be derived from this perspective.

All riders in both environments¶ This section details the example results for one subset of data. Here I make the assumption that the best fit model doesn’t vary much across riders or environments. The assumption that the passive model of the bicycle and rider are similar with respect to rider can be justified by recognizing that the Whipple model predicts little difference in the dynamics with respect to the three bicycle/rider combinations. On the other hand, I have little reason to believe the environments are the same except that both floors are made of a rubber like material. I calculated the best fit over 374 runs giving about 142 minutes of data sampled at 200 Hz, \(N=1720647\). The eigenvalues as a function of speed of the identified model can be compared to those of the Whipple and arm models, see Section Rider Arms in Chapter Extensions of the Whipple Model. Figure 11.11 shows the root locus of the three models. The oscillatory weave mode exists in all three models, with it always being stable in the arm model but being unstable at lower speeds in the other two models. The identified model’s oscillatory weave mode is unstable over most of the shown speed range. Above 3 m/s or so, the Whipple model’s oscillatory weave mode diverges from the identified model to different asymptotes. The arm model weave mode diverges somewhere in between. Note that the arm model has an unstable real mode for all speeds. Figure 11.12 gives a different view of the root locus allowing one to more easily compare the real parts of the eigenvalues. The imaginary parts of the weave mode have similar curvature with respect to speed for all the models, with the identified model having about 1 rad/s larger frequency of oscillation for all speeds. The identified model does have a stable speed range where the Whipple model under predicts the weave critical speed by almost 2 m/s. The identified caster mode is much faster than the one predicted by the Whipple model which is somewhat counterintuitive because tire scrub torques would probably tend to slow the caster mode. Although, the pneumatic trail and the rider’s arm inertia could play a larger role that expected. Furthermore, the caster mode may not be well identified because the experiments were not design to specifically excite it. The identification process is based on identifying the input/output relationships among measured variables. The frequency response provides a view into these relationships. Figures 11.13 to 11.16 give a picture of how the first principles models compare to the identified model with respect to frequency response from a roll torque input. The frequency band from 1 rad/s to 12 rad/s is of most concern as it bounds a reasonable range that the human may be able to operate within. The roll torque to roll angle response Figure 11.13 shows that at 2 m/s (solid lines) the response of the Whipple model and the identified model are practically identical across the frequency range shown. On the other hand, the arm model predicts the high frequency (> 4 rad/s) behavior really well, but the magnitude is as great as 50 dB larger and the phase off by 180 degrees at lower frequencies. At 4 m/s the Whipple model still predicts the phase well, but the magnitudes do not match below 100 rad/s with 10 dB difference at lower frequencies. At this speed the arm model matches the identified model as low as 3.5 rad/s but the low frequency phase still being 180 degrees off. The magnitude of the identified model stays quite constant among the 4, 6, and 9 m/s models. As the speed increases the Whipple and arm models are less predictive of the identified model at low frequencies, but tend to match out past 4 rad/s or so. Figure 11.14 shows the steer angle response with respect to the roll torque. Once again the Whipple model is almost identical to the identified model at the lowest speed, 2 m/s. The arm model has about a +5 dB offset at low frequencies and a -10 dB offset at high frequencies with the models only being similar just around 4 rad/s. At 9 m/s the Whipple model has similar magnitude and phase above 7 rad/s whereas the low frequency shows that the Whipple model has up to +30 dB magnitude difference with respect to the identified model. The arm model behaves in much the same way at 9 m/s. The steer torque to roll angle transfer function, Figure 11.15 may be the most important to model accurately as it is the primary method of controlling the bicycle’s direction, i.e. commanding roll allows one to command yaw. At 2 m/s the Whipple model magnitude matches at lower frequencies (< 4 rad/s) better and the arm model better at higher frequencies (> 4 rad/s). A 4 m/s and above the magnitude of identified varies little with speed, which contrasts the stronger speed dependence of the first principles models. The low frequency behavior of the identified model is not well predicted by the Whipple and arm models at the three highest speeds but about about 3 rad/s the arm model shows better magnitude matches than the Whipple model. The steer torque to steer angle frequency response, Figure 11.16, shows that at speeds above 2 m/s the first principle models do not predict the response well at low frequencies. The response changes more drastically with respect to speed for the first principles models than for the identified model.

Comparison of identified models¶ Tables 11.3, 11.4, and 11.5 present the identified canonical coefficient values from all twelve of the chosen data subsets. The variances of the coefficient estimates with respect to how well the model fits the data in the steer equation are quite low except for the \(H_{\delta F}\) parameter. The low variance is partially due to the large datasets but also due to the quality of the resulting fits. The \(H_{\delta F}\) is highly dependent on the trail which is expected to be difficult to identify. The coefficient estimates are not all repeatable among the data subsets. In particular \(C_{1\delta\phi}\) and \(H_{\delta F}\) have the largest relative variance among the models (> 62%). \(M_{\delta\delta}\), \(C_{1\phi\delta}\), \(C_{1\delta\delta}\), and \(K_{2\delta\delta}\) are the most consistent among the models (< 18%) with the remaining coefficients falling somewhere in between. This is odd because these data sets are not independent of one another where some are subsets of the others but once again the identification procedure does not explicitly account for process noise and the coefficient estimates reflect this. A sensitivity study for each coefficient with respect to the various physical parameters could help reveal which parameters less likely fit into the Whipple model mold. Identified coefficients of the benchmark bicycle model for various sets of data. The first column indicates which rider’s runs were used: (C)harlie, (J)ason, (L)uke or (A)ll. The second column indicates which environment’s runs were used: (P)avilion Floor, (H)orse Treadmill, or (A)ll. The remaining columns give the resulting numerical value of the identified parameter, its standard deviation with respect to the model fit, and the percent difference with respect to the value predicted by the Whipple model. Table generated by src/systemidentification/canonical_tables.py . \(M_{\phi\delta}\) \(C_{1\phi\delta}\) \(K_{0\phi\delta}\) R E Value \(\sigma\) % Diff Value \(\sigma\) % Diff Value \(\sigma\) % Diff A H 1.659 0.010 -27.6% 21.35 0.02 -49.3% -5.29 0.06 123.2% C H 3.36 0.02 54.4% 20.05 0.04 -49.8% -0.1 0.1 -96.5% L P 2.56 0.03 13.2% 33.53 0.05 -19.5% -4.53 0.10 91.7% J P 2.53 0.02 3.7% 30.04 0.05 -32.7% -1.82 0.10 -26.7% C A 3.75 0.02 72.6% 21.19 0.05 -47.0% -1.9 0.1 -16.5% L H 1.82 0.02 -19.5% 19.18 0.04 -53.9% -6.84 0.10 189.8% A A 2.284 0.008 -0.3% 23.94 0.02 -43.1% -3.92 0.04 65.4% J H 0.95 0.01 -61.0% 22.21 0.02 -50.3% -7.13 0.08 187.5% L A 2.19 0.02 -3.1% 25.94 0.03 -37.7% -5.37 0.07 127.4% A P 3.02 0.02 31.7% 28.64 0.04 -31.9% -2.93 0.08 23.8% J A 1.70 0.01 -30.4% 24.26 0.02 -45.7% -3.97 0.06 60.2% C P 4.15 0.05 90.8% 22.3 0.1 -44.1% -3.4 0.3 48.6% Identified coefficients of the benchmark bicycle model for various sets of data. The first column indicates which rider’s runs were used: (C)harlie, (J)ason, (L)uke or (A)ll. The second column indicates which environment’s runs were used: (P)avilion Floor, (H)orse Treadmill, or (A)ll. The remaining columns give the resulting numerical value of the identified parameter, its standard deviation with respect to the model fit, and the percent difference with respect to the value predicted by the Whipple model. Table generated by src/systemidentification/canonical_tables.py . \(M_{\delta\delta}\) \(C_{1\delta\phi}\) \(C_{1\delta\delta}\) R E Value \(\sigma\) % Diff Value \(\sigma\) % Diff Value \(\sigma\) % Diff A H 0.2088 0.0003 -5.3% -0.891 0.002 183.0% 1.5982 0.0008 14.8% C H 0.1435 0.0007 -34.0% -0.881 0.006 179.6% 1.601 0.002 19.5% L P 0.2505 0.0009 14.2% -0.549 0.009 74.2% 2.100 0.003 52.6% J P 0.1786 0.0007 -20.4% -1.09 0.01 246.6% 1.915 0.002 31.0% C A 0.1760 0.0008 -19.1% -0.380 0.008 20.7% 1.675 0.002 25.0% L H 0.2336 0.0007 6.5% -1.058 0.005 235.8% 1.726 0.002 25.5% A A 0.2000 0.0003 -9.2% -0.888 0.002 182.0% 1.7337 0.0008 24.5% J H 0.2500 0.0005 11.5% -0.849 0.003 169.6% 1.545 0.001 5.7% L A 0.2385 0.0006 8.7% -1.053 0.004 234.4% 1.943 0.002 41.3% A P 0.1949 0.0006 -11.6% -0.236 0.007 -24.9% 1.872 0.002 34.4% J A 0.2012 0.0003 -10.2% -0.953 0.002 202.4% 1.6592 0.0009 13.5% C P 0.220 0.002 1.3% 0.84 0.02 -366.5% 1.702 0.005 27.0% Identified coefficients of the benchmark bicycle model for various sets of data. The first column indicates which rider’s runs were used: (C)harlie, (J)ason, (L)uke or (A)ll. The second column indicates which environment’s runs were used: (P)avilion Floor, (H)orse Treadmill, or (A)ll. The remaining columns give the resulting numerical value of the identified parameter, its standard deviation with respect to the model fit, and the percent difference with respect to the value predicted by the Whipple model. Table generated by src/systemidentification/canonical_tables.py . \(K_{0\delta\delta}\) \(K_{2\delta\delta}\) \(H_{\delta F}\) R E Value \(\sigma\) % Diff Value \(\sigma\) % Diff Value \(\sigma\) % Diff A H -0.6055 0.0003 -18.1% 2.182 0.002 -0.7% 0.0064 0.0008 -41.5% C H -1.2406 0.0007 75.5% 2.563 0.006 21.9% 0.020 0.002 77.1% L P -0.4889 0.0009 -33.7% 2.603 0.009 18.9% 0.011 0.003 -1.3% J P -0.6561 0.0007 -15.3% 1.99 0.01 -13.2% 0.007 0.002 -30.2% C A -0.9017 0.0008 27.6% 2.763 0.008 31.4% 0.018 0.002 59.1% L H -0.3181 0.0007 -56.8% 2.508 0.005 14.5% 0.006 0.002 -44.1% A A -0.6678 0.0003 -9.7% 2.340 0.002 6.5% 0.0086 0.0008 -21.8% J H -0.3579 0.0005 -53.8% 1.968 0.003 -14.3% -0.000 0.001 -100.9% L A -0.4614 0.0006 -37.4% 2.524 0.004 15.2% 0.008 0.002 -31.0% A P -0.6003 0.0006 -18.8% 2.469 0.007 12.4% 0.013 0.002 17.7% J A -0.6207 0.0003 -19.8% 1.996 0.002 -13.1% 0.0047 0.0009 -55.7% C P -0.288 0.002 -59.3% 2.81 0.02 33.8% 0.020 0.005 79.9% It is interesting to note that \(C_{1 \delta \phi}\) deviates quite significantly from the Whipple model prediction. This term depends on the wheel radii, wheel rotational inertia, wheelbase, steer axis tilt, and trail. All of these but trail are easily measured so it is tempting to solve for trail given \(C_{1 \delta \phi}\) and the other measured parameters described in [MPRS07]. (26) \[c = -\frac{w(C_{1 \delta \phi} + S_F \operatorname{cos}\lambda)}{S_T \operatorname{cos}\lambda}\] The results for each data subset are given in Table 11.6. On average the values are extremely unrealistic when compared to the measured geometric trail of \(c=0.0599\) meters. This may imply that including the effects of pneumatic trail would not be enough to improve the predictive capabilities of the Whipple model. It also points to the potentially erroneous assumptions made in this identification effort such as the order of the system and which parameters are fixed. Even thought the model is quite adequate for describing the measured motion, it lacks the complexness to identify the precise deficients in the first principles assumptions. The trail computed from the identified \(C_{1 \delta \phi}\) and the measured physical parameters. R-E A-H C-H L-P J-P C-A L-H A-A J-H L-A A-P J-A C-P \(c\) [m] 1.006 0.989 0.443 1.335 0.167 1.279 1.001 0.937 1.272 -0.069 1.107 -1.835 The measurement errors, model structure and order dictate how well the models can predict the input-output behavior of each run or even each perturbation. The ideal goal is to select one or a small set of models that do a good job at predicting the measured behavior for each run. The previous section’s state space methods have already shown that the Whipple and arm models may not provide adequate predictions. Figures 11.17, 11.18, and 11.19 plot the steer torque to roll angle frequency response for three speeds: 2 m/s, 5.5 m/s and 9.0 m/s for each of the models in Tables 11.3, 11.4, and 11.5. At the lowest speed, all of the models have a similar frequency response, especially in the frequency band between about 1 an 20 rad/s. At 5.5 m/s the models are similar at a higher bandwidth, 4 to 30 rad/s, and at 9.0 m/s even higher, 10 to 50 rad/s. Notice that the frequency band where the models are most similar shifts to higher frequencies at higher speeds. The model derived from all of the data (all rider and all runs), gives an average model and if this model is significantly better at predicting the measured behavior of the Whipple and arm models, it may be a good general candidate model for this bicycle. The predictive capability and quality of a given model can be quantified by an assortment of criterion and methods. I’ve made use of two criterion to judge the quality of these models with respect to given data. The first is to simulate the system given the measured inputs. This method works well when the open loop system is stable, but if it is unstable as so in the case of this bicycle, it may be difficult to simulate. Searching for initial conditions that give rise to a stable model for the duration of the run or simulating by weighting the future error less may relieve the instability issues. Another option is to see how well the inputs are predicted given the measured outputs. The canonical form of the equations lend themselves to this and only two inputs per run need be checked. The predicted torques on the system are (27) \[y_p = \mathbf{M} \ddot{q} + v \mathbf{C}_1 \dot{q} + [g \mathbf{K}_0 + v^2 \mathbf{K}_2] q\] and the measured torques as (28) \[y_m = T + H F\] \(y_p\) and \(y_m\) can be computed for each run along with the variance accounted for (VAF), by the model for both the total roll torque and the steer torque (29) \[\textrm{VAF} = 1 - \frac{||y_p - y_m||}{||y_m - \bar{y}_m||}\] I compute the VAF for each of the 374 runs used in the canonical identification outlined in Equation (29) using each of the 12 identified models and both the Whipple and Arm models. This percentage can be used as a criterion with which to judge the ability of one model versus another to predict the measurement. I then take the median of the VAF over each of the 12 sets of runs, Tables 11.7 and 11.8. The results give an idea of how well the various models are able to predict the data for all of the runs in a given set. Median VAF for the roll equation of various models (rows) for all runs in each data subset (columns). A-A A-H A-P C-A C-H C-P J-A J-H J-P L-A L-H L-P A-A -11.9% -39.5% -8.5% -28.9% -20.4% -30.2% -30.5% -71.9% -21.9% 9.0% 5.4% 9.0% A-H -19.3% -43.4% -16.9% -35.8% -27.7% -38.6% -37.4% -85.0% -26.9% 0.5% -2.1% 0.5% A-P -3.6% -31.8% 2.1% -19.4% -19.4% -19.8% -22.7% -55.3% -11.8% 20.3% 11.1% 20.5% C-A -14.8% -50.3% -11.1% -26.8% -31.1% -26.8% -34.9% -83.1% -22.5% 3.0% -5.7% 3.5% C-H -17.2% -49.6% -13.9% -31.8% -31.9% -31.8% -35.8% -76.0% -24.5% -0.3% -8.1% -0.2% C-P -13.4% -51.7% -8.8% -22.5% -31.2% -22.5% -36.1% -91.0% -21.3% 6.0% -4.5% 6.9% J-A -13.9% -38.0% -9.6% -31.6% -20.6% -33.8% -31.0% -67.6% -23.4% 7.5% 5.8% 7.6% J-H -21.1% -43.9% -17.5% -39.8% -27.5% -41.7% -38.6% -81.7% -28.5% 0.5% -0.0% 0.6% J-P -2.5% -27.5% 3.0% -18.2% -18.2% -18.6% -20.1% -43.1% -10.3% 21.0% 12.9% 21.1% L-A -9.9% -29.4% -5.2% -26.0% -18.5% -28.1% -27.4% -64.3% -19.5% 13.2% 9.4% 13.3% L-H -26.1% -53.4% -23.1% -39.4% -37.5% -42.5% -41.8% -77.0% -31.6% -8.2% -12.1% -7.8% L-P -0.3% -29.7% 8.2% -20.8% -31.3% -20.8% -25.9% -35.8% -16.8% 22.5% 11.0% 22.6% Whipple -10.8% -37.5% -3.1% -28.5% -37.4% -28.5% -44.2% -67.5% -35.9% 17.6% 17.8% 16.2% Arm -11.6% -36.4% -4.1% -27.8% -36.2% -27.8% -46.0% -64.1% -32.9% 15.8% 13.6% 16.9% Mean VAF for the steer equation of various models (rows) for all runs in each data subset (columns). A-A A-H A-P C-A C-H C-P J-A J-H J-P L-A L-H L-P A-A 59.4% 56.8% 60.0% 60.6% 49.7% 61.2% 58.7% 60.1% 58.4% 59.3% 56.2% 60.3% A-H 53.4% 53.4% 53.4% 53.5% 46.8% 54.2% 55.7% 58.1% 55.3% 51.8% 51.7% 51.8% A-P 63.1% 58.1% 64.3% 64.0% 54.4% 65.8% 57.5% 57.9% 57.4% 65.3% 59.7% 66.8% C-A 49.4% 44.9% 50.2% 50.9% 42.9% 51.6% 48.0% 45.1% 49.0% 49.4% 46.1% 50.2% C-H 47.5% 47.3% 47.7% 47.1% 45.5% 47.2% 50.0% 50.5% 49.3% 47.0% 45.3% 47.0% C-P 44.1% 41.6% 45.2% 46.9% 41.6% 48.4% 40.5% 39.9% 40.7% 43.9% 43.3% 45.1% J-A 60.2% 58.1% 60.9% 59.9% 51.4% 61.8% 59.6% 63.1% 59.1% 60.5% 57.7% 60.9% J-H 46.1% 50.3% 45.5% 42.1% 41.8% 42.3% 50.8% 53.4% 49.5% 44.9% 46.9% 42.9% J-P 64.5% 60.5% 65.1% 62.9% 57.7% 64.6% 61.5% 62.2% 60.8% 67.8% 63.6% 69.0% L-A 58.4% 57.8% 58.6% 56.8% 51.1% 57.8% 57.0% 59.6% 55.2% 60.3% 60.1% 61.2% L-H 47.2% 49.8% 47.0% 46.5% 43.4% 46.7% 49.9% 52.4% 48.9% 46.7% 47.8% 46.6% L-P 61.7% 59.5% 62.9% 60.2% 50.0% 62.7% 54.3% 60.6% 52.8% 68.2% 63.0% 70.0% Whipple 55.3% 51.0% 56.4% 56.1% 48.7% 58.4% 55.4% 55.5% 55.4% 53.0% 49.5% 55.7% Arm 28.0% 18.6% 30.3% 36.2% 18.9% 37.4% 17.6% 20.4% 12.6% 29.3% 15.9% 34.2% Tables 11.7 and 11.8 give the median for each set of runs in each column for each model given in the row for roll and steer respectively. The maximum VAF in the column gives a measure of the best model for predicting each individual run in that set of runs. Intuitively, I would expect that the diagonal of the upper 12 rows would be the maximum in each column due to the fact that that model was derived from that set of runs, but that is not always the case. I believe that this can be explained by the fact that there are more outlier runs in some sets. These outliers have enough effect in the resulting regressions, that the models generated from sets of runs with fewer outliers are able to predict the data better. The models are able to predict the steer torque much better than the roll torque. The roll torque should be zero in all of the runs without disturbances but the roll equations do not predict a zero value. This is also reflected in the negative median values of all the runs with disturbances in much of Table 11.7. We fixed six of the nine parameters in the roll equation to those of the Whipple model and fixed three of the nine parameters in the steer equation. These extra degrees of freedom can partially explain why the steer predictions are better than the roll predictions. The model for the roll torque is more susceptible to the noise in the rate and angle measurements and has consequences of +/- 50 Nm variation in the predicted roll torques. These are unfortunately comparable in magnitude to the measured roll torques due to the lateral perturbations. But Table 11.7 can still be used to gage which models are better with reference to each other. The values in Table 11.7 are only generated from the runs with disturbances, as a relative measure of quality to zero is hard to make. Tables 11.7 and 11.8 reveal: The arm model is poor at predicting the steer torque.

The models derived from Charlie’s runs are poorer at predicting the inputs.

The Whipple model is not too bad at predicting steer torque, but on average about 10% worse than the best models.

The models identified from the pavilion runs are generally the best (with exception of Charlie’s). The ones generated from Luke and Jason’s runs are typically the best at predicting both steer torque and roll torque, with Luke’s giving better roll torque predictions.

The roll torque is poorly predicted by all models when it is supposed to be zero. This raises implications in the validity of the roll equation and the potential need for tire slip models. It may seem odd that a model identified from the subset of runs of one rider in one environment is the best at predicting the runs on a individual basis, but the uncertainty and error in both the data and the model structures don’t dictate that this can’t be. Keep in mind that all of the frequency responses of all 12 models shown in Figures 11.17, 11.18, and 11.19 are probably bounded in the uncertainty of the predicted responses and each can be considered a “good” model, even including the Whipple model. The second method of evaluating the quality of the identified models is to simulate the model with the measured inputs and compare the predicted outputs with the measured outputs with a similar VAF criterion. I simulated all 14 models with the inputs from the 374 runs and computed the VAF explained by the model for each output. Since the models are typically unstable at all of the speeds we tested, I searched for the set of initial conditions which minimizes the VAF for all outputs. For the majority of runs and models, this is sufficient to find a stable simulation for the duration of the run. However, this is not always the case. For long duration runs I select a random 20 second section of the data to simulate, reducing the likelihood that the simulation blows up due to the model’s instability. Finally, I ignore any outputs VAFs that are less than -100 percent as they are most likely due to unstable simulations. Table 11.9 presents the median percent variance accounted for across all runs for each model and each output. The best model seems to be the one generated from the data with Luke on the Pavilion Floor once again, but these results differ from the previous otherwise. For all outputs other than roll angle, the arm model is better than the Whipple model.

The models from Charlie’s data fare much better than the input comparisons and are better than some of Jason’s.

The model identified from the data with Jason on the Pavilion floor is very poor in roll angle prediction as opposed to being a good choice from the input comparison results.

All of the identified models are better predictors than the first principles models. The median VAF in the simulation output variables. phi delta phiDot deltaDot AA 28.6% 61.8% 51.8% 65.2% CH 18.6% 57.2% 52.6% 62.2% LA 29.4% 59.8% 52.9% 67.9% AH 24.1% 57.4% 43.1% 64.2% CA 14.9% 54.5% 51.7% 59.8% JP -3.4% 35.4% 34.1% 61.7% LH 24.3% 57.7% 46.1% 65.7% AP 29.7% 58.9% 60.6% 63.2% JH 22.8% 53.6% 42.0% 62.8% LP 38.2% 62.8% 60.9% 68.4% CP 19.0% 46.0% 42.0% 47.1% JA 27.9% 61.0% 49.4% 65.9% Whipple -21.0% 10.3% 5.8% 12.2% Arm -33.1% 19.6% 29.7% 33.1% The mean percent variance across the outputs can be computed and the models ranked by the mean, Table 11.10. The best model seems to be LP and the AA is also a pretty good predictor. Notice that the Whipple model is poorer than the arm model. The mean of the median VAF in the simulation output variables presented in Table 11.9. Model L-P A-P L-A A-A J-A L-H C-H Mean 57.6% 53.1% 52.5% 51.8% 51.1% 48.5% 47.7% Model A-H J-H C-A C-P J-P Arm Whipple Mean 47.2% 45.3% 45.2% 38.5% 31.9% 12.3% 1.8% The orange lines in Figures 11.8 and 11.9 correspond to the L-P model which allows comparison of the results of the canonical identification process with those of the state space identified models. The L-P model seems be better at fitting the data, especially in the steer acceleration equation, but the large variance in the state space coefficients is still a problem. This lends more confidence that that the L-P model is a better model choice than the Whipple or the arm model.

Discussion¶ Canonical identification The canonical realization, Section Canonical Identification, is a good method for identifying a model for data from multiple runs. It relies on quality measurements of the coordinates, rates, and accelerations. I use numerical differentiation of the rates to get the accelerations instead of direct measurements and the angles are not perfectly related to the rates through differentiation because they were measured from different sensors. The noise in the measurements and whether the measurements are accurately the derivatives of one another have bearing on the results. It is possible to identify all of the entries in the canonical matrices, but it is likely some of those are easily predicted from first principles so I fix them to the Whipple model predictions if that is the case. This leaves the roll equation mostly known and the steer equation mostly unknown and the results reflect better fits with respect to steer than roll as a result. This formulation does not explicitly account for process noise, so it may be be susceptible to similar accuracy errors as the state space formulation is. The advantage in this method is the ability to use large sets of data for the calculations. It is extremely surprising that a model from a small subset of the data is better at predicting all of the runs on an individual basis. Input comparison The input prediction comparisons do not predict the roll torque well at all. It seems that the roll torque equation magnifies the noise in the coordinate, rate, and acceleration measurements such that the resulting noise in the roll torque is equivalent in magnitude to the roll perturbations. But the roll perturbations do seem to clearly be present in the predictions. This results in difficultly comparing the quality of the resulting models with respect to the roll equation. This also points to the potential deficiencies in the Whipple roll torque equation and these large magnitude roll torques may also be due to inaccurate modeling of the tire dynamics. Output comparison The output comparison (simulations) give more reasonable results because all four outputs generally fit well across runs given the measured inputs. It is surprising that the ranking of model prediction ability is different for the input comparisons than the output comparisons, but the fact that the model identified from Luke’s pavilion runs is the best from both comparisons, at least gives credence to its further adoption. The first principles models are dead last in the ranking and the model identified from Jason’s pavilion runs is surprisingly poor due to poor roll angle prediction. Whipple model The input comparisons show that the Whipple model is relatively reasonable at predicting the data but the output comparisons make it out to be much poorer. The Whipple model is clearly the worst at explaining the variance in the steer angle, roll rate, and steer rate outputs and is second to worst in roll angle. Also contrary to the Whipple model predictions, the weave mode of all identified models is unstable until at least 8-9 m/s or so. The caster mode is also typically much faster in the identified models. This implies that the real system does not benefit from open loop stability at all during most normal speed bicycling and that the rider is always responsible for stabilizing the vehicle. This may explain why none of the riders ever felt comfortable enough to try hands-free riding while strapped into the harness. Arm model I had hypothesized that the arm model would better predict the measured motion because it more accurately modeled the fact that we allowed the rider full use of his arms to control the steering and that the arms effectively added to the front frame inertia. This was validated with respect to the output simulation comparisons. They predict that the arm model is much better than the Whipple model for most of the output variables. But this is in contrast to the input comparison predictions which were the opposite, with the Whipple being much better than the arm model. More work is needed to verify which model is better and why the results differ at all. Rider biomechanics may mot be modeled The models identified from Charlie’s runs are different than those of Jason and Luke. The models from Charlie’s runs do not predict the runs very well, even including the subset of Charlie’s data. I’m not sure if the rider’s arm stiffness can affect these results or how much the different riders can effect this if we are only searching for the passive bicycle-rider model. The other potential explanation is that there are too many outliers in Charlie’s runs. This could have something to do with the runs that had time synchronization issues. Predicting derivatives The roll angle is more poorly predicted than the other variables. The steer angle and steer rate are better predicted than the roll angle and roll rate. In the output comparisons I enforce that the roll rate is the derivative of the roll and the same for the steer variables. The poorer prediction of roll angle is probably due to noise and error in the independent measurements of these variables. I toyed with complementary filters to try to combine the angle and rate measurements in a way that filtered and enforced the derivative relationship between the measured variables, but did not have much luck improving the results. It may be better to focus on one each of the roll and steer variables for minimization purposes. It is well known that fitting models with many fewer inputs to outputs is difficult and the fewer outputs reduces the number of noise terms to estimate.