LIBRARY
examples.suspension.SuspensionWithExcitationAndMass
Quarter-car model: an excited suspension carrying a chassis mass, constrained to move only vertically by the body_upright prismatic joint to the world.
Usage
MultibodyComponents.examples.suspension.SuspensionWithExcitationAndMass(ms=1500 / 4, rod_radius=0.02, dir=ifelse(mirror, -1.0, 1.0), DA=221.43 / 1000, t5=19.84 * π / 180, d_cm=[0, 0.2, 0.2 * sin(t5) * dir], r_cm=0.5 * DA * d_cm / MultibodyComponents.norm_(d_cm))
Parameters:
| Name | Description | Units | Default value |
|---|---|---|---|
mirror | – | false | |
ms | Mass of the car [kg] | kg | 1500 / 4 |
rod_radius | Radius of the rods | – | 0.02 |
Behavior
Source
dyad
"""
Quarter-car model: an excited suspension carrying a chassis mass, constrained to
move only vertically by the `body_upright` prismatic joint to the world.
"""
component SuspensionWithExcitationAndMass
world = MultibodyComponents.World()
mass = MultibodyComponents.Body(m = ms, r_cm = r_cm)
excited_suspension = SuspensionWithExcitation(spring = true, mirror = mirror, rod_radius = rod_radius)
body_upright = MultibodyComponents.Prismatic(n = [0, 1, 0], render = false, statePriority = 1000)
structural parameter mirror::Boolean = false
"Mass of the car [kg]"
parameter ms::Mass = 1500 / 4
"Radius of the rods"
parameter rod_radius::Real = 0.02
final parameter dir::Real = ifelse(mirror, -1.0, 1.0)
final parameter DA::Real = 221.43 / 1000
final parameter t5::Real = 19.84 * π / 180
final parameter d_cm::Real[3] = [0, 0.2, 0.2 * sin(t5) * dir]
final parameter r_cm::Length[3] = 0.5 * DA * d_cm / MultibodyComponents.norm_(d_cm)
relations
connect(world.frame_b, body_upright.frame_a)
connect(body_upright.frame_b, excited_suspension.chassis_frame)
connect(body_upright.frame_b, mass.frame_a)
metadata {
"Dyad": {
"icons": {"default": "dyad://MultibodyComponents/SuspensionWithExcitationAndMass.svg"}
}
}
endFlattened Source
dyad
"""
Quarter-car model: an excited suspension carrying a chassis mass, constrained to
move only vertically by the `body_upright` prismatic joint to the world.
"""
component SuspensionWithExcitationAndMass
world = MultibodyComponents.World()
mass = MultibodyComponents.Body(m = ms, r_cm = r_cm)
excited_suspension = SuspensionWithExcitation(spring = true, mirror = mirror, rod_radius = rod_radius)
body_upright = MultibodyComponents.Prismatic(n = [0, 1, 0], render = false, statePriority = 1000)
structural parameter mirror::Boolean = false
"Mass of the car [kg]"
parameter ms::Mass = 1500 / 4
"Radius of the rods"
parameter rod_radius::Real = 0.02
final parameter dir::Real = ifelse(mirror, -1.0, 1.0)
final parameter DA::Real = 221.43 / 1000
final parameter t5::Real = 19.84 * π / 180
final parameter d_cm::Real[3] = [0, 0.2, 0.2 * sin(t5) * dir]
final parameter r_cm::Length[3] = 0.5 * DA * d_cm / MultibodyComponents.norm_(d_cm)
relations
connect(world.frame_b, body_upright.frame_a)
connect(body_upright.frame_b, excited_suspension.chassis_frame)
connect(body_upright.frame_b, mass.frame_a)
metadata {
"Dyad": {
"icons": {"default": "dyad://MultibodyComponents/SuspensionWithExcitationAndMass.svg"}
}
}
endTest Cases
No test cases defined.
Related
Examples
Experiments
Analyses