Leaf spring substitute system
Posted: Tue Jul 16, 2024 7:40 am
I want to describe the shape of a leaf spring in a simplified system where a chassis is fixed to the ground and an axle with tires is constrained to always remain on the ground. Essentially, I have three points between which I want to mount the leaf spring.
I create the leaf spring using rigid bodies, each connected by 2 pins. Each of these pins is assigned a spring stiffness. The spring is hinged to the 2 chassis points with a pin each. Ideally, I want to insert the leaf spring into the system in its undeformed state with defaultQZero = 0, so that the leaf spring assumes its shape due to the assigned spring stiffness upon assembly. Is this possible?
Currently, I have the problem that when I realize the topology, as expected, in Model-stage, the spring does not deform correctly according to the spring stiffness. When I subsequently raise the stage to acceleration, the deformation of the spring remains the same.
Is there a way to correctly describe the deformation of the leaf spring based on the stiffness in the initial state?
Thanks!
for (int i = 0; i < segments; ++i)
{
SimTK::MobilizedBody::Weld nextSegment(previousBody, SimTK::Transform(SimTK::Rotation(), segmentPosition), segmentBodyInfo, SimTK::Vec3(0));
// Create Y and Z pins for the segment
SimTK::MobilizedBody::Pin nextSegmentYPin(nextSegment, ZtoY, pinYBodyInfo, SimTK::Vec3(0));
SimTK::MobilizedBody::Pin nextSegmentZPin(nextSegmentYPin, YtoZ, pinZBodyInfo, SimTK::Vec3(0));
// Create springs for the Y and Z pins with the determined stiffness
SimTK::Force::MobilityLinearSpring leafSpringPoint4YSpring(forceSubsystem, nextSegmentYPin, SimTK::MobilizerQIndex(0), stiffnessY, 0.0);
SimTK::Force::MobilityLinearSpring leafSpringPoint4ZSpring(forceSubsystem, nextSegmentZPin, SimTK::MobilizerQIndex(0), stiffnessZ, 0.0);
lastPin = nextSegmentZPin;
previousBody = nextSegmentZPin;
}
I create the leaf spring using rigid bodies, each connected by 2 pins. Each of these pins is assigned a spring stiffness. The spring is hinged to the 2 chassis points with a pin each. Ideally, I want to insert the leaf spring into the system in its undeformed state with defaultQZero = 0, so that the leaf spring assumes its shape due to the assigned spring stiffness upon assembly. Is this possible?
Currently, I have the problem that when I realize the topology, as expected, in Model-stage, the spring does not deform correctly according to the spring stiffness. When I subsequently raise the stage to acceleration, the deformation of the spring remains the same.
Is there a way to correctly describe the deformation of the leaf spring based on the stiffness in the initial state?
Thanks!
for (int i = 0; i < segments; ++i)
{
SimTK::MobilizedBody::Weld nextSegment(previousBody, SimTK::Transform(SimTK::Rotation(), segmentPosition), segmentBodyInfo, SimTK::Vec3(0));
// Create Y and Z pins for the segment
SimTK::MobilizedBody::Pin nextSegmentYPin(nextSegment, ZtoY, pinYBodyInfo, SimTK::Vec3(0));
SimTK::MobilizedBody::Pin nextSegmentZPin(nextSegmentYPin, YtoZ, pinZBodyInfo, SimTK::Vec3(0));
// Create springs for the Y and Z pins with the determined stiffness
SimTK::Force::MobilityLinearSpring leafSpringPoint4YSpring(forceSubsystem, nextSegmentYPin, SimTK::MobilizerQIndex(0), stiffnessY, 0.0);
SimTK::Force::MobilityLinearSpring leafSpringPoint4ZSpring(forceSubsystem, nextSegmentZPin, SimTK::MobilizerQIndex(0), stiffnessZ, 0.0);
lastPin = nextSegmentZPin;
previousBody = nextSegmentZPin;
}