[滑模控制器浅述] (1) 二阶系统的简单滑模控制器设计
[滑??刂破鳒\述] (1) 二階系統的簡單滑??刂破髟O計
- [滑??刂破鳒\述] (1) 二階系統的簡單滑模控制器設計
- 1 前言
- 2 無人機位置環的滑模控制器設計
[滑??刂破鳒\述] (1) 二階系統的簡單滑??刂破髟O計
本博客需要一些現代控制理論中Lyapunov穩定性的一些理論知識。
關于滑模控制的原理這里將不再贅述,讀者們可以參考別的理論文獻,會有很長的故事,這里將主要從數學和穩定性的角度,利用筆者淺薄的知識,為各位讀者最通俗易懂的淺述滑??刂破鞯暮唵卧O計。
這將會是一個系列博客(如果筆者不咕咕咕),后面還會對滑??刂频目垢蓴_原理介紹,以及介紹幾種筆者用過的近年來改良的滑??刂破?。
[滑??刂破鳒\述] (2) 滑模控制抗干擾原理
[滑??刂破鳒\述] (3) 滑??刂瓶瓜到y參數不定原理
[滑模控制器淺述] (4) Terminal滑模簡述及其與普通滑模收斂速度比較
[滑??刂破鳒\述] (5) 基于分層滑模的吊車控制
1 前言
本文將針對二階系統,即輸入直接改變目標的加速度(被控量的二階導數),控制目標是位置狀態的跟蹤,如果你沒有一個合適的研究對象,可以選取多旋翼無人機,筆者的前文對其有較為詳細的介紹,本文將以無人機的位置控制為例,控制器設計的方法同樣可以推廣到別的系統上去:
MATLAB Simmechanics/Simscope四旋翼無人機控制仿真(3) 無人機控制器設計(非PID)
2 無人機位置環的滑??刂破髟O計
關于無人機的數學模型和控制原理邏輯可以參考前面提到的系列博客。
考慮無人機xxx方向位置狀態方程:
{x˙=x˙x¨=uxu1m\left\{ \begin{matrix} \dot{x}=\dot{x} \\ \ddot{x}=\frac{{{u}_{x}}{{u}_{1}}}{m} \\ \end{matrix} \right.{x˙=x˙x¨=mux?u1???令x1=x{{x}_{1}}=xx1?=x,x2=x˙{{x}_{2}}=\dot{x}x2?=x˙:
{x˙1=x2x˙2=uxu1m\left\{ \begin{matrix} & {{{\dot{x}}}_{1}}={{x}_{2}} \\ & {{{\dot{x}}}_{2}}=\frac{{{u}_{x}}{{u}_{1}}}{m} \\ \end{matrix} \right. {?x˙1?=x2?x˙2?=mux?u1???定義誤差:
e1=x1d?x1{{e}_{1}}=x_{1}^ozvdkddzhkzd-{{x}_{1}} e1?=x1d??x1?考慮滑模面,c>0c>0c>0:
s=e˙1+ce1s={{\dot{e}}_{1}}+c{{e}_{1}} s=e˙1?+ce1?求導:
s˙=e¨1+ce˙1=x¨1d?x˙2+ce˙1\dot{s}={{\ddot{e}}_{1}}+c{{\dot{e}}_{1}}=\ddot{x}_{1}^ozvdkddzhkzd-{{\dot{x}}_{2}}+c{{\dot{e}}_{1}} s˙=e¨1?+ce˙1?=x¨1d??x˙2?+ce˙1?設計趨近律,ε>0\varepsilon >0ε>0,r>0r>0r>0:
s˙=?εsgn(s)?rs\dot{s}=-\varepsilon sgn \left( s \right)-rs s˙=?εsgn(s)?rs根據上面兩式,可以求解輸入:
x¨1d?x˙2+ce˙1=?εsgn(s)?rsx¨1d?uxu1m+ce˙1=?εsgn(s)?rsux=mx¨1d+εsgn(s)+rs+ce˙1u1\begin{aligned} \ddot{x}_{1}^ozvdkddzhkzd-{{{\dot{x}}}_{2}}+c{{{\dot{e}}}_{1}}=-\varepsilon sgn \left( s \right)-rs \\ \ddot{x}_{1}^ozvdkddzhkzd-\frac{{{u}_{x}}{{u}_{1}}}{m}+c{{{\dot{e}}}_{1}}=-\varepsilon sgn \left( s \right)-rs \\ {{u}_{x}}=m\frac{\ddot{x}_{1}^ozvdkddzhkzd+\varepsilon sgn \left( s \right)+rs+c{{{\dot{e}}}_{1}}}{{{u}_{1}}} \end{aligned} x¨1d??x˙2?+ce˙1?=?εsgn(s)?rsx¨1d??mux?u1??+ce˙1?=?εsgn(s)?rsux?=mu1?x¨1d?+εsgn(s)+rs+ce˙1???對于本滑??刂?#xff0c;其穩定性分析不是考慮狀態量,而是考慮滑模面,考慮如下Lyapunov函數:
V=12s2V=\frac{1}{2}{{s}^{2}} V=21?s2求導:
V˙=ss˙=?εssgn(s)?rs2=?ε∣s∣?rs2<0\begin{aligned} & \dot{V}=s\dot{s} \\ & =-\varepsilon s sgn \left( s \right)-r{{s}^{2}} \\ & =-\varepsilon \left| s \right|-r{{s}^{2}}<0 \end{aligned} ?V˙=ss˙=?εssgn(s)?rs2=?ε∣s∣?rs2<0?sss是收斂的,而且這是在設計滑模趨近律s˙\dot{s}s˙的時候就已經決定的,說明有s→0s\to 0s→0,即e˙1+ce1→0{{\dot{e}}_{1}}+c{{e}_{1}}\to 0e˙1?+ce1?→0,這又說明了什么呢?說明e˙1{{\dot{e}}_{1}}e˙1?和e1{{e}_{1}}e1?正負異號,最終必同時有e˙1→0{{\dot{e}}_{1}}\to 0e˙1?→0,e1→0{{e}_{1}}\to 0e1?→0。從而實現狀態量的跟蹤,因此不用直接分析誤差的Lyapunov函數。
這里筆者就偷懶不放仿真曲線了,因為手邊現在沒有現成的,不過效果當然是會跟蹤上期望的狀態。
值得一提的是,這里的參數ccc能夠影響e1{{e}_{1}}e1?和e˙1{{\dot{e}}_{1}}e˙1?的收斂速度,ccc越大,e1{{e}_{1}}e1?收斂的相比較e˙1{{\dot{e}}_{1}}e˙1?而言是越快的,反之亦然。
還有別的常用趨近律:
s˙=?εsgn(s)ε>0\begin{matrix} \dot{s}=-\varepsilon sgn \left( s \right) & \varepsilon >0 \\ \end{matrix}s˙=?εsgn(s)?ε>0?
s˙=?rsr>0\begin{matrix} \dot{s}=-rs & r>0 \\ \end{matrix}s˙=?rs?r>0?
s˙=?ε∣s∣αsgn(s)ε>0,0<α<1\begin{matrix} \dot{s}=-\varepsilon {{\left| s \right|}^{\alpha }}sgn \left( s \right) & \varepsilon >0,0<\alpha <1 \\ \end{matrix} s˙=?ε∣s∣αsgn(s)?ε>0,0<α<1?他們其中的項也可以交叉使用。
總結
以上是生活随笔為你收集整理的[滑模控制器浅述] (1) 二阶系统的简单滑模控制器设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu笔记本gpu温度太高解决办法
- 下一篇: 锐起无盘服务器只能是什么系统,安装锐起无