validateFcns
语法
描述
validateFunctions
测试非线性MPC控制器的预测模型、自定义代价、自定义约束和雅可比函数的潜在问题,例如信息是否缺失,用户提供函数的输入和输出参数是否与对象设置不兼容,或用户提供的解析梯度/雅可比函数是否在数值上准确。当您首次设计非线性MPC控制器时,或当您对现有控制器进行重大更改时,验证控制器功能是最佳实践。
非线性MPC
多级非线性MPC
validateFcns (
测试了多级非线性MPC控制器的功能nlmpcMSobj
,x
,mv
)nlmpcMSobj
潜在的问题。函数使用指定的状态和操作变量值进行测试,x
而且mv
,分别。这些值可以表示标称条件或任意工作点。如果您的控制器没有测量到的扰动,也没有参数,请使用此语法。
validateFcns (
指定附加的nlmpcMSobj
,x
,mv
,simdata
)simdata
结构。如果状态和阶段函数需要参数,则需要在simdata
.
例子
输入参数
提示
当你提供自己的分析雅可比函数时,特别重要的是这些函数返回有效的雅可比值。如果
validateFunctions
检测用户定义的雅可比函数返回值与有限差分近似之间的巨大差异,验证雅可比实现中的代码。
算法
对于每个控制器函数,validateFunctions
检查函数是否:
存在于MATLAB中®路径
输入参数的数量是否满足要求
是否可以成功执行而没有错误
返回具有正确大小和尺寸的输出参数
返回有效的数值数据;也就是说,它不会返回
正
或南
值
对于雅可比函数,validateFunctions
检查返回值是否与雅可比矩阵值的有限差分近似相比较。这些有限差分值是用数值摄动计算的。
版本历史
在R2018b中引入