经典的PID控制直到如今都还是应用最广泛的控制算法,大部分的控制系统里用的都还是这个。它的好处主要在于,不需要被控对象的模型。
什么是被控对象的模型?
举个例子,假设我们以小车的速度 V V V为被控量,但是推动小车的力 F F F才是我们的控制量。
考虑阻力并假设阻力和速度成正比的话,根据牛顿第二定律我们可以得到小车的动力学方程 F − k V = m a F-kV=ma F−kV=ma,其中 k k k为阻力系数, m m m为小车质量。
根据质点运动学方程又有 V ˙ = a dot{V}=a V˙=a,
这样就可以得到利用外力 F F F控制小车速度 V V V的模型 V ˙ = − k m V + 1 m F dot{V}=-frac{k}{m}V+frac{1}{m}F V˙=−mkV+m1F
(也就是 x ˙ = − A x + B u dot{x}=-Ax+Bu x˙=−Ax+Bu的线性模型的结构)
OK,这个方程通常就是我们需要的,如果要应用现代控制理论(比如最优控制)设计一个控制器,那么我们就需要知道这个模型的全部信息东西,在这里就是模型的结构以及阻力系数 k k k和小车质量 m m m。
获得这个模型存在两个问题:
模型的参数难以获得。这里的阻力系数 k k k和小车质量 m m m好像挺容易获得的,但是实际被控对象的模型参数可能要多的多,有些是很难获得的。
由于模型难获得,而现代控制理论又大多基于模型设计,虽然能够满足各种各样的性能条件,但大都不够实用,这也就导致了PID一直称霸各个控制领域。因为PID是只利用误差 e e e 来计算控制量的,不需要模型知识,只需要调一调 K P , K I , K D K_P,K_I,K_D KP,KI,KD 三个参数就能得到可以接受的效果。
经典的PID控制直到如今都还是应用最广泛的控制算法,大部分的控制系统里用的都还是这个。它的好处主要在于,不需要被控对象的模型。
什么是被控对象的模型?
举个例子,假设我们以小车的速度 V V V为被控量,但是推动小车的力 F F F才是我们的控制量。
考虑阻力并假设阻力和速度成正比的话,根据牛顿第二定律我们可以得到小车的动力学方程 F − k V = m a F-kV=ma F−kV=ma,其中 k k k为阻力系数, m m m为小车质量。
根据质点运动学方程又有 V ˙ = a dot{V}=a V˙=a,
这样就可以得到利用外力 F F F控制小车速度 V V V的模型 V ˙ = − k m V + 1 m F dot{V}=-frac{k}{m}V+frac{1}{m}F V˙=−mkV+m1F
(也就是 x ˙ = − A x + B u dot{x}=-Ax+Bu x˙=−Ax+Bu的线性模型的结构)
OK,这个方程通常就是我们需要的,如果要应用现代控制理论(比如最优控制)设计一个控制器,那么我们就需要知道这个模型的全部信息东西,在这里就是模型的结构以及阻力系数 k k k和小车质量 m m m。
获得这个模型存在两个问题:
模型的参数难以获得。这里的阻力系数 k k k和小车质量 m m m好像挺容易获得的,但是实际被控对象的模型参数可能要多的多,有些是很难获得的。
由于模型难获得,而现代控制理论又大多基于模型设计,虽然能够满足各种各样的性能条件,但大都不够实用,这也就导致了PID一直称霸各个控制领域。因为PID是只利用误差 e e e 来计算控制量的,不需要模型知识,只需要调一调 K P , K I , K D K_P,K_I,K_D KP,KI,KD 三个参数就能得到可以接受的效果。