巨嘴鸟▫ Toucan_F
Stayhungry,stayfoolish.
关注数: 2 粉丝数: 42 发帖数: 509 关注贴吧数: 6
PID速度控制 简单火箭的Vizzy编程界面让火箭的自动化控制成为可能,今天分享我的PID速度控着程序的推导过程。 实现速度控制的总体思路是: 1. 设置目标速度,读取当前速度 2. 得到当前速度与目标速度的差值 3. 根据差值调整火箭推力 4. 减小差值,直到火箭达到目标速度 下面详细介绍将控制系统,画出来如图其中 vr(t)是目标速度,v(t)是当前速度。首先通过vr(t)-v(t)得到当前速度与目标的差值,然后将差值输入控制系统(controller)g1(t),控制系统输出火箭的需要的推力。这里为了简化计算,我们让控制系统输出火箭需要受到的合外力 F(t),之后我们可以在Vizzy中加上重力的影响,通过合外力F(t)得到补偿后的火箭所需要的推力。合外力作用在火箭g2(t)上,从而影响火箭达到当前速度v(t)。 有了整体框架,下一步需要将控制系统和火箭表示出来。我们先表示火箭这个系统,也就是找到火箭受到的合外力和火箭当前速度的关系。根据牛顿力学中加速度和力的关系,我们得到:其中m是火箭的质量。而加速度又是速度对时间求导得到,也就是:上面的式子是以时间为自变量表示的,为了求解PID的参数,我们需要把这个式子做拉普拉斯变换。这里不展开讲拉普拉斯变换,如果仅仅是能求解PID参数,查表就可以了。从这个表可得,上面加速度与速度的关系在拉普拉斯域上为:同理,通过查表加速度与合外力的关系可以表示为:联立两个式子可以得到:这个1/ms计算火箭这个系统在拉普拉斯域上的表示方式。 我们带入在拉普拉斯域上的PID控制参数和火箭系统参数,接下来我们找到目标速度Vr(s)与当前速度V(s)上的关系:整理一下可以得到:我们着重看这个式子的分母,因为PID系统的稳定性与这个式子分母的零点有关。也就是与下面这个式子的解有关这个是一个一元二次方程(把PID控制参数当成常熟),因此s的解有三种情况 1. s有一个解 2. s有两个实数解 3. s有两个带虚数的解 我们以实数轴为横轴,虚数轴为纵轴,形成一个平面。s的解在平面上的位置与系统稳定性有关。当s的解在虚轴左边的适合系统受到扰动会趋于稳定。当在虚轴有右边时,系统受到干扰会趋于不稳定。当解在虚轴左边又在实数轴上时(虚数部分等于零),扰动会以指数衰减。我们可以解除s的解,让虚数部分等于零。或者把分母当成二阶系统的标准式,通过结论也可以得到指数衰减的PID参数。通过任意一种方法,可以得到s的解的系数部分等于零,PID参数需要满足的关系:在Vizzy中,我们先确定Kp和Ki的数值,然后通过火箭的质量m实时更新Ki。
1 下一页