How to assign values to MV Targets of MPC object from cell array
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Bill Tubbs
il 6 Ott 2022
Commentato: Bill Tubbs
il 25 Gen 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 Commenti
Risposta accettata
Emmanouil Tzorakoleftherakis
il 25 Gen 2023
Modificato: Emmanouil Tzorakoleftherakis
il 25 Gen 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 Commenti
Emmanouil Tzorakoleftherakis
il 25 Gen 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
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Controller Creation in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!