Optimization 数组中元素的迭代
我试图在一个典型的MPC(模型预测控制)问题的例子(来自控制系统)上编写一个CPLEX OPL代码。如前所述,此处: 使用优化变量: 具有以下参数: 我试着写它,但是我被困在变量“x”(状态变量)数组的迭代中,正如优化问题的约束中提到的那样。到目前为止,我在OPL CPLEX上编写的代码如下:(OPL平台上的模型文件扩展名为.mod) 我使用的数据文件如下:(扩展名为.dat的OPL平台数据文件) 因此,我需要善意的帮助来解决这个系统,因为在给定问题的约束下,我无法解决状态变量的变量中的迭代问题 非常感谢您的善意帮助,因为我在这件事上已经坚持了好几个星期。您可以将ct1变成Optimization 数组中元素的迭代,optimization,cplex,opl,ilog,cvx,Optimization,Cplex,Opl,Ilog,Cvx,我试图在一个典型的MPC(模型预测控制)问题的例子(来自控制系统)上编写一个CPLEX OPL代码。如前所述,此处: 使用优化变量: 具有以下参数: 我试着写它,但是我被困在变量“x”(状态变量)数组的迭代中,正如优化问题的约束中提到的那样。到目前为止,我在OPL CPLEX上编写的代码如下:(OPL平台上的模型文件扩展名为.mod) 我使用的数据文件如下:(扩展名为.dat的OPL平台数据文件) 因此,我需要善意的帮助来解决这个系统,因为在给定问题的约束下,我无法解决状态变量的变量中的迭
forall( s in state, u in input:s !=last( state ))
ct1:
A[s][s]*State[s] + B[s][u]*Input[u] == State[next(state,s)];
国防部
.dat
工作
state = {"x","y","vx","vy"};
input = {"ux","uy"};
A = [[1, 0, 0.2, 0],
[0, 1, 0, 0.2],
[0, 0, 1, 0 ],
[0, 0, 0, 1 ]];
B = [[0, 0],
[0, 0],
[0.2, 0],
[0, 0.2]];
Q = [[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]];
R = [[1, 1],
[1, 1]];
forall( s in state, u in input:s !=last( state ))
ct1:
A[s][s]*State[s] + B[s][u]*Input[u] == State[next(state,s)];
//data
{string} state = ...;
{string} input = ...;
float A[state][state] =...;
float B[state][input] =...;
float Q[state] =...;
float R[input] =...;
//variable
dvar float State[state];
dvar float Input[input];
minimize
sum( s in state, u in input )
(State[s]*Q[s]*State[s] + Input[u]*R[u]*Input[u]);
subject to {
forall( s in state, u in input:s !=last( state ))
ct1:
A[s][s]*State[s] + B[s][u]*Input[u] == State[next(state,s)];
}
state = {"x","y","vx","vy"};
input = {"ux","uy"};
A = [[1, 0, 0.2, 0],
[0, 1, 0, 0.2],
[0, 0, 1, 0 ],
[0, 0, 0, 1 ]];
B = [[0, 0],
[0, 0],
[0.2, 0],
[0, 0.2]];
Q = [1, 1, 1, 1]
;
R = [1, 1];