echarts的tree怎么控制位置_自动化考研保研面试—线性系统控制器设计

124aebd0c382b1053a12859440002d88.png

这个问题是我导师(面试组长)多次在保研考研面试的时候问过的,而且每年都会问!问题其实不难,涉及的知识点也就是自控原理经典控制理论的部分,但是基本上很少有人能够完整地回答出来,不服的话请看题:

-------------------------------------------请看题---------------------------------------------

假设平面上有一个小木块,现在要求你把它从原点移动到1m的位置上去,如何设计控制器?

如果你看到这里脑子没有懵圈,还能联想到经典控制理论学过的知识,那很好,说明你对控制已经有一个基本概念了。如果还没有反应过来也没关系,我来给大家捋一遍。


控制领域三个基本问题“建模”,“控制”,“优化”,建模摆在第一的位置,打仗要先研究透对手,控制也一样。很多时候控制效果不好,问题不是控制器的问题,而是对象的模型搞错了。当然对于这个任务,模型还是简单的,由牛顿第二定理

equation?tex=F%3Dm%5Cddot+x 知道模型就是
equation?tex=m%5Cddot+x ,为了方便后面讨论这里先忽略摩擦。再考虑得简单一点,假设木块的质量是1kg,那么模型变成了
equation?tex=%5Cddot+x

在这里我提醒大家一定要开始转变思路,多用微分来表示速度、加速度、角速度、角加速度,如果你一开始想到的是

equation?tex=F%3Dma ,很容易脑子转不过弯来。

给定了控制的任务,也有了被控对象的模型,那下一步就可以开始设计控制器了。这里给一个建议,先把原理图画出来,在原理图的基础上分析问题能帮助我们很快地理清思路。我通常用来检验自己有没有搞懂一个控制问题的方法,就是直接去画它的原理图,如果不能很轻松地画出来,那说明我还没有完全理解。那么,对于这个任务它的原理图长这个样子:

0dbc9b77b80a30c0ba9a5116645cb019.png

因为要求木块到达1m的位置,所以

equation?tex=x_r 是一个幅值为1的阶跃信号,
equation?tex=x 是木块当前的实际位置。控制器暂时考虑使用最广泛的PID控制器,我们也按照PID来分析问题。最开始我抛出这个任务的时候,可能会有人脱口而出,用PID控制器呗,
equation?tex=k_p%2Ck_i%2Ck_d 三个参数多调两下总会实现的。
那么我再多问一点,如果PID控制器能完成任务,那么PI控制器也能实现要求吗?PD控制器呢?只用P控制器会带来什么问题?

如何回答上面我重新提出的问题,我们先从考虑系统的稳定性问题开始。盯着画出来的原理图,可以重新解读控制目标为设计控制器使得最终的实际位置

equation?tex=x%3Dx_r ,误差信号
equation?tex=e%3D0 。假设目前使用PD控制器,我们看看系统能不能达到期望的要求。

PD控制器的输出为

equation?tex=u%3Dk_pe%2Bk_d+%5Cdot+e ,而
equation?tex=%5Cbegin%7Bequation%7D%5Cleft%5C%7B++++++++++++++%5Cbegin%7Barray%7D%7Blr%7D++++++++++++e%3Dx_r-x%5C%5C++++++++++++u%3D%5Cddot+x%26+++++++++++++++%5Cend%7Barray%7D%5Cright.%5Cend%7Bequation%7D+ ,那么有:

式(1)

equation?tex=%5Cddot+e%2Bk_d+%5Cdot+e%2Bk_p+e%3D%5Cddot+x_r

因为

equation?tex=x_r%3D1 ,则
equation?tex=%5Cddot+e+%2Bk_p+%5Cdot+e%2Bk_p+e%3D0

看到这里你就明白了,最终的偏差信号肯定等于零,而且这个跟踪过程还是以指数趋近的。你看,PD控制器也能解决问题,这种情况下用PID控制器就是浪费。

如果我改一下条件,我不让小木块一直停在x=1m就结束了,我想向让你推着小木块一直走,期望信号改成

equation?tex=x_r%3Dt 。那公式1会变成什么样子呢?等式右边还是等于零,结果是一样的。这说明PD控制器不仅能完成对阶跃信号的跟踪,对于斜坡信号也没有问题。

继续改变条件分析,我们推箱子推得越来越起劲,越推越快。期望信号改成加速度输入

equation?tex=x_r%3D1%2F2t%5E2 ,那这时用PD控制器就有点费劲了。这是公式1变成:

equation?tex=%5Cddot+e%2Bk_d%5Cdot+e%2Bk_p+e%3D1

很明显误差不等于零,怎么消除这个稳态误差呢?这个时候用PID控制器就比较合适了。控制器加入积分项后变成

equation?tex=u%3Dk_pe%2Bk_i%5Cint_%7B%7D%5E%7B%7Dedt%2Bk_d+%5Cdot+e,公式1变成
equation?tex=%5Cddot+e%2Bk_d+%5Cdot+e%2Bk_i%5Cint_%7B%7D%5E%7B%7Dedt%2Bk_p+e%3D1%5CRightarrow+%5Cdddot+e%2Bk_d+%5Cddot+e%2Bk_p+%5Cdot+e%2Bk_i+e%3D0

这样一来,误差就又等于零了。所以说为什么积分项能够消除稳态误差,数学上的道理就在这了。

好的,一个人推箱子的情况分析得差不多了。再来看看有一个熊孩子陪你推箱子时的情况。考虑存在外部干扰d,又该如何设计控制器?此时状态方程发生变化,不是

equation?tex=u%3D%5Cddot+x ,而是
equation?tex=u%2Bd%3D%5Cddot+x 。同样,先画出新的原理图:

4b535e7faed68bbc4b76be44dc46fb7f.png

先假设干扰为常值干扰,即

equation?tex=d%3Dc。这时只能使用PID控制器才能压制住干扰了,公式1变成
equation?tex=%5Cddot+e%2Bk_d+%5Cdot+e+%2Bk_i%5Cint+e+dt%2Bk_pe%2Bc%3D%5Cddot+x_r

然后再分别对期望信号分别为阶跃、斜坡、抛物线时进行分析,就能看出PID控制什么时候能做到无误差跟踪,什么情况下根本解决不了问题。这里我就不再仔细分析了。

这个时候建议你拿出自动控制理论教材,再看看书上的描述,应该是有了新的理解。就比如下面这个输入信号作用下的稳态误差表:

01d445885f9f031bef6e83ea542fb180.png

如果你看到这里对这个问题还有兴趣,那么可以再想远一点。

尝试增加被控对象的阶次试试,三阶系统会怎么样呢?

既然PID控制器不能实现无差控制,又有哪些控制器能解决?

还有哪些提高系统抗干扰的方法?

如果对象的模型不准确又该怎么办?等等等等……

我相信你如果能再想想这些问题,肯定会对经典控制理论有一个更深的认识。


能分享考研/保研的经历吗?​www.zhihu.com
zhihu-card-default.svg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/350120.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PCF上的Spring Cloud合同和Spring Cloud Services

最近,我们有一个客户,对于使用Spring Cloud Contract (SCC)来防止微服务团队之间的API“漂移”,微型开发团队需要由单个开发团队来照顾构成企业应用程序一部分的单个API的想法非常感兴趣。 Spring Cloud Contract是Sp…

MS Lync2010客户端开发体会

和前身OCS2007 相比较,Lync2010原生客户端的扩展性大大缩小了,但是提供了很好的客户端SDK,整个系统架构也有较大变化。由于Lync2010原生客户端实在太简单,用惯了QQ的国人,实在无法接受以下功能的缺失: 组织…

date javascript 时区_第23节 Datejs 日期库-Web前端开发之Javascript-零点程序员-王唯

Datejs 是一个开源的JavaScript库,用来解析、格式化和处理日期数据,支持多种语言的日期格式处理;官网:www.datejs.com/Moment.js 是一个简单易用的轻量级JavaScript日期处理类库,提供了日期格式化、日期解析等功能。它…

制杖题

题目描述 求不大于 m 的、 质因数集与给定质数集有交集的自然数之和。 输入格式 第一行二个整数 n,m。 第二行 n 个整数,表示质数集内的元素 p[i]。 输出格式 一个整数,表示答案,对 376544743 取模。 输入输出样例 输入 #1复制 2 …

煤矿安全规程专家解读2016电子版_【学习】煤矿安全规程专家解读(165)

点击蓝字关注我们第二编 井工部分第三百三十三条爆破前,必须加强对机器、液压支架和电缆等的保护或将其移出工作面。爆破前,班组长必须亲自布置专人在警戒线和可能进入爆破地点的所有通路上担任警戒工作。警戒人员必须在安全地点警戒。警戒线处应设置警…

DC / OS中具有Java和数据库应用程序的服务发现

该博客将展示一个简单的Java应用程序如何使用DC / OS中的服务发现与数据库进行对话。 为什么要进行服务发现? 应用程序通常由多个组件组成,例如应用程序服务器,数据库,Web服务器,缓存和消息传递服务器。 通常&#xf…

RAC环境下创建本地数据文件的解决方法

引用收藏:http://blog.itpub.net/501889/viewspace-1083311/ 同事不小心,在RAC环境下创建了本地数据文件,这个肯定会出问题的,节点2不能访问此数据文件。其实发现做错了,立马删掉应该没有问题。数据文件还没有数据。下…

诺基亚n1平板电脑刷机教程_【个人记事本】闲鱼购买平板的经历

今年由于疫情原因,国内开展了全体学生在家学习的模式,这就避免不了老师发一些课件,还有一些录课的视频等电子学习资料等。考虑到开学复习的便利性(平板比笔记本电脑更具有便携性,更方便)。所以,…

找出一个字符串中出现次数最多的字_487,重构字符串

想了解更多数据结构以及算法题,可以关注微信公众号“数据结构和算法”,每天一题为你精彩解答。问题描述给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。若可行,输出任意可行的结果。若不可行&am…

一、数据设计规范

一、数据设计规范 1、表的前缀 1、表名称不应该取得太长(一般不超过三个英文单词。不推荐使用中文拼音,总的长度不要超过30个字符) 格式:Tbl_Wms_log 表示 表_Wms系统_log 好处:执行查询方式辨别SQL类别(T_表-Table、V_视图-View、S_存储过…

http缓存管理器_小心缓存管理器

http缓存管理器如果使用spring和JPA,则很有可能利用ehcache(或其他缓存提供程序)。 您可以在两种不同的情况下进行此操作:JPA 2级缓存和spring方法缓存。 配置应用程序时,通常会设置JPA提供程序的二级缓存提供程序&am…

cad线加粗怎么设置_AutoCAD2019怎么加粗线条 将不同线段加粗方法

AutoCAD2019是一款非常专业的制图软件,那有很多用户表示自己不知道这款软件怎么加粗线条,下面就通过这篇文章给大家介绍一下,一起往下看吧!如图所示,我用L命令绘制一根线段:,这根线段的宽度为默…

时间管理——你不可不知的3种时间管理方法

时间管理——你不可不知的3种时间管理方法 时间管理 英文名:Time Management   请问,如果每天都有86400元进入你的银行户头,而你必须当天用光,你会如何运用这笔钱?   天下真有这样的好事吗?   是的,…

python tkinter布局混用_[宜配屋]听图阁

这篇文章主要介绍了python tkinter控件布局项目实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下代码部分:from tkinter import *import tkinter.messagebox as messageboxclass Tkdemo():def __i…

ASP.NET中利用ashx实现图片防盗链

盗链的危害我就不说了,网上有很多。 直接分析盗链原理:看下面用httpwatch截获的http发送的数据 GET /Img.ashx?imgsvn_work.gif HTTP/1.1 Accept: */* Referer: http://www.svnhost.cn/ Accept-Language: zh-cn UA-CPU: x86 Accept-Encoding: gzip, def…

适用于Java开发人员的Elasticsearch:Java的Elasticsearch

本文是我们学院课程的一部分,该课程的标题为Java开发人员的Elasticsearch教程 。 在本课程中,我们提供了一系列教程,以便您可以开发自己的基于Elasticsearch的应用程序。 我们涵盖了从安装和操作到Java API集成和报告的广泛主题。 通过我们简…

matlab 日期排序_MATLAB时间序列的排序函数

sort功能:对时间序列x进行排序。格式:m sort(x, mode) % 当参数mode‘ascend’,表示对x进行升序重排;当mode‘descend’,表示降序重排wrev功能:得到时间序列x的逆序。格式:m wrev(x)如>>…

c标签foreach遍历list_遍历 Dictionary,你会几种方式?

一:背景 1. 讲故事昨天在 StackOverflow 上看到一个很有趣的问题,说: 你会几种遍历字典的方式,然后跟帖就是各种奇葩的回答,挺有意思,马上就要国庆了,娱乐娱乐吧,说说这种挺无聊的问题???。二…

[HDU 4666]Hyperspace[最远曼哈顿距离][STL]

题意: 许多 k 维点, 求这些点之间的最远曼哈顿距离. 并且有 q 次操作, 插入一个点或者删除一个点. 每次操作之后均输出结果. 思路: 用"疑似绝对值"的思想, 维护每种状态下各点的计算值, 插入或删除一个点就更新一次每种状态(用 multiset 或 map 或 priority_queue 实…

过滤器匹配符包含单词_Hamcrest包含匹配器

过滤器匹配符包含单词与Hamcrest 1.2相比 ,针对Matchers类的Hamcrest 1.3 Javadoc文档为该类的几种方法添加了更多文档。 例如,四个重载的contains方法具有更具描述性的Javadoc文档,如下面所示的两个比较屏幕快照所示。 尽管仅通过尝试就可以…