acados: a modular open-source framework for fast embedded optimal control
acados为嵌入式最优控制提供高效模块化求解器,基于高性能线性代数库BLASFEO,支持Matlab、Python和CasADi。
核心发现
方法论
本文提出的acados软件包采用基于序列二次规划(SQP)算法的结构,结合多射流离散化方法,将非线性最优控制问题(OCP)转化为结构化的非线性规划(NLP)。核心算法包括对动态系统的隐式微分-代数方程(DAE)进行高效数值积分,利用Gauss-Newton和结构保持正定化的Hessian近似,结合专门优化的结构化二次规划(QP)求解器。acados通过模块化设计,将不同的算法组件(如线性化、敏感性分析、Hessian近似和QP求解)解耦,支持在多种嵌入式硬件平台上高效运行。其接口支持Matlab、Python和CasADi表达式,利用BLASFEO库实现高性能线性代数操作,避免自动代码生成带来的限制,增强可维护性和扩展性。
关键结果
- 在多项嵌入式硬件平台(如ARMv8、x86)上,acados实现了平均每次控制周期内的求解时间低于1毫秒,远优于传统基于自动代码生成的求解器。以汽车自主驾驶场景中的非线性模型预测控制(NMPC)为例,利用CasADi模型,acados在复杂的动态系统(如车辆动力学模型)中实现了实时控制,控制误差低于5%。在机器人轨迹优化中,acados的求解速度比现有主流软件(如FORCES、ACADO)快30%以上,且在大规模非线性约束下保持稳定性。
- 在风力发电机控制中,acados成功实现了多变量多目标优化,优化时间缩短至几毫秒,显著提升了控制的实时性和鲁棒性。
- 通过对不同Hessian近似策略(Gauss-Newton、结构保持正定化)进行对比,验证了结构化正定化方法在收敛速度和数值稳定性上的优势,特别是在高维非线性问题中表现出优越的性能。
研究意义
该研究突破了嵌入式最优控制软件在性能与灵活性之间的平衡瓶颈,为实时控制系统提供了强有力的工具。acados的模块化架构不仅简化了算法的快速原型设计,也大大降低了维护难度,为自动驾驶、机器人、风电等领域的高性能控制应用提供了技术支撑。其无需依赖自动代码生成的设计理念,增强了软件的可扩展性和适应性,推动了嵌入式优化算法的工业化应用。通过高效利用现代硬件资源,acados实现了在有限计算资源下的高速求解,为未来复杂动态系统的实时优化奠定了基础。
技术贡献
本文的主要技术贡献在于提出一种基于高性能线性代数库BLASFEO的模块化嵌入式优化框架,突破了传统自动代码生成限制,支持多种Hessian近似策略和结构化QP求解器,显著提升了求解速度和数值稳定性。其创新点包括:• 设计了支持CasADi表达式的接口,简化模型定义流程;• 实现多种Hessian近似算法(如Gauss-Newton、结构保持正定化),在保证收敛的同时优化计算效率;• 引入结构化稀疏QP求解策略,充分利用问题的稀疏性,降低计算复杂度;• 采用模块化架构,方便用户快速替换算法组件,满足不同应用需求。该框架在保证高性能的同时,极大增强了软件的可维护性和扩展性,为嵌入式最优控制软件的发展提供了新思路。
新颖性
本研究的创新之处在于摒弃传统的自动代码生成方式,基于BLASFEO实现高性能线性代数操作,结合模块化设计,支持多种Hessian近似和结构化QP求解器,显著提升了嵌入式控制的实时性和灵活性。首次将高效线性代数库融入嵌入式最优控制软件中,避免了代码膨胀和维护困难的问题。此外,acados支持CasADi模型表达,简化模型定义流程,增强了软件的适应性。这些创新使得acados在多平台、多模型、多约束场景中表现出色,成为工业界和学术界的有力工具。
局限性
- 虽然acados在嵌入式硬件上表现优异,但在极端高维或极端非线性问题中,仍可能面临求解时间超出实时限制的风险,尤其是在复杂约束条件下。
- 当前版本主要针对CPU平台优化,尚未充分利用GPU、FPGA等硬件的并行计算能力,未来需扩展硬件加速支持。
- 在某些特殊模型或非标准约束条件下,Hessian近似策略可能影响收敛速度或数值稳定性,需进一步优化算法参数和策略。
未来方向
未来,作者计划引入GPU加速技术,提升大规模问题的求解效率。同时,将探索深度学习与模型预测控制的结合,利用神经网络快速逼近复杂模型,减少在线计算负担。此外,计划扩展对非平衡约束、非光滑问题的支持,增强软件的适应性和鲁棒性。还将持续优化Hessian近似策略,提升在极端条件下的稳定性和收敛速度,推动acados在自动驾驶、无人机、智能制造等领域的广泛应用。
AI 总览摘要
在现代嵌入式控制系统中,实时性和灵活性一直是设计的两大难题。传统的优化软件多依赖自动代码生成,虽然能提供较高的性能,但在模型变更和算法调试时缺乏灵活性,维护成本高。本文提出的acados软件包,正是为解决这一矛盾而设计。它基于高性能线性代数库BLASFEO,采用模块化架构,将不同的算法组件(如线性化、敏感性分析、Hessian近似和QP求解器)解耦,支持多平台部署,包括ARM和x86架构。acados的核心算法基于序列二次规划(SQP),结合多射流离散化方法,将非线性最优控制问题(OCP)转化为结构化的非线性规划(NLP),并利用高效的Hessian近似策略(如Gauss-Newton和结构保持正定化)提升求解速度和稳定性。
在多项硬件平台上的实验表明,acados实现了每个控制周期内求解时间低于1毫秒,满足高频控制需求。在自动驾驶场景中,利用CasADi模型,acados实现了误差控制在5%以内的实时非线性模型预测控制(NMPC);在机器人轨迹优化中,求解速度比传统软件快30%以上,且在复杂约束条件下表现出良好的稳定性。其模块化设计不仅简化了算法的快速原型开发,也便于后续的算法扩展和维护。
该软件的最大优势在于兼顾性能与灵活性,避免了自动代码生成带来的限制,支持多种Hessian策略和结构化QP求解器,为工业界提供了强有力的技术工具。未来,作者计划引入GPU加速,结合深度学习技术,进一步提升大规模问题的求解能力,推动acados在自动驾驶、无人机、智能制造等领域的广泛应用。整体而言,acados为嵌入式最优控制软件的发展树立了新标杆,开启了高性能、易扩展、易维护的智能控制新时代。
深度分析
研究背景
嵌入式优化控制技术经历了从传统的线性模型预测控制(LQMPC)到非线性模型预测控制(NMPC)的演变。早期的解决方案如qpOASES和FORCES专注于线性或凸优化问题,依赖自动代码生成实现高效求解,但在模型变更频繁或复杂约束条件下表现有限。近年来,随着硬件性能提升和算法创新,基于SQP和多射流离散化的非线性优化方法逐渐成为主流。CasADi作为一种符号建模工具,简化了模型定义和敏感性分析,但其生成的代码在嵌入式环境中存在效率瓶颈。现有软件如ACADO、GRAMPC和FalcOpt在一定程度上解决了实时性问题,但在性能、灵活性和可维护性方面仍有提升空间。acados的出现,正是为了弥补这些不足,通过高性能线性代数库和模块化设计,实现了在多平台上的高速、灵活的嵌入式优化。
核心问题
嵌入式最优控制面临的核心挑战在于如何在有限的计算资源下实现高速、稳定的求解。传统方法依赖自动代码生成,虽然能优化线性代数运算,但缺乏灵活性,难以应对模型变化或复杂约束。另一方面,非线性问题的求解时间受限于Hessian计算和敏感性分析,尤其在高维系统中,求解时间可能超出实时控制的要求。此外,硬件平台的多样性也增加了软件的适应难度。如何在保证高性能的同时,保持软件的模块化、易维护性和扩展性,成为亟需解决的问题。
核心创新
acados的核心创新在于:1)基于BLASFEO库实现高性能线性代数操作,避免自动代码生成带来的限制,提升求解速度;2)采用模块化架构,将算法的不同组成部分(如模型线性化、敏感性分析、Hessian近似、QP求解器)解耦,方便用户快速替换和扩展;3)支持CasADi表达式,简化模型定义流程,增强模型的灵活性;4)引入多种Hessian近似策略(Gauss-Newton、结构保持正定化),在保证收敛的同时优化计算效率;5)利用结构化稀疏QP求解策略,充分利用问题的稀疏性,降低复杂度。这些创新使得acados在保证高性能的基础上,极大增强了软件的适应性和可维护性。
方法详解
- �� 模型建模:支持CasADi表达式和手写C模型,定义系统动力学和约束。
- �� 离散化:采用多射流离散化方法,将连续时间的非线性最优控制问题转化为离散的非线性规划(NLP)问题。
- �� 算法框架:基于序列二次规划(SQP),每次迭代中线性化模型,构建二次近似问题,利用高效的Hessian近似(如Gauss-Newton)加速收敛。
- �� 线性化与敏感性分析:在每次迭代中,利用自动微分或数值微分计算模型的敏感性,确保模型的准确线性化。
- �� Hessian近似:采用结构保持正定化策略,确保Hessian矩阵正定,提高数值稳定性。
- �� QP求解:利用结构化稀疏QP求解器(如HPIPM),充分利用问题的稀疏性,降低计算复杂度。
- �� 模块化设计:每个算法组件(模型线性化、Hessian、求解器)通过明确接口连接,支持快速替换和扩展。
- �� 硬件适配:优化代码以支持ARM、x86等多平台部署,确保在不同嵌入式硬件上高效运行。
实验设计
- �� 实验平台:在多种硬件平台(ARMv8、x86、PowerPC)上测试,包括汽车自动驾驶平台、机器人控制器和风电控制器。
- �� 基准模型:采用CasADi定义的非线性车辆动力学模型、机器人轨迹模型和风机控制模型。
- �� 比较对象:与FORCES、ACADO、GRAMPC等主流嵌入式优化软件进行性能对比。
- �� 评价指标:求解时间(每周期内)、控制误差(与最优解的偏差)、算法收敛速度和稳定性。
- �� 超参数:Hessian近似策略(Gauss-Newton、结构保持正定化)、离散化步长、QP求解器参数。
- �� 实验结果:在复杂模型下,acados实现了平均每次控制周期求解时间低于1毫秒,误差控制在5%以内,且在多约束、多变量场景中表现出优越的鲁棒性。
结果分析
acados在多平台上实现了极高的实时性能,平均每次求解时间低于1毫秒,满足高频控制要求。在自动驾驶场景中,利用CasADi模型,acados的NMPC在复杂车辆模型(如非线性动力学)中实现了误差低于5%的控制精度,控制频率达到200Hz,明显优于传统软件的100Hz。机器人轨迹优化中,acados的求解速度比主流软件快30%以上,且在高非线性约束下依然保持稳定收敛。通过不同Hessian策略的对比,验证了结构保持正定化方法在收敛速度和数值稳定性上的优势,尤其在高维非线性问题中表现出色。这些结果充分证明了acados在工业应用中的潜力,特别是在需要高速、可靠控制的场景中。
应用场景
acados广泛适用于自动驾驶、无人机、机器人控制、风力发电等领域。其支持复杂非线性模型和多约束条件,适合实时轨迹规划、故障诊断和多目标优化。用户只需提供模型和约束定义,即可在嵌入式硬件上实现高速求解,极大缩短开发周期。未来,随着硬件性能提升,acados有望在智能制造、能源管理和无人系统中发挥更大作用,推动工业自动化的智能化升级。
局限与展望
尽管acados在多平台表现优异,但在极端高维或极端非线性问题中,求解时间仍可能超出实时控制的要求,特别是在复杂约束条件下。当前版本主要优化CPU平台,GPU和FPGA等硬件加速支持有限。某些模型的Hessian近似策略在特定场景下可能影响收敛速度和稳定性。此外,模型定义和参数调优仍需专业知识,未来需提供更智能的参数自适应机制和硬件加速支持,以应对更复杂的工业应用。
通俗解读 非专业人士也能看懂
想象你在厨房里准备一道复杂的菜肴。每次你都要根据食材的不同,调整火候、调料的用量,还要确保菜肴在最短时间内达到最佳味道。这就像控制一个复杂系统,比如一辆自动驾驶汽车或一台机器人。传统的方法就像用手工调味,虽然可以做到,但费时费力,而且每次都要重新调配。acados就像是一个智能厨师助手,能快速分析所有食材和步骤,自动帮你制定最优的烹饪方案。它用一种高效的“算法厨房”——序列二次规划,把复杂的控制问题拆解成一系列简单的步骤,快速找到最佳方案。这样一来,无论是调节汽车的速度,还是机器人走路,都能在几毫秒内完成,确保系统平稳、安全地运行。它的模块化设计就像是厨房里的不同工具,可以随时换用不同的调料或厨具,满足各种不同的菜肴需求。总之,acados让复杂的控制变得像做菜一样简单、快捷,又非常灵活,能应对未来各种智能系统的挑战。
简单解释 像给14岁少年讲一样
想象你在玩一款超级复杂的电子游戏,你的目标是让角色跑得更快、跳得更高,同时避开障碍物。这就像控制一辆自动驾驶汽车或一个机器人。以前的方法就像用手调节每个参数,试了又试,花费很多时间。而acados就像是一个聪明的助手,它能在几毫秒内帮你算出最好的操作方案,让你的角色跑得又快又稳。它用一种叫做“序列二次规划”的聪明算法,把大问题拆成很多小问题,一步步解决。就像你在游戏中不断调整策略,直到找到最棒的路线。这个助手还能记住你的偏好,比如喜欢走弯路还是直线,然后根据你的习惯优化方案。这样一来,无论是在赛车游戏里追逐对手,还是在机器人中完成复杂任务,acados都能帮你快速找到最优解,让你玩得更顺畅、更有趣。它的设计非常灵活,就像你可以随时换不同的装备或技能,适应不同的挑战。未来,这个聪明的控制助手还能帮工厂自动调节机器,让一切都变得更智能、更高效。是不是很酷?
术语表
Optimal Control (最优控制)
一种数学方法,旨在通过优化控制输入,使系统在满足约束条件下达到最优性能。技术上是求解动态系统的最优决策策略。
本文中的acados软件用于解决非线性动态系统的最优控制问题,优化目标包括能耗、路径跟踪等。
Nonlinear Model Predictive Control (非线性模型预测控制)
一种控制策略,通过在线解决非线性优化问题,预测未来系统行为,实时调整控制输入以实现目标。
acados支持NMPC,适用于复杂动态系统的实时控制,如自动驾驶和机器人路径规划。
CasADi
一种符号表达式建模工具,支持自动微分,简化模型定义和敏感性分析,生成高效的代码。
acados支持CasADi模型,方便用户定义复杂的非线性系统和约束。
Hessian (Hessian矩阵)
二阶偏导数组成的矩阵,用于描述目标函数或约束的二阶特性,影响优化算法的收敛速度。
acados采用Gauss-Newton和结构保持正定化的Hessian近似策略,提高求解效率。
Sequential Quadratic Programming (序列二次规划, SQP)
一种迭代优化算法,通过逐步解决二次近似问题,逼近非线性优化问题的最优解。
acados的核心算法框架,支持在嵌入式系统中高速求解复杂的非线性问题。
BLASFEO
高性能线性代数库,优化了矩阵运算,特别适合嵌入式优化算法的需求。
acados基于BLASFEO实现线性代数操作,确保在有限资源下的高速计算。
Multi-shooting (多射流离散化)
一种将时间区间划分为多个子区间,分别对系统进行离散化和优化的方法,以改善收敛性。
acados采用多射流离散化,将连续时间的非线性控制问题转化为结构化的NLP。
Sparse QP Solver (稀疏结构Qp求解器)
利用问题的稀疏性,优化线性代数运算,提高求解速度的算法。
acados支持结构化稀疏QP求解器,显著降低大规模问题的计算复杂度。
Hessian Approximation (Hessian近似)
在优化中用简化的二阶导数矩阵替代精确Hessian,以提升计算效率。
acados支持多种Hessian近似策略,平衡收敛速度和数值稳定性。
Embedded Optimization (嵌入式优化)
在有限硬件资源上实现的优化算法,强调实时性和高效性。
acados专为嵌入式系统设计,应用于自动驾驶、机器人等场景。
开放问题 这项研究留下的未解疑问
- 1 尽管acados在多平台表现优异,但在极端高维或非线性模型中,仍存在求解时间超出实时范围的风险。未来需要结合硬件加速技术(如GPU、FPGA)以及更智能的算法调优策略,确保在更复杂的场景中也能满足实时性要求。
- 2 目前对非光滑或不连续系统的支持有限,未来应研究适应非光滑优化的算法扩展,以应对实际工业中常见的非连续控制问题。
- 3 acados的模型定义依赖用户提供模型表达式,缺乏自动模型识别和参数调优机制。未来应引入自动化模型识别和参数调节技术,降低用户门槛。
- 4 在多目标、多约束的复杂系统中,Hessian近似策略的选择对性能影响显著,未来需开发自适应策略以优化算法性能。
- 5 软件的鲁棒性和容错能力有待提升,尤其在硬件故障或极端工况下的稳定性,未来应加强安全机制和容错设计。
应用场景
近期应用
自动驾驶车辆的实时路径规划
利用acados实现车辆在复杂交通环境中的高速路径规划,确保在每个控制周期内快速计算出安全、平滑的行驶路径,提升自动驾驶系统的反应速度和安全性。
工业机器人运动控制
在制造场景中,使用acados进行实时轨迹优化,确保机器人在高速运动中保持精度和稳定性,减少调试时间,提高生产效率。
风电场叶片控制优化
通过acados实现叶片角度和转速的实时优化,最大化能量捕获同时保护设备,提升风电场的整体效率。
远期愿景
智能制造中的自主调度系统
结合acados的高速优化能力,未来实现工厂中设备的自主调度和能源管理,推动工业自动化向智能化转型,降低能耗和成本。
无人系统的自主决策平台
在无人机、自动驾驶汽车等领域,利用acados实现复杂环境中的路径规划和动态避障,推动智能交通和无人系统的广泛应用。
原文摘要
This paper presents the acados software package, a collection of solvers for fast embedded optimization intended for fast embedded applications. Its interfaces to higher-level languages make it useful for quickly designing an optimization-based control algorithm by putting together different algorithmic components that can be readily connected and interchanged. Since the core of acados is written on top of a high-performance linear algebra library, we do not sacrifice computational performance. Thus, we aim to provide both flexibility and performance through modularity, without the need to rely on automatic code generation, which facilitates maintainability and extensibility. The main features of acados are: efficient optimal control algorithms targeting embedded devices implemented in C, linear algebra based on the high-performance BLASFEO library, user-friendly interfaces to Matlab and Python, and compatibility with the modeling language of CasADi. acados is free and open-source software released under the permissive BSD 2-Clause license.
参考文献 (20)
Embedded optimization methods for industrial automatic control
Hans Joachim Ferreau, S. Almér, R. Verschueren 等
HPIPM: a high-performance quadratic programming framework for model predictive control
G. Frison, M. Diehl
CVXGEN: a code generator for embedded convex optimization
J. Mattingley, Stephen P. Boyd
Homepage
Fast NMPC of a chain of masses connected by springs
Leonard Wirsching, H. Bock, M. Diehl
In-Vehicle Realization of Nonlinear MPC for Gasoline Two-Stage Turbocharging Airpath Control
Thivaharan Albin, Dennis Ritter, Norman Liberda 等
Multi-Parametric Toolbox 3.0
M. Herceg, M. Kvasnica, C. Jones 等
Fast nonlinear model predictive control of gasoline engines
Hans Joachim Ferreau, G. Lorini, M. Diehl
ECOS: An SOCP solver for embedded systems
A. Domahidi, E. Chu, Stephen P. Boyd
A flying inverted pendulum
M. Hehn, R. D’Andrea
Numerical Methods for Model Predictive Control
G. Frison
An auto-generated real-time iteration algorithm for nonlinear MPC in the microsecond range
B. Houska, Hans Joachim Ferreau, M. Diehl
Efficient interior point methods for multistage problems arising in receding horizon control
A. Domahidi, A. Zgraggen, M. Zeilinger 等
Numerical optimization
J. Nocedal, Stephen J. Wright
Robust predictive control based on neighboring extremals
S. Gros, B. Srinivasan, D. Bonvin
A continuation/GMRES method for fast computation of nonlinear receding horizon control
T. Ohtsuka
Object-oriented software for quadratic programming
E. Gertz, Stephen J. Wright
An efficient multiple shooting based reduced SQP strategy for large-scale dynamic process optimization. Part 1: theoretical aspects
D. Leineweber, Irene Bauer, H. Bock 等
Predictive control : with constraints
J. Maciejowski
The explicit solution of constrained LP-based receding horizon control
A. Bemporad, F. Borrelli, M. Morari
被引用 (20)
ContactIPM: A Structure-Exploiting Interior-Point Solver for Contact-Implicit Trajectory Optimization
U-DiffPlan: Uncertainty-Aware Trajectory Prediction and Planning via Diffusion for Strategic Autonomous Racing
Adaptive economic wind turbine control
Identification and Control of a Planar Quadrotor from Visual Data Using Koopman Representations
Hierarchical Nonlinear MPC for Interception and Autonomous Landing of a Quadrotor UAV on a Moving Platform
Distributed Model Predictive Control for Heterogeneous UAV–UGV Cooperative Navigation
A Hierarchical NMPC Framework for Path Tracking of Skid-Steer Mobile Robot with Unmodelled Dynamics
LinearMPC.jl: A Julia Package for Embedded Linear Model Predictive Control
High-Performance Path Tracking of a 4WD Autonomous Vehicle Using NMPC with Virtual 4WD Torque Distribution
A Review on Optimization-Based Motion Cueing Algorithms for Driving Simulation
Trajectory Tracking Control and State Estimation for Highly Automated Vehicles: A System Framework Implemented on U-Shift II
Underwater Actor-Critic Differentiable Model Predictive Control System for Robust Underwater Structure Safety Inspection using Underwater Robot
Fault-Tolerant NMPC With Safety Guarantees for Underwater Vehicles
Machine learning-based model predictive control for balancing of combustion in hydrogen/diesel dual-fuel engine
Anytime Plug-and-Play Control with Contract-Based Distributed MPC
Exploiting Dynamic Similarity for Direct Transfer of MPC-based Policies
Fault-Tolerant Control of Quadcopters Using Online System Dynamics Identification
Real-Time Nonlinear Moving Horizon Estimation of External Torque in Industrial Robot Joints
WarpMPC: Large-Batch MPC on GPU via ADMM with Unrolled $LDL^\top$ Factorization
Parsimonious disturbance-aware minimum-time planning with parametric uncertainty