How to assign values to MV Targets of MPC object from cell array
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Bill Tubbs
el 6 de Oct. de 2022
Comentada: Bill Tubbs
el 25 de En. de 2023
I'm having a tough time trying to assign 3 values to the parameters of an mpc object.
Here is my MPC object with it's current values for the MV targets:
extractfield(mpcobj.MV, "Target")
ans =
1×3 cell array
{[38.6500]} {'nominal'} {'nominal'}
[mpcobj.MV.Target] = {99, 10, 'nominal'};
But I get this error message:
Error using mpc/subsasgn (line 511)
Scalar structure required for this assignment.
I tried this:
setfield(mpcobj.MV, "Target", {99, 10, 'nominal'});
but get the same error. I notice in the documentation there is an example like this:
MPCobj.DisturbanceVariables(1).ScaleFactor = 10;
MPCobj.DisturbanceVariables(2).ScaleFactor = 5;
MPCobj.DisturbanceVariables(3).ScaleFactor = 20;
Is there no way to assign these in one go (without a for loop)?
0 comentarios
Respuesta aceptada
Emmanouil Tzorakoleftherakis
el 25 de En. de 2023
Editada: Emmanouil Tzorakoleftherakis
el 25 de En. de 2023
You could specify values individually
mpcobj.MV(1).Target=99;
mpcobj.MV(2).Target=10;
or you could do it in one line as follows:
mpcobj.MV = struct(Target={99;10;'nominal'});
Hope that helps
3 comentarios
Emmanouil Tzorakoleftherakis
el 25 de En. de 2023
You don't really need a for loop for 3 values, but if you want to do it in one line, I guess the following should work:
mpcobj.MV = struct(Target={99;10;'nominal'});
I updated my answer as well
Más respuestas (0)
Ver también
Categorías
Más información sobre Controller Creation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!