控制算法PID-理解分析1
以下内容是来自网络上的,本人觉得有道理,拷贝下来,由于没有找到最源头的出处,没有注明来自何方。
转载,下面说法应该更通俗易懂
一家庭,每次需要开支的时候丈夫P都要拿卡去取钱。需要多少取多少,因为银行最低的是100的取款, 每次都会有剩,剩下的钱又会被孩子偷走,为了方便家庭开支而且保证孩子的教育,丈夫和妻子I商量生 活小开支由妻子I负责零钱。而一旦需要大开支则有丈夫P负责去银行取。而每一天的生活开支是33快。 比如今天开支是59快 丈夫P一算不值得去银行取就由妻子I负责出。妻子I就负责小开支的平衡。俗话说男女搭配干活不累,分工明确,日子幸福着呢。
有那么一天 老婆I回娘家了。回娘家好啊,这样有时间找小三了哇。可是麻烦来了,小孩要吃饭又向P要零花钱。但是生活方面的开支是老婆负责的。一算需要79RMB。天呐难道要跑到银行去取吗?丈夫P懒的要命。P想反正没有超过100块不是我的事。于是小宝贝和P饿了一天,第二天平常的一天开支33RMB ,P一算现在需要112RMB了,于是去银行取了100回来,反正剩下12RMb是老婆I的事。老公P不管,老公P就是那个德行小钱管不了。
很多朋友说PID只有P难道不行吗。因为P就是比例,比如如果P是0.5的话,每次去调节0.5最后越调越小也肯定能让误差相当于0的。那么I岂不是多余的?如果谁要是问这个问题八成是觉得老婆是多余的那种。哈哈,有这样 的想法也没什么问题,问题是你忽略了一个问题就是PID调节周期T。我们发现每个T时间都会有误差产生 ,但我们的P只调节0.5,也就是经过P调节后还是会有余差的。假设e是误差,c是控制值,o是输出,系统单位反馈。k是比例系数,那么有:e= c-o, k*e= k(c-o)=o, 式子调换过来 o=[k/(1+k)]*c=[1/(1+1/k)]*c,如果k是无穷大那么o等于c,也就是输出等于控制值,但是k 不可能为无穷,所以比例控制一定是有误差的。k越大误差越小。所以P负责大头,I就是辅助。
以上事实证明没有老公P办不了大事坐不成宝马。没有老婆I有可能饿肚子哦
备注公式
控制算法PID-理解分析1的更多相关文章
- JDK动态代理深入理解分析并手写简易JDK动态代理(下)
原文同步发表至个人博客[夜月归途] 原文链接:http://www.guitu18.com/se/java/2019-01-05/27.html 作者:夜月归途 出处:http://www.guitu ...
- JDK动态代理深入理解分析并手写简易JDK动态代理(上)
原文同步发表至个人博客[夜月归途] 原文链接:http://www.guitu18.com/se/java/2019-01-03/27.html 作者:夜月归途 出处:http://www.guitu ...
- PID控制算法的简单分析和仿真!
PID算法简单剖析如下: 1.首先我们来看一下PID系统的基本组成模块: 如图所示,图中相关参数的表示如下: r(t):系统实际上需要的输出值,这是一个标准值,在我们设定了之后让这个系统去逼近的一个值 ...
- 从整体上理解进程创建、可执行文件的加载和进程执行进程切换,重点理解分析fork、execve和进程切换
学号后三位<168> 原创作品转载请注明出处https://github.com/mengning/linuxkernel/ 1.分析fork函数对应的内核处理过程sys_clone,理解 ...
- 四轴飞行器1.5 各种PID对比分析及选择
原创文章,欢迎转载,转载请注明出处 这篇文章主要介绍我对PID的理解,以及选择PID算法的过程. 一 PID的理解和学习过程 二 飞控的PID效果 先上个飞控PID的响应的视频:介绍在后面 地址:ht ...
- 进程pid理解
PID(Process Identification)操作系统里指进程识别号,也就是进程标识符.操作系统里每打开一个程序都会创建一个进程ID,即PID. PID(进程控制符)英文全称为Proces ...
- Function.prototype.apply.call 理解分析
首先需要了解apply,call的基本用法,其目的是改变调用方法中的this指向,将其指向为传入的对象,改变this的指向,两种方法接收参数的方式不同. 代码:console.log var cons ...
- java NIO理解分析与基本使用
我前段时间的一篇博客java网络编程--多线程数据收发并行总结了服务端与客户端之间的收发并行实践.原理很简单,就是针对单一客户端,服务端起两个线程分别负责read和write操作,然后线程保持阻塞等待 ...
- Rust借用机制的理解分析
Rust初学者大多会遇到这样的问题: 为什么同一资源不可被同时可变借用和不可变借用? 为什么Rc一定只能是只读的,一定要配合std::cell系列(Cell,RefCell,UnsafeCell)才能 ...
- JS按位非(~)运算符与~~运算符的理解分析
按位非运算符,简单的理解就是改变运算数的符号并减去1,当然,这是只是简单的理解能转换成number类型的数据. 那么,对于typeof var!==”number”的类型来说,进行运算时,会尝试转化成 ...
随机推荐
- redis6安装 centos系统
Redis6 安装 在centos7.5服务器上按照官方发布的安装方式并不能进行正确的安装,现收集并整理如下安装方式,亲测有效 1.安装依赖 yum install -y cpp binutils ...
- go 参数传递的是值还是引用 (转)
https://blog.csdn.net/qq_16059847/article/details/104062759
- linux下composer安装
curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer执行更新compose ...
- Centos6.X 手动升级gcc
操作环境 CentOS6.5 64bit,gcc原版本为4.4.7,不能支持C++11的特性,所以需要升级 [root@zengxj ~]# wget http://ftp.gnu.org/gnu/g ...
- textarea在编程中的实际应用
<textarea> 标签定义多行的文本输入控件. 文本区中可容纳无限数量的文本,其中的文本的默认字体是等宽字体(通常是 Courier) 实例 <textarea rows=&qu ...
- router-link 使用精确匹配
本来不想写router 规则匹配的问题,有一个笨球问,顺带写一下, 先配置一下路由 export default new Router({ routes: [ { path: '/', name: ' ...
- js根据ip地址获取城市地理位置
一.使用js根据ip获取地址位置 <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>& ...
- Java学习的第二十五天
1.字节流输出内容 用字节流读文件内容 字符输出流写入 字符输入流 2.没问题 3.明天学习到缓冲流
- Jmeter 用户定义的变量的使用
第一步: 打开Jmeter软件,新建一个线程组,添加 > 配置元素 > 用户定义的变量 第二步: 设置值,如下图所示: 第三步,使用设置的名称 :
- (模板)graham扫描法、andrew算法求凸包
凸包算法讲解:Click Here 题目链接:https://vjudge.net/problem/POJ-1113 题意:简化下题意即求凸包的周长+2×PI×r. 思路:用graham求凸包,模板是 ...