自抗扰控制器中扩张状态观测器的设计

2023-05-16

状态观测器是根据系统的输入输出来确定系统内部状态变量的装置,它的示意图如下:
状态观测器形式
在自抗扰控制器的设计过程中,我们通常把未知的干扰都用 f f f来表示,如果利用状态观测器可以将未知的干扰观测出来,就可以提前在控制器中采取补偿措施,使得控制器的设计更加简单,这也是自抗扰控制器的核心思想。
对一个线性控制系统
{ X ˙ = A X + B U Y = C X \left\{ \begin{array}{lr} \dot{X} = AX+BU & \\ Y = CX \end{array} \right. {X˙=AX+BUY=CX
来说,以对象的输出量 Y Y Y和输入量 U U U作为其输入,可以构造出如下的新系统
Z ˙ = A Z − L ( C Z − Y ) + B U = ( A − L C ) Z + L Y + B U \dot{Z} = AZ-L(CZ-Y)+BU = (A-LC)Z+LY+BU Z˙=AZL(CZY)+BU=(ALC)Z+LY+BU L L L为要适当选取的矩阵,这是用对象的输出量 Y Y Y和输入量 U U U来设计出的新系统,令这两个系统状态变量的误差记为 e = Z − X e= Z-X e=ZX,则上面两个方程组相减,得误差变量 e e e所满足的方程组为 e ˙ = ( A − L C ) e \dot{e} = (A-LC)e e˙=(ALC)e,这里只要取矩阵 L L L使得 A − L C A-LC ALC稳定,就会有 e ⇒ 0 e\Rightarrow0 e0,从而 Z ⇒ X Z \Rightarrow X ZX。新设计的系统的状态 Z Z Z就能近似的估计出原系统的所有状态变量 X X X,这个状态观测器也可以写成
{ e = C Z − Y Z ˙ = A Z − L e + B U \left\{ \begin{array}{lr} e=CZ-Y & \\ \dot{Z} = AZ-Le+BU \end{array} \right. {e=CZYZ˙=AZLe+BU
下面来看一个具体的例子
设对象为如下有扰动作用的非定常系统
{ x 1 ˙ = x 2 , x 1 ( 0 ) = 0 x 2 ˙ = f ( x 1 , x 2 , t ) + w ( t ) , x 2 ( 0 ) = 0 y = x 1 \left\{ \begin{array}{lr} \dot{x_1} = x_2, x_1(0) = 0& \\ \dot{x_2} = f(x_1,x_2,t) +w(t), x_2(0) = 0 & \\ y = x_1 \end{array} \right. x1˙=x2,x1(0)=0x2˙=f(x1,x2,t)+w(t),x2(0)=0y=x1
其中,
f ( x 1 , x 2 , t ) = − ( 1 + c o s ( t ) 2 ) x 1 − ( 1 + s i n ( t 3 ) ) x 2 f(x_1,x_2,t) = -(1+\frac{cos(t)}{2})x_1-(1+sin(\frac{t}{3}))x_2 f(x1,x2,t)=(1+2cos(t))x1(1+sin(3t))x2
w ( t ) = s i g n ( s i n ( 3 t 2 ) ) w(t) = sign(sin(\frac{3t}{2})) w(t)=sign(sin(23t))
取状态观测器为
{ e = z 1 − y z 1 ˙ = z 2 − 100 e z 2 ˙ = − 200 f a l ( e , 0.5 , 0.01 ) \left\{ \begin{array}{lr} e = z_1-y & \\ \dot{z_1} = z_2-100e & \\ \dot{z_2} = -200fal(e, 0.5, 0.01) \end{array} \right. e=z1yz1˙=z2100ez2˙=200fal(e,0.5,0.01)
其中
f a l ( e , 0.5 , 0.01 ) = { ∣ e ∣ 0.5 s i g n ( e ) , ∣ e ∣ > 0.01 e 0.0 1 0.5 , ∣ e ∣ ≤ 0.01 fal(e, 0.5, 0.01) = \left\{ \begin{array}{lr} |e|^{0.5}sign(e), |e|>0.01 & \\ \frac{e}{0.01^{0.5}}, |e| \leq 0.01 \end{array} \right. fal(e,0.5,0.01)={e0.5sign(e),e>0.010.010.5e,e0.01
用这个观测器对对象进行状态估计时,可以用简单的欧拉积分法来计算,即令状态观测器的初始值为 z 1 ( 0 ) = 0 z_1(0)=0 z1(0)=0 z 2 ( 0 ) = 0 z_2(0) = 0 z2(0)=0,然后把系统离散化成如下的递推公式来计算
{ e = z 1 − y , f e = f a l ( e , 0.5 , 0.01 ) z 1 = z 1 + h ( z 2 − 100 e ) z 2 = z 2 − h 200 f e \left\{ \begin{array}{lr} e = z_1-y, fe = fal(e, 0.5, 0.01) & \\ z_1= z_1+h(z_2-100e) & \\ z_2 = z_2 -h200fe \end{array} \right. e=z1y,fe=fal(e,0.5,0.01)z1=z1+h(z2100e)z2=z2h200fe
用这个递推公式,取采样周期 h = 0.01 h=0.01 h=0.01,来进行状态估计的结果如下图所示。
在这里插入图片描述
上面那张图实际上有两条曲线,是状态估计的比较好,所以两条曲线基本重合到一起了,下面有一张局部的细节图。
在这里插入图片描述
以下是实现的代码:

clear all;
h=0.01;
T=0.01;
time = 20;
N = time/T;
n=0:N-1;
% x = sin(n*T);

for k=1:1:N
    %%% original state
    x1(1) = 0;
    x2(1) = 0;
    x1(k+1) = x1(k) + h*x2(k);
    x2(k+1) = x2(k) + h*(-(1+0.5*cos(k*T))*x1(k)-(1+sin(k*T/3))*x2(k)+sign(sin(1.5*k*T)));
    y(k) = x1(k);
    %%%% state observer
    z1(1) = 0;
    z2(1) = 0;
    e(k) = z1(k) - y(k);
    fe = fal(e(k), 0.5, 0.01);
    z1(k+1) = z1(k) + h*(z2(k)-100*e(k));
    z2(k+1) = z2(k) -h*200*fe;
end
plot(n*T,x1(1,1:2000),'b',n*T,z1(1,1:2000),'r');

fal函数如下:

function fe = fal(e,tau1,tau2)
%UNTITLED2 此处显示有关此函数的摘要
%   此处显示详细说明
if abs(e)>tau2
    fe = power(abs(e),tau1)*sign(e);
else
    fe = e/(power(tau2,tau1));
end

end

上面设计过程最关键的一步是状态观测器的设计,韩京清先生的设计过程考虑的参数比较多,这方面可以看一下高志强的线性ADRC的设计过程。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自抗扰控制器中扩张状态观测器的设计 的相关文章

  • 华清远见嵌入式学习每周汇总

    每周学习总结 第一周数据结构Makefile的编写顺序表链表 xff08 含约瑟夫环之选猴王 xff09 Joseph circle 本周总结 第二周栈队列树二叉树二叉树的创建 本周总结 IO进程标准IO2 题目要求 xff1a 编程读写一
  • 注意项:dockerFile中安装常用的运维工具

    自己打镜像的时候 xff0c 如果依赖的基础镜像中没有一些常用的Linux运维工具 xff0c 需要自己记得提前安装一下 xff0c 免得线上出现问题需要排查时才发现没有工具 一些常用的如下 RUN yum install y telnet
  • Ubuntu16.04安装ROS kinetic

    ROS kinetic官网 xff1a http wiki ros org kinetic Installation Ubuntu 1 配置Ubuntu的资源库 xff1a 34 restricted 34 xff0c 34 univers
  • 鼠标光标变成了一个点

    今天使用华为云桌面 xff08 内部系统是win7 xff09 xff0c 鼠标光标悬停在普通文本上就变成了一个 不容易发现的点 xff0c 用起来很不方便 xff0c 如图 xff1a 可通过修改鼠标指针颜色和大小来调整解决 xff08
  • opencv--颜色物体追踪 图片的形态学处理函数

    目录 一 主要函数介绍 1 cv2 erode 2 cv2 dilate 3 cv2 findContours 4 cv2 circle 5 cv2 line 二 代码 这里首先确定是否安装imutils库 xff0c 这个库能让调整大小或
  • 使用可视化的Docker进行自动化测试

    01 前言 顺着docker的发展 xff0c 很多测试的同学也已经在测试工作上使用docker作为环境基础去进行一些自动化测试 xff0c 这篇文章主要讲述我们在docker中使用浏览器进行自动化测试如果可以实现可视化 xff0c 同时可
  • 固定翼飞机的一些记录——(1)IMU

    一 IMU 1 什么是IMU IMU Inertial Measurement Unit xff0c 惯性测量单元 一般一个IMU由三个单轴的加速度计和三个单轴的陀螺组成 1 1 加速度计的工作原理 Fig 1 加速度工作原理图 加速度计的
  • 遇到 definition duplicated 怎麼辦

    net 4 0 in IIS7 中有一個 known issue xff1a 就是 xff0c 在deploy之後會發生section定義重複的問題 解決這個問題的最好方法就是 把webconfig中的這段代碼註釋掉 This error
  • Docker容器学习二之镜像

    一 镜像 Docker可以把我们的应用打包成一个可移植的镜像 xff0c 也可以拉取打包好的镜像来共自己使用 xff0c 那么也会存在一个存放docker镜像的仓库 一个官方的镜像仓库地址 https hub docker com xff0
  • 【STM32】 HAL库+STM32CubeMX 系列教学

    HAL库简介 STM32 HAL固件库是Hardware Abstraction Layer的缩写 xff0c 中文名称是 xff1a 硬件抽象层 HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件 xff0c 为更方便的实现
  • 什么程度才算精通 Linux?

    本文选自 攻克 Linux 系统编程 作者 宇文拓 责编 林瑟 Linux 的优秀之处自然不必多说 如果将操作系统比作一辆汽车 xff0c 那 Linux 就是一辆性能出色的多功能越野车 xff0c 上山下海飞天无所不能 如果你拥有了它 x
  • Makefile初级语法1

    Makefile基本规则 基本规则如下 xff1a target target dependent command command前必须是TAB 语法示例分析 xff1a helloworld o main o print hello o
  • RealSense T265环境配置

    RealSense T265环境配置 二进制安装SDK2 0 官网的指导 https www intelrealsense com https github com IntelRealSense librealsense blob deve
  • COMTool安装测试

    COMTool安装测试 没错 xff0c 这又是GitHub上的一个开源项目 xff0c 我几乎又折腾了一下午 xff0c 依旧没有成功 好看实用跨平台带图形界面无广告串口调试助手 网络调试助手 终端工具 COMTool https git
  • opencv imread 函数读取CV_16UC1的png图片

    opencv 2 4 11中imread读取图片有三种方式 xff1a CV LOAD IMAGE UNCHANGED lt 0 loads the image as is including the alpha channel if pr
  • Docker: Ubuntu使用VNC运行基于Docker容器里的桌面系统

    xff08 由于看到的出处不是原作者 xff0c 还请原作者看到后及时说明出处 xff09 https hub docker com r dorowu ubuntu desktop lxde vnc https github com fcw
  • 三菱IPM驱动芯片PSS15S92\PSS20S92分析

    三菱IPM驱动芯片分析 三菱PSS15S92 PSS20S92 IPM功率模块资料 电机驱动方案 60 300V STM32驱动无刷电机 60 300V高压无刷电机驱动电路参考电路图及PCB www cirmall com circuit
  • PCAP01 PCAP02 PCAP04芯片配置程序及代码

    PCAP01 PCAP02 PCAP04芯片配置程序及代码 www cirmall com circuit 23606
  • 正点原子STM32F405RG飞控 二层板低成本(原理图+PCB+程序)

    正点原子STM32F405RG飞控 二层板低成本 xff08 原理图 43 PCB 43 程序 xff09 www cirmall com circuit 18606

随机推荐