LADRC的学习——换被控对象进行仿真测试

2023-05-16

LADRC控制器的检验——用不同的被控对象测验

一、前文总结

  这篇文章主要根据清华大学的硕士陈星写的论文:自抗扰控制器参数整定方法及其热工过程中的应用 进行学习。

参考文献为:
[1] Zhiqiang Gao. Scaling and bandwidth-parameterization based controller tuning[P]. American Control Conference, 2003. Proceedings of the 2003,2003.
  [2] 陈星. 自抗扰控制器参数整定方法及其在热工过程中的应用[D].清华大学,2008.

  通过上一篇文章搭建了LADC的Simulink仿真模型,通过对这个被控对象,表达式如下:
在这里插入图片描述
  可以在简单输入波形的情况下,比如正弦波,方波,三角波等,通过调节omega_c一个参数就能得到较好的控制效果。
  如图所示:
方波:
在这里插入图片描述
正弦波:
在这里插入图片描述
三角波:
在这里插入图片描述
通过对结果分析得出结论:
1.模拟仿真对信号的跟踪可以有很好的效果,在快,准,稳这几个方面上都可以极大的满足要求;
2.只用在一定范围内对一个参数omega_c调节,就可以实现对信号的稳定跟踪。

但是在几个地方还没有弄懂:
1.omega_c的调节范围是多少;
2.对哪些信号起到作用;
3.可以应用在哪些被控对象上;
4.如何在LADRC的基础上再扩张,事项更广的应用;
5.LADRC本质是什么;
6.如何编程实现离散LADRC,把它应用在实际生活中。
等等问题,现在我对ADRC还有很多疑问,接下来继续学习扩展,并且深入理解。

二、换被控对象观察控制器控制效果

  这里主要引用陈星的硕士论文对LADRC进行理解并学习。

  为了进一步改善PID控制器在强干扰及不确定系统中的控制效果,在非线性PID控制的基础上,提出自抗扰控制(ADRC)的概念。其中核心思想是利用扩张状态观测器(ESO)去实时地估计对象的“内扰”和“外扰”,然后利用控制律对总扰动进行补偿,从而使ADRC具有较强的抗扰动能力,并且能够获得较好的性能的鲁棒性。
  一般来说,控制系统大家都希望通过数学建模的方法来得到模型,但是无论模型建立的多么精确,实际系统中总会存在未知的动态扰动。实际模型与标称模型的偏差可以看作系统的内扰。还有一些外部扰动,不饶噪声或者控制量扰动,称为外绕,控制系统的内扰和外绕为系统的总扰动。为了获得好的控制结果,采取办法估计系统扰动然后抑制或者消除扰动带来的影响,这就是ADRC的核心思想。
  ADRC的特点及其问题:
  1.结构简单,与传统PID有着非常简单的结构。例如线性形式的3阶ADRC(指ADRC中的ESO阶数为3),可以看作一个比例微分(PD)控制器加上扩张状态(z3)的观测和补偿,当信号z3被去掉时控制器则完全转为PD控制器
  2.不依赖模型,具有很强的适应性;
  3.有很强的抗干扰能力,将系统的非线性,模型不确定性和外部扰动都视为系统的扩张状态加以观测,然后利用控制率进行补偿。
  4.解耦特性。自抗扰PID控制方法由于系统变量间的各种耦合作用统一看作扩张状态加以考虑。
  其中存在的问题有:
  1.参数整定的问题,NLADRC需要整定的参数较多难以进行理论分析。因此出现的简化的LADRC让需要整定的参数大大减少,但是受到观测器带宽的限制
  2.ADRC控制器的设计一般是基于某一阶数的对象而设计的,目前研究最多的是三阶的系统应用与二阶的对象上。目前研究的对象仅仅限制于三阶以内的系统,而且并未给出明确的参数整定规则

  3阶ADRC的结构框图如图:
在这里插入图片描述
  在这里Gp近似作二阶系统,其中 r 为设定值,d为扰动,y为输出,Kp和Kd为PD控制器的系数,u0为控制器参数;ESO为扩张状态观测器,z1,z2,z3分别跟踪y,y‘,f,f 为内部扰动和外部扰动综合。具体推导看引文文献[1],得出结论为:
  当ESO可以实现用z3 估计 f 时,可以把控制对象Gp的传递函数看作一个二阶标准型传递函数。

a.LADRC需要调节的几个参数

  在实际经验中表明,在二阶以上的控制系统中,b0是影响系统稳定的一个重要参数,因此b0作为一个可调参数将获得更好的控制效果。通过引用文献[1] 的阅读,可以知道需要调节的参数有三个,b0,omega_c,omega_0,其中b0值下的参数稳定域为(omega_0 - omega_c),且b0在一定范围内增大,稳定域也随之增大。

a. b0参数的整定
  在这个参数整定过程中,参数b0起到控制系统稳定的作用。系统的稳定域需要足够大以使得满足控制需要的的控制参数处于稳定域之内,然而b0又不能取得太大,否则会使控制信号u过小从而导致系统响应变慢。因此,b0的选择是一个稳定性(鲁棒性)与响应速度的权衡过程

b.omega_c 和 omega_0 参数整定
(1)Kp和Ki参数化简
  由二阶系统可知,Kp和Ki决定ADRC系统的预期动态方程,令:
在这里插入图片描述
其中,omega_c为控制带宽,超调量delta%不受它的影响,恒为0,它会影响调节时间ts,并且通过引用文献[1],如果在已知调节时间的条件下,增加一些裕量后计算得出,

在这里插入图片描述

(2)观测器参数beta1,beta2,beta3参数整定
  这三个参数决定了观测器的精度,通过文献知道,他们可以用观察器带宽omega_0来进行整定,这样观测带宽受到测量噪声或采样频率的限制时将难以取得良好的观测效果。当3阶ESO应用到高阶对象时,omega_0不能取值过大,否则容易造成系统不稳定。在引用文献[1] 中对在omega_0在较小的情况下仍能够获得较好的观测速度,改进了参数整定方法,结论为:
  定义跟踪器滞后时间为 Ti 约等于 4/K;然后再 Ti 根据要求取值,从而得到 K , 然后 omega_0 = M*omega_c,M取值在10以内,这里M先取为4再接着进行调节,从而得出三个参数值:
在这里插入图片描述
这样就可实现了参数的整定。

ADRC参数整定流程:
在这里插入图片描述

b. 换被控对象进行simulink进行实验

  被控对象按照参考文献[1] 的进行测试:
在这里插入图片描述
(1对象1:
在这里插入图片描述
  对传递函数分析,可以看出这是一个三阶系统,有一个延迟环节,延迟系数为5,因此假设在零初始条件下反拉式变换变为微分方程为:
  y’’’ = -3y’’ - 3y’ - y + u(t - 5)1(t - 5)*
  把它化为LADRC被控对象的形式:
  y’’’ = f + b0u(t - 5)1(t - 5)
其中,f = -3y’’ - 3y’ - y + (1 - b0)u(t - 5)1(t - 5)
因此,我们应该在原来的LADRC的基础上添加 y‘’‘ 作为输入,y , y’ , y‘’作为输出,构建的simulink仿真图像如下:
a.三阶LESO内部图像及其封装图像
在这里插入图片描述
封装图像为:
在这里插入图片描述
b.LADRC内部仿真图像及其封装图像

在这里插入图片描述
封装图像为:
在这里插入图片描述
  在这里,在上一节的基础上添加了 y’’’ 作为输入, y’’ 作为输出,并把他封装起来,作为控制器LADRC,被控对象如上面化简得到的带延迟环节的三阶微分方程.以后的例子中, a , b 两个部分将不再展示,结构基本不会变化太多,主要展现的第三部分,那里涉及的是被控对象的连接.

c.整体的仿真图像
在这里插入图片描述
  在这里,因为延迟系数为5,转换到时域上为对传函的输入延时为5s,因此这里选择的设定输入只有选择一些低频的信号,对参数 b0, omega_0, omega_c 进行参数整定,看对控制对象的控制情况.
  建立一个parameter的m文件,里面对参数进行赋值和调试,看满足条件的参数,其中这个m文件为:

% This is parameter in simulink 'LADRC_Object1'
clear
clc

% Setting Parameter in LARC
b0 = 1.88;
omega_c = 1.015;
omega_0 = 4.06;

xi = 1;

Kp = omega_c.^2;
Kd = 2*xi*omega_c;

beta1 = 3*omega_0;
beta2 = 3*omega_0.^2;
beta3 = omega_0.^3;

sim('LADRC_Object1');

  通过这样就可以对模型的参数进行复制,在自己反复测试以后得出,
  在这里测试得到 b0 = 1.88 ; omega_c = 1.015 ; omega_0 = 4.06 的时候,系统跟踪阶跃信号的图像为:
在这里插入图片描述
  可以看出,通过控制器跟踪系统的输入设定有一定的延迟效应,大约在7s以后可以跟踪到设定值,但是有一定的超调,如果在项目精度范围内,LADRC可以起到较好的控制效果.

(2)对象2
  控制对象传递函数为:
在这里插入图片描述
  通过对控制对象分析,Gs是非最小相位系统,并且为三阶系统.,通过对被控对象反拉式变换以后得到微分方程为:
   y’’’ = -3y’’ - 3y’ - y + u - 2u’
  化为标准型为:
   y’’’ = f + b0*u
其中 f = -3y’’ - 3y’ - y + (1 - b0)u - 2u’.其整体仿真框图为:
在这里插入图片描述
  在这个仿真框图中,有一个u的一阶导部分,在simulink中不存在微分模块,因此借鉴Matalb论坛中的方法,建立一个传递函数:G(s) = s/(n*s + 1),当n趋近于0的时候,G(s) 就近似看作微分算子,从而实现微分功能.不过其缺点很明显,仅仅适用于模拟仿真中,实际不能应用,并且n不可能趋近于0,因此只能用很小的数代替,以后考虑解决微分的问题,尽量避开微分.
  在这里,参数取为: b0 = 3; omega_c = 1.02; omega_0 = 4.08; n = 0.00001;,得到仿真图像为:
在这里插入图片描述
  可以看出,输出现了负向的超调,而且延时时间有点长,但是可以很好的满足控制精度,因此LADRC可以应用于非最小相位系统.

(3).对象3
  控制对象传递函数为:
在这里插入图片描述
  通过对象可知,它是一个四阶系统,可以看作一个三阶系统带有积分环节,可以跟踪斜坡信号,通过拉式反变换得到微分方程为:
  y’‘’‘ = -3y’’’ - 3y’’ - y + u
化为标准型为:
  y’’’’ = f + b0*u
其中, f = -3y’’’ - 3y’’ - y + (1 - b0)u
其中仿真模型图像为:
在这里插入图片描述
  其中,这里加入了三个模块,并且写了在时域上对系统分析的函数。
代码如下:
求解超调量函数:

% Overshoot
function Overshoot = Get_Overshoot(t,y)
    Length = length(t);
    EndValue = (y(Length) + y(Length - 1) + y(Length - 2))./3;
    Ymax = max(y);
    if Ymax >= EndValue
       Overshoot = 100*(Ymax - EndValue)./EndValue;        
    else
       disp('This system overshoot');
end

求解峰值时间函数:

% Peak Time
function [PeakTime,Ymax,k] = Get_PeakTime(t,y)
    [Ymax,k] = max(y);
    PeakTime = t(k);
end

求解上升时间函数:

% RiseTime
function RiseTime = Get_RiseTime(t,y)
    k = 1;    %Forward Subscript
    v = 1;    %Baxkward Subscript
     
    Length = length(t);
    EndValue = (y(Length) + y(Length - 1) + y(Length - 2))./3;
    Ymax = max(y);
    
    if Ymax >= EndValue              % Overshoot
        while y(k) < EndValue
            k = k + 1;
        end
        RiseTime = t(k);
    else                          % No Overshoot
        while y(k) < 0.1*EndValue
            k = k + 1;
        end
        v = k;
        while y(k) < 0.9*EndValue
            v = v + 1;
        end
        RiseTime = t(v) - t(k);
    end
end

  这里可以适用于超调和不超调的情况。
获取调节时间

% SettingTime
% Precision can be given 0.02 or 0.05
function SettingTime = Get_SettingTime(t,y,Precison)
    Length = length(t);
    EndValue = (y(Length) + y(Length - 1) + y(Length - 2))./3;
    while (y(Length) > (1 - Precison)*EndValue) && (y(Length) < (1 + Precison)*EndValue)
        Length = Length - 1;
    end
    SettingTime = t(Length);
end

  这里Precision参数可以选择的为0.05或者0.02,看要求满足的精度情况。

  通过以上函数,我就可以实现在matalb工作空间里面对仿真数据进行操作的分析,其中调节参数代码和分析参数代码如下:

% This is parameter in simulink 'LADRC_Object3'
clear
clc

% Setting Parameter in LARC
M = 12.6;
ts = 34.9;
b0 = 2.7;
omega_c = 10./ts;
omega_0 = M.*omega_c;
k = 4;

xi = 1;

Kp = omega_c.^2;
Kd = 2*xi*omega_c;

beta1 = 3*omega_0;
beta2 = 3*omega_0.^2;
beta3 = k*beta2;

sim('LADRC_Object3');
plot(t,set,t,y);

hold on;

Overshoot = Get_Overshoot(t,y);
PeakTime = Get_PeakTime(t,y);
RiseTime = Get_RiseTime(t,y);
SettingTime = Get_SettingTime(t,y,0.02);

  通过调节参数以后得到,其中参数为:
  M = 12.6;ts = 34.9;b0 = 2.7;k = 4; 从而得到 b0 = 2.7;omega_c = 0.2865;omega_0 = 3.6103;
  通过函数计算得到:超调量为1.6470%,峰值时间为:18.1625,上升时间:16.1573;调节时间:14.5347。对于高阶系统,可以较好的满足的控制需求。其中图像为:
在这里插入图片描述
  通过调节以后得到的图像可以看出,效果是可以较好的接受的。

(4)对象4
  传递函数为:
在这里插入图片描述
  可以看出,这是一个四阶系统,通过Matlab展开,其中代码如下:

>> p1 = 1;
>> p2 = 0.2;
>> p3 = 0.04;
>> p4 = 0.008;
>> syms s;
>> multi = (1 + p1*s)*(1 + p2*s)*(1 + p3*s)*(1 + p4*s);
>> expand_multi = expand(multi);
>> expand_multi
 
expand_multi =
 
s^4/15625 + (156*s^3)/15625 + (806*s^2)/3125 + (156*s)/125 + 1
 

  最后得出系统传函,反拉式变换得到微分方程为:
  y’’’’ = -156y’’’ - 4030y’’ - 19500y’ - 15625y + 15625u
  化为标准形式为:
  y’’’’ = f + b0u
  其中,f = -156y’’’ - 4030y’’ - 19500y’ - 15625y + (15625 - b0)u
  其仿真结构框图和上一个基本一样,只是添加了一个 y 的信号,其中得到仿真图像为:
在这里插入图片描述
  调节参数以后得到上面的图像,其中参数为:
  M = 8.6;ts = 23.3;b0 = 1;k = 4; 从而得到 b0 = 1;omega_c = 0.4292;omega_0 = 3.6910;
  通过函数计算得到:无超调,上升时间:1.5205;调节时间:20.68。对于这个高阶系统,可以较好的满足的控制需求。

(5)对象5:
  传递函数为:
在这里插入图片描述
  可以看出,这是一个五阶系统,反拉式变换得到微分方程为:
  y’’’’’ = -5y’’’’ - 10y’’’ - 10y’’ - 5y’ - y + u
  化为标准形式为:
  y’’’’ = f + b0u
  其中,f = -5y’’’’ - 10y’’’ - 10y’’ - 5y’ - y + (1 - b0)u
  仿真图像为:
在这里插入图片描述
  调节参数以后得到上面的图像,其中参数为:
  得到 b0 = 414;omega_c = 3.5;omega_0 = 14.2;
  通过函数计算得到:超调量为0.5563%,上升时间:13.9302;调节时间:24.1050,峰值时间:33.2334。对于这个五阶系统,可以较好的满足的控制需求。

(6)对象6
  传递函数为:
在这里插入图片描述
  可以看出,这是一个六阶系统,反拉式变换得到微分方程为:
  y_(6) = -6y_(5) - 15y_(4) - 20y_(3) - 15y’’ - 6y - y + u
  其中 y_(n)yn 阶导数,化为标准型为:
  y’’’’ = f + b0u
  其中,f = -6y_(5) - 15y_(4) - 20y_(3) - 15y’’ - 6y - y + (1 - b0)u
  仿真框图相对上一个继续添加一个积分项,所以仿真以后得到的图像为:
在这里插入图片描述
  调节参数以后得到上面的图像,其中参数为:
  得到 b0 = 500;omega_c = 3.5;omega_0 = 14;
  通过函数计算得到:无超调,上升时间:16.5957;调节时间:29.4851,峰值时间:41.0338。对于这个六阶系统,可以较好的满足的控制需求。

(7)对象7
  传递函数为:
在这里插入图片描述
  可以看出,这是一个非最小相位系统,反拉式变换得到微分方程为:
   y’’ = -3y’ + 4y + 4u
  化为标准型为:
  y’’ = f + b0u
  其中, f = -3y’ + 4y + (4 - b0)u
  仿真框图中搭建到二阶导数就行,和之前的仿真框图基本不变,所以仿真以后得到的图像为:
在这里插入图片描述
  调节参数以后得到上面的图像,其中参数为:
  得到 b0 = 1.35;omega_c = 4.59;omega_0 = 15.98;
  通过函数计算得到:无超调,上升时间:0.9799;调节时间:1.5523。对于这个非最小相位系统,可以达到很好的控制需求,在响应速度和精度上都35挺好。

(8)对象8
  传递函数为:
在这里插入图片描述
  可以看出,这是一个类似于延迟环节的传递函数,弄了一整天,泰勒公式展开,搭建类似传函,时域分析,都难以得到解决方案,难以达到理想结果。暂时放弃,以后有机会再试着做一下。

三、实验总结和计划

a.总结
  通过对8个控制对象进行模拟仿真和分析,还有调试参数以后得到的结论:
  一般来说,系统阶数越高,则b0也会相应的越大;一般调参步骤为,先设定一个合适的omega_c和omega_0,接下来对b0进行调节,调节到b0在某一范围内为发散震荡变为收敛震荡,那么则b0再进行微调,随着b0在一定范围内增大,系统的超调量会减小,但是上升时间会增大。接着调节omega_c,系统的超调量会增大,但是上升时间和调节时间会减小,调节omega_0系统的调节时间会微微减小。
  然后b0和omega_c之间有一定的关系,omega_c越大,则b0的将会越大,因此一般先设定omega_c为较小的值,然后调节b0满足要求,接着慢慢增大omega_c进行微调。

  然后对于有延迟环节的系统,高阶系统,其调节时间都比较大,但是稳定终值都可以很好的满足项目的精度。对于二阶最小相位和非最小相位系统,通过调节参数,都可以特别好的对信号完成跟踪功能。

b.计划
  通过模拟仿真实验,可以发现的理解还在停留在复制的层面,如果想要真正理解LADRC,需要明白几个问题1.ADRC是PID的改进,那么PID能完成的功能ADRC也应该可以完成,怎么实现串级,和其他控制器配合使用等功能;2.二阶LADRC三阶ESO可以对二阶系统完成特别好的跟踪,对于高阶系统,是否可以对ADRC升阶完成更好的控制效果;3.如何验证LADRC调参效果良好,有什么方法?4.现在仅仅停留在仿真层面,如果要实际应用,我应该怎么写成离散形式,在实际中应用?5.非线性ADRC怎么使用,怎么实现功能?如何对ESO的收敛性证明理解和验证。
  
  
  接下来学习ADRC的内容可能不会公开,如果有什么需要可以和我讨论,一起进步。

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

LADRC的学习——换被控对象进行仿真测试 的相关文章

  • 无人机,动力系统建模

    建模目的 无人机动力系统包括 xff1a 螺旋桨 电机 电调及电池 建模流程图如下 xff08 图片来源 多旋翼飞行器设计与控制 M 全权 xff09 xff1a 经过误差结算后 xff0c 将误差信息转换为螺旋桨的升力与转矩 xff0c
  • 寻找APM中EKF的五大公式

    EKF核心代码位置 AP NavEKF2 cpp 进入该函数 进入该函数 xff0c 然后可以看到关键部分 xff0c 也即卡尔曼五个公式的地方 下面介绍每个公式的具体位置 28状态值 首先要知道选用的状态值有哪些 xff0c 28状态值
  • 【PX4 EKF simulink仿真程序解析】(一)初始化

    PX4 EKF simulink仿真程序解析 xff08 一 xff09 初始化 整体框架如下 xff1a 进入InertialNavFliter xff0c 整体框架如下 xff1a 初始化过程包括协方差初始化 状态向量初始化 其中包括测
  • C++——三种继承方式与三种访问权限的相互组合

    三种访问权限 public 可以被任意实体访问 protected 只允许子类及本类的成员函数访问 private 只允许本类的成员函数访问 三种继承方式 public 继承 protect 继承 private 继承 组合结果 基类中 继
  • 小米路由器部分机型刷原生Openwrt系统

    小米路由器的部分机型在官网没有开发版的固件 xff0c 不支持直接开启ssh xff0c 可以通过OpenWRTInvasion工具解决 本文以小米路由器4为例 xff1a 在openwrt官网的设备列表中找到对应型号 xff0c 按照页面
  • qt的安装与卸载

    通常情况下 xff0c 有两种安装方法 xff1a 1 直接在命令行安装 sudo apt span class hljs keyword get span install qt5 span class hljs keyword defau
  • 固件提取

    前言使用工具识别芯片一 摘取芯片二 制作U盘编程器三 RT809H编程器读取eMMC芯片数据四 总结 前言 无处不在的物联网设备 xff0c 也可能成为无所不在的安全隐患 xff0c 物联网安全问题一直是困扰物联网快速发展的一大难题 作为安
  • xshell评估过期解决办法,非常简单

    首先 xff0c 你的xshell不要卸载 xff0c 不需要动任何地方 进官网 https www netsarang com zh xff0c 翻到最下面 xff0c 下载那里点家庭 学校免费 然后会跳转到下面这个界面 xff0c 按图
  • vscode配置markdown,安装插件

    一 概述 最近迷上了MarkDown xff0c 所以进行了学习 xff0c 首先是编辑器的选择 xff0c 可以参考这篇文章 xff1a 好用的MARKDOWN编辑器一览 我本人并没有选择其中的任意一款进行尝试 xff0c 因为我个人十分
  • Vs2019重新生成解决方案时报错

    解决办法 xff1a Release模式下 gt 属性 gt 高级 gt 高级属性 gt 全程序优化 将这里的默认项 使用链接时间代码生成 改为 无全程序优化 xff0c 接下来就可以运行了
  • 指针常量和常量指针

    参考 xff1a C语言 常量指针 指针常量以及指向常量的指针常量三者区别详解 望崖的博客 CSDN博客 常量指针和指针常量的区别
  • LW_OOPC 宏配置及使用指南

    LW OOPC 宏配置及使用指南 摘抄 xff1a https github com Akagi201 lw oopc LW OOPC 是一套轻量级的面向对象 C 语言编程框架 它是一套 C 语言的宏 xff0c 总共 1 个 h 文件 如
  • 十个值得学习的c开源项目(嵌入式)

    开源世界有许多优秀的开源项目 xff0c 我选取其中十个最优秀的 最轻量级的C语言的项目 xff0c 希望可以为C语言开发人员提供参考 十个最值得阅读学习的C开源项目代码 1 Webbench 2 Tinyhttpd 3 cJSON 4 C
  • 树莓派开机无法进入桌面的解决办法

    1 初次开机会出现 34 raspi config 34 这个界面 xff0c xff08 如下图 xff09 如果不是初装的系统 xff0c 也可以输入命令 xff1a sudo raspi config xff0c 调出此界面 2 如果

随机推荐

  • Xshell 6, 7 已过期的解决方案

    公开版的Xshell一段时间后就评估失效 xff0c 很麻烦 xff0c 下面的方法可以在官网下载个人免费版本 xff0c 常用功能都有亲测有效 xff01 就算之前安装过已经过期的Xshell也没关系 1 首先进入 xff1a https
  • C语言网络编程(1)— UDP通信

    C语言网络编程 xff08 1 xff09 UDP通信 一 socket 我们要进行网络通信 xff0c 那么就要用到socket xff0c socket即网络套接字 xff0c 应用程序可以通过它发送或接收数据 xff0c 可对其进行像
  • C语言网络编程(2)— TCP通信

    C语言网络编程 xff08 2 xff09 TCP通信 一 TCP客户端 1 建立连接 我们要使用到socket xff0c 首先首先我们添加要使用的头文件 span class token macro property span clas
  • 搭建kubernetes v1.21.5 和 kubesphere v3.2.1

    一 准备一台干净的centos7 6机器 二 关闭防火墙打上相关补丁和相关系统软件 systemctl stop firewalld yum span class token function install span openssh op
  • js定时器

    一 定时器概述 开发时用到的js定时器主要分为两种 xff1a 1 一次性的定时器setTimeOut方法 xff0c 通过设置一定的时间 xff0c 时间到就执行 var timer 61 setTimeout fun 毫秒数 清除的方法
  • UNIX 环境高级编程

    与你共享 xff0c 与你共舞 xff01 UNIX环境高级编程 xff08 第3版 xff09 是被誉为UNIX编程 圣经 xff1b 书中除了介绍UNIX文件和目录 标准I O库 系统数据文件和信息 进程环境 进程控制 进程关系 信号
  • ROS的CMakeList编写

    参考这位博主 我的cmakelist包 在 home xxx catkin Drone src Flight Control ROS CMakeLists txt cmake minimum required span class toke
  • Ubuntu18.04 NX下用ZED2 双目立体相机进行SLAM

    NX下的ZED2开发 安装流程问题开始了看效果安装ZED2 ROS工具 新故事篇章 zed2测距开始实现 安装流程 了解zed参数 因为网上的安装流程还是不太完整 xff0c 我补充一下 希望对其他人也有帮助 部分流程参考这位 xff1a
  • ubuntu16.04备份和迁移

    ubuntu16 04备份和迁移 背景实践1 备份整个系统2 重装Ubuntu16 043 恢复系统 题外话 xff1a 修改主机名参考文章 背景 此文用来快速记录备份和恢复的过程步骤 xff0c 具体命令意思不做过多介绍 因为不想新设备重
  • Ubuntu apt-get报错

    昨天晚上更新源 xff0c 居然报错了 zcidcs 64 ubuntu sudo apt get upgrade sudo password for zcidcs Reading package lists Done Building d
  • 2014阿里巴巴面试总结

    刚结束的一面 xff0c 可能昨天笔试题目做得还行 xff0c 今天中午电话我叫我1 30去面试 xff0c 时间紧急 xff0c 我吃完饭赶紧回宿舍小休息一会儿 xff0c 然后奔赴文三路的华星时代大厦 人太多了 xff0c 等到了2 2
  • 基类指针,子类指针,虚函数,override与final

    一 xff1a 基类指针与子类指针 span class token macro property span class token directive keyword include span span class token strin
  • web开发中实现页面记忆的几种方式

    一 前言 在前段时间公司有个需求是对前一个页面的操作进行记忆 xff0c 例如分页的样式 xff0c 选中的条件等 之前是用的session去存储记忆数据 xff0c 老大让我调研一下目前比较合理的方式然后分析一下 xff0c 这里以本篇博
  • 基于VINS与FastPlanner的无人机自主飞行Gazebo仿真

    项目来源及展示 xff1a https www bilibili com video BV1WK4y1V7um from 61 search amp seid 61 12548150687335659873 基本思路 xff1a 采用Gaz
  • RGB-D SLAM 相关总结

    目录 一 RGB D SLAM是什么 xff1f 二 D435i说明 三 RGB D SLAM研究现状 1 现有的RGB D SLAM方法 1 1 前端 1 2 后端 1 3 闭环检测 1 4 制图 2 优秀RGB D SLAM介绍 2 1
  • VINS-Mono学习(一)——数据预处理

    void push back double dt const Eigen Vector3d amp acc const Eigen Vector3d amp gyr dt buf push back dt acc buf push back
  • VINS-Mono学习(四)——回环检测与重定位

    目录 1 闭环检测常用方法有哪些 xff1f 2 ORB SLAM2中Loop Closing的具体实现流程是怎样的 xff1f 3 VINS回环检测与重定位 四自由度位姿图优化 3 1 第一部分 xff1a 回环检测与重定位 3 1 1
  • LADRC的学习——总概

    作者 xff1a 墨心 日期 xff1a 2019 7 25 xff1b 学习LADRC结构 xff1a 1 学习PID的相关知识 xff0c 作为学习ADRC的基础铺垫 xff0c 在simulink中搭建模块 xff0c 通过调节参数
  • LADRC的学习——PID的学习

    PID部分的学习 上文介绍了ADRC的理论 xff0c 并试着按照自己的理解用Matab编程实现韩老师论文中的算法 xff0c 但是对调节参数和一些地方还不太懂 xff0c 因此我打算从头开始理解 xff0c 从PID的好坏开始学习理解 x
  • LADRC的学习——换被控对象进行仿真测试

    LADRC控制器的检验 用不同的被控对象测验 一 前文总结 这篇文章主要根据清华大学的硕士陈星写的论文 xff1a 自抗扰控制器参数整定方法及其热工过程中的应用 进行学习 参考文献为 xff1a 1 Zhiqiang Gao Scaling