From: Francesca Vannini on
Hello,
I'm using MPT Studio to generate a controller for a system. I wrote the System Dynamics, the System Constraints, the Penalties, the Reference point, the Prediction horizon; when I press the buttom Generate Controller, the message "CAT arguments dimensions are not consistent" appears on my screen. What does it mean? What have I to do? Moreover, when the controller is generated, how is it possible to access the regions (I tried to load an example and managed only to see a graph by pressing Plot Controller Regions and Plot Control Law)? I mean, is it possible to have an analythic description of the regions and of the Control Law? Thanks a lot to anyone who will be so kind to answer me!
From: Walter Roberson on
Francesca Vannini wrote:
> when I press the buttom Generate
> Controller, the message "CAT arguments dimensions are not consistent"
> appears on my screen. What does it mean?

cat() is used to concatenate lists into larger lists, along any given axis.
Along the first axis is also known as vertcat(), along the second axis is also
known as horzcat(). Inside the [] list constructor, space or the "," (comma)
indicates horzcat and the ";" (semi-colon) indicates vertcat() .

[1 2; 3, 4, 5]

would be an example of attempting to vertcat(horzcat(1,2),horzcat(3,4,5))
However, this would fail because the "arguments dimensions are not consistent"
because you cannot concatenate a row with 3 elements to the bottom of a row
with 2 elements.


You should check carefully over any [] constructor you have, looking at all of
the commas and semi-colons and making sure that you use comma when you want to
create a horizontal row and you use semi-colon when you want to move on to the
next horizontal row, and that you have the same number of elements in all of
your rows.
From: Francesca Vannini on
Sorry, I tried to check but I didn't manage to find what's wrong... the system I load as "Model" in MPT Studio is


sysStruct.A = [0, 0, 0, 0, 0, 0, 0;1, 0, 0, 0, 0, 0, 0;0, 1, 0, 0, 0, 0, 0;0, 0, 1, 0, 0.8, 0.04, 0;0, 0, 0, 0, 0.06, 0.9, 0;0, 0, 0, 0, 0, 0, 1];
sysStruct.B = [0.8;0.04;0;0;0;0;0];
sysStruct.C = [0, 0, 0, 0, 0.0005, 0.8, 0;0, 0, 0, 0, 0, 0, 1];
sysStruct.D = [0;0];
sysStruct.ymin = [-200, -20000000];
sysStruct.ymax = [200, 20000000];
sysStruct.umin = -15;
sysStruct.umax = 10;
sysStruct.dumin = -15;
sysStruct.dumax = 10;
sysStruct.dymin = [-50; -1000000];
sysStruct.dymax = [50; 1000000];

and the settings I load as "Problem" in MPT Studio are


probStruct.norm = 1;
probStruct.N = 1;
probStruct.subopt_lev = 0;
probStruct.Q = [1, 3, 5, 7, 8, 3, 7;1, 3, 5, 7, 8, 3, 7;1, 3, 5, 7, 8, 3, 7;1, 3, 5, 7, 8, 3, 7;1, 3, 5, 7, 8, 3, 7;1, 3, 5, 7, 8, 3, 7;1, 3, 5, 7, 8, 3, 7];
probStruct.R = 8;
probStruct.Qy = [6, 1 ; 1, 5];
probStruct.y0bounds = [0, 0; 0, 0];
probStruct.yref = [9;3];
probStruct.tracking = 0;

(for the moment I chose an arbitrary combinations of numbers)
These are the M-files Matlab saved, corresponding to what I wrote on MPT Studio... It says "CAT arguments dimensions are not consistent"...what can I do?

Thanks a lot!