Pole Vault Mannequin
Right here is an illustration of what a pole vault bounce appears like:
To simulate this occasion, we are able to divide the bounce in three phases:
- Method: Throughout this part the athlete tries to maximise his velocity alongside the runway to realize most kinetic power
- Take off and swing up: The athlete positions the pole into the “field” to transform the kinetic power into saved potential power within the pole and swing up.
- Fly away: The vaulter releases the pole and falls again on the mat beneath the affect of gravity
This semantic had a number of imitations. Let’s examine my most popular technique to implement the identical equations in MATLAB R2024a.
Simulink States inside Stateflow
Here’s what my new mannequin appears like.
Throughout the Take Off, the movement of the athlete is computed in polar coordinate. This makes it less complicated to unravel the equations for the bending of the pole.
Design Examine
Let’s examine the impression on the bounce of two variables:
- The stiffness of the pole
- The preliminary angle of the pole for the take-off part
For that, I create two multisim variables and mix them utilizing simulink.multisim.Exhaustive.
k_var = simulink.multisim.Variable(“ok”, linspace(0.1,10,5));
theta0_var = simulink.multisim.Variable(“theta0”, linspace(10,50,5));
MyCombination = simulink.multisim.Exhaustive([k_var, theta0_var]);
d = simulink.multisim.DesignStudy(mdl,MyCombination);
d.PostSimFcn = @(simOut, simIn) myPostSim(simOut,simIn);
out = parsim(d,‘ShowProgress’,‘off’,‘UseFastRestart’,‘on’);
I additionally create a post-sim operate the place I do two issues:
- I retailer the enter variables within the SimulationOutput object
- I course of the logged information to compute the utmost top and distance of the bounce
operate simOut = myPostSim(simOut,simIn)
% Switch enter variables to SimulationOutput object
for i = 1:size(simIn.Variables)
simOut.(simIn.Variables(i).Title) = simIn.Variables(i).Worth;
finish
% Compute key efficiency indicators
simOut.maxHeight = max(simOut.logsout.get(‘y’).Values.Knowledge);
simOut.distance = abs(simOut.logsout.get(‘x’).Values.Knowledge(finish));
As soon as the simulations full, we are able to visualize ends in a number of methods. Let’s attempt just a few issues.
Let’s start by plotting all x-y timeseries:
plot(out(i).logsout.get(‘x’).Values.Knowledge,out(i).logsout.get(‘y’).Values.Knowledge)
legendText{i} = [‘k = ‘ num2str(out(i).k) ‘, theta0 = ‘ num2str(out(i).theta0)];
legend(legendText,‘Location’,‘northeastoutside’);
Possibly a matrix of scatter plots would assist visualize this information?
u = [[out.k]’ [out.theta0]’];
y = [[out.maxHeight]’ [out.distance]’];
or a 3d bar plot?
top = reshape([out.maxHeight],5,5);
Ultimately, this appears fairly clear that the decrease stiffness and preliminary angle end result within the increased bounce.
Now it is your flip
Do not miss the precise pole vault competitors on the Paris Olympic:
How would you simulate the pole vault competitors? Tell us within the feedback under.