-
Notifications
You must be signed in to change notification settings - Fork 0
License
jgillis/mpc-simulink-demo
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
An example of how to use CasADi's QRQP QP solver for MPC in Simulink. main.m - A demonstration script. After adding CasADi to the path this file should run without errors. LMPC.c - the Level-2 C S-Function definition; needs to be compiled together with MPC_step.c MPC_step.c/h - self-contained c code generated by generate_block.m generate_block.m - A CasADi-Matlab function that constructs a QP solve step in a symbolic way, codegenerates and compiles to MPC_step.c demo.slx - A demonstration of a block that uses LMPC, and a 'mask' that automatically calls generate_block with appropriate parameters Caveats: - C/D matrices are not used at the moment. - Status information is very limited for: only boolean success/fail, no statistics. There is a verbose mode for debugging though. - Beware of indefinite Hessians (Q,R)! - For exploiting minimal active set changes in an MPC setting, do connect (x->x_initial),(lam_x->lam_x_initial),(lam_g->lam_g_initial) Otherwise, feed zeros. - The mex command in generate_block does not specify compiler optimization flags. They are highly recommended. - Bottleneck assumed to be in QP. There is overhead involved in using the QP solver in an expression-oriented way as opposed to working with (sparse) matrices directly.
About
No description, website, or topics provided.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published