Hi @Sarah,
Looking at your model diagram, I can see you've got the basic structure set up nicely with separate front and rear suspension paths, but they're currently operating independently - that's why you're only getting heave and no pitch motion. The issue is that your Suspension Compliance blocks aren't coupled through rigid body dynamics.
I did some digging through the MathWorks documentation and found their official half-car example (just type sldemo_suspn in your MATLAB command window). The key thing they do is add four body states: vertical position, vertical velocity, pitch angle, and pitch angular velocity. These all feed back into both suspension calculations.
Here's what needs to happen in your model: your suspension forces need to account for pitch. Instead of just calculating relative displacement as (z_body - z_wheel), you need (z_body - L*theta - z_wheel) where L is the distance from the center of gravity to that axle and theta is your pitch angle. Super important - the front distance should be negative and rear positive, otherwise your pitch will be backwards!
Then you need a new subsystem that takes both suspension forces and calculates two things simultaneously: heave acceleration (sum of forces divided by body mass) and pitch acceleration (sum of moments divided by pitch inertia). Each gets integrated twice to give you position and velocity states that feed back into your suspension blocks.
You'll probably run into an algebraic loop warning when you close this feedback - just drop a Memory block into the feedback path and that'll solve it. Also make sure to set your pitch angle initial condition to zero in the integrator or your car will start tilted!
One thing I noticed in your simulink block screenshot - there's a "Steering" subsystem with body connections. You might want to check what's inside that first (right-click and "Look Under Mask") because it might already be doing some body dynamics calculations. If it is, you'd modify that instead of creating a separate body dynamics block.
The MathWorks example uses pretty straightforward blocks - just Gains, Sums, and Integrators from the standard library. Their default values are M_body=1200 kg, I_yy=2100 kg*m^2, Lf=-0.9 m, Lr=1.2 m if you need a starting point.
Once you've got it working, test with both wheels hitting the bump simultaneously first - you should see mostly heave with very little pitch. Then try your 0.5s delay and you should see nice pitch oscillations develop as the rear wheel hits the bump after the front.
Hope this helps!


