Documentation: | |
Organisiation: |
The fundamental operations of the micromobilitykinematics.jl library serve as the foundation for kinematic calculations and updates to a self-developed steering geometry of a micromobility vehicle.
The functions include those for calculating the steering and suspension kinematics
in both the neutral and moving state. All important information on the state
of the vehicle at a specific steering setting can then be read from the instance
. For example, the library offers the possibility to read the steering angles of the inner and outer wheels as well as important joint positions and dimensions of components. A portion of the pertinent data is illustrated in the above-labeled image of the steering geometry. In addition, all attributes of the instance can be exported to an XML file
. This facilitates, for example, the immediate transfer of the steering geometry to CAD programmes, which can be updated using the calculation.
Furthermore, the steering geometry can be modified by altering the parameter values
in order to optimise it if necessary. The optimisation is primarily based on the JuMP.jl package and utilises the Ipopt algorithm. The accuracy of the steering, along with other pivotal properties, can be depicted in plots to illustrate the resulting characteristics
.
Collectively, these tools provide a robust framework for analysing and simulating this mechanical system.
The code presented here is intended for illustrative purposes only. The accompanying documentation provides illustrative examples of potential applications, which offer a more comprehensive understanding of the package's functionality.
# initialisation of the steering
x_rotational_radius = 56 # Steeringarm_rotX
z_rotational_radius = 165 # Steeringarm_rotZ
track_lever_length = 185 # Steeringlever
tie_rod_length = 210 # Steeringrod
steering = Steering(x_rotational_radius, z_rotational_radius, track_lever_length, tie_rod_length)
# initialisation of the suspension
compression = 30 # neutral damper positioning
suspension = Suspension(compression)
# steering setting
angleConfig = (0,10)
suspensionkinematics!(suspension)
steeringkinematics!(angleConfig, steering, suspension)
# new steering setting
new_angleConfig = (0,25)
# update steering kinematics
update!(new_angleConfig, steering, suspension)
# exports xml list to path = @__DIR__ (default)
exportXML(steering)
exportXML(suspension)
autor: | Peter Krönes , Adrian Brune and Lars Mikelsons |
title: | Design and Optimization of a Steering Geometry for a Micromobility |
journal: | Zehnte IFToMM D-A-CH Konferenz 2024 : 05./06. März 2024, Universität Rostock |
date of publication: | 04.03.2024 |
url: | DOI: 10.17185/duepublico/43383 |
zite: | BibTex |