串级控制系统

任务 继基础的单回路控制后,进行第二种控制方案的学习。 知识 两个回路:主回路与副回路 引入副回路的作用 改善被控对象的特性 通过推导传递函数可见: 副回路的存在使得原来被控对象的放大倍数、时间常数都变小了,有利于控制。 提高抗干扰性能 干扰在影响主回路前,在副回路中被消化。 提升自适应能力 在单回路控制系统中,控制器参数是根据具体的被控对象特性整定得到的。一定的控制器参数只能适应于一定的被控对象特性。如果生产过程负荷变化,进而导致被控对象特性发生变化时,原先整定的控制器参数就不再能适应。这时如不及时修改控制器参数,控制质量就会降低。这是单回路控制系统难于克服的矛盾。 当采用串级控制时,主环是一个定值系统,而副环却是个随动系统。主控制器能够根据操作条件和负荷的变化(从主被控变量变化中体现出来),不断修改副控制器的给定值,以适应操作条件和负荷变化的情况。如果被控对象有非线性特性存在,那么可以把它设计在副回路之中,当操作条件或负荷发生变化时,虽然副回路的衰减比会发生一些变化,稳定裕度会降低一些,但是它对主回路的稳定性影响却很小。 系统设计 串级控制系统副回路设计 (1)使系统中的主要干扰包含在副环内。 由于串级系统的副回路具有动作速度快、抗干扰能力强的特点,如果在设计中把对主变量影响最严重、变化最剧烈、最频繁的干扰包含在副环内,就可以充分利用副环快速抗干扰性能,将干扰的影响抑制在最低限度。这样,干扰对主被控变量的影响就会大大减小,从而使控制质量获得提高。 (2)在可能情况下,应使副环包含更多一些干扰。 (3)当被控对象具有非线性环节时,在设计时应使非线性环节处于副环之中。 (4)当被控对象具有较大纯滞后时,应使所设计的副回路尽量少包括或不包括纯滞后。 (5)副回路设计应考虑到主、副被控对象时间常数的匹配,以防“共振”发生。 (6)需考虑到方案经济性和工艺的合理性。 控制器控制规律的选择 一般情况下,副控制器可选P作用;主控制器选PI,或PID。 主、副控制器正、反作用的选择 主、副控制器正、反作用的确定顺序应遵循先副后主的原则。 实验 加入扰动:通过点击最左侧的几何图块以改变出口管线(FV107所在管线)的输入压力参数值,向系统引入扰动。 手动与自动/内给定是什么 手动就是你通过键盘输出阀门开度,你想要它开多少你就输多少;自动就是通过程序中阀门控制块的PID调节输出,达到你要求设定的条件(比如要达到你设定的流量),这是指阀门的手,自动。如果你指的是电机的手、自动,手动就是指你通过控制启动面板来开启或停止电机马达,自动是指你该设备在某个启动组里,你通过组启动来启动或停止多台设备。 内给定是指通过流程图上阀门控制面板,手工输入的给定值。外给定是指在阀门控制块的外部管脚所连接的数值,就跟阀门反馈值接到你的阀门控制块上。你无法通过画面上面板输入给定值!手动就是你通过键盘输出阀门开度,你想要它开多少你就输多少;自动就是通过程序中阀门控制块的PID调节输出,达到你要求设定的条件(比如要达到你设定的流量),这是指阀门的手,自动。如果你指的是电机的手、自动,手动就是指你通过控制启动面板来开启或停止电机马达,自动是指你该设备在某个启动组里,你通过组启动来启动或停止多台设备。 内给定是指通过流程图上阀门控制面板,手工输入的给定值。外给定是指在阀门控制块的外部管脚所连接的数值,就跟阀门反馈值接到你的阀门控制块上。你无法通过画面上面板输入给定值!

单回路控制系统

任务 当前面完成了基本概念的学习,下面开始结合练习工程进行实操。 概念 一个被控对象,一个被控参数 一个调节器,一个控制参数 其他对被控对象的被控参数产生影响的参数都是干扰! 整定方法 理论计算整定 :根轨迹法、频率特性法。需要已知过程的数学模型,更常使用的是未知数学模型也可通过实验整定的工程方法。 临界比例度法 在系统闭环情况下,将控制器的积分时间Ti放到最大,微分时间TD放置为0,比例KC放于适当数值。然后使KC由大往小逐步改变,并且每改变一次KC值时,改变给定值给系统施加一阶跃干扰,同时观察被控变量y的变化情况。 若y的过渡过程呈衰减振荡,则继续减小KC值,若y的过渡过程呈发散振荡,则应增大KC值,直到调至某一KC值,过渡过程出现不衰减的等幅振荡为止。这时过渡过程称之为临界振荡过程。出现临界振荡过程的比例KC称为临界比例度,临界振荡的周期Tk则称临界周期。 4:1衰减振荡法 在系统闭环情况下,将控制器积分时间Ti放在最大,微分时间TD放置为0 ,比例KC放于适当数值,然后使KC由大往小逐渐改变,并在每改变一次KC值时,通过改变给定值给系统施加一阶跃干扰,同时观察过渡过程变化情况。 如果衰减比大于4:1, KC应继续减小,当衰减比小于4:1时KC应增大,直至过渡过程呈现4:1衰减时为止。4:1衰减振荡时的比例KC及振荡周期了Ts。

过程控制——PID

任务 第一次听到PID还要回溯到大一懵懂时参加的智能车大赛,学长的讲解觉得能够理解,当然在例程已经完整给出、又对编程一窍不通的情况下,并没有亲自应用过这种思想。 比赛培训学长经验 比例(P)是最基本的控制,简单,可靠,但很难达到很好的性能积分(I)可以提高控制精度,但容易引入延迟,造成控制迟钝微分(D)可以提高灵敏度,但容易引入噪声,导致震荡转向控制用PD,速度控制用PI 而今准备智能制造大赛的工业自动化线上赛项,需要对流程自动化方向进行学习,再次感到PID是控制算法的灵魂,慢慢学习积累中,整理学习资料于此。 PID基本知识 视频学习 CIMC-IMQ 【流程行业自动化】学习小组(2018)——SFC&PID讲解 讲解PID部分:0-15′ 公式 理想的模拟式PID控制算法为: PID控制器可以调整的参数是KC、TI、TD。适当选取这三个参数的数值,可以获得较好的控制质量。 Proportion比例 1.Kc接近于0时,控制器的输出u不受输入偏差e的影响,相当于控制系统不工作 2.Kc很大时,只要有一个很小的输入偏差e出现,就会使控制器输出u发生很大的变化 3.Kc由小到大变化,系统将由稳定向振荡发展 4.比例调节是有差调节,比例调节的余差随着比例增益的增大而减小有差,成倍变化,余差 5.比例增益越大,意味着执行机构(调节阀、挡板等)的动作幅度较大,被调节变量的变化较为剧烈 6.比例调节可以单独使用,也可以和其它调节动作结合成PI、PD或PID调节动作 Integral积分 1.积分凋节将输入偏差e按时间进行累积,偏差存在输出就增大,直到消除偏差为止 2.Ki趋向于0时,积分作用消除 3.Ki很大时,积分作用强烈,消除余差的能力强,但容易引起振荡 4积分调节是无差调节。只有当偏差e为0时,积分调节器的输出才会保持不变 5.积分速度越大,执行机构的动作越快,越容易引起和加剧振荡 6.积分调节可以单独使用,但调节的过程很慢。通常,积分调节和其它调节动作结合成PI或PID调节动作 Derivative微分 1.微分调节的输出与输入偏差e的变化速度成正比,e变化越大,微分调节的输出越大 2.Kd为0时,微分作用消除 3.微分调节总是力图抑制被调量的振荡 4.微分调节只能起到辅助的调节作用,可以与其它调节动作结合成PD或PID调节动作 小结 积分控制规律主要用于消除余差; 微分控制规律主要用于改善动态特性; 比例控制规律为调节器的主体; 实际调节器设有P、I、D功能,适当组合,分别可得P、PI、PD及PID调节规律。当TI置于无穷大时,积分作用消失,当 Td =0 时,微分作用消失

SLAM学习-应用齐次坐标实现矩形平移

任务 了解齐次坐标在三维空间的优势,以及在计算机图形学中的应用后,进行实战练习:利用键盘读取方向输入,控制矩形平移,其中矩形的坐标以齐次坐标形式表达. 齐次坐标 优势 便于表达某点是否在直线上 表达直线和直线交点,平面和平面交线 区分向量和点 能表示无穷远 欧式变换中的旋转和平移:由加法到乘法 注意问题 旋转和平移先后顺序有区别 经过了坐标变换之后: 缩放变换不改变坐标轴的走向,也不改变原点的位置,所以两个坐标系仍然重合。 旋转变换改变坐标轴的走向,但不改变原点的位置,所以两个坐标系坐标轴不再处于相同走向。 平移变换不改变坐标轴走向,但改变原点位置,两个坐标系原点不再重合。 坐标变换的顺序必须是: 缩放->旋转->平移 实际演练 完整代码 实现效果 参考文章 从零开始一起学习SLAM | 为什么要用齐次坐标? 齐次坐标的理解 2D Translation in Computer Graphics | Definition | Examples Eigen学习(六)高级初始化 【OpenCv】cvWaitKey获取键盘值 OpenCV doc of waitKey()

SLAM学习-C++新特性

任务 请使用C++新特性改写以下函数。该函数功能:将一组无序的坐标按照“Z”字形排序,并输出。 本程序学习目标:熟悉C++新特性(简化循环、自动类型推导、列表初始化、lambda函数) 题目来源: 从零开始一起学习SLAM | C++新特性要不要学? sort()函数 定义在 algorithm 头文件中的函数模板 sort() 默认会将元素段排成升序 对[first,second)之间的元素进行排序,需要能提供随机访问迭代器的容器如vector,array, deque等.如果提供comp比较器函数,便可根据该函数的要求排序. comp/cmp 可以直接通过<algorithm>中提供的equal_to<Type>、not_equal_to<Type>、greater<Type>、greater_equal<Type>、less<Type>、less_equal<Type>库函数实现不同方式 的排序. 也可以通过自定义cmp()实现非基本数据类型的比较方式定义,如下面例子所示,实现: 首先比较第一位大小,小者在前 若第一位相同,再比较第二位 完整代码 结果展示 优化 参考博文C++排序函数中cmp()比较函数详解 思考:int 和const int&有什么区别呢?原来:作为函数参数:int这种写法是值传递,const int&则是引用传递。“值传递”——由于函数将自动产生临时变量用于复制该参数,效率较低。“引用传递”仅借用一下参数的别名而已,不需要产生临时对象。效率较高。tips:“引用传递”有可能改变参数,const修饰可以解决这个问题。 可以在cmp()的定义处采用引用传递,即: 参考文章 C++ sort(STL sort)排序算法详解 sort-C++ reference c++sort函数的使用总结 C++排序函数中cmp()比较函数详解

SLAM学习-文件按序批量重命名

任务 我们知道SLAM是处理序列图像的,有时候需要格式化的图像名字用作输入。前面提到的TUM的RGB-D数据集中图像是根据时间命名的,请从下面链接下载数据集fr1/desk https://vision.in.tum.de/data/datasets/rgbd-dataset/download# 并解压。请编程实现将文件夹/rgb下以时间命名的序列图片重新命名为0000-9999的格式。 题目来源:从零开始一起学习SLAM | 学习SLAM到底需要学什么?-计算机视觉life Linux下C++实现文件批量重命名 获取所有文件名findFileNames 虽然给出DIR为__dirstream的别名,但在本地的头文件中寻找不到后者的定义,是不透明的数据类型.dirent结构体: 首先我们要弄清楚目录文件(directory file)的概念:这种文件包含了其他文件的名字以及指向与这些文件有关的信息的指针(摘自《UNIX环境高级编程(第二版)》)。1 当使用readdir(pDir)时,pDir中指向文件指针后移,通过rewinddir(pDir)可以复位.3 c_str()函数返回一个指向正规C字符串的指针常量, 内容与本string串相同.(其实它指向的是string对象内部真正的char缓冲区),所以返回const,以防止用户的修改。这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。2对于strcmp()函数,需要const char*类型的输入,因此可以通过c_str()将string类型变量得到该类型内容 此外,可以通过递归访问一个路径下包括子目录在内的所有文件,如注释所示. 批量重命名bulkRename 由于题目要求修改的数字需要补零,因此封装函数fillNum()完成工作.5 ‘setw’ is not a member of ‘std’ 需要引入头文件iomanip 使用iterator遍历所有文件名 可以通过sort()函数将vector容器中的文件名排序,需要头文件<algorithm>6 通过函数rename()将系统文件重命名,需要头文件<cstdlib>4 效果展示 完整代码 参考 [1] Linux下DIR,dirent,stat等结构体详解 [2] c++ string.c_str()小结 [3] C语言readdir()函数:读取目录函数 [4] C++修改文件名 [5] 字符串前面自动补零? [6] C++ 中vector的使用方法

PLC学习笔记(五)电梯逻辑

今天意外关注起发生在9年前的那起温州动车追尾事故,原本是想时隔多年再追问内心的困惑,掩埋列车是否合理?
但浏览更新时间停留在很久之前的帖子、报道,看到了最后获救的女童小伊伊,还有她远在天国的父母,我不胜悲痛。读到身为教师骨干的爸爸的好友的祭文,强烈的情感抒发使人感同深受,还有那对中国制造的拷问,也让我羞愧——
安全生产,可我在进行电梯实验测试时,留意到一个现象:即使未开门到位,乘客也会自行上梯。那我在为提高评分时,便想到过利用这一漏洞减少开门时间。在冰冷的分数之外,我好像忽视了实际生产的安全性。如今,我的念头完全被打消,生命面前,再高的分数也是不及格!