nlmpcmove太多的输入参数

10视图(30天)
你好,我是使用nlmpc执行一个预测步骤。
我创建nlmpc这样的对象。
deterministicController = nlmpc (2 2 1);
deterministicController。PredictionHorizon = L;
生成一个在一个循环中一些参数并建立预测模型和基于这些成本
deterministicController.Model。StateFcn = @ (x, u)ε(l) * fNonlinear (x, u,参加全国)
+ (1-epsilons (l)) * fLinear (x, u,参加全国xBar);
deterministicController.Model。OutputFcn = @ x (x, u);
deterministicController.Optimization。CustomCostFcn =
@ (X, U,数据)和((
[U (1: data.PredictionHorizon, data.MVIndex (1) ';X (2: data.PredictionHorizon + 1, 1:2) ']
- zRef) ^ 2);
问题是不受限制。然后我做一个评价
优= nlmpcmove (deterministicController xm1,听um1);
的输出
错误使用非线性
太多的输入参数。
错误znlmpc_getZBounds(36行)
f1 = hCostFcn (X0,情况下,用户数据,runtimedata.Parameters {:});
错误nlmpc / nlmpcmove(第122行)
[zLB, zUB] = znlmpc_getZBounds (coredata runtimedata,用户数据,处理。hCostFcn z0);
顺便说一下 xm1 是2 x1, bm1 是标量, fLinear , fNonlinear 是正确的(之前测试,输出2 x1)。
我可以提供其他的代码。谢谢你!

接受的答案

马西莫·斐萨文托
马西莫·斐萨文托 2021年9月21日
我错了,当设置成本函数,应该是
deterministicController.Optimization。CustomCostFcn =
@ (X, U, e,数据)和((
[U (1: data.PredictionHorizon, data.MVIndex (1) ';X (2: data.PredictionHorizon + 1, 1:2) ']
- zRef) ^ 2);

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!