基于matlab反步法控制器

       反步设计法是一种递归设计方法。它的主要思想是通过递归地构造闭环系统的Lyapunov函数获得反馈控制器,选取控制律使得Lyapunov函数沿闭环系统轨迹的导数具有某种性能,保证闭环系统轨迹的有界性和收敛到平衡点,所选取的控制律就是系统镇定问题、跟踪问题、干扰抑制问题或者几种问题综合的解。反步设计方法既适用于线性系统也适用于非线性系统,因此该方法一经提出,便受到广泛关注。
一、反步法控制器设计
控制目标:

\begin{aligned} & \dot{x}_1=x_2+f_1\left(x_1\right) \\ & \dot{x}_2=f_2\left(x_1, x_2\right)+u \end{aligned}

寻找反馈控制律u=u\left(x_1, x_2\right)   以及李雅普诺夫函数V\left(x_1, x_2\right) 使得原点\left(x_1, x_2\right)=(0,0)为全局渐进稳定的平衡点。
(1) 定义第一阶子系统的李雅普诺夫函数 , 求导:
\begin{gathered} \mathrm{V}_1=\frac{1}{2} \mathrm{x}_1^2 \\ \dot{\mathrm{V}}_1=\mathrm{x}_1 \dot{\mathrm{x}}_1=\mathrm{x}_1\left(\mathrm{x}_2+\mathrm{f}_1\left(\mathrm{x}_1\right)\right) \end{gathered}
(2) 设计期望的状态变量形式 , 令其为虚拟控制 , 并定义误差:
\begin{array}{cc} x_2^*=-f_1\left(x_1\right)-k_1 x_1 & z=x_2-\alpha \\ \alpha=-f_1\left(x_1\right)-k_1 x_1 & x_2=z+\alpha \end{array}
(3) 得到第一阶子系统状态的稳定项
\dot{V}_1=x_1 \dot{x}_1=x_1\left(z-k_1 x_1\right)=x_1 z-k_1 x_1^2
Simulink模块搭建:
结果分析:
在反馈控制律 u  以及李雅普诺夫函数 V\left(x_1, x_2\right) 的影响下,原点 \left(x_1, x_2\right)=(0,0) 为全局渐
进稳定的平衡点,系统x_1, x_2 输出结果:
二、三自由度水下机器人航向控制
控制目标:
使水下机器人的航向角稳定在期望航向\psi_{\mathrm{d}}
\begin{aligned} \dot{\psi} & =r \\ \dot{r} & =-\frac{1}{T} r+\frac{1}{m} \tau_{\mathrm{N}}+b \end{aligned}

        寻找反馈控制律u=u\left(x_1, x_2\right)以及李雅普诺夫函数V\left(x_1, x_2\right)使得原点\left(x_1, x_2\right)=$ $(0,0) 为全局渐进稳定的平衡点。

(1) 定义第一阶子系统的李雅普诺夫函数, 求导:

\begin{gathered} z_1=\psi-\psi_{\mathrm{d}} \\ V_1=\frac{1}{2} z_1^2 \dot{V}_1=z_1 \dot{z}_1=z_1\left(r-\dot{\psi}_d\right) \end{gathered}

(2) 设计期望的状态变量形式, 令其为虚拟控制, 定义误差:

\begin{array}{ll} r^*=-k_1 z_1+\dot{\psi}_d & z_2=r-\alpha \\ \alpha=-k_1 z_1+\dot{\psi}_d & r=z_2+\alpha \end{array}

带入(1), 得到第一阶子系统状态的稳定项:

\dot{\mathrm{V}}_1=\mathrm{z}_1 \dot{\mathrm{z}}_1=\mathrm{z}_1\left(\mathrm{z}_2-\mathrm{k}_1 \mathrm{z}_1\right)=-\mathrm{k}_1 \mathrm{z}_1^2+\mathrm{z}_1 \mathrm{z}_2
(3) 定义第二阶子系统的李雅普诺夫函数并求导:
\begin{aligned} & \mathrm{V}_2=\mathrm{V}_1+\frac{1}{2} \mathrm{z}_2^2=\frac{1}{2} \mathrm{z}_1^2+\frac{1}{2} \mathrm{z}_2^2 \\ & \dot{\mathrm{V}}_2=\dot{\mathrm{V}}_1+\mathrm{z}_2 \dot{\mathrm{z}}_2=-\mathrm{k}_1 \mathrm{z}_1^2+\mathrm{z}_1 \mathrm{z}_2+\mathrm{z}_2(\dot{\mathrm{r}}-\dot{\alpha}) \\ & \dot{\mathrm{V}}_2=-\mathrm{k}_1 \mathrm{z}_1^2+\mathrm{z}_2\left(\mathrm{z}_1-\frac{1}{\mathrm{~T}} \mathrm{r}+\frac{1}{\mathrm{~m}} \tau_{\mathrm{N}}+\mathrm{b}-\dot{\alpha}\right) \end{aligned}
(4) 设计控制器 , 使整个系统的 \dot{V}<0
\begin{gathered} \tau_N=m\left(-z_1+\frac{1}{T} r-b+\dot{\alpha}-k_2 z_2\right) \\ \dot{V}_2=-k_1 z_1^2-k_2 z_2^2 \leq 0 \end{gathered}
Simulink模块搭建:
结果分析:
航向角跟随效果:
三、三自由度水下机器人平面路径跟踪控制
控制目标:
\begin{gathered} \left\{\begin{array}{l} \dot{\eta}=J v \\ M \dot{v}+C(v) v+D(v) v+\Delta(v)=\tau \end{array}\right. \\ \eta=\left(\begin{array}{l} x \\ y \\ \psi \end{array}\right) v=\left(\begin{array}{l} u \\ v \\ \mathrm{r} \end{array}\right) J=\left(\begin{array}{ccc} \cos (\psi) & -\sin (\psi) & 0 \\ \sin (\psi) & \cos (\psi) & 0 \\ 0 & 0 & 1 \end{array}\right) \end{gathered}
设计控制器\tau ,   使被控对象实际路径\eta   跟踪期望的路径\eta_d=$ $\left[x_d(\theta), y_d(\theta), \psi_d(\theta)\right]^T , 期望路径\eta_d 是关于\theta的函数  ,\dot{\theta}为虚拟动点的速度。水下机器人/无人船跟踪路径并趋近于该虚拟动点。
(1) 定义第一阶子系统的李雅普诺夫函数 , 求导:
\begin{gathered} \mathrm{V}_1=\frac{1}{2} \mathrm{z}_1^{\mathrm{T}} \mathrm{z}_1 \\ \dot{\mathrm{V}}_1=\mathrm{z}_1^{\mathrm{T}}\left[\dot{\mathrm{j}}^{\mathrm{T}}\left(\eta-\eta_{\mathrm{d}}\right)+\mathrm{J}^{\mathrm{T}}\left(\dot{\eta}-\dot{\eta}_{\mathrm{d}}\right)\right] \\ \dot{\mathrm{V}}_1=\mathrm{z}_1^{\mathrm{T}}\left[\mathrm{rS}^{\mathrm{T}} \mathrm{z}_1+\mathrm{J}^{\mathrm{T}}\left(\mathrm{Jv}-\eta_{\mathrm{d}}^\theta\left(\omega_{\mathrm{s}}+\mathrm{v}_{\mathrm{d}}\right)\right)\right] \\ \dot{\mathrm{V}}_1=\mathrm{z}_1^{\mathrm{T}}\left[\mathrm{r} S^{\mathrm{T}} \mathrm{z}_1+\mathrm{v}-\mathrm{J}^{\mathrm{T}} \eta_{\mathrm{d}}^\theta \omega_{\mathrm{s}}-\mathrm{J}^{\mathrm{T}} \eta_{\mathrm{d}}^\theta \mathrm{v}_{\mathrm{d}}\right] \mathrm{z}_1^{\mathrm{T}} \mathrm{rS}^{\mathrm{T}} \mathrm{z}_1=0 \end{gathered}
(2) 设计期望的状态变量形式 , 令其为虚拟控制 , 定义期望的状态变量与虚拟控制之间 的误差:
\begin{array}{cc} \dot{\mathrm{V}}_1=\mathrm{z}_1^{\mathrm{T}}\left[\mathrm{v}-\mathrm{J}^{\mathrm{T}} \eta_{\mathrm{d}}^\theta \omega_{\mathrm{s}}-\mathrm{J}^{\mathrm{T}} \eta_{\mathrm{d}}^\theta \mathrm{v}_{\mathrm{d}}\right] & \\ \mathrm{v}^*=-\mathrm{k}_1 \mathrm{z}_1+\mathrm{J}^{\mathrm{T}} \eta_{\mathrm{d}}^\theta \mathrm{v}_{\mathrm{d}} & \mathrm{z}_2=\mathrm{v}-\alpha \\ \alpha=-\mathrm{k}_1 \mathrm{z}_1+\mathrm{J}^{\mathrm{T}} \eta_{\mathrm{d}}^\theta \mathrm{v}_{\mathrm{d}} & \mathrm{v}=\mathrm{z}_2+\alpha \end{array}
带入 (1), 得到第一阶子系统状态的稳定项:
\dot{\mathrm{V}}_1=-\mathrm{z}_1^{\mathrm{T}} \mathrm{k}_1 \mathrm{z}_1+\mathrm{z}_1^{\mathrm{T}} \mathrm{z}_2-\mathrm{z}_1^{\mathrm{T}} \mathrm{J}^{\mathrm{T}} \eta_{\mathrm{d}}^\theta \omega_{\mathrm{s}}
(3) 定义第二阶子系统的李雅普诺夫函数 并求导:
\begin{gathered} M \dot{v}+\mathrm{C}(v) v+D(v) v+\Delta(v)=\tau \\ M \dot{v}=\tau-\mathrm{C}(v) v-D(v) v-\Delta(v) \\ V_2=V_1+\frac{1}{2} z_2^T M z_2 \\ \dot{V}_2=-z_1^T k_1 z_1+z_1^T z_2-z_1^T J^T \eta_d^\theta \omega_s+z_2^T[M \dot{v}-M \dot{\alpha}] \\ \dot{V}_2=-z_1^T k_1 z_1-z_1^T J^T \eta_d^\theta \omega_s+z_2^T\left[z_1+\tau-\mathrm{C}(v) v-D(v) v-\Delta(v)-M \dot{\alpha}\right] \end{gathered}
设计控制器:
\tau=-z_1-k_2 z_2+\mathrm{C}(v) v+D(v) v+\Delta(v)+M \dot{\alpha}
\dot{\mathrm{V}}_2=-\mathrm{z}_1^{\mathrm{T}} \mathrm{k}_1 \mathrm{z}_1-\mathrm{z}_2^{\mathrm{T}} \mathrm{k}_2 \mathrm{z}_2-\mathrm{z}_1^{\mathrm{T}} \mathrm{J}^{\mathrm{T}} \eta_{\mathrm{d}}^\theta \omega_{\mathrm{s}}
(4) 无控制输入项 , 则可令下一级子系统的状态为虚拟控制 , 消除多余项如\alpha \omega_{\mathrm{s}}=\dot{\theta}-\mathrm{v}_{\mathrm{d}},相当于独立于系统之外的控制输入 ( 虚拟动点 ):
\begin{gathered} \mathrm{V}_3=\mathrm{V}_2+\frac{1}{2} \omega_{\mathrm{s}}^2 \\ \left.\dot{\mathrm{V}}_3=\dot{\mathrm{V}}_2+\omega_{\mathrm{s}} \dot{\omega}_{\mathrm{s}}=-\mathrm{z}_1^{\mathrm{T}} \mathrm{k}_1 \mathrm{z}_1-\mathrm{z}_2^{\mathrm{T}} \mathrm{k}_2 \mathrm{z}_2-\mathrm{z}_1^{\mathrm{T}}\right]^{\mathrm{T}} \eta_{\mathrm{d}}^\theta \omega_{\mathrm{s}}+\omega_{\mathrm{s}} \dot{\omega}_{\mathrm{s}} \\ =-\mathrm{z}_1^{\mathrm{T}} \mathrm{k}_1 \mathrm{z}_1-\mathrm{z}_2^{\mathrm{T}} \mathrm{k}_2 \mathrm{z}_2+\omega_{\mathrm{s}}\left[\mu+\dot{\omega}_{\mathrm{s}}\right] \\ \left.\mu=-\mathrm{z}_1^{\mathrm{T}}\right]^{\mathrm{T}} \eta_{\mathrm{d}}^\theta=\left(\eta_{\mathrm{d}}-\eta\right)^{\mathrm{T}} \eta_{\mathrm{d}}^\theta \end{gathered}
设计 \dot{\omega}_{\mathrm{s}}=-\mu-\mathrm{k}_3 \omega_{\mathrm{s}}
\begin{gathered} \dot{\mathrm{V}}_3=-\mathrm{z}_1^{\mathrm{T}} \mathrm{k}_1 \mathrm{z}_1-\mathrm{z}_2^{\mathrm{T}} \mathrm{k}_2 \mathrm{z}_2-\mathrm{k}_3 \omega_{\mathrm{s}}^2 \\ \dot{\mathrm{V}}_3=-\mathrm{k}_1\left\|\mathrm{z}_1\right\|^2-\mathrm{k}_2\left\|\mathrm{z}_2\right\|^2-\mathrm{k}_3 \omega_{\mathrm{s}}^2 \leq 0 \end{gathered}
\mathrm{z}_1 \mathrm{z}_2 \omega_{\mathrm{s}}均收敛则有 :
\mathrm{z}_1=\mathrm{J}^{\mathrm{T}}\left(\eta-\eta_{\mathrm{d}}\right)表明实际路径趋近于期望路径
\omega_s=\dot{\theta}-v_d表明动点速度趋近于期望速度
Simulink模块搭建:
结果分析:
系统一阶误差 z1 收敛:

系统对实际三维路径向量 的跟随结果,向量x,y,z

这里给出的信号初值为\eta=[7,1, \mathrm{pi} / 2]^T
系统的速度误差\omega_s \dot{\omega}_s=-\mu-k_3 \omega_s 的积分,输出结果如下 :

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
反步法控制器是一种非线性控制方法,用于设计不确定系统的鲁棒或自适应控制器。它在交流电机控制领域具有广泛的应用。根据引用\[1\]中的研究,反步法控制器被应用于异步电动机和永磁同步电动机的控制研究中,并通过Matlab/Simulink进行仿真实验来验证控制器的正确性。 在设计反步法控制器时,需要找到一个控制率,使得系统的状态或状态误差满足李雅普诺夫稳定性。根据引用\[2\]中的描述,常见的李雅普诺夫函数可以用来描述系统的稳定性。 反步法控制器设计和应用对于交流电机控制的发展具有重要意义。随着我国经济的飞速发展,交流电机控制技术的进步也促进了当地经济的发展。引用\[3\]中提到,科学技术的发展为交流电机控制行业带来了巨大的机遇和挑战。 因此,利用Matlab可以进行反步法控制器设计和仿真实验,以验证控制器的性能和稳定性。 #### 引用[.reference_title] - *1* *3* [基于反步法的交流电机控制研究](https://blog.csdn.net/weixin_39548733/article/details/116099571)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【Matlab】使用反步法设计控制器](https://blog.csdn.net/a_xiaoning/article/details/124006072)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值