MATLAB: ODE45 with a vector input

MATLABode45

Hey, how can I solve an ode function with a changing input of my choosing: example:
I would like to solve the simple spring and defuse equation while inputting the external force at given time.
I would create a function for the differential equations:
if true
function dy = springdef(y,u)
k=1.5; %just values
m=3;
d=0.3;
% main differential equations
dy(1,1) = y(2);
dy(2,1) = -k/m*y(1)+u/m-d/m*y(2);
end
than I would calculate the result by using the ode45
if true
[t,y] = ode45(@(t,y)springdef(y,u),tspan,y0);
end
yet I don't find a way to choose u in advance (creating a vector for u for different values).
I can define a single input – u=0
or i can have a controller adjust the input – u= K*(y-[0,0]) but I don't find a way to preset the force u
such as u=[0,0,1,1,0,0] (of curse length(u) = length(tspan) )

Best Answer

The example
"ODE with Time-Dependent Terms" under
https://de.mathworks.com/help/matlab/ref/ode45.html
should show you how to proceed.
Best wishes
Torsten.
Related Question