一种高精度舵机位置控制方法与流程

文档序号:11915543阅读:来源:国知局

技术特征:

1.一种高精度舵机位置控制方法,其特征在于,包括以下步骤

(1)对当前的电位器电压进行ADC采样,采样的电压值记为当前的舵机位置值;

(2)对舵机位置值进行线性插值算法处理,对非线性区间进行线性校准;

(3)将校准后的位置线,采用一阶惯性滤波算法,对输出最终ADC采集结果做滤波处理;

(4)对位置曲线进行滤波处理,经过线性插值和滤波算法处理,校准后的位置曲线;

(5)基于舵机的物理数学模型,构建串级PID控制器,实现以位置控制为外环,速度控制为内环的高精度舵机位置控制算法。

2.根据权利要求1所述的高精度舵机位置控制方法,其特征在于,所示步骤(2)具体为,在区间[y0,y1]中,进行定点采样取值:第一个点(x0,y0)和最后一个点(x1,y1),则在区间内的任意点y(i),其坐标(x,y)可求出:

3.根据权利要求1所述的高精度舵机位置控制方法,其特征在于,所示步骤(3)中,一阶惯性滤波算法具体为,y(n)=a*x(n)+(1-a)*y(n-1),其中a为滤波系数,0≤a≤1。

4.根据权利要求1所述的高精度舵机位置控制方法,其特征在于,所示步骤(4)中,滤波处理具体为,

<mrow> <mi>y</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>u</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>)</mo> </mrow> <mfrac> <mrow> <mn>2</mn> <mi>&pi;</mi> <mi>f</mi> <mi>T</mi> </mrow> <mrow> <mn>1</mn> <mo>+</mo> <mn>2</mn> <mi>&pi;</mi> <mi>f</mi> <mi>T</mi> </mrow> </mfrac> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mfrac> <mrow> <mn>2</mn> <mi>&pi;</mi> <mi>f</mi> <mi>T</mi> </mrow> <mrow> <mn>1</mn> <mo>+</mo> <mn>2</mn> <mi>&pi;</mi> <mi>f</mi> <mi>T</mi> </mrow> </mfrac> <mo>)</mo> </mrow> <mrow> <mo>(</mo> <mi>y</mi> <mo>(</mo> <mrow> <mi>i</mi> <mo>-</mo> <mn>1</mn> </mrow> <mo>)</mo> <mo>+</mo> <mi>A</mi> <mi>v</mi> <mi>e</mi> <mo>_</mo> <mi>V</mi> <mi>a</mi> <mi>l</mi> <mi>u</mi> <mi>e</mi> <mo>)</mo> </mrow> <mo>.</mo> </mrow>

其中,f为滤波截止频率,T为采样周期,Ave_Value为当前速度的理想增值。

5.根据权利要求1所述的高精度舵机位置控制方法,其特征在于,所示步骤(5)中,在位置控制中,根据舵机设定的运动完成时间T和预先设定的目标位置R1(S)计算出当前时刻Tn的参考位置R1n(S),计算公式:其中,0≤n≤N,

将当前经过线性插值和滤波处理后的位置值作为位置PID的当前位置输入作为位置控制器的输入H1n(S);

当前采样位置H1n(S)和参考位置R1n(S)做偏差E1(S),位置控制器进行PID处理,在时域里基本公式:

<mrow> <msub> <mi>S</mi> <mrow> <mi>o</mi> <mi>u</mi> <mi>t</mi> <mn>1</mn> </mrow> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>K</mi> <mi>p</mi> </msub> <mi>e</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <mfrac> <msub> <mi>K</mi> <mi>p</mi> </msub> <msub> <mi>T</mi> <mi>i</mi> </msub> </mfrac> <msubsup> <mo>&Integral;</mo> <mn>0</mn> <mi>t</mi> </msubsup> <mi>e</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mi>d</mi> <mi>t</mi> <mo>+</mo> <msub> <mi>K</mi> <mi>c</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>S</mi> <mrow> <mi>o</mi> <mi>u</mi> <mi>t</mi> <mn>2</mn> </mrow> </msub> <mo>(</mo> <mi>t</mi> <mo>)</mo> <mo>-</mo> <msub> <mi>S</mi> <mrow> <mi>o</mi> <mi>u</mi> <mi>t</mi> <mn>1</mn> </mrow> </msub> <mo>(</mo> <mi>t</mi> <mo>)</mo> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>K</mi> <mi>p</mi> </msub> <msub> <mi>T</mi> <mi>d</mi> </msub> <mfrac> <mrow> <mi>d</mi> <mi>e</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mi>d</mi> <mi>t</mi> </mrow> </mfrac> </mrow>

设S(k)为第k次采样时刻位置控制器的输出值,进行PID离散化,令

<mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>K</mi> <mi>i</mi> </msub> <mo>=</mo> <mfrac> <mi>T</mi> <msub> <mi>T</mi> <mi>i</mi> </msub> </mfrac> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>K</mi> <mi>d</mi> </msub> <mo>=</mo> <mfrac> <msub> <mi>T</mi> <mi>d</mi> </msub> <mi>T</mi> </mfrac> </mrow> </mtd> </mtr> </mtable> </mfenced>

计算公式:

Sout1(k)=Sp(k)+Si(k-1)+KiSp(k)+Kc(Sout2(k)-Sout1(k))+Kd(Sp(k)-Sp(k-1))

输出结果Sout1进行预饱和限幅输出得到Sout2

6.根据权利要求1所述的高精度舵机位置控制方法,其特征在于,所示步骤(5)中,在速度控制中,预饱和输出Sout2将作为当前速度控制器的参考速度R2n(S),

参考速度R2n(S)的计算公式:

当前速度检测H2n(S)的计算公式:

<mrow> <msub> <mi>H</mi> <mrow> <mn>2</mn> <mi>n</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>s</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <msub> <mi>R</mi> <mrow> <mn>1</mn> <mi>n</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>S</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>R</mi> <mrow> <mn>1</mn> <mrow> <mo>(</mo> <mi>n</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> </msub> <mrow> <mo>(</mo> <mi>S</mi> <mo>)</mo> </mrow> </mrow> <mfrac> <mi>T</mi> <mi>N</mi> </mfrac> </mfrac> <mo>=</mo> <mfrac> <mi>N</mi> <mrow> <mo>&lsqb;</mo> <msub> <mi>R</mi> <mrow> <mn>1</mn> <mi>n</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>S</mi> <mo>)</mo> </mrow> <mo>-</mo> <msub> <mi>R</mi> <mrow> <mn>1</mn> <mrow> <mo>(</mo> <mi>n</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> </msub> <mrow> <mo>(</mo> <mi>S</mi> <mo>)</mo> </mrow> <mo>&rsqb;</mo> <mi>T</mi> </mrow> </mfrac> </mrow>

当前采样位置H2n(S)和参考位置R2n(S)做偏差E2(S),速度控制器进行PID处理,令

<mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <msub> <mi>V</mi> <mrow> <mi>o</mi> <mi>u</mi> <mi>t</mi> <mn>1</mn> </mrow> </msub> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>=</mo> <msub> <mi>K</mi> <mi>p</mi> </msub> <mo>{</mo> <mi>e</mi> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>+</mo> <mfrac> <mi>T</mi> <msub> <mi>T</mi> <mi>I</mi> </msub> </mfrac> <mstyle> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>k</mi> </munderover> </mstyle> <mi>e</mi> <mo>(</mo> <mi>j</mi> <mo>)</mo> <mo>+</mo> <mfrac> <msub> <mi>T</mi> <mi>D</mi> </msub> <mi>T</mi> </mfrac> <mo>&lsqb;</mo> <mi>e</mi> <mo>(</mo> <mi>k</mi> <mo>)</mo> <mo>-</mo> <mi>e</mi> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> <mo>&rsqb;</mo> <mo>}</mo> </mtd> </mtr> <mtr> <mtd> <msub> <mi>V</mi> <mrow> <mi>o</mi> <mi>u</mi> <mi>t</mi> <mn>1</mn> </mrow> </msub> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> <mo>=</mo> <msub> <mi>K</mi> <mi>p</mi> </msub> <mo>{</mo> <mi>e</mi> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> <mo>+</mo> <mfrac> <mi>T</mi> <msub> <mi>T</mi> <mi>I</mi> </msub> </mfrac> <mstyle> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>k</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> </mstyle> <mi>e</mi> <mo>(</mo> <mi>j</mi> <mo>)</mo> <mo>+</mo> <mfrac> <msub> <mi>T</mi> <mi>D</mi> </msub> <mi>T</mi> </mfrac> <mo>&lsqb;</mo> <mi>e</mi> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> <mo>-</mo> <mi>e</mi> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>2</mn> <mo>)</mo> <mo>&rsqb;</mo> <mo>}</mo> </mtd> </mtr> </mtable> </mfenced>

速度控制器输出量是速度增量ΔVout1,由上式可得

ΔVout1(k)=Vout1(k)-Vout1(k-1)=Kp[e(k)-e(k-1)]+KIe(k)+KD[e(k)-2e(k-1)+e(k-2)],

根据速度增量,对当前速度进行修正,计算公式:Vout1(k)=Vout1(k-1)+ΔVout1(k)

对修正速度Vout1进行限幅输出,输出为最终速度Vout2

对最终速度Vout2进行PWM转换,转换计算公式:

<mrow> <mi>P</mi> <mi>w</mi> <mi>m</mi> <mo>_</mo> <mi>V</mi> <mi>a</mi> <mi>l</mi> <mi>u</mi> <mi>e</mi> <mo>=</mo> <mfrac> <msub> <mi>V</mi> <mrow> <mi>o</mi> <mi>u</mi> <mi>t</mi> <mn>2</mn> </mrow> </msub> <mi>K</mi> </mfrac> <mo>+</mo> <mi>P</mi> <mi>w</mi> <mi>m</mi> <mo>_</mo> <mi>V</mi> <mi>a</mi> <mi>l</mi> <mi>u</mi> <mi>e</mi> </mrow>

其中,Pwm_Value为用于速度控制的占空比值,

K的比例值由当前电压下,速度与PWM的对应线性关系线求出。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1