Clear Filters
Clear Filters

The result of a loop statement is different from iterating over a function in model predictive control.

2 views (last 30 days)
This is my fuction code. The first time I ran the function with r1 and r2 equal to 1, y1 was 0 and y2 was 1.06. The next time I ran the function (with y1 equal to 0 and y2 equal to 1.06), y1 was 0. 0012 and y2 was 1.0557.
However, when I iterate using for, the first case is the same, but the second iteration (when i=2) gives me y(1) of 0.6943 and y(2) of 1.0396. Why is this difference?
please help me.

Answers (1)

Song-Hyun Ji
Song-Hyun Ji on 19 Jul 2023
Would you elaborate what is your code inside of "for loop"? In the captured image's code, I cannot see the index "i" is using inside for loop like the following mpcmove function example.
t = 0:ts:40;
N = length(t);
y = zeros(N,1);
u = zeros(N,1);
for i = 1:N
y(i) = 0.25*xc.Plant;
u(i) = mpcmove(mpcobj,xc,y(i),r);
end

Categories

Find more on Model Predictive Control Toolbox 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!