MPC toolbox - Model parameter must be a string

I´m trying to tune a MPC controller.
So, I've created the MPCobject and run the simulation. Until here, no problem. The simulation run perfectly.
When I've created a function to optmize my parameteres, with the 'sim' function inside, I've got the "'model' parameter must be a string" problem inside the function created.
Reading the forum, I discovered that the problem is related to matlab tries to call the simulink sim function. I've tried to use the pathtool command to put MPCtool at the top, but no result.
How can I fix it? It´s freaking my mind!!
Thanks and sorry for the poor english.

Answers (1)

What is the exact SIM command that you are using? The error points to the 'model' parameter, which is the first argument to the command. Check the value that you are passing to see if it is valid.

3 Comments

The SIM command of MPC toolbox.
In the main script, there is no problem with the SIM function. The error arises when I put the SIM function in a new function that i've created for optimization.
Actually, the error is related to 'model' parameter, that is requested to be a string. But in MPC SIM function, this is not true.
I've tried to insert breakpoints in the script to check the parameteres class. And it was correct.
The problem is that the function is calling the Simulink SIM function, that requests the model to be a string.
Is there a way to force the matlab to call the MPC SIM function?
Thanks for the help. But I still do not know what to do.
When the debugger stops in the breakpoint in your optimization function, try running "which -all sim" at the MATLAB command prompt. Does this list the MPC version?
Thanks, Kaustubha. I solved the problem.
Reading the which help, I discovered that there is a way to indicate what SIM function must be used. But it did not work for me!! Why?
The nem error show me that my function did not recognize my MPCobj. So I put the MPCobj as input for my function and it works.
I realized that only using 'global' my function would get the MPCobj, but not. All parameters inside the fuction must be declared.
So stupid!!
Thanks for your attention.

Sign in to comment.

Asked:

on 12 Mar 2011

Community Treasure Hunt

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

Start Hunting!