c++笔试面试之网络和多线程
该文档是我总结的c++笔试面试通常会问的一些问题。另外可以从我的资源目录下找c++数据结构与算法,c++笔试面试基础两部分材料,综合这三个材料一起看,我相信大家一定尽快找到工作。ClientServerFIN WAIT 1IFIN MCLOSE WAITack M+1FIN WAIT 2LAST ACKFIN NTIME WAITACK=1 ack=K+CLOSEDm由于TCP连接是全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送个FIN来终止这·方向的连接,收到个FIN只是意味着这方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭,上图描述的即是如此第一次挥于Client发送个HN,用来关闭 Client到 Server的数据传送, Client进入 FIN WA1状第二次挥手Server收到FIN后,发送一个ACK给 Clien,确认序号为收到序号+1(与SN相同,一个FIN占用一个序号), Server进入 CLOSE WAIT状态。第三次挥手Server发送一个FIN,用来关闭 Server到 Client的数据传送, Server进入 LAST ACK状态。第四次挥手Client收到FIN后, Client进入 TIME WAIT状态,接着发送一个ACK给 Server,确认序号为收到序号+1, Server进入CL0SED状态,完成四次挥手。5.tcp为什么建立连接是三次握手,而关闭连接却是四次挥手呢?当主杋A确认发送完数据且知道B已经接受完了,想要关闭发送数据口(当然确认信号还是可以发),就会发FN给主机B;主机B收到A发送的F⊥N,表示收到了,就会发送ACK回复;但这是B可能还在发送数据,没有想要关闭数据口的意思,所以FⅣN与ACK不是同时发送的,而是等到B数据发送完了,才会发送FIN给主机A:;A收到B发米的FIN,知道B的数据也发送完∫,回复ACK,A等待2MSL以后,没有收到B传来的任何消息,知道B已经收到自己的ACK了,A就关闭链接,B也关闭链接了。6.TCP头大小,包含字段?TCP协议头最少20个字节,包括TCP的源端口,目的端口,序列号,应答号等等。7.tcp与udp的区别?为什么TCP要叫做数据流?1).基于连接与无连接2).对系统资源的要求(TCP较多,UDP少)3).UDP程序结构较简单4).流模式与数据报模式5).TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证6).TCP有拥塞控和流量控制,UDP没有TCP提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丟弃重复数据,检验数据,沇量控制等功能,保证数据能从端传到另·端UDP是一个简单的面向数据报的运输层协议。∪DP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是不能保证它们能到达目的地。山于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快8使用udp和tcp进程网络传输,为什么tcp能保证包是发送顺序,而udp无法保证?因为TCP发送的数据包是按序号发送,有确认机制和丢失重传机制,而udp是不可靠的发送机制,发送的对应端口的数据包不是按顺序发送的。9tcp三次握手的, accept发生在三次握手哪个阶段?三次握手:C--->SYNK>ACK K+1 SYN JC->ACK]+1DONELclient的 connect引起3次握于server在 socket,bind, listen后,阻塞在 accept,三次握手完成后, accept返回一个fd,TCP服务器端sackettTC客户端bindosten)connecto建立连接阻寒直到有客户端连接请求数据writereadr处理请求回应数据readr结束连接readr yclose10.流量控制和拥塞控制的实现机制数据的传送与接收过程当中很可能出现收方来不及接收的情况,这时就需要对发方进行控制,以免数据丢失。流量控制是一种解决发送端与接收方吞吐量不匹配问题的机制。网络拥瘧现象是指到达通信了网中杲部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个冈络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿即出现死锁现象。拥塞控制是处理网络拥塞现象的一种机。11.滑动窗口的实现机制滑动窗凵机制是tcp流量控制的一种机制。滑动窗口分为发送窗凵和接收窗口,发送窗口会根据接受窗口返回的ack中的大小来确定发送数据多少,如果ack返回可接受为零时,发送窗口不发送数据,然后启动定时器,一定时间内给接收端发送探测报文。为了传递效率提扃,发送数据吋会尽量次发送多个字节,这里会通过算法控制接收窗口发送窗口接收窗口取决发送窗口取决于对于本段应用端接收窗囗应用应用接收窗口取决发送窗口取决于对于本段应用端接收舍口发送窗口接收窗口字节流方向窗囗关联方问发送窗口中的四个概念:已发送并收到确认;凵发送但未收到确认;允许发送但未发送;不允许发送。每次成功发送完数据后,发送窗口都会根据接受窗口返冋的ack大小来调整窗口大小后浩前沿前移收缩前移A的发送窗凵=20E区图国时国时网國國回回区画乎图已发送井不允许发送收到确认允许发送的序号B期望收到的序号图5-15根据B给出的窗口值,A构造出自己的发送窗口12. linux的五种I0模式/异步模式1)同步阻塞I/O2)同步非阻塞I/O(只能阻塞个io)3)同步I/O复用模型(可以阻塞多个i,用一个进程/线程调用多个io,其实是复用进稈/线程)4)同步信号驱动I/O5)异步I/O模型3.网络编程设计模式, reactor/ proactor/半同步半异步模式?reactor模式:同步阻塞I/O模式,注册对应读写事件处理器,等待事件发生进而调用事件处理器处理事件。 proactor模式:异步I/O模式。 Reactor和 Proactor模式的主要区别就是真正的读取和写入操作是有谁来完成的, Reactor中需要应用程序自己读取或者写入数据, Proactor模式中,应用程序不需要进行实际读写过程。Reactor是:主线程往epo‖l核上注册 socket读事件,上线程调用 epoll_wait等待 socket上有数据可读,当 socket上有数据可读的时候,主线程把 socket可读事件放入请求队列。睡眠在请求队列上的某个工作线程被唤醒,处理客户请求,然后往epo‖!内核上注册 socket写请求事件。主线程调用 epoll_wait等待写请求事件,当有事件可写的时候,主线程把 socket可写事件放入请求队刎。睡眠在请求队列上的工作线程被唤醒,处理客户请求。Proactor主线程调用 aio read函数向内核注册 socket上的读完成事件,并告诉内核用广读缓冲区的位置,以及读完成后如何通知应用程序,主线程继续处理其他逻辑,当 socket上的数据被读入用户缓冲区后,通过信号告知应用程序数据已经可以使用。应用程序预先定义好的信号处理凼数选择一个工作线程来处理客户请求。工作线程处理完客户请求之后调用ao wrⅰte函数向内核注册 socke写完成事件,并告诉内核写缓冲区的位置,以及写完成时如何通知应用程序。主线程处玛其他逻辑。当用户缓存区的数据被写入 socket之后内核向应用程序发送一个信号,以通知应用程序数据已经发送完毕。应用程序预先定义的数据处理函数就会完成工作。半同步半异步模式上:层的任务(如:数据库查询,文件传输)使用同步IO模型,简化了编写并行程序的难度而底层的任务(如网络控制器的中断处理)使用异步I/O模型,提供了执行效率14.1inux下io多路复用的方案 select、poll、epol1的区别select:利用一个数组结构(最大1024)来存储需要检测的描述符,每次调用需要清空数组结构后重新存入新的描述符文件,然后遍历需要操作的描述符。可以用仨检测单个描述符可以理解为拉取pol:也是利用数组结构存储,但是没有描述符个数限制,而且每次调用时不需要清空存储描述符结构数组。可以用于检测大量描述符的情况。可以理解为拉取epoll:是 select/po!的升级版本,它的机制是可以监视大量的描述符,当有需要连接时将改描述符存放到队列中,而epol只监视和执行队列中即可。可以用于大量并发连接中只有少量活跃的情况。可以理解为推送http://blog.csdnnet/lookatthestars/article/details/5210877315.epo11哪些触发模式,有啥区别?(必须非常详尽的解释水平触发和边缘触发的区别,以及边缘触发在编程中要做哪些更多的确认epo‖有EPoL和 EPOLLET两种触发模式,LT是默认的模式,ET是高速"模式。LT模式下,只要这个fd还有数据可读,每次 epoll_wait都会返回它的事件,提醒用户稈序去操作,而在ET(边缘触发)模式中,它只会提示一次,直到下次再有数据流入之前都不会再提小」,无论fd中是否还有数据可读。所以在ET模式下,read一个fd的时候一定要把它的 buffer读光,也就是说一直读到read的返回值小于请求值。也就是说在LT模式的情况下‘定要确认收发的数据包的 buffer是不是足够大如果收发数据包大小大于 buffer的大小的时侯就可能会出现数据丢失的情况。16. Boost.asio、 libevent、1ibev简介。Boost.asio是一个跨平台的C++库,用于网络和底层I/0编程,可以在I/0对象(如socket)上执行同步和异步操作。 boost.asio的跨平台性原理是在win系统(支持I0CP)linux系统(支持epo11)。 boost:asio将整个异步平台抽象成 boost::asio: lo service,用work控制 1o service生命周期,通知它是否结束,只要对象work( 1o servi ce)存在,10 service就不会结束。利用 buffer类存储数据libevent是一个C语言与的网络库,官方主要支持的是类 linux操作系统,最新的版本添加了对 windows的I0CP的支持由于I0CP是异步I0,与 linux下的POL模型, EPOLL型,还有 freebsd的 KQUEUE等这些同步模型在用法上完全不一致,所以使用方法也不样,就好比ACE中的 Reactor和 Proactor模式一样,使用起来需要转变思路。如果对性能没有特别的要求,那么使用 Libevent中的 select模型来实现跨平台的操作, select模型可以橫跨 windows, linux,unix, solaris等系统。libel是一个C语言写的,只支持1inux系统的库,我以前研究的时候只封装了EPOL模型,不知道现在的新版有没有改进。使用方法类似 libevent,但是非常简洁,代码量是最少的一个库,乜貮几千行代码。显然这样的代码跨平台肯定是无法支持的了,如果你只需要在1inux下面运行,那用这个库也是可以的。17. connect可能会长时间阻塞,怎么解决?1.使用定时器;(最常用也最有效的·种方法2.采用非阻塞模式:设置非阻塞,返回之后用 select检测状态18. keepalive是什么东西?如何使用?keepalive,是在TCP中一个可以检测死连接的机制。1).如果主机可达,对方就会响应ACK应答,就认为是存活的。2).如果可达,但应用程序退岀,对方烑发RST应答,发送TCP撤消连接。3).如果可达,但应用程序崩溃,对方就发FIN消息。4).如果对方主杋不响应ack,rst,继续发送直到超时,就撤消连接。默认二个小时。19. socket什么情况下可读?1. socket接收缓冲区中己经接收的数据的字节数大于等于 socket接收缓冲区低潮限度的当前值;对这样的 socket的读操作不会阻塞,并返回一个大于0的值(准备好读入的数据的字节数)2连接的读一半关闭(即:接收到对方发过来的FIN的TCP连接)并且返回03.s0cket收到了对方的 connect请求已经完成的连接数为非0这样的 socket处于可读状态;4.异常的情况下 socket的读操作将不会阻塞,并且返同一个错误(-1)。20. socket编程,如果 client断电了,服务器如何快速知道?使用定时器(适合有数据流动的情况);使用sock吐t选项SO_ KEEPALIVE(适合没有数据流动的情况);1)、自己编写心跳包程序,简单的说就是自己的程序加入一条线程,定时向对端发送数据包,看是否有ACK,根据ACK的返回情况来管理连接。此方法比较通用,般使用业务层心跳处理,灵活可控,但改变了现有的协议2)、使用TCP的 keepalive机制,∪NX网络编程不推荐使用SO_ KEEPALIVE米做心跳检测。keepalive原理:TCP内嵌有心跳包,以服务端为例,当 serve检测到超过一定时间(/proc/sys/net/ipv4/tcp_ keepalive_ time7200即2小时)没有数据传输,那么会向client端发送一个 keepalive packet21.如果 select返回可读,结果只读到0字节,什么情况?某个套接字集合中没有准备好,可能会 select内存用 FD CLR清为0.22.网络中,如果客户端突然掉线或者重启,服务器端怎么样才能立刻知道?若客户端掉线或者重新启动,服务器端会收到复位信号,每一种tcp/ip得实现不一样,控制机制也不·样。23.TTL是什么?有什么用处,通常那些工具会用到它?ping? traceroute? ifconfig?netstat?TTL是 Time to live,每经过一个路由就会被减去一,如果它变成0,包会被丢掉。它的主要目的是防止包在有回路的网络上死转,浪费网络资源。ping和 traceroute用到它。24请说出http协议的优缺点1.支持客户/服务器模式。2.简单快速:客户向服务器请求服务吋,只需传送请求方法和路径,通信速度很快。3.灵活:HTTP允许传输任意类型的数据对象。4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断廾连接。采用这种方式可以节省传输时间。5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,导致每次连接传送的数据量增大。缺点就是不够安全,可以使用hps完成使用25大规模连接上来,并发模型怎么设计Epol1+线程池(epo11可以采用 libevent处理)26.tcp怎么做到不丢包。TCP提供超时重发(每一个seq后都有ack,计时时间到后重发seq),丢重复数据(通过判断seq和ack的大小,如果seq比ack小说明发过了),检验数据(通过tcp的伪首部),流量控制(利用滑动窗口实伣流量控制)等功能,保证数据能从一端传到另一端。27.TCP的确认重发机制A发—B/a向b发送数据B确认-A//b收到数据后发送给a确认包A-在重发数据中将发送成功的数据删掉28.I0CP和epo1l的联系与区别?联系:两者都是高效的io模型,都是基于事件驱动。区别:TOCP用在 Windows上,epo11用在1inux上;IQCP本质是异步非阻塞的,而epo1l是同步非阻塞的;1OCP是当事件完成时再通知,而 epoll是当事件满足处理要求是通知处理。boost中的asio网络模块的跨平台性原理是在win系统(支持IOCP),1inuκ系统(支持epollhttps://yg.aliyun.com/articles/53621进程与线程1.进程之间的通信无名管道:单向通信,只能亲戚关系才能传递,般用在父了进程之间有名管道:单向通信,可以用在任意两个进程之间通信。信号量:是一种计数器,主要用于资源共亨,用在多个进程或者进程内多个线程之间同步手段共享内存:一个进程创建共多个进程使用,和信号一起使用在进程同步与通信。信号:比较复朵的·种通信。套接字:消息队列:客服信号传递信息少,管道缓冲区受限。2.线程同步临界区,互斥对象,事件,信号量3.多线程和多进程的区别1)进程数据是分丌的:共享复岽,需要用IPC,同步简单;多线程共享进程数据:共享简单,同步复杂2)进程创建销毁、切换复杂,速度慢:线程创建销毁、切换简单,速度快3)进程占用内存多,CPU利用率低;线程占用内存少,CPU利用率高4)进程编程简单,调试简单;线程编程复杂,调试复杂5)进程间不会相互影响;线程个线程挂掉将导致整个进程挂抻6)进程适应于多核、多机分布;线程适用于多核线程所私有的:线程jd、寄存器的值、栈、线程的优先级和调度策略、线程的私有数据、信号屏蔽字、ero变量。4.多线程锁的种类有哪些?a.互斥锁( mutex)b.递归锁C.自旋锁d.读写锁5.自旋锁和互斥锁的区别?白旋锁中当锁被其他线程占用时,其他线程并不是睡眠状态,而是不停的消耗CPU,获取锁;互斥锁则不然,保持睡眠,直到互斥锁被释放溦活。自旋锁,递归调用容易造成死锁,对长时间才能获得到锁的情况,使用自旋锁容易造成CPU效率低,只有内核可抢占式或SMP情况下才真正需要自旋锁6.多线程程序架构,线程数量应该如何设置?应尽量和CPU核数相等或者为CPU核数+1的个数7.有一个计数器,多个线程都需要更新,会遇到什么问题,原因是什么,应该如何做?如何优化?有可能一个线程更新的数据已经被另外一个线程更新了,更新的数据就会出现异常,可以加锁,保证数据史新只会被一个线程完成
- 2020-11-27下载
- 积分:1
PID控制超详细教程(含软硬件上位机,很好)
PID控制超详细教程(含软硬件上位机,很好)SUNPLUS调节控制做电机速度控制月录页模拟控制模拟控制原理数字控制位置式算法增量式算法控制器参数整定凑试法临界比例法经验法采样周期的选择参数调整规则的探索自校正控制器软件说明软件说明档案构成界面子程序说明程序范例程序程序流程与说明中断子流稈与说明使用资源硬件使用资源说明实验测试响应曲线参考文献SUNPLUS调节控制做电机速度控制修订记录日期版本编写及修订者编写及修订说明初版错误校正SUNPLUS调节控制做电机速度控制模拟控制将偏差的比例()、积分()和微分()通过线性组合构成控制量用这一控制量对被控对象进行控制,这样的控制器称控制器、模拟控制原理在模拟控制系统中,控制器最常用的控制规律是控制。为了说明控制器的工作原理,先看个例子。如图—所示是一个小功率直流电机的调速原理图。给定速度与实际转速进行比较,其差值,经过控制器调整后输出电压控制信号经过功率放大后,驱动直流电动机改变其转速。+控器直流电机图小功率直流电机调速系统常规的模拟控制系统原理框图如图—所示。该系统由模拟控制器和被控对象组成。图中是给定值是系统的实际输岀值,给定值与实际输出值构成控制偏差式-)作为控制的输入,作为控制器的输出和被控对象的输入。所以模拟控制器的控制规律为式其中:控制器的比例系数搾制器的积分时间,也称积分系数控訇器的微分时间,也称微分系数比例积分被控对象微分图—模拟控制系统原理图比例部分SUNPLUS调节控制做电机速度控制比例部分的数学式表示是:在模拟控制器中,比例环节的作用是对偏差瞬闩作岀反应。偏差一旦产生控制器立即产生控制作用,使控制量向减少偏差的方冋变化。控制作用的强弱取决于比例系数,比例系数越大,控制作用越强,则过渡过程越快,控制过程的静态偏差也就越小;但是越大,也越容易产生振荡,破坏系统的稳定性。故而,比例系数选择必须恰当,才能过渡时间少,静差小而又稳定的效果。、积分部分积分部分的数学式表小是从积分部分的数学表达式可以知道,只要存在偏差,则它的控制作用就不断的增加;只有在偏差时,它的积分才能是一个常数,控制作用才是一个不会增加的常数。可见,积分部分可以消除系统的偏差积分环节的调节作用虽然会消除静态误差,但也会降低系统的响应速度,增加系统的超调量。积分常数越大,积分的积累作用越弱,这时系统在过渡时不会产生振荡;但是增大积分常数会诚慢静态误差的消除过程,消除偏差所需的时间也较长,但可以减少超调量,提髙系统的稳定性.当较小时,则积分的作用较强,这时系统过渡时间中有可能产生振荡,不过消陰偏差所需的时间较短。所以必须根据实际控制的只体要求来确定。、微分部分微分部分的数学式表示是实际的控制系统除了希望消除静态误差外,还要求加快调节过程。在偏差岀现的瞬间,或在偏差变化的瞬间,不但要对偏差量做岀立即响应(比例环节的作用),而∏要根据偏差的变化趋势预先给岀适当的纠正。为了实现这一作用,可在控制器的基础上加入微分环节,形成控制器。微分环节的作用使阻止偏差的变化。它是根据偏差的变化趋势(变化速度)进行控制。偏差变化的越快,微分控制器的输出就越大,并能在偏差值变大之前进行修正。微分作用的引入,将有助于减小超调量,克服振荡,使系统趋于穩定,特別对髙阶系统非常有利,它加快了系统的跟踪速度但微分的作用对输入信号的噪声很敏感,对那些噪声较人的系统一般不用微分,或在微分起作用之前先对输入信号进行滤波。微分部分的作用由微分时间常薮决定。越大时,则它抑制偏差变化的作用越强棫小时,则它反抗偏差变化的作用越弱。微分部分显然对系统稳定有很大的作用。适当地选择微分常数,可以使微分作用达到最优由于计算机的出现,讣算机进入了控制领或。人们将模拟控制规律引入到计算机中来。对(式—)的控制规律进行适当的变換,就可以用软件实现控制,即数字搾制。SUNPLUS调节控制做电机速度控制数字控制数字式控制算法可以分为位置式和增量式控制算法。位置式算法由于计算杋控制是一种采样控制,它只能根据样时矧的偏差计算控制量,而不能像模拟控制那样连续输岀控制量量,进行连续控制。由于这·特点(式)中的积分项和黴分项不能直接使用,必须进行离散化处理。离散化处理的方法为:以作为采样周期,作为采样序号,则离散采样时间对应着连续时间,用矩形法数值积分近似代替积分,用一阶后向差分近似代膂微分,可作如下近似变换:≈1T〔k=0,1,2.e()h(门-Tag(),()-以(k-1)7]8-1di(式上式中,为了衣示的方便,将类似于简化成等。将(式-)代入(式一),就可以得到离散的表达式为(式一)或+(式其米样序号,一,,第次釆样时刻的计算机输出值:第次采样时刻输入的偏差值第—次采样时刻输入的偏差值:积分系数,微分系数,如果采样周期足够小,则〔式—)或(式—)的近似计算可以获得足够精确的结果,离散控制过程与连续过程十分接近。(式—)或(式一)表示的控制算法式直接按(式一)所给出的控制规律定义进行计算的,所以它给出了全部控制量的大小,因此被称为全量式或位置式控制算法这种算法的缺点是:由于全量输出,所以每次输出均与过去状态有关,计算时要对进行累加,SUNPLUS调节控制做电机速度控制工作量人;并且,因为计算杋输岀的对应的是执行机构的实际位置,如果计算机岀现故障,输岀的将大幅度变化,会引起执行机构的大幅度变化,有可能因此造成严重的生产事枚,这在实生产际中是不允许的。増量式探制算法可以避免着重现象发生。增量式算法所谓增量式是指数宇控制器的输岀只是控制量的增量Δ。当执行机构需要的控制量是增量,而不是位置量的绝对数佶时,可以使用增量式控制算法进行控制。增量式控制算法可以通过(式一)推导出。由(式一)可以得到控制器的第个采样时刻的输出值为+∑+式将(式一)与(式一)相减并整理,就可以得到增量式控制算法公式为△(式其中由(式—)可以看出,如果计算机控制系统采用恒定的采样周期日确定只要使用前后三次测量的偏差值,就可以由(式—)求出控制量。增量式控制算法与位置式算法(式一)相比,计算量小的多,因此在实际中得到广泛的应用而位置式搾制算法也可以通过增量式控制算法推岀递推计算公式:△式(式—)就是目前在计算机控制中广泛应用的数字递推控制算法控制器参数整定搾制器参数整定:指决定调节器的比例系数、积分时间、微分时间和采样周期的SUNPLUS调节控制做电机速度控制具体数值。整定的实质是通过改变调节器的参数,使其特性和过程特性相匹配,以改善系统的动态和静态指标,取得最佳的控制效果。整定调节器参数的方法很多,归纳起来可分为两大类,即理论计算整定法和工程整定法。理论计算整定法有对数频率特性法和根轨迹法等;工程整定法冇凑试法、临界比例法、经验法、衰减曲线法和响应曲线法等。工程整定法特点不需要事先知道过程的数学模型,直接在过程控制系统中进行现场整定方法简单、计算简便、易于掌握凑试法按照先比例()、再积分()、最后微分()的顺序。置调节器积分时间∞,微分时间在比例系数按经验设置的初值条件下,将系统投入运行,由小到大整定比例系数求得满意的衰减度过渡过程曲线引入积分作用(此时应将上述比例系数设置为)。将由大到小进行整定若需引入微分作用时,则将按经验值或按(~)设置,并由小到人加入临界比例法在闭坯控制系统甲,将调节器置纯比例作用卜,从小到大逐渐改变调节器的比例系教,得到竿幅振荡的过渡过程。此时的比例系数称为临界比例系数相邻两个波峰间的时间间隔,称为临界振荡周期二界比例度法步骤:将调节器的积分时间置于最大(∞),微分时间置零),比例系数适当,平衡操作一段时问,把系统投入自动运行、将比例系数逐渐增大,得到等幅振荡过程,记卜临界比例系数和临界振蕩周期值根据和值,采用经验公式,计算出调节器各个参数,即、和的值。按先再最后的操作程序将调节器整定参数调到计算值上。若还不够满意,可再作进步调整。临界比例度法整定注意事项:有的过程控制系统,临界比例系数很大,使系统接近两式控制,调节阀不是全关就是全开,对工业生产不利有的过程控制系统,当调节器比例系数调到最大刻度值时,系统仍不产生等幅振荡,对此,就把最大刻度的比例度作为临界比例度进行调节器参数整定经验法用凑试汯确定参数需要经过多次反复的实验,为了减少凑试次数,提高工作效率,可以借鉴他人的经验,并根据‘定的要求,事先作少量的实验,以得到若「基准参数,然后按照经验公式用这些基准参数导出控制参数,这就是经验法。临界比例法就是一种经验法。这种方法首先将控制器选为纯比例控制器,并形成闭环,改变比例系数,使系统对阶跃输入的响应达到临界状态,这时记下比例系数、临界振荡周期为,根SUNPLUS调节控制做电机速度控制据一提供的经验公式,就可以由这两个基准参数得到不同类型控制器的参数,如表一所示。衣—临界比例法确定的模拟控制器参数控制器类型这种临界比例汯使针对模拟ˆ控制器,对于数字控制器,只要釆样周期取的较小,原则上也同样使用。在电动机的控制中,可以先采用临界比例法,然后在采用临界比例法求得结果的基础上,用凑试法进一步完善表一的控制参数,实际上是按衰减度为时得到的。通常认为的衰减度能兼顾到稳定性和快速性。如果要求更大的衰减,则必须用凑试法对参数作进一步的调整。采样周期的选择香农()采样定律:为不失真地复现信号的变化,采样频率至少应大于或等于连续信号最高频率分量的二倍。根据采样定律可以确定采样周期的上限值。实际采样周期的选择还要受到多方面因素的影响,不同的系统采样周期应根据具体情况米选择。采样周期的选择,通常按照过程特性与丨扰大小适当来选取采样周期:郾对于响应快、(如流量、压力)波动大、易受干扰的过程,应选取较短的采样周期:反之,当过程响应慢(如温度、成价)、滞后人时,可选取较长的采样周期采样周期的选取应与参数的整定进行综合考虑,采样周期应远小于过程的扰动信号的周期,在执行器的响应速度比较慢时,过小的采样周期将失去意义,因此可适当选大ˉ点;在计算机运算速度允许的条件下,采样周期短,则控制品质好;当过程的纯滞后时间较长时,一般选取采样周期为纯滞后时间的参数调整规则的探索人们通过对控制理论的认识和长期人工操作经验的总结,可知参数应依据以卜儿点来适应系统的动态过程。在偏差比较大时,为使尽快消除偏差,提高响应速度,冋时为了避免系统响应岀现超调,取大值,取零;在偏差比较小时,为继续减小偏差,并防止超调过大、产生振荡、稳定性变坏,值要减小,取小值;在偏差很小时,为消除静差,克服超调,使系统尽快稳定,值继续减小,值不变或稍取大。当偏差与偏差变化率同号时,被控量是朝偏离既定值方向变化。因此,当被控量接近定值时,反号的比列作用阻碍积分作用,避免积分超调及随之而来的振荡,有利于控制;而当被控量远未接近各定值并向定值变化时,则由于这两项反向,将会减慢控制过程。在偏差比较大时,偏差变化率与偏差异号时,值取零或负值,以加快控制的动态过程。偏差变化率的大小表明偏差变化的速率,越大,取值越小,取值越大,反之亦然。同时,要结合偏差大小来考虑
- 2020-12-06下载
- 积分:1