PID控制算法01

2023-11-19

PID控制算法公式

原理

PID控制是一种在工业生产中应用最广泛的控制方法,其最大优点是不需要了解被控对象精确的数学模型,只需要在线根据被控变量与给定值之间的偏差以及偏差的变化率等简单参数,通过工程方法对比例系数 K P K_P KP,积分时间 K I K_I KI,微分时间 K D K_D KD三个参数进行调整,就可以得到满意的效果。

pid1
PID控制器的微分方程为:
u ( t ) = K P [ e ( t ) + 1 T I ∫ 0 t e ( t ) d t + T D d e ( t ) d t ] u(t)=K_P[e(t)+\frac{1}{T_I}\int_{0}^{t}{e(t)}dt+T_D\frac{de(t)}{dt}] u(t)=KP[e(t)+TI10te(t)dt+TDdtde(t)]

  • e ( t ) e(t) e(t)—给定值与被控变量的偏差
  • K P K_P KP—比例系数
  • K I K_I KI—积分时间常数
  • K D K_D KD—微分时间常数
  • t t t—从开始调节到输出当前控制量所经过的时间间隔

对上式左右两边分别进行拉氏变换,可得PID控制器的传递函数为:
G ( s ) = U ( s ) E ( s ) = K P ( 1 + 1 T I s + T D s ) G(s)=\frac{U(s)}{E(s)}=K_P(1+\frac{1}{T_Is}+T_Ds) G(s)=E(s)U(s)=KP(1+TIs1+TDs)
注:此处的传递函数仅为PID控制器,是不含反馈环节的

由于计算机只能处理数字信号,故将连续信号离散化,采样周期为T:
u ( k ) = K P { e ( k ) + T T I ∑ i = 0 k e ( i ) + T D T [ e ( k ) − e ( k − 1 ) ] } u(k)=K_P \Bigg\{e(k)+\frac{T}{T_I}\sum_{i=0}^{k}{e(i)}+\frac{T_D}{T}[e(k)-e(k-1)]\Bigg\} u(k)=KP{e(k)+TITi=0ke(i)+TTD[e(k)e(k1)]}
继续化简,用 K I K_I KI代替 K P T T I \frac{K_PT}{T_I} TIKPT,用用 K D K_D KD代替 K P T D T \frac{K_PT_D}{T} TKPTD
⟹ u ( k ) = K P e ( k ) + K I ∑ i = 0 k e ( i ) + K D [ e ( k ) − e ( k − 1 ) ] \Longrightarrow u(k)=K_P e(k)+K_I\sum_{i=0}^{k}{e(i)}+K_D[e(k)-e(k-1)] u(k)=KPe(k)+KIi=0ke(i)+KD[e(k)e(k1)]

  • 比例系数 K P K_P KP
  • 积分系数 K I K_I KI
  • 微分系数 K D K_D KD

参数作用

  1. 比例系数
  • 比例环节是PID控制器必不可少的环节,作用是放大误差信号,提高控制器对偏差信号的灵敏度
  • 当比例系数过大时,会使系统的超调量增加,出现振荡。控制系统的灵敏性和稳定性是相互矛盾的,比例系数的选择只能在稳定性与灵敏性间折中
  • 单纯的比例环节会引入稳态误差,由原理性稳态误差和结构性稳态误差构成
  1. 积分系数
  • 积分环节的主要作用是改善系统的稳态性能,消除系统的稳态误差
  • 当积分时间常数 T I T_I TI的减小可能导致系统超调量T增加,过小的 T I T_I TI会造成系统的振荡甚至不稳定,因为积分环节总是滞后于偏差的变化,过强的积分作用还会造成积分饱和; T I T_I TI的增大可能使系统趋于稳态值的速度减慢
  1. 微分系数
  • 微分环节根据偏差的变化趋势输出控制量,在偏差值发生较大变化时输出校正信号
  • 当微分时间常数 T D T_D TD增大时,系统相应速度加快,调节时间减小,但过大时,会使响应过程提前制动,从而延长调节时间并出现余差

PID算法及改进

两个基本类型

位置型PID控制

位置型PID控制算法,适用于不带积分元件的执行器,比如舵机和温控系统,执行器的动作位置与其输入信号呈一一对应的关系。PID控制器根据第k次被控对象采样结果与设定值之间的偏差 e ( k ) e(k) e(k)计算出第k次采样时所输出的控制量。位置型PID算法的数学表达式为(即上述推导):
u ( k ) = K P e ( k ) + K I ∑ i = 0 k e ( i ) + K D [ e ( k ) − e ( k − 1 ) ] u(k)=K_P e(k)+K_I\sum_{i=0}^{k}{e(i)}+K_D[e(k)-e(k-1)] u(k)=KPe(k)+KIi=0ke(i)+KD[e(k)e(k1)]

  • 之所以叫位置型PID控制,也是因为控制器的输出 u ( k ) u(k) u(k)对应执行器的实际位置
  • 由于误差积累项 ∑ i = 0 k e ( i ) \sum_{i=0}^{k}{e(i)} i=0ke(i),当前的输出 u ( k ) u(k) u(k)与过去所有状态有关
  • 需要积分限幅和输出限幅
增量型PID控制

与位置型PID算法相对应的是增量型PID算法,增量型算法适用于自身带有积分记忆元件的执行器,比如步进电机,此类执行器的特点是:执行器的动作终点位置与之前每次输入信号的累加值有关,每次执行器输入的控制信号决定本次执行器动作终点位置相对于上一次动作终点位置的改变量。增量型PID算法的数学表达式为:
Δ u ( k ) = u ( k ) − u ( k − 1 ) = K P [ e ( k ) − e ( k − 1 ) ] + K I e ( k ) + K D [ e ( k ) − 2 e ( k − 1 ) + e ( k − 2 ) ] \Delta{u(k)}=u(k)-u(k-1)=K_P [e(k)-e(k-1)]+K_Ie(k)+K_D[e(k)-2e(k-1)+e(k-2)] Δu(k)=u(k)u(k1)=KP[e(k)e(k1)]+KIe(k)+KD[e(k)2e(k1)+e(k2)]

  • 增量型PID中不需要累加误差,控制量 u ( k ) u(k) u(k)仅与最近3次采样值有关
  • 无需积分限幅,只需输出限幅

积分环节改进的PID控制

积分分离的PID控制

积分分离的基本思想是,当被控量与预设量偏差较大时,取消积分量,以免积分量使系统稳定性降低,超调量增大;当被控值接近定值时,引入积分控制,以消除静差,算法原理如下:
计算 e ( k ) = R − c ( k ) e(k)=R-c(k) e(k)=Rc(k),设定阈值 ε \varepsilon ε,控制器输出量为
u ( k ) = K P e ( k ) + β K I ∑ i = 0 k e ( i ) + K D [ e ( k ) − e ( k − 1 ) ] u(k)=K_P e(k)+\beta{K_I}\sum_{i=0}^{k}{e(i)}+K_D[e(k)-e(k-1)] u(k)=KPe(k)+βKIi=0ke(i)+KD[e(k)e(k1)]
∣ e ( k ) ∣ > ε \left|{e(k)}\right|>\varepsilon e(k)>ε,\beta = 0;若 ∣ e ( k ) ∣ ≤ ε \left|{e(k)}\right|\leq\varepsilon e(k)ε,\beta = 1
注:在 ∣ e ( k ) ∣ > ε \left|{e(k)}\right|>\varepsilon e(k)>ε时,虽然控制器输出控制量中不含积分项,但控制器仍然将每次采样后所得的偏差值进行累加

变速积分的PID控制

变速积分的基本思想是改变积分项的累加速度,使其与偏差大小相对应,当偏差值较大时,积分速度减慢,当偏差值较小时,积分速度加快。这样就可以抑制积分环节产生超调,同时缩短调节时间,算法原理如下:
计算 e ( k ) = R − c ( k ) e(k)=R-c(k) e(k)=Rc(k),设定系数值 A A A,控制器输出量为
u ( k ) = K P e ( k ) + K I ∑ i = 0 k α e ( i ) + K D [ e ( k ) − e ( k − 1 ) ] u(k)=K_P e(k)+{K_I}\sum_{i=0}^{k}\alpha{e(i)}+K_D[e(k)-e(k-1)] u(k)=KPe(k)+KIi=0kαe(i)+KD[e(k)e(k1)]
其中, α = A − ∣ e ( k ) ∣ A \alpha = \frac{A-\left|{e(k)}\right|}{A} α=AAe(k)。为使 α = A − ∣ e ( n ) ∣ A ∈ [ 0 , 1 ] \alpha = \frac{A-\left|{e(n)}\right|}{A}\in[0,1] α=AAe(n)[0,1]区间之内,需使 A > ∣ e ( k ) ∣ m a x A>\left|{e(k)}\right|_{max} A>e(k)max

抗积分饱和的PID控制

积分饱和现象:当控制系统输出的被控变量长时间未达到给定值时,这段时间内积分环节所产生的控制量将形成一个很大的积累值,PID控制器的输出控制量将由于积分环节的累加作用而不断增加。当控制量达到或超出执行机构的输入信号上下限时,此后执行器将进入饱和区,不再随着输入控制量的增加而进一步动作。当偏差值反向时,控制器的输出控制量需要很长时间才能退出饱和区,这段时间内执行器停留在极限位置而暂时失去控制。

所谓抗积分饱和法,就是在计算 u ( k ) u(k) u(k)时,首先判断上一时刻的控制量 u ( k − 1 ) u(k-1) u(k1)是否已经超出了极限范围:若 u ( k − 1 ) > u m a x u(k-1)>umax u(k1)>umax,则只累加负偏差,如果 u ( k − 1 ) < u m i n u(k-1)<umin u(k1)<umin,则只累加正偏差。

微分环节改进的PID控制

不完全微分PID控制

不完全微分算法即在原微分环节上添加一个具有低通滤波作用的惯性环节,因此不完全微分环节的传递函数为:
G ( S ) = U D ( s ) E ( s ) = K P T D s 1 + T f s G(S)=\frac{U_D(s)}{E(s)}=\frac{K_PT_Ds}{1+T_fs} G(S)=E(s)UD(s)=1+TfsKPTDs
经化简,
( 1 + T f s ) U D ( s ) = K P T D s E ( s ) ⟹ U D ( s ) + T f s U D ( s ) = K P T D s E ( s ) (1+T_fs)U_D(s)={K_PT_Ds}{E(s)}\Longrightarrow U_D(s)+T_fsU_D(s)={K_PT_Ds}{E(s)} (1+Tfs)UD(s)=KPTDsE(s)UD(s)+TfsUD(s)=KPTDsE(s)
经拉氏反变换,写成微分方程为
u D ( t ) + T f d u D ( t ) d t = K P T D d e ( t ) d t u_D(t)+T_f\frac{du_D(t)}{dt}=K_PT_D\frac{de(t)}{dt} uD(t)+TfdtduD(t)=KPTDdtde(t)
取采样时间 T T T,将上式离散化得
u D ( k ) + T f u D ( k ) − u D ( k − 1 ) T = K P T D e ( k ) − e ( k − 1 ) T u_D(k)+T_f\frac{u_D(k)-u_D(k-1)}{T}=K_PT_D\frac{e(k)-e(k-1)}{T} uD(k)+TfTuD(k)uD(k1)=KPTDTe(k)e(k1)
整理得
u D ( k ) = T f T + T f u D ( k − 1 ) + K P T D T + T f [ e ( k ) − e ( k − 1 ) ] u_D(k)=\frac{T_f}{T+T_f}u_D(k-1)+\frac{K_PT_D}{T+T_f}[e(k)-e(k-1)] uD(k)=T+TfTfuD(k1)+T+TfKPTD[e(k)e(k1)]
α = T f T + T f \alpha = \frac{T_f}{T+T_f} α=T+TfTf,则 1 − α 1-\alpha 1α = T T + T f \frac{T}{T+T_f} T+TfT,因此不完全微分算法公式为
u D ( k ) = K D ( 1 − α ) [ e ( k ) − e ( k − 1 ) ] + α u D ( k − 1 ) u_D(k)=K_D(1-\alpha)[e(k)-e(k-1)]+\alpha{u_D(k-1)} uD(k)=KD(1α)[e(k)e(k1)]+αuD(k1)

微分先行PID控制

微分先行算法适用于给定量频繁改变的控制系统,被控值与给定值的偏差若出现频繁的跳变,如果对偏差进行微分,会使微分结果产生剧烈的脉冲变化,不利于系统稳定,而控制系统的被控量输出一般不会产生突变,采用微分先行算法可改善系统的动态特性,有利于系统的稳定。

微分先行即将对偏差的微分改为对被控变量的微分,微分环节的输出为
u D ( k ) = K P T D T [ c ( k ) − c ( k − 1 ) ] u_D(k)=\frac{K_PT_D}{T}[c(k)-c(k-1)] uD(k)=TKPTD[c(k)c(k1)]

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

PID控制算法01 的相关文章

  • PI闭环的FPGA实现

    PID闭环的FPGA实现 1 原理分析 最近小张同学在做项目的时候发现PI闭环的FPGA学习资料很少 秉持着 既然没有轮子 那么自己就造一个的原则 于是乎自己写了个PI的Verilog程序 FPGA中实现PI闭环与DSP STM32 arm
  • PID参数解析+调参经验笔记(经验法)

    在最前面推荐一个大佬的讲解 真的很浅显易懂 建议先看了解大概PID 链接 ps 2022 1 2更新pid通俗理解 out speed p err d now speed pid最核心算法 运动员参加100米跑步 假设这个人可以瞬间提速 但
  • PID控制原理解释

    PID控制原理解释 文章目录 PID控制原理解释 0 前言 1 控制原理图解释 2 算法分析 3 PID数学模型解释 4 调参技巧说明 0 前言 参考网址 http blog gkong com liaochangchu 117560 as
  • PID稳压

    思路说明 我们设置一个目标值 这是我们要调节的目标 我们通过AD采样 PC3 采集到当前电压 通过减法运算我们得出当前电压与目标电压的差值 接下来我们只要发现当前电压与目标电压不同 我们就要想办法改变当前单片机的输出电压 PA8 也就是当前
  • 基于MATLAB的模糊pi控制器的设计

    基于MATLAB的模糊pi控制器的设计 模糊规则隶属函数的建立 a newfis fuzzypid 添加第一个输入变量e a addvar a input e 1 1 a addmf a input 1 N zmf 1 1 3 a addm
  • 1_simulink简单入门_simulink仿真PID控制

    1 simulink简单入门 simulink仿真PID控制 2 simulink搭建RCL 电阻电感电容模块 毕业前想去做物联网还是或者linux 结果玩了一年多的电机控制 早就深知matlab simulink绕不过的 拖到现在 下班晚
  • PID算法理论,运用,代码编写详解

    什么是PID 我相信能来看这篇文章的应该都知道什么是PID PID就是一种控制算法 利用比例运算 P 积分运算 I 和微分运算 D 一起控制某一事件 当然也可以只运用其中一个也可以两两结合 运用举例 比如我们家里都会有的那个电热水器 有点热
  • 三个闭环负反馈PID调节系统:电流环、速度环和位置环的关系

    三个闭环负反馈PID调节系统 电流环 速度环和位置环的关系 伺服电机为了达到生产的精准控制 电机一般采用三环控制 这主要是为了使伺服电机系统形成闭环控制 所谓三环就是3个闭环负反馈PID调节系统 电压映射电流变化 电流映射转矩大小 转矩大小
  • 在Qt中fork后获取进程的PID

    我正在创建一个成功分叉的 Qt C 控制台应用程序 当我在 fork 之前调用 QCoreApplication applicationPid 然后在 fork 之后 在子进程中 调用 QCoreApplication applicatio
  • C++ 在 Windows 中发送简单信号

    Windows 上是否有相当于kill 的函数 int kill pid t pid int sig 如果没有 是否可以根据进程的 PID 来测试进程是否正在运行 Thanks Windows 没有 Unix 意义上的信号 您可以使用Ope
  • 有没有办法确定 Linux PID 是否暂停?

    我有一个 python 脚本 它使用 SIGSTOP 和 SIGCONT 命令与 os kill 来暂停或恢复进程 有没有办法判断相关PID是处于暂停状态还是恢复状态 您可以从进程的 proc 目录 proc
  • 识别 DNS​​ 请求的 PID 源 (Windows XP)

    我希望确定发出 DNS 请求的进程 查看查询给了我一个线索 但并不能帮助我确定确切的过程 我可以在 Wireshark 中看到本地端口号 但请求太短暂 无法被 TCPView 接收 有没有可以捕获 DNS 请求和 PID 的日志记录工具 过
  • 从命令行启动进程时如何捕获进程的 PID?

    有没有办法纯粹在 bat 文件中执行此操作 目的是推出iexplore exe 然后在完成时杀死该实例 这是我使用的 echo off rem there is a tab in the file at the end of the lin
  • 检查给定 pid 的进程是否存在

    给定 Linux 进程的 pid 我想从 C 程序检查该进程是否仍在运行 Issue a kill 2 http linux die net man 2 kill系统调用0作为信号 如果调用成功 则说明存在该pid的进程 如果呼叫失败并且e
  • 确定监听某个端口的进程pid

    正如标题所示 我正在运行多个游戏服务器 并且每个服务器都有相同的name但不同PID和port数字 我想匹配PID正在监听某个端口的服务器 然后我想终止这个进程 我需要它来完成我的 bash 脚本 这可能吗 因为在网上还没有找到解决方案 您
  • 如何查看linux中特定进程每5秒的内存消耗情况

    我只是想知道如何找到特定进程在特定时间 比如5秒 的内存消耗 我是linux新手 因此 详细的步骤将不胜感激 Use top p PID其中 PID 是进程 ID 应显示有关进程的信息 包括使用的系统内存百分比 类型d以及一个以秒为单位的整
  • 在 python 中,是否有跨平台的方法来确定哪个进程正在侦听给定端口?

    在linux下 我可以使用lsof i如以下函数所示 def FindProcessUsingPort portnum import os fp os popen lsof i s portnum lines fp readlines fp
  • 如何通过VBA获取当前Excel实例的进程ID,而不使用标题?

    如何获取运行 VBA 代码的当前 Excel 实例的进程 ID 我不想通过标题中的名称来请求它 当我有两个或多个具有相同标题的 Excel 实例时 这会导致问题 您可以使用此方法来获取当前进程ID Declare Function GetC
  • 查找PID所属的tmux会话

    我正在使用 htop 所以看看哪些进程占用了大量内存 以便我可以杀死它们 我有很多 tmux 会话和很多类似的流程 如何检查 PID 位于哪个 tmux 窗格中 以便确定我正在杀死我想杀死的东西 鉴于PID下面一行是目标 pid 号 tmu
  • 如何在 Makefile 中获取 make 命令的 pid?

    我想使用此构建特有的临时目录 如何在 Makefile 中获取 make 命令的 pid I tried TEMPDIR tmp myprog 但这似乎存储TEMPDIR as tmp myprog 然后将 eval 作为每个引用此命令的新

随机推荐

  • 局域网内共享打印机的几种方式

    关于在局域网中共享打印机的一般流程和部分报错解决方案 时间 2022 06 07 设备 win10为主 其他版本也可参考 网络拓扑图大致如下 共享出自身的打印机 1 共享打印机 搜索打印机 打开打印机和扫描仪设置 选择打印机 点击管理 进入
  • 杂谈随感-1:革新与固守,多少技术人的宿命

    当一个新的技术革命发生的时候 有能力固守原有技术的人都是原有那个时代的精英 如果生命足够长 技术革新足够快 大多数革新者又都会变成固守者 成为新生革新者革新的对象 好在 个体生命的时间没有那么长 好在 新的技术革新并没有那么快 才有了一代代
  • 一门新的编程语言ecere简介

    ecere 简称eC 是加拿大学者jerome历时十二年开发的一门编译型编程语言 拥有C 项目的性能 Java的跨平台性以及Python语法的简洁性 ecere在C语言的基础上加入了面向对象的支持 但与C Java相比 它更像是一个C语言的
  • 互联网日报

    今日看点 吉利汽车科创板首发过会 抢滩 科创板整车第一股 新浪就 私有化 交易达成最终协议 总价25 9亿美元 淘宝直播12个月累计成交额超过3000亿元 用户同比增长160 滴滴货运日单量连续突破10万 持续拓展同城货运版图 360保险推
  • 多元线性回归超详细详解(一步一步手推公式)

    上一篇我们详细的讲解了一元一次线性回归算法 今天我们接着上一篇 为大家讲解多元线性回归是怎么一回事 何为多元 当我们的输入x只有一维属性时 我们称之为一元 就像我们判断人胖瘦 只需了解体重这一个属性 我们就可以辨识 当x包含n个属性 由n个
  • 基于战争优化算法(WSO)的光伏模型参数估计研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 算法文献来源 https ieeexplore ieee org
  • 锂电池生产全过程图解

    锂电池大致可分为两类 锂金属电池和锂离子电池 锂离子电池不含有金属态的锂 并且是可以充电的 我们所熟知的特斯拉电动汽车便是用的18650锂离子电池通过串并联组成的电池板 随着新能源汽车日渐火爆 动力电池行业也变得炙手可热 下面我们将通过图解
  • “多点”开花,独立走向新零售

    12月7日 亚洲最大的数字零售服务商多点Dmall正式向港交所递交招股说明书 在零售行业逐渐向线上线下一体化 店仓一体模式迈进之时 多点Dmall成为很多传统零售商转型路上的首选合作伙伴 给予了资本市场一定想象空间 但也有观点认为 在自带流
  • Oracle 事务

    文章目录 一 事务的基本概念 二 事务的特征 1 事务的原子性 Atomicity 2 事务的一致性 Consistency 3 独立性 Isolation 4 持久性 Durability 三 事务锁 1 多个会话同时处理一条数据 2 注
  • 比较文本差异的工具_Linux 开发的五大必备工具

    Linux 已经成为工作 娱乐和个人生活等多个领域的支柱 人们已经越来越离不开它 在 Linux 的帮助下 技术的变革速度超出了人们的想象 Linux 开发的速度也以指数规模增长 因此 越来越多的开发者也不断地加入开源和学习 Linux 开
  • [ArcGIS] 表格输出为shp时日期时间列只保留日期而时间被截掉

    1 首先将存有GPS数据的表格加载到ArcGIS中 2 然后右击表格 gt Display XY Data 生成矢量数据 查看dataall csv Events的属性表 可以看到此时的Time属性的值有日期和时间 3 然后右击dataal
  • PostgreSQL导出表结构

    Windows PgAdmin 环境变量配置 PG HOME D Program Files PostgreSQL 9 5 Path PG HOME bin PG HOME lib PG HOME data 最后追加 查看配置是否成功 出现
  • 编写 EL 自定义函数 的方法

    一 利用EL表达式调用普通Java类中的静态方法 1 编写一个java类 并编写一个静态方法 如下所示 public class ElDemo 静态方法 将小写转换为大写 public static String convert Strin
  • 【PAT乙级】锤子剪刀布

    题目描述 大家应该都会玩 锤子剪刀布 的游戏 两人同时给出手势 胜负规则如图所示 现给出两人的交锋记录 请统计双方的胜 平 负次数 并且给出双方分别出什么手势的胜算最大 输入格式 输入第 1 行给出正整数 N 10 5 即双方交锋的次数 随
  • numpy基本教程

    此处所指的数组就是numpy的ndarray 1 numpy加载npz文件 变量filename存放npz文件的地址 加载文件 data seq np load graph signal matrix filename data np lo
  • CSS选择器汇总

    CSS选择器汇总 选择器选择所有元素 选择器也可以选择另一个元素内的所有元素
  • solidworks启动慢的原因在这里

    你打开SOLIDWOKRS需要多长时间 有的人可能是十秒左右SOLIDWOKRS 有的人可能要等上一两分钟才能看到SOLIDWORKS的界面 那么我们今天抛开硬件的差异 主要针对软件和系统环境的设置帮助大家加快打开SOLIDWORKS的速度
  • HBase的Compact和Split源码分析与应用--基于0.94.5

    HBase的Compact和Split源码分析与应用 基于0 94 5 经过对比 0 94 5以后版本主要过程基本类似 有些新功能和细节增加 一 Compact 2 1 Compact主要来源 来自四个方面 1 Memstoreflush时
  • 数组、字符串、Math常用的API

    数组的API 方法 用法 concat 连接两个或多个数组 并返回已连接数组的副本 原数组不变 join 将数组的所有元素连接成一个字符串 返回字符串 原数组不变 toString 将数组转换为字符串 并返回结果 from 从对象创建数组
  • PID控制算法01

    PID控制算法 PID控制算法公式 原理 参数作用 PID算法及改进 两个基本类型 位置型PID控制 增量型PID控制 积分环节改进的PID控制 积分分离的PID控制 变速积分的PID控制 抗积分饱和的PID控制 微分环节改进的PID控制