An analytically sound bicycle model.
What is it?
JacoBike is a Bicycle Model implementation which focuses, rather than on speed, on always providing a continuous jacobian to its ODE-form acceleration estimation (hence the name). It allows for fast equilibrium search, linearization, transient-conscious optimal control search, making it an ideal companion for "quick and dirty" vehicle dynamics calculations.
How is it built?
It is based upon non-linear bicycle model equations in a 2D space, with just 3 DOFs. The entire implementation is in Python.
It includes a basic description of longitudinal load transfer effects, and of speed-dependent aerodynamic forces.
Longitudinal tire forces are calculated with a simplified powertrain model, which transforms the position of pedals into an overall axle maximum force, checks that the amount can be withstood by the tire model, and outputs the minimum value between grip-limited and power-limited. Lateral tire forces are delivered by a simplified axle model, which can be built from either a spline interpolant, or a hyperbolic tangent function.
It comes with a small GUI to quickly define a vehicle model and run basic simulations on it.
What can it do?
Its main use, through its simplified GUI, is really just to toy around with basic vehicle parameters to understand and explain things. Many great didactical concepts of "classic" vehicle dynamics such as handling diagrams, Yaw Moment Method, linearized study for frequency response, are based on relatively simple calculations and on the bicycle model. This GUI makes all of them accessible and "interactive".
Typical driving maneuvers, solved through the ODE formulation with RK4, run very fast (>10X real time) thanks to the overall model simplicity: it can be used to quickly understand the basic characteristics of a vehicle's behavior.
Through its "editor" GUI, it can be used to quickly assess the effect of changes in parameters over a number of common, "classic-VD" simulations:
- Handling Diagrams
- Linearization around a given Ax, Ay, Yaw acceleration equilibrium
- Linearized model response: Frequency Study
- Linearized model response: Speed Study
- Yaw-Moment Diagram
- GG-V Diagram
- Ax vs Speed
Since the whole vehicle is defined by a handful of parameters (mass, polar inertia, wheelbase, weight distribution, mu and CS for tire modles), the model can be used to perform quick sensitivity studies on a hypothetical vehicle without investing much time into defining a complete, multi-DOF model.
Thanks to its simplicity, effects of main vehicle parameters over balance, performance (visualized through multiple plots and tools) can be immediately identified and played around with.
The key advantage of JacoBike over a quicker bicycle model implementation is the fact that it always computes jacobians of its instantaneous accelerations with respect to the state of controls. This allows us (through a not-so-simple algebraic procedure inspired by Daniele Casanova's PhD work at Cranfield) to apply optimization technique to a "problem" where the input is the state of controls (pedals, steering wheel) along the time history, and the output is the speed of the vehicle, and how far it is from the track boundaries.
This enables us to define, for example, minimum lap time search as an optimal control problem, i.e. to look for the control history the driver has to apply to minimize laptime. This approach guarantees that the solution, rather than being constituted by a sequence of equilibria with little to no interconnection, is a "real" history, which can be solved in its ODE form, hence takes into account transient behavior.
It is still a very simplistic model, however the approach is conceptually closer to the "more advanced" lap time optimization software on the market than to its far more widespread, "GG-V" based counterpart.
Where is it going?
Lap time simulation performed with this model type gives far more interesting results than its "GGV" counterpart; however, it requires much more resources and effort to tune-up the optimization process: improving my understanding of this optimization problem's intricacies is where I see the most progress on this model in the immediate future.