How to write dynamic equations in state-space form?

I'm trying to model a simple vehicle dynamic: Let f_engine,f_brake,f_road be the force of engine, braking force and the road force respectively. For a vehicle that traveled x meters and its mass is m , the longitudinal dynamics is:
where f_road lumps the road forces including aerodynamic drag and rolling resistance.
where C_d is the drag coefficient, μ is the coefficient of rolling resistance and g is the gravitational acceleration.
I want to use [x,v] as state vector, [f_engine, f_brake] as control input and [f_road] as disturbance, How can I write this in state-space form? My goal is to put it together in a model predictive control framework.
My control objective is to minimize the difference between reference speed (v_target) and the output speed, additionally, I am trying to minimize the physical work that has been used for braking.
where w are weight factors and P is the number of prediction steps in the future. Is there's a smart way to write this in the form of standard cost functions? Thanks!

 Accepted Answer

y1'=y2
y2'=(f_engine-f_brake-(C_d*y2^2+mu*m*g))/m
Here y1=x, y2=dx/dt.
Best wishes
Torsten.

2 Comments

Thanks, Torsten. I add my control objective in the question, Could you comment on it?
What is the form of a "standard cost function" ?
The unknowns (as I interpret your problem formulation) are f_brake(j) and f_engine(j) (j=k,...,k+P-1).
You could use e.g. fmincon together with an ODE integrator to solve.
Best wishes
Torsten.

Sign in to comment.

More Answers (0)

Asked:

on 18 Jul 2015

Commented:

on 21 Jul 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!