Advice on adding a manipulatable variable target to MPC
Show older comments
I've designed an MPC in MATLAB using the mpc function and successfully simulated it in Simulink using the MPC block in closed loop with a non-linear simulation model.
>> size(mpcobj)
MPC controller with 4 measured output(s), 0 unmeasured output(s),
3 manipulated input(s), 0 measured disturbance(s), 4 unmeasured disturbance(s)
I now want to add a target to one of the manipulatable variables as explained here, which I did as follows:
>> mpcobj.MV(1).Target = mpcobj.MV(1).Max;
Since I have 3 MVs and 2 CVs this should have an effect.
Note: I actually have 4 measured outputs but I have set the weights to zero on 2 of them:
>> mpcobj.Weights.OutputVariables
ans =
1 0 0 10
All my input and output scalings are set to one (I handle scaling manually outside the MPC block).
mpcobj.MV(1)
ans =
struct with fields:
Min: -61.3500
Max: 38.6500
MinECR: 0
MaxECR: 0
RateMin: -Inf
RateMax: Inf
RateMinECR: 0
RateMaxECR: 0
Target: 38.6500
Name: 'MV1'
Units: ''
ScaleFactor: 1
Type: 'continuous'
However, there is no difference in my simulation outputs with the MV target and without it.
- What else should I be checking?
- Is there a weight parameter for this MV target error that I should be increasing?
1 Comment
Bill Tubbs
on 2 Oct 2022
Accepted Answer
More Answers (0)
Categories
Find more on Controller Creation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
