python多线程处理循环时中断

任务 在进行种子杯的比赛时,为了实现可视化的调试,目标是程序在进行自动寻路算法时,可以通过键盘输入暂停,查看当前地图状态,并可手动操作(玩蛇),通过键盘继续自动寻路。 通过以下方法进行实现。 控制台输出 需要使地图实时更新,并且稳定在一定的窗口,需要采用多行刷新。 python 控制台单行刷新,多行刷新 尝试demo,与需求基本一致 查看使用文档: Curses Programming with Python _curses.error: addstr() returned ERR 原因是输出超出窗口,可以通过函数查看窗口大小 多线程 首先尝试一下 python在循环时如何监控键盘输入并对当前的循环进行操作 本人python新手,正在用python解决一些实际问题,现在想实现这样一个功能:在一个循环里面检测键盘的输入,并根据输入的内容对当前的循环进行一些操作,或者在屏幕上增加几个按钮,用鼠标点也可以。例如: 在一个 i=1到10的 for 循环里面,假如当前循环到i=5,我此时按下空格键,循环暂停,此时按->键,i从5跳到6,但循环还是暂停状态,输出的结果显示i=6的结果,同理若按<-键,i从5跳到4,输出显示i=4的结果,当再一次按下空格键时,循环继续。 首先通过例程学习多线程的使用,通过实例化一个继承Thread.threading的对象,通过调用函数即可开启线程。 Python3 多线程

python环境配置

安装Miniconda 使用Miniconda一行代码配置Pytorch环境 Miniconda 镜像使用帮助 Do you wish the installer to initialize Miniconda3 by running conda init? [yes|no] [no] >>> yes no change /home/lazy/miniconda3/condabin/conda no change /home/lazy/miniconda3/bin/conda no change /home/lazy/miniconda3/bin/conda-env no change /home/lazy/miniconda3/bin/activate no change /home/lazy/miniconda3/bin/deactivate no change /home/lazy/miniconda3/etc/profile.d/conda.sh no change /home/lazy/miniconda3/etc/fish/conf.d/conda.fish no change /home/lazy/miniconda3/shell/condabin/Conda.psm1 no change /home/lazy/miniconda3/shell/condabin/conda-hook.ps1 no change /home/lazy/miniconda3/lib/python3.8/site-packages/xontrib/conda.xsh no change /home/lazy/miniconda3/etc/profile.d/conda.csh modified /home/lazy/.bashrc… Continue reading python环境配置

大时延系统PID的整定

任务 初赛的练习工程二需要控制产物的温度,但由于系统的滞后性,最初搭建的单回路系统只能使温度上下跃动。 今天通过资料查阅,形成了一套整定PID参数的方案,并得到实验证实。 过程 得到系统参数 根据知乎提问:网上许多资料都是直接给出被控对象的模型的,而我需要自己去确定一阶纯滞后对象的滞后时间和系统时间常数。请问怎么做? 解答者提供思路如下: 用阶跃响应测出飞升曲线,用飞升曲线找出惯性时间常数和纯滞后时间常数,建模 标准poor 于是搜索飞升曲线法,找到资料:相关分析法和参数估计。该PPT中具有详细步骤,属于实验建模中的时域法建模。 向控制系统施加阶跃信号,观察阶跃响应曲线 判定是否有纯滞后 根据相应计算方法得出K、τ与T 应用计算公式 同样是资料大延迟过程的PID参数整定中提供的计算公式,可以快速算出适宜的PID参数

比值控制系统

任务 进行第三种控制系统的学习,主要是对二者关系进行限定 要点 有之前的基础后,这个比值系统没有独特的地方,只是一个被控对象的设定值按照另外一个变量的相应比例进行变化。 在实际工程中,多见的情况是控制两种物质的流量。 实例 两条回路都是闭环控制,对FI102的控制可视为通过控制FV102的单回路控制,而FI102的当前数据通过乘法器提供相应比例,传送做为FI103的给定值。 Process Value:当前值 Output Value::输出值 Set Point:给定值 运行到合适的时机,将控制器FIC103投串级,便意味着工作的设定值由外部输入。 此外,本工程要求得出一定物质的量浓度的甲醇,因此需要根据公式求出水与甲醇的比例。

串级控制系统

任务 继基础的单回路控制后,进行第二种控制方案的学习。 知识 两个回路:主回路与副回路 引入副回路的作用 改善被控对象的特性 通过推导传递函数可见: 副回路的存在使得原来被控对象的放大倍数、时间常数都变小了,有利于控制。 提高抗干扰性能 干扰在影响主回路前,在副回路中被消化。 提升自适应能力 在单回路控制系统中,控制器参数是根据具体的被控对象特性整定得到的。一定的控制器参数只能适应于一定的被控对象特性。如果生产过程负荷变化,进而导致被控对象特性发生变化时,原先整定的控制器参数就不再能适应。这时如不及时修改控制器参数,控制质量就会降低。这是单回路控制系统难于克服的矛盾。 当采用串级控制时,主环是一个定值系统,而副环却是个随动系统。主控制器能够根据操作条件和负荷的变化(从主被控变量变化中体现出来),不断修改副控制器的给定值,以适应操作条件和负荷变化的情况。如果被控对象有非线性特性存在,那么可以把它设计在副回路之中,当操作条件或负荷发生变化时,虽然副回路的衰减比会发生一些变化,稳定裕度会降低一些,但是它对主回路的稳定性影响却很小。 系统设计 串级控制系统副回路设计 (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 时,微分作用消失

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

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