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!

 Akzeptierte Antwort

Torsten
Torsten am 20 Jul. 2015
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 Kommentare

Thanks, Torsten. I add my control objective in the question, Could you comment on it?
Torsten
Torsten am 21 Jul. 2015
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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Programming finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 18 Jul. 2015

Kommentiert:

am 21 Jul. 2015

Community Treasure Hunt

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

Start Hunting!

Translated by