与传统的线性MPC一样,非线性MPC使用基于模型的预测和约束优化的组合来计算每个控制间隔的控制动作。关键差异是:
预测模型可以是非线性的并且包括时变参数
平等和不等式约束可以是非线性的
要最小化的标量代价函数可以是决策变量的非二次(线性或非线性)函数。
缺省情况下,非线性MPC控制器使用fmincon
函数,这需要优化工具箱™软件。如果没有“优化工具箱”软件,可以指定自己的自定义非线性求解器。
有关更多信息,请参阅非线性MPC..
nlmpc |
非线性模型预测控制器 |
nlmpcmultagray |
多级非线性模型预测控制器 |
nlmpcmove |
计算非线性MPC控制器的最优控制动作 |
nlmpcmoveopt |
选项设置为nlmpcmove 功能 |
getSimulationData |
创建数据结构以模拟多级MPC控制器nlmpcmove |
validateFcns |
检查预测模型和自定义功能nlmpc 或者nlmpcmultagray 潜在问题的对象 |
ConvertTompc. |
转换nlmpc 对象进入一个或多个MPC. 对象 |
createParameterBus |
创建万博1manbetx总线对象,并配置总线创建者块,用于将模型参数传递到非线性MPC控制器块 |
非线性MPC控制器 | 模拟非线性模型预测控制器 |
多级非线性MPC控制器 | 模拟多级非线性模型预测控制器 |
非线性模型预测控制器使用非线性预测模型、代价函数或约束来控制对象。
为了定义非线性MPC控制器的预测模型,需要指定状态函数和输出函数。
非线性MPC控制器支持一般的代价函数,例如系统状态、万博1manbetx输入和输出的线性或非线性函数的组合。
除了标准的线性MPC约束之外,你还可以为你的非线性MPC控制器指定自定义的线性和非线性约束。
默认情况下,非线性MPC控制器使用的是使用它们的控制移动fmincon
函数从优化工具箱。您还可以指定自己的自定义非线性求解器。
你可以将非线性MPC用于最优轨迹规划和闭环控制应用。
计划最佳火箭兰德轨迹,采用多级非线性MPC进行着陆过程的闭环控制。
当非线性对象在工作点之间转换时,对其进行控制。
利用非线性模型预测控制器实现倒立摆在推车上的摆起和平衡控制。
你可以从非线性MPC控制器生成一个或多个线性MPC控制器,并将这些控制器用于增益调度控制应用。
模拟非线性MPC控制器作为自适应和时变MPC控制器,并比较性能。
你可以将非线性MPC控制器用于需要非线性模型和非线性成本或约束的最优规划应用程序。
生成代码来计划和执行无碰撞轨迹使用KINOVA Gen3机械手
采用非线性MPC算法对机械臂进行轨迹规划和执行。