Apollo里面更多使用基于模型的控制方法,它包括四个部分:建模、系统辨识、控制器设计和参数调优。
建模
一般可以分为分析建模和拟合建模,控制模块中的模型,通常包括运动学模型和动力学模型。运动学模型是一种几何模型,感知、预测讨论的模型则以运动学模型为主。而在控制模块中,更多考虑动力学模型。实际上,运动学模型是动力学模型的一个子集。
系统辨识
有些参数是未知的,系统辨识的目的是确定这些未知参数的值。确定未知参数的方法有三种:白盒、灰盒以及黑盒方法。
白盒方法是指对于基于第一原理(如牛顿定律)的模型结构,可以由测量数据估计模型的参数。
灰盒方法是用于只有部分模型结构可知,通过数据重建的方法来获取模型的其它部分的方法。
黑盒方法是指模型结构和参数都在未知的情况下,只能通过输入输出数据来估计的方法。
控制器设计
基于模型的控制模块设计第三步是控制器的设计,包括滤波器设计、控制器设计以及观察器设计等。
滤波器可以分为线性和非线性,数字滤波或者模拟信号滤波,离散滤波或者连续滤波等,根据实现方式不同,滤波器又可以分为高斯滤波、卡尔曼滤波、贝叶斯滤波等
删除线格式
控制器的类型大致可以分为三类,分别是开环控制、前馈环控制和后馈环控制
前馈环控制
前馈环控制器的主要控制策略有很多种,这里主要介绍三种,分别是Optimal Control(优化控制)、 Adaptive Control(自适应控制)、Robust Control(鲁棒性控制)
前馈环控制需要保证,首先是可控性和可观性。可控性(Controllability)是指系统是不是能按期望通过控制量U达到相应的动态;可观性(Observability)是指在初识状态已知的情况下,是不是可以重构整个系统的状态
优化控制
优化控制的目的是在给定系统的情况下,找到或者设计出一个控制法则使系统可以满足特定的优化标准。主要有LQR和MPC
自适应控制
自适应控制是一种针对控制系统中参数多变或者初始值不确定的控制方法。最简单的一种方法就是根据输入使用swith的方式,根据输入或者gain选择不同的控制算法
鲁棒控制
鲁棒性用来解决如何确定模型的正确性问题。它主要是用来处理模型的非确定性,是一种在已知模型错误边界的情况下,设计一个性能不错而且稳定的控制器的方法。最简单的鲁棒性控制器是LQR/LTR控制器,也是一个二次线性调节器
其他方面
控制器设计,除了上面提到的比较重要的几个控制方法之外,还有其它次要的因素需要考虑,这些因素更多的是影响控制器的性能,包括Deadzone、饱和和抗饱和等