ADRC(自抗扰控制器)技术附Matlab代码框架

2023-05-16

自抗扰控制器 ( Auto/Active Disturbances Rejec ion Controller, ADRC)是韩京清学者提出的,是一种继PID控制器后的一种新型的实用的控制技术。
它不是一种独立的技术,可以理解为是对PID现有技术的一种改进,它吸收了PID的精髓,并弥补了PID的一些缺陷。
引用一句话对ADRC的评价:“自抗扰控制器不只是停留在对 PID进行一些修修补补的工作‚而是一次对经典调节理论的脱胎换骨的革新.”
ADRC主要是由跟踪微分器(TD)、非线性组合、扩张状态观测器(ESO)组成。

PID的一些缺陷

PID是现在大部分工业控制的主流技术,它具有很多优点,像结构简单,适用性强,稳定性好等等。PID的精髓在于用目标和实际被控对象的输出之间的误差来消除此误差,这是留给人类的宝贵思想。虽然PID在控制领域的地位无可替代,但是随着对控制品质要求的提高,它的一些“不足之处”就显露出来。

  • 原始误差不合理: PID是用 e = r − y e=r-y e=ry生成误差,但是目标信号是可以“跳变”的(比如初始时刻,突然从一个目标值到另一个目标值),但输出信号y是有惯性的,不能跳变,让缓慢的遍量y来跟踪快速变化的变量r是不合理的。
  • 微分器不好用: 误差信号 e e e的微分信号 d e d t \frac{de}{dt} dtde没有太好的办法,一般用 d e d t = e ( t ) − e ( t − h ) h \frac{de}{dt}=\frac{e(t)-e(t-h)}{h} dtde=he(t)e(th)来实现。但这样会导致一个问题,当信号被噪声 n ( t ) n(t) n(t)污染之后,就会产生噪声放大效应,如有噪声的信号的微分是 d e d t = e ( t ) − e ( t − h ) + n ( t ) h \frac{de}{dt}=\frac{e(t)-e(t-h)+n(t)}{h} dtde=he(t)e(th)+n(t),往往时间常数 h h h的取值一般都很小, h h h越小 n ( t ) h \frac{n(t)}{h} hn(t)越大,这个信号因此便被噪声所淹没,失去使用价值。
  • 线性组合并不是最好: PID控制器采用的是误差的现在 e ( t ) e(t) e(t)、误差的过去 ∫ 0 t e ( t ) d t \int_{0}^{t}e(t)dt 0te(t)dt和误差的未来 d e d t \frac{de}{dt} dtde三者之和相加,但实际表明,这种仅仅相加的线性组合方式并不是最好的,在非线性的领域找到合适的组合是值得探索的。
  • 积分带来负面影响: 如果使用位置式PID,也就是 u ( t ) = k p e ( t ) + k i ∫ 0 t e ( t ) d t + k d d e d t u(t)=k_pe(t)+k_i\int_{0}^{t}e(t)dt+k_d\frac{de}{dt} u(t)=kpe(t)+ki0te(t)dt+kddtde,在使用的过程中会产生积分饱和。这个很好理解,当系统存在一个方向的偏差,那么由于积分的存在, ∫ 0 t e ( t ) d t \int_{0}^{t}e(t)dt 0te(t)dt越来越大,会使 u ( t ) u(t) u(t)越来越大,从而使 u ( t ) u(t) u(t)到达极限不再改变,这时候积分还是会不断增大。等到系统产生一个反向的偏差,由于积分处于一个非常“大”的状态,即使能减掉反方向的误差,也需要花很长时间脱离饱和区。

ADRC

  • 安排过渡过程: 根据控制目标和对象承受能力先安排合适的过渡过程,安排过渡过程的手法在控制工程实 践中已常被采用。如, 升温过程中的“升温曲线”, 热处理过 程中的“温度曲线”等。但是, 大多情形并不利用这些温度曲 线的微分信号。
    ADRC提倡的“安排过渡过程”,是同时要给出过渡微分信号的
  • 微分信号的提取: 利用微分近似公式 d e d t = e ( t ) − e ( t − h ) h \frac{de}{dt}=\frac{e(t)-e(t-h)}{h} dtde=he(t)e(th)会带来噪声放大效应,甚至会淹没噪声。但是如果采用两个惯性环节相减的方式,就能降低噪声放大效应,将原近似公式变为 d e d t = e ( t − h 1 ) − e ( t − h 2 ) h 2 − h 1 \frac{de}{dt}=\frac{e(t-h_1)-e(t-h_2)}{h_2-h_1} dtde=h2h1e(th1)e(th2),其中的 h 2 , h 1 h_2,h_1 h2,h1仍是时间常数,这种方式是用二阶动态环节实现微分功能的。
    在这个基础上,引入bang-bang最速曲线,实现用最快速度跟踪上输入信号,将“尽可能快”变为“最快”。同时,避免系统在进入稳态时有颤振现象(bang-bang特性),整合出最速综合函数 f h a n ( x 1 , x 2 , r , h ) fhan(x1,x2,r,h) fhan(x1,x2,r,h)
    公式如下:
    { d = r h 2 a 0 = h x 2 y = x 1 + a 0 a 1 = d ( d + 8 ∣ y ∣ ) a 2 = a 0 + s i g n ( y ) ( a 1 − d ) / 2 a = ( a 0 + y ) f s g ( a , d ) − r s i g n ( a ) ( 1 − f s g ( a , d ) ) f h a n = − r ( a b ) − r s i g n ( a ) ( 1 − f s g ( a , d ) ) \begin{cases} d=rh^2\\ a_0=hx_2\\ y=x_1+a_0\\ a_1=\sqrt{d(d+8|y|)}\\ a_2=a_0+sign(y)(a_1-d)/2\\ a=(a_0+y)fsg(a,d)-rsign(a)(1-fsg(a,d))\\ fhan=-r(\frac{a}{b})-rsign(a)(1-fsg(a,d)) \end{cases} d=rh2a0=hx2y=x1+a0a1=d(d+8y) a2=a0+sign(y)(a1d)/2a=(a0+y)fsg(a,d)rsign(a)(1fsg(a,d))fhan=r(ba)rsign(a)(1fsg(a,d))
    其中
    f s g ( x , d ) = ( s i g n ( x + d ) − s i g n ( x − d ) ) / 2 fsg(x,d)=(sign(x+d)-sign(x-d))/2 fsg(x,d)=(sign(x+d)sign(xd))/2

Fhan代码:

function out=fhan(x1,x2,r,h)
    d=r*h^2;
    a0=h*x2;
    y=x1+a0;
    a1=sqrt(d*(d+8*abs(y)));
    a2=a0+sign(y)*(a1-d)/2;
    a=(a0+y)*fsg(y,d)+a2*(1-fsg(y,d));
    out=-r*(a/d)*fsg(a,d)-r*sign(a)*(1-fsg(a,d));
end
function out=fsg(x,d)
    out=(sign(x+d)-sign(x-d))/2;
end

以下的系统我们称为跟踪微分器(Tracking Differentiator, TD)

 %TD-Fhan  input为目标信号,v1跟踪信号,v2微分信号
 v1=v10+h*v20;
 v2=v20+h*fhan(v10-input(i),v20,r,h0);
  • 非线性组合的应用: 有了“安排过渡过程”和“跟踪微分器”的手段,我们可以用TD产生的误差信号 e 1 = v 1 − x 1 e_1=v_1-x_1 e1=v1x1和误差的微分信号 e 2 = v 2 − x 2 e_2=v_2-x_2 e2=v2x2,再加一个积分信号 e 0 = ∫ 0 t e 1 ( t ) d t e_0=\int_{0}^{t}e_1(t)dt e0=0te1(t)dt,就可以设计出PID控制器了,但是大量研究表明,采用非线性组合的方式效果更好。
    有如下非线性函数
    f a l ( x , α , σ ) = { e σ 1 − α , ∣ e ∣ < = σ ∣ e ∣ α s i g n ( e ) , ∣ e ∣ > σ fal(x,\alpha,\sigma)= \begin{cases} \frac{e}{\sigma ^{1-\alpha}},\quad |e|<=\sigma\\ |e|^\alpha sign(e),\quad |e|>\sigma \end{cases} fal(x,α,σ)={σ1αe,e<=σeαsign(e),e>σ
    等效为:
    s = = s i g n ( e + σ ) − s i g n ( e − σ ) 2 ; f a l ( x , α , σ ) = e σ 1 − α s + ∣ e ∣ α s i g n ( e ) ( 1 − s ) s==\frac{sign(e+\sigma)-sign(e-\sigma)}{2};\\ \\ fal(x,\alpha,\sigma)=\frac{e}{\sigma ^{1-\alpha}}s+|e|^\alpha sign(e)(1-s) s==2sign(e+σ)sign(eσ);fal(x,α,σ)=σ1αes+eαsign(e)(1s)
    代码:
function out=fal(e,alpha,sigma)
     s=(sign(e+sigma)-sign(e-sigma))/2;
     out=s*e/(sigma^(1-alpha))+abs(e)^alpha*sign(e)*(1-s);
end
  • 扩张状态观测器(Extended State Observer, ESO) 与扰动估计补偿: ESO的设计提出解决了积分带来的负面作用,同时它还可以跟踪系统的原信号并对系统总扰动进行估计预测,可以说ESO时整个ADRC框架的核心部分。
    假设有这样的系统:
    { x 1 ˙ = x 2 x 2 ˙ = f ( x 1 , x 2 , ω ( t ) , t ) + b u y = x 1 \begin{cases} \dot{x_1}=x_2\\ \dot{x_2}=f(x_1,x_2,\omega(t),t)+bu\\ y=x_1 \end{cases} x1˙=x2x2˙=f(x1,x2,ω(t),t)+buy=x1
    其中, ω ( t ) \omega(t) ω(t)是外部扰动,我们将总扰动f设为:
    x 3 ( t ) = f ( x 1 , x 2 , ω ( t ) , t ) x_3(t)=f(x_1,x_2,\omega(t),t) x3(t)=f(x1,x2,ω(t),t)
    那么,新的系统方程就变成了:
    { x 1 ˙ = x 2 x 2 ˙ = x 3 + b u x 3 ˙ = ω 0 ( t ) y = x 1 \begin{cases} \dot{x_1}=x_2\\ \dot{x_2}=x_3+bu\\ \dot{x_3}=\omega_0(t)\\ y=x_1 \end{cases} x1˙=x2x2˙=x3+bux3˙=ω0(t)y=x1
    注意,这边的 ω 0 ( t ) \omega_0(t) ω0(t) ω ( t ) \omega(t) ω(t)没有太大关系,我们也不知道它等于什么,我们只需要了解用 x 3 x_3 x3构建了一个新的变量——扰动。
    线性扩张状态观测器(LESO)方程如下:
    { e = z 1 − y z 1 ˙ = z 2 − β 01 e z 2 ˙ = z 3 − β 02 e + b u z 3 ˙ = − β 03 e \begin{cases} e=z_1-y\\ \dot{z_1}=z_2-\beta_{01}e\\ \dot{z_2}=z_3-\beta_{02}e+bu\\ \dot{z_3}=-\beta_{03}e\\ \end{cases} e=z1yz1˙=z2β01ez2˙=z3β02e+buz3˙=β03e
    在扰动不是很剧烈的情况下,选取合适的参数 β 01 、 β 02 、 β 03 \beta_{01}、\beta_{02}、\beta_{03} β01β02β03 z i z_i zi可以很好的跟踪上 x i x_i xi。尽管我们在LESO中没有用到未知函数 ω 0 ( t ) \omega_0(t) ω0(t), 但是在系统运行过程中它是实实在 在地起作用的, 为了消除其影响, 采用非线性效应, 把方程改造成:
    { e = z 1 − y z 1 ˙ = z 2 − β 01 e z 2 ˙ = z 3 − β 02 f a l ( e , 0.5 , h ) + b u z 3 ˙ = − β 03 f a l ( e , 0.25 , h ) \begin{cases} e=z_1-y\\ \dot{z_1}=z_2-\beta_{01}e\\ \dot{z_2}=z_3-\beta_{02}fal(e,0.5,h)+bu\\ \dot{z_3}=-\beta_{03}fal(e,0.25,h)\\ \end{cases} e=z1yz1˙=z2β01ez2˙=z3β02fal(e,0.5,h)+buz3˙=β03fal(e,0.25,h)
    改造以后的扩张观测器的跟踪效果更好, 适应范围更大。非线性的ESO算是真正意义上的“扩张状态观测器”。
    代码如下:
 e=z10-y1; 
 fe=fal(e,0.5,0.005);fe1=fal(e,0.25,0.005);
 z1=z10+eso_h*(z20-beta01*e);
 z2=z20+eso_h*(z30-beta02*fe+b*x1);
 z3=z30+eso_h*(-beta03*fe1);

ESO如何消除积分呢?
过程很有意思,利用公式 u = u 0 − z 3 b 0 u=\frac{u_0-z_3}{b_0} u=b0u0z3就能代替积分项 k i ∫ 0 t e ( t ) d t k_i\int_{0}^{t}e(t)dt ki0te(t)dt,感兴趣可以推一下。

程序链接:
添加链接描述

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

ADRC(自抗扰控制器)技术附Matlab代码框架 的相关文章

  • MATLAB 中元胞数组的左连接

    I ve 2 cellMATLAB 中的数组 例如 A jim 4 paul 5 sean 5 rose 1 第二个 B jim paul george bill sean rose 我想做一个 SQL 左连接 这样我就可以得到 B 中的所
  • 如何在Matlab脚本中将泰勒级数系数存储到数组中

    这个问题是在 m 脚本的上下文中 我知道如何获取函数的泰勒级数 但我没有看到任何命令允许将级数的系数存储到数组中 sym2poly似乎不起作用 如何将系数存储到数组中 例如这个函数 syms x f 1 x 2 4 x 9 我们怎样才能得到
  • 与超类和子类构造函数接口

    我在 matlab 文档和之前有关使用 matlab 继承和类构造函数创建接口的问题中找不到帮助 为了使其整洁 放在一个包内 我可以将其压缩如下 而不是拖拽代码 一套 MyPkg有一个超类Super和一些子类Sub1 Sub2 我的大多数属
  • 使用 libsvm 交叉验证后重新训练

    我知道交叉验证用于选择好的参数 找到它们后 我需要在不使用 v 选项的情况下重新训练整个数据 但我面临的问题是 在使用 v 选项训练后 我得到了交叉验证精度 例如 85 没有模型 我看不到 C 和 gamma 的值 在这种情况下我该如何重新
  • MATLAB 是否已有 YAML 库/解析器?

    我想使用 YAML 跨多种语言交流一些数据 将其视为 与语言无关的序列化 其中一种语言是 MATLAB 但我似乎找不到该语言的 YAML 库 我在 Google 上检查了 matlab yaml 和 matlab yaml parse 似乎
  • 查找数组中元素之间的平均差异的有效方法

    希望标题不会让人困惑 通过例子来展示很简单 我有一个像这样的行向量 1 5 6 我想找到每个元素之间的平均差异 此示例中的差异为 4 和 1 因此平均值为 2 5 这是一个小例子 我的行向量可能非常大 我是 MatLab 新手 那么有没有一
  • 将单元格转换为双精度

    gt gt C 1 2 CF 2 C 1 2 CF 2 gt gt whos C Name Size Bytes Class Attributes C 2x2 478 cell 我怎样才能转换C into double以便 gt gt C
  • 这是 `min` 和 `nanmin` 之间的区别; Matlab 中的“max”和“nanmax”?

    Matlab描述nanmin and nanmax像这样 NANMIN最小值 忽略NaNs NANMAX最大值 忽略NaNs 但实际上 min and max ignore NaNs too 那我应该使用哪个 根据我的测试 nanmin a
  • 估算缺失数据,同时强制相关系数保持不变

    考虑以下 excel 数据集 m r 2 0 3 3 0 8 4 0 1 3 2 1 5 2 2 3 1 9 2 5 1 2 3 0 2 0 2 6 我的目标是使用以下条件填充缺失值 将上述两列之间的成对相关性表示为 R 大约 0 68 将
  • 频域和空间域的汉明滤波器

    我想通过在 MATLAB 中应用汉明滤波器来消除一维信号中的吉布斯伪影 我所拥有的是k1这是频域中的信号 我可以通过应用 DFT 来获取时域信号k1 s1 ifft ifftshift k1 该信号具有吉布斯伪影 现在 我想通过 A 乘以汉
  • 优化 MATLAB 代码(嵌套 for 循环计算相似度矩阵)

    我正在 MATLAB 中基于欧几里德距离计算相似度矩阵 我的代码如下 for i 1 N M N is the size of the matrix x for whose elements I am computing similarit
  • 为什么 MATLAB 在打印大量 (.png) 图形时速度会变慢?

    我正在将大量数字打印为 png 文件 每个图都是数据矩阵中的一列图 我获取 png 文件并将它们串在一起形成动画 我的问题是 前几百张图像打印得很快 但创建每个新图形的时间却迅速增加 从前几百个 png 文件的约 0 2 秒到第 800 个
  • 非模态 questdlg.m 提示

    我的代码绘制了一个图 然后提示用户是否想使用不同的参数绘制另一个图 问题是 当 questdlg m 打开时 用户无法查看绘图的详细信息 这是代码 while strcmp Cont Yes 1 Some code modifying da
  • 如何加载具有可变文件名的 .mat 文件?

    select all mat files oar dir oar mat n oar name loop through files for l 1 length oar load pat oar l lt this is the mat
  • 从 imread 返回的 ndims

    我正在从文件夹中选取图像 尺寸为128 128 为此 我使用以下代码行 FileName PathName uigetfile jpg Select the Cover Image file fullfile PathName FileNa
  • 为什么 mex 文件中的 OpenMP 仅产生 1 个线程?

    我是 OpenMP 新手 我有以下代码 使用配置了 MSVS2010 的 Matlab mex 可以正常编译 计算机有 8 个可用处理器 我也使用 matlabpool 检查过 include mex h include
  • 如何获取MATLAB句柄对象的ID?

    当我尝试使用时出现问题MATLAB 句柄对象 http www mathworks com help techdoc ref handle html作为关键值MATLAB 容器 Map http www mathworks com help
  • 将数据提示堆栈放在轴标签顶部,并在轴位置发生更改后更新轴标签

    此问题仅适用于 unix matlab Windows 用户将无法重现该问题 我在尝试创建位于 y 轴标签顶部的数据提示时遇到问题 下图很能说明问题 正如您所看到的 在 ylabel 附近创建的数据提示将到达 ylabel 文本的底部 而期
  • 平衡两轮机器人而不使其向前/向后漂移

    我正在尝试设计一个控制器来平衡 2 轮机器人 约 13 公斤 并使其能够抵抗外力 例如 如果有人踢它 它不应该掉落 也不应该无限期地向前 向后漂移 我对大多数控制技术 LQR 滑模控制 PID 等 都很有经验 但我在网上看到大多数人使用 L
  • 在Matlab中对字符进行分组并形成矩阵

    我有 26 个字符 A 到 Z 我将 4 个字符组合在一起 并用空格分隔以下 4 个字符 如下所示 abcd efgh ijkl mnop qrst uvwx yz 我的Matlab编码如下 str abcdefghijklmnopqrst

随机推荐

  • ROS学习(12)使用ROS创建自定义地图

    文章目录 前言一 新建环境二 创建编译功能包三 新建 world文件四 新建world启动文件五 更新启动文件六 建图 前言 上一篇使用的是柳树车库环境 xff0c 实现完整建图工作比较复杂 xff0c 所以准备新建一个简单点的环境 xff
  • ROS学习(13)自定义机器人的ROS导航

    文章目录 前言一 创建编译功能包二 代价地图配置三 基本局部规划器配置四 创建导航包的启动文件五 运行启动文件六 为导航功能包集设置rviz七 导航仿真 前言 上一篇针对我家户型 xff0c 完成了自定义环境的建图工作 本篇主要完成对导航功
  • ROS学习(开篇)Ubuntu16.04安装ROS Kinetic详细教程

    文章目录 前言一 添加ROS软件源 xff08 sources list xff09 二 添加密钥三 更新apt功能包列表四 安装ROS五 初始化 rosdep六 将ROS环境变量添加到 bashrc文件中七 安装rosinstall等工具
  • ROS学习(14)自定义四轮小车的ROS导航

    文章目录 前言一 创建编译功能包二 代价地图配置三 基本局部规划器配置四 创建导航包的启动文件五 导航仿真六 总结 前言 本篇为自定义四轮小车的ROS导航仿真 xff0c 与前面自定义机器人导航类似 该篇源码非原创 xff0c 特此说明 x
  • ROS学习(24)plugin插件

    文章目录 前言一 工作原理二 具体实现1 创建基类2 创建plugin类3 注册插件4 编译插件的动态链接库5 将插件加入ROS6 调用插件7 运行效果 前言 ROS中的插件就是可以动态加载的扩展功能类 ROS中的pluginlib功能包提
  • ROS学习(28)Web GUI

    文章目录 前言一 rosbridge suite元功能包二 roslibjs ros2djs ros3djs功能包三 tf2 web republisher功能包四 创建web应用五 使用web浏览器控制机器人 前言 ROS Web too
  • 参看了别人写的面试讲解

    转帖 ERP顾问的面试 新的一年就要开始了 xff0c 有不少的同行估计都在想着跳槽了 今天我就把自己的当面试官的感受给大家谈谈 xff0c 也许 xff0c 从中 xff0c 你可以掌握 ERP 实施顾问面试的技巧 在来年 xff0c 当
  • ROS2学习(1)ROS2简述

    文章目录 前言一 ROS1存在的问题二 什么是ROS21 ROS2的设计目标2 ROS2的系统架构3 ROS2的关键中间件 DDS4 ROS2中的通信模型5 ROS2的编译系统 前言 虽然众多开发者对ROS1进行了很多开发建设 xff0c
  • Qt之实现自定义控件的两种方式——提升法

    文章目录 前言一 需求二 实现1 新建项目2 自定义控件类3 提升4 效果 前言 可以通过Qt设计师拖拽原生控件进行界面开发 xff0c 但有时候原生控件不能满足项目需求 此时 xff0c 就需要实现自定义控件 Qt中实现自定义控件 xff
  • Qt之实现自定义控件的两种方式——插件法

    文章目录 前言一 需求二 实现1 新建项目2 自定义控件类3 编译插件4 拖拽使用 xff08 1 xff09 在designer exe中直接拖拽 xff08 2 xff09 在Qt Creator的设计师中直接拖拽 5 在项目中正常使用
  • Qt自定义控件——动态圆形进度条

    文章目录 前言一 需求二 实现1 自定义控件类2 提升3 效果 前言 本篇通过提升法实现一个动态圆形进度条 一 需求 自定义实现一个动态圆形进度条 xff0c 支持设置进度条颜色 目标值背景色 外边框背景色 中央圆环背景色 旋转角度及大小自
  • linux下可视化git工具git-cola安装与使用(SSH方式)

    一 git cola为何物 很多小伙伴 xff0c 特别喜欢使用TortoiseGit xff0c 该软件是做什么的 xff0c 就不用多说吧 奈何 xff0c TortoiseGit只有windows版 xff0c 这让在linux上开发
  • 智能优化算法:布谷鸟搜索算法-附代码

    智能优化算法 xff1a 布谷鸟搜索算法 附代码 文章目录 智能优化算法 xff1a 布谷鸟搜索算法 附代码1 算法原理2 算法结果3 参考文献4 Matlab代码 摘要 xff1a 谷鸟搜索算法 cuckoo search cs xff0
  • 基于布谷鸟优化的BP神经网络(预测应用) - 附代码

    基于布谷鸟优化的BP神经网络 xff08 预测应用 xff09 附代码 文章目录 基于布谷鸟优化的BP神经网络 xff08 预测应用 xff09 附代码1 数据介绍3 CS优化BP神经网络3 1 BP神经网络参数设置3 2 布谷鸟算法应用
  • 基于粒子群优化的BP神经网络(分类应用) - 附代码

    基于粒子群优化的BP神经网络 xff08 分类应用 xff09 附代码 文章目录 基于粒子群优化的BP神经网络 xff08 分类应用 xff09 附代码1 鸢尾花iris数据介绍2 数据集整理3 粒子群优化BP神经网络3 1 BP神经网络参
  • Arm Keil MDK v5.30版本官宣,快来下载!

    近日 xff0c Arm很高兴地宣布发布Arm Keil MDK v5 30 此版本新增了对Cortex M55处理器和CMSIS Build的支持 xff0c 更新包括Arm Compiler 6 14 xff0c CMSIS 5 7 0
  • ubuntu下访问串口

    前言 最近准备将windows上自动瞄准的程序移植到linux xff0c 第一步准备调试一下ubuntu下的串口 在网上搜到一个串口库 xff0c 于是就拿来调用 xff0c 最后调试成功 过程如下 xff1a 过程 1 下载Serial
  • 热备笔记实验

    早上突然断电 本来笔记本的插头就忘记插了 xff0c 电池没用多久就熄火 最纳闷的是接入电源后本机数据库竟然挂掉了 xff0c 嘿嘿 xff0c 正好试一试前几天应用的热备回复 以下是我的全程 C Documents and Setting
  • Android学习之AIDL添加Service权限

    参考 Android开发艺术探索 xff0c 书中提供了两种方法 第一种方法 xff1a 在onBind中验证 在服务端的AndroidManifest添加自定义权限 lt permission android name 61 span c
  • ADRC(自抗扰控制器)技术附Matlab代码框架

    自抗扰控制器 Auto Active Disturbances Rejec ion Controller ADRC 是韩京清学者提出的 xff0c 是一种继PID控制器后的一种新型的实用的控制技术 它不是一种独立的技术 xff0c 可以理解