由入门到精通吃透PID_00001
增量式PID通俗解说
增量式PID通俗解说一开始见到PID计算公式时总是疑问为什么是那样子?为了理解那几道公式,当时将其未简化前的公式“活生生”地算了一遍,现在想来,这样的演算过程固然有助于理解,但假如一开始就带着对疑问的答案已有一定看法后再进行演算则会理解的更快!首先推荐白志刚的《由入门到精通—吃透PID2.0版》看完一、二章之后,建议你先通过实践练习然后再回来看接下来的所有章节,这样你对这本书的掌握会更加牢固、节省时间。
PID就是对输入偏差进行比例积分微分运算,运算的叠加结果去控制执行机构。
实践练习中,如何把这一原理转化为程序?为什么是用那几个error进行计算?以下是我摘录的一段PID程序,我曾用其对智能车的速度进行闭环控制:P:Proportional比例I:Integrating积分D:Differentiation微分Pwm_value:输出Pwm暂空比的值Current_error:当前偏差last_error:上次偏差prev_error:上上次偏差增量式PID计算公式:P=Kp*(current_error﹣last_error);D=Kd*(current_error﹣2*last_error﹢prev_error);I=Ki*current_error;PID_add=Pwm_value+P﹢I﹢D一、为什么是PID_add=Pwm_value+(P﹢I﹢D)而不是PID_add=P+I +D?如上图,有一个人前往目的地A,他用眼睛视觉传感器目测到距离目的地还有100m,即当前与目的地的偏差为100,他向双脚输出Δ=10 0J的能量,跑呀跑,10s之后,他又目测了一次,此时距离为40m,即current_error=40,他与10s前的偏差last_error=100对比,即current_error-last_error=-60,这是个负数,他意识到自己已经比较接近目的地,可以不用跑那么快,于是输出Δ=100+(-60)=40J的能量,40J的能量他刚好以4m/s的速度跑呀跑,10s之后,他发现已经到达目的点,此时current_error=0,大脑经过思考得出curre nt_error-last_error=0-40=-40,两脚获得的能量Δ=40+(-40)=0,即他已经达到目的地,无需再跑。
PID
然而“小明有不测风云”,由于漏水的速度不太平均,他在渐渐加水 的过程中会经常很长时间都持续走低,过一会又总是持续走高,机智 的小明计算了这次漏水和上次漏水的总量,根据这个总量对刚才的结 果进行微调,果然更加平稳了一点,但长期走势还是时高时低;小明 于是计算了上 10 次的水流,长期是平稳了,不过小明也快因为每次 都需要算 10 个数据累吐血了。经过不断尝试,每次加三个采样周期 的总量既长期比较平稳,还不至于累吐血。这个“3”就是积分周期。 加入积分后,小明调水就好多了,他效仿比例系数 KP 的方法又确定 了根据总漏水量的比例:0.2,这个比例就是积分比例系数 KI。 这个水桶仍然不让小明省心:不知什么原因,水有时会突然加大漏的 速度,甚至在一个周期内流量就加了很多很多,这时积分项没什么变 化,比例项也不足以拉回来,所以这种情况水总是要很久才能回复回 来。所以小明同学又计算了水流量的加速度并按照刚才的方式找到了 合适的微分周期:1 和微分比例系数 KD:6。 终于,在小明的努力之下,水缸终于在不断地调节下基本维持了平衡。 这时小刚过来接小明的班,小明说你每隔 T 分钟加一次水,每次只需 要加:ΔS=KP*V0+KI*T * (V0 +V-1 +V-2)+KD*(V0-V-1)/T 就行。小刚说:“说 人话!”小明说:“你每 2 分钟加一次水,每次加 ΔS=1.5V0+0.2*3(V0+V-1+V-2)+6*(V0-V-1)/3 的水就行。 小刚试了试觉得 ok,问小明这个原理是什么,小明说我看了机协写 的那个 PID 控制的推文并应用了一下,这就是 PID 算法! 上面的例子中,速度就是比例项,符号为 P,后一项是水量,就是速
for(FOR_i=T-1;FOR_i>0;FOR_i--) V[FOR_i-1]=V[FOR_i];//用数组记录原来的参数
由入门到精通吃透PID
由入门到精通吃透PID在工业控制、自动化领域,PID(比例积分微分)控制算法可谓是一种经典且至关重要的技术。
无论是简单的温度控制系统,还是复杂的机器人运动控制,PID 都发挥着不可或缺的作用。
对于初学者来说,PID 可能像是一个神秘的黑匣子,让人感到困惑和难以捉摸。
但只要逐步深入,我们就能从入门到精通,彻底吃透 PID 。
首先,让我们来了解一下 PID 中的三个基本要素:比例(P)、积分(I)和微分(D)。
比例控制是 PID 中最直观的部分。
它的作用就像是一个直接的“力量施加者”。
比如说,我们要控制一个水箱的水位,当前水位与设定水位之间的差距越大,控制输出的力量也就越大。
比例控制的优点是反应迅速,能够对偏差做出快速的响应。
但它也有一个缺点,那就是可能会存在稳态误差,也就是说,即使系统最终稳定了,实际值与设定值之间可能仍会有一定的偏差。
积分控制则是为了解决比例控制中的稳态误差问题而引入的。
积分项会随着时间的积累,不断对偏差进行累加。
只要偏差存在,积分作用就会不断增加,直到消除偏差为止。
这就像是一个坚持不懈的“修正者”,不断努力去消除系统中的残留误差。
然而,积分控制也不是完美的,如果积分作用太强,可能会导致系统超调,甚至不稳定。
微分控制则是对系统变化趋势的预测。
它就像是一个“前瞻者”,通过感知偏差的变化速度来提前做出调整。
微分控制可以有效地抑制系统的超调,提高系统的稳定性。
但如果微分作用过强,可能会对噪声过于敏感,导致系统的误动作。
接下来,我们通过一个简单的例子来更直观地理解 PID 的工作原理。
假设我们要控制一个房间的温度,设定温度为 25 摄氏度。
当实际温度低于 25 摄氏度时,比例控制会立即增加加热功率;积分控制会随着时间的推移,不断增加加热功率,直到温度达到设定值;微分控制则会根据温度下降的速度,提前增加加热功率,以防止温度下降过快。
在实际应用中,如何调整 PID 的参数是一个关键问题。
一般来说,我们可以先从较大的比例系数开始,然后逐渐增加积分系数,最后再微调微分系数。
PID算法深度技术帖-写给参加飞思卡尔智能车大赛的朋友
PID算法深度技术帖*写给参加飞思卡尔智能车大赛的朋友作者:王玉鹏(郑州轻工业学院)最近很多朋友问我关于PID的算法。
这里我就简单整理了下:PID控制算法是最经典的自动控制算法。
所有《自动控制原理》教材均有大幅篇章介绍。
从数学模型到传递函数,公式推导不厌其烦。
很多‘童鞋’似懂非懂。
下面我就从程序的角度来讲:下面是PID控制系统的原理图PID算法具体分两种:一种是位置式的,一种是增量式的。
在大多数的情况下,执行机构本身没有状态记忆功能,每时每刻都要靠控制信号驱动,如果失去控制信号,执行机构即失去功能。
在这种场合必须采用位置式PID控制算法。
也有一些执行机构具有记忆功能,即使失去驱动信号仍然可以维持原来的状态不变。
例如在用步进电机作为执行机构的自动化控制系统中(数控机床最为典型)下面主要针对位置式PID来讲,以加温设备为例,软件采用uc/os-ii嵌入式操作系统环境//采用位置式PID控制算法的任务函数float Set;//设定值float KP;//比例常数float KI;//积分常数float KD;//微分常数float LE=0;//上次误差float SE;//累计误差void TaskSampleCtrl(void *pdata)//采样控制函数{float now,E,DE,out;//定义临时变量while(1){now=SampleAdc();//传感器采样一次E=Set-now; //计算当前误差SE+=E; //计算当前误差的积分值DE=E-LE; //计算当前误差的微分值out=KP*E //计算比例项+KI*SE //计算积分项+KD*DE; //计算微分项CtrlOut(out); //控制执行机构LE=E; //保存误差值以进行下次计算OSTimeDly(25); //心跳20ms 延时0.5s(采样周期)}}PID参数调节:1.如果被控制对象的温度很快达到设定值,并超过设定值很多才回调(此种称为超调),则应该减小KP和KI,降低控制强度;加大KD,抑止超调。
PID算法-从单级PID到单神经元自适应PID控制器
PID算法-从单级PID到单神经元⾃适应PID控制器⽬录0.0 写在前⾯的话这是⼀篇我在学习PID控制算法的过程中的学习记录。
在⼀开始学习PID的时候,我也看了市⾯上许多的资料,好的资料固然有,但是更多的是不知所云。
(有的是写的太过深奥,有的则是照搬挪⽤,对原理则⼀问三不知)这⼀直让我对PID摸不着头脑。
所以我打算从0开始去⼀层层学习它,直到⾃⼰掌握它的精髓。
我不认为我有多聪明,所以相当多的部分我都写的很详细,觉得过于冗余的⼩伙伴可以跳着看。
我并不是计算机科学\电控类专业的学⽣,所以对知识的理解可能有不到位的地⽅,还请⼤家指正。
最后,希望这篇长⽂对⼤家有所帮助,这也是我完成它的⽬标之⼀。
1.0 单级PID控制1.1 单级PID的原理理解单级PID也就是只使⽤⼀个PID控制块。
⼀般讲到PID,⼤家都喜欢⽤调节洗澡⽔的⽔温来举例:Kp(⽐例项),即希望调节到的温度与现在的温度差的越⼤,我们拧动加热旋钮的幅度就越⼤,这个差值越⼩,我们拧动加热旋钮的幅度就越⼩;Ki(积分项),即P⽐例调节控制了⼀段时间之后,发现实际值与期望值还是有误差,那就继续拧懂加热旋钮,这是⼀个在时间上不断累积的过程,故为积分项;Kd(微分项),当实际值与期望值的误差的导数,也就是⽔温变化的速度,这⼀项即控制达到期望值,即控制当前⽔温到达⽬标⽔温的速度。
然后将上⾯三项相加,就得到了基本的PID控制:\[Output=K_{P}*e+K_{I}*\int edt+K_{D}\frac{de}{dt} \]即下图谈谈我对于PID控制的⼀些理解:1. ⾸先⾯对⼀个需要PID的控制系统的时候,增⼤P(⽐例控制系数)可以使得系统的反应灵敏,但是相应地会⽆法避免地产⽣稳态误差并且单纯使⽤⽐例控制的系统⽆法消除这种误差;2. 在得到⼀个较为灵敏同时拥有较⼩的稳态误差的系统时,这时引⼊I(积分控制项),积分控制可以有效地消除稳态误差,但是会使得系统达到稳态的时间延长,也是就是出现了震荡;3. 在PI控制完成之后,⼀般来说对于⼀些对时间不是很敏感的系统都已经拥有较好的控制表现了,对于时间要求苛刻的系统就需要引⼊D(微分控制项)来进⼀步缩短系统达到稳态的时间(减少震荡);4. D项的⼀个很不友好的特性就是对环境噪声极其敏感,引⼊D之后很容易就会使得先前已经稳定的系统突然变混乱起来,所以通常也需要较多的时间类来获取试验D的取值。
由入门到精通吃透PID
由入门到精通吃透PIDPID控制器(Proportional-Integral-Derivative Controller)是一种常见的控制器,广泛应用于工业自动化领域。
它通过对系统的反馈信号进行比例、积分和微分运算,以达到控制系统稳定和响应速度的目的。
本文将从入门到精通分别介绍PID控制器的基本原理、参数调整方法和应用实例。
一、基本原理在控制系统中,PID控制器根据反馈信号与设定值之间的差异来调整输出信号,从而实现对被控对象的控制。
它由三个基本部分组成:比例控制部分、积分控制部分和微分控制部分。
1. 比例控制部分:根据反馈信号与设定值之间的差异,以一定的比例调节输出信号。
比例控制的作用是根据差异的大小来进行精确调节,但它不能解决系统的超调和稳态误差问题。
2. 积分控制部分:通过累积反馈信号与设定值之间的差异,对输出信号进行调节。
积分控制可以消除系统的稳态误差,但会增大系统的超调。
3. 微分控制部分:通过反馈信号的变化率来预测未来的发展趋势,以调节输出信号。
微分控制可以提高系统的响应速度和稳定性,但过大的微分作用会引入噪声和振荡。
PID控制器的输出信号可以表示为:u(t) = Kp * e(t) + Ki * ∫e(t)dt + Kd * de(t)/dt其中,u(t)为输出信号,Kp、Ki和Kd分别为比例、积分和微分增益,e(t)为反馈信号与设定值之间的误差,∫e(t)dt为误差的积分,de(t)/dt为误差的微分。
二、参数调整方法PID控制器的参数选择对控制系统的性能至关重要。
有许多方法可以调整PID控制器的参数,常见的包括经验法、试错法和优化算法。
1. 经验法:根据实际经验,选择适当的参数范围,并逐步调整参数,观察系统的响应变化。
这种方法简单直观,但需要具备一定的经验和调试能力。
2. 试错法:通过不断试验不同的参数组合,观察系统的响应,并根据系统的性能指标进行优化调整。
试错法可以快速找到合适的参数组合,但依赖于多次试验和手动调整。
三菱PLCPID调节手册
Programming ManualMitsubishi Programmable Logic ControllerQCPU(Q Mode)/QnACPU(PID Control Instructions)• SAFETY CAUTIONS •(You must read these cautions before using the product)In connection with the use of this product, in addition to carefully reading both this manual and the related manuals indicated in this manual, it is also essential to pay due attention to safety and handle the product correctly.The safety cautions given here apply to this product in isolation. For information on the safety of the PC system as a whole, refer to the CPU module User's Manual.Store this manual carefully in a place where it is accessible for reference whenever necessary, and forward a copy of the manual to the end user.REVISIONS* The manual number is given on the bottom left of the back cover.Print Date* Manual Number RevisionDec., 1999SH (NA) 080040-A First editionJun., 2001SH (NA) 080040-B Partial additionAbout Manuals, Chapter 1, Chapter 2, Section 2.1, 3.1, 3.2, 3.3, 3.3.1,4.2.3, 4.3.2, 4.3.5, Chapter 5, Section5.1, 5.2, Chapter 6, Chapter 7,Section 8.1, 8.2Japanese Manual Version SH-080022-BThis manual confers no industrial property rights or any rights of any other kind, nor does it confer any patent licenses. Mitsubishi Electric Corporation cannot be held responsible for any problems involving industrial property rights whichmay occur as a result of using the contents noted in this manual.1999 MITSUBISHI ELECTRIC CORPORATIONINTRODUCTIONThank you for choosing the Mitsubishi MELSEC-Q/QnA Series of General Purpose Programmable Controllers. Please read this manual carefully so that the equipment is used to its optimum. A copy of this manual should be forwarded to the end User.CONTENTS1. GENERAL DESCRIPTION 1 – 1 to 1 - 21.1 PID Processing Method...........................................................................................................................1 - 22. SYSTEM CONFIGURATION FOR PID CONTROL 2 - 1 to 2 - 22.1 Applicable PLC CPU................................................................................................................................2 - 13. PID CONTROL SPECIFICATIONS 3 - 1 to 3 - 63.1 Performance Specifications.....................................................................................................................3 - 1 3.2 Operation Expressions.............................................................................................................................3 - 1 3.3 PID Control Instruction List......................................................................................................................3 - 23.3.1 How to read the instruction list..........................................................................................................3 - 33.3.2 PID operation instruction list.............................................................................................................3 - 54. PID CONTROL 4 - 1 to 4 - 124.1 Outline of PID Control..............................................................................................................................4 - 1 4.2 PID Control...............................................................................................................................................4 - 24.2.1 Operation method..............................................................................................................................4 - 24.2.2 Normal operation and reverse operation..........................................................................................4 - 24.2.3 Proportionate operation (P operation)..............................................................................................4 - 44.2.4 Integrating operation (I operation)....................................................................................................4 - 54.2.5 Differentiating operation (D operation).............................................................................................4 - 64.2.6 PID operation.....................................................................................................................................4 - 7 4.3 PID Control Functions..............................................................................................................................4 - 74.3.1 Bumpless changeover function.........................................................................................................4 - 74.3.2 MV higher/lower limit control function...............................................................................................4 - 84.3.3 Monitorning PID control with the AD57(S1) (QnACPU only)...........................................................4 - 94.3.4 Function for transfer to the SV storage device for the PV in manual mode..................................4 - 104.3.5 Changing PID Control Data or input/output Data Setting Range(High Performance model QCPU Only).........................................................................................4 - 11 5. PID CONTROL PROCEDURE 5 - 1 to 5 - 105.1 PID Control Data......................................................................................................................................5 - 35.1.1 Number of loops to be used and the number of loops to be executed in a single scan.................5 - 65.1.2 Sampling cycle..................................................................................................................................5 - 7 5.2 Input/Output Data.....................................................................................................................................5 - 86. PID CONTROL INSTRUCTIONS 6 - 1 to 6 - 27. HOW TO READ EXPLANATIONS FOR INSTRUCTIONS7 - 1 to 7 - 28. PID CONTROL INSTRUCTIONS8 - 1 to 8 - 108.1 PID Control Data Settings.........................................PIDINIT,PIDINITP................................................8 - 2 8.2 PID Control ...............................................................PIDCONT,PIDCONTP.........................................8 - 3 8.3 Monitoring PID Control Status (QnACPU only).......PID57,PID57P......................................................8 - 5 8.4 Operation Stop/Start of Designated Loop No..........PIDSTOP,PIDSTOPP,PIDRUN,PIDRUNP.........8 - 8 8.5 Parameter Change at Designated Loop...................PIDPRMW,PIDPRMWP......................................8 - 99. PID CONTROL PROGRAM EXAMPLES9 - 1 to 9 - 109.1 System Configuration for Program Examples.........................................................................................9 - 1 9.2 Program Example for Automatic Mode PID Control...............................................................................9 - 2 9.3 Program Example for Changing the PID Control Mode between Automatic and Manual....................9 - 6APPENDIX APP - 1APPENDIX 1 PROCESSING TIME LIST................................................................................................APP – 1About ManualsThe following manuals are also related to this product.In necessary, order them by quoting the details in the tables below. Related ManualsManual Name Manual Number (Model Code)High Performance model QCPU (Q mode) User's Manual(Function Explanation/Program Fundamentals)Describes the functions, programming procedures, devices, parameter types and program types necessary in program creation using QCPU (Q mode).(Option)SH-080038 (13JL98)QnACPU Programming Manual (Fundamentals)Describes how to create programs, the names of devices, parameters, and types of program.(Option)IB-66614 (13JF46)QCPU (Q mode) /QnACPU Programming Manual (Common Instructions)Describes how to use sequence instructions, basic instructions, and application instructions.(Option)SH-080039 (13JF58)QnACPU Programming Manual (Special Function)Describes the dedicated instructions for special function modules available when using theQ2ACPU(S1), Q3ACPU, and Q4ACPU.(Option)SH-4013 (13JF56)QnACPU Programming Manual (AD57 Instructions)Describes the dedicated instructions for controlling an AD57(S1) type CRT controller module available when using the Q2ACPU(S1), Q3ACPU, or Q4ACPU.(Option)IB-66617 (13JF49)QCPU (Q mode) / QnACPU Programming Manual (SFC)Describes the system components, performance specifications, and functions, protramming, debugging and error codes of MELSAP-3(Option)SH-080041 (13JF60)Q4ARCPU Programming Manual (Application PID Edition)Describes the programming procedures and device name necessary in program creation to control Applied PID using process control instructions.(Option)IB-66695 (13JF52)Before reading this manual, refer to High Performance model QCPU (Q mode) User'sManual (Function Explanation/Programming Fundamentals) and QnACPUProgramming Manual (Fundamentals) in order to confirm the programs, I/Oprocessing, and devices used with High Performance model QCPU(Q mode)/QnACPU.Describes the instructionsused for Applied PIDcontrol.Generic Names:High Performance model QCPU...Generic names for Q02CPU, Q02HCPU, Q06HCPU, Q12HCPU, Q25HCPU QnACPU ........................................Generic names for Q2ASCPU, Q2ASCPU-S1, Q2ASHCPU, Q2ASHCPU-S1, Q2ACPU, Q3ACPU, Q4ACPU, Q4ARCPUCPU module....................................Generic names for QnACPU, High Performance model QCPU1. GENERAL DESCRIPTION1 This manual describes the sequence program instructions used to execute PID controlwith the High Performance model QCPU/QnACPU.The High Performance model QCPU /QnACPU has the capability to use instructionsfor PID control as a standard feature, so PID control can be executed by loading anA/D conversion module and a D/A conversion module.In addition, the PID control status can be monitored with an AD57(S1).POINTThe Basic model QCPUs (Q00JCPU, Q00CPU, Q01CPU) are not compatible withthe PID control instructions.Use the High Performance model QCPU to use the PID control instructions.REMARKThe High Performance model QCPU is the generic term of the Q02CPU, Q02HCPU,Q06HCPU, Q12HCPU and Q25HCPU.Any of them is abbreviated to the High Performance model QCPU in this manual.1.1 PID Processing MethodThis section describes the processing method for PID control using PID controlinstructions. (For details on PID operations, see Chapter 4.)Execute PID control with PID control instructions by loading an A/D conversion moduleand a D/A conversion module, as shown in Figure 1.1.As shown in Figure 1.1, using the previously set SV (set value) and the digital PV(process value), which is read from the A/D conversion module, PID operation isexecuted to obtain the MV (manipulated value).The calculated MV (manipulated value) is output to the D/A conversion module.The sampling cycle is measured, and the PID operation is performed, when thePIDCONT instruction is executed in the sequence program, as illustrated below.PID operation in accordance with the PIDCONT instruction is executed in presetsampling cycles.MELSEC-Q/QnA2. SYSTEM CONFIGURATION FOR PID CONTROL22. SYSTEM CONFIGURATION FOR PID CONTROLThis section describes the system configuration for PID control using PID control instructions.(For details on the units and modules that can be used when configuring the system, refer to the manual for the CPU module used.)CRTOperation panelD/A conversion moduleA/D conversion moduleMain base unitExtension cableExtension base unitPV (process value) inputFor MV (manipulated value) outputFor PID control monitoring (Only QnACPU)CRT control module AD57 or AD57-S1 onlyQnACPUQCPU High Performance modelPOINT(1) For QnACPU, the reference range for SV, PV, and MV values used in PID operations is 0 to 2000. If the resolution of the A/D conversion module or D/Aconversion module used for input/output in PID control is not 0 to 2000, convert the digital values to 0 to 2000.(2) For High Performance model QCPU, a setting is selectable from fixed values as described in (1) or any appropriate values for the unit used. See Section 4.3.5for details.2.1 Applicable PLC CPUComponent ModuleHigh Performance model QCPU Q02CPU, Q02HCPU, Q06HCPU, Q12HCPU, Q25HCPUQnACPUQ2ASCPU, Q2ASCPU-S1, Q2ASHCPU, Q2ASHCPU-S1Q2ACPU, Q3ACPU, Q4ACPU, Q4ARCPU2. SYSTEM CONFIGURATION FOR PID CONTROLMELSEC-Q/QnA MEMO33. PID CONTROL SPECIFICATIONSThis section gives the specifications PID control using PID control instructions.3.1 Performance SpecificationsThe performance specifications for PID control are tabled below.SpecificationQnACPUItemWith PID Limits for HighPerformance modelQCPU Without PID Limits forHigh Performance modelQCPUNumber of PID control loops—32 loops (maximum)Sampling cycle T S 0.01 to 60.00 sPID operation method—Process value differentiation (normal operation/reverse operation)Proportionate constant K P 0.01 to 100.00Integration constant T I 0.1 to 3000.0 s PID constant setting rangeDifferential constantT D 0.00 to 300.00 sSV (set value) setting range SV 0 to +2000-32768 to +32767PV (process value) setting range PV MV (manipulated value) output range MV-50 to +2050-32768 to +327673.2 Operation ExpressionsThe operation expressions for PID control using PID control instructions are indicated below.NameOperation ExpressionsMeanings of SymbolsNormal operationEV n =PV nf *-SVMV n = MV MV=K p {(EV n -EV n-1)+ EV n - (2PV nf-1-PV nf -PV nf-2)}T S T I T DT SProcess valuedifferentiationReverse operationEV n =SV-PV nf *MV n = MVMV=K p {(EV n -EV n-1)+ EV n + (2PV nf-1-PV nf-PV nf-2)}T ST I T D T S EV n : Deviation in the present sampling cycle EV n-1: Deviation in the preceding sampling cycleSV : Set valuePV nf : Process value of the present sampling cycle (after filtering)PV nf-1: Process value of the preceding samplingcycle (after filtering)PV nf-2: Process value of the sampling cycle two cycles before (after filtering)MV : Output change amount MV n : Present manipulation amount K P : Proportionate constant T S: Sampling cycle T I : Integration constantT D: Differential constant POINT(1) *:PV nf is calculated using the following expression.Therefore, it is the same as the PV (process value) of the input data as long as the filter coefficient is not set for the input data.Process Value after Filtering PV nf = PV n + (PV nf -1-PV n )PV n : Process value of the present sampling: Filter coefficientPV nf-1: Process value of the preceding sampling cycle (after filtering)(2) PV nf is stored in the I/O data area. (See Section 5.2)3.3 PID Control Instruction ListA list of the instructions used to execute PID control is given below.CPU Instruction Name Processing DetailsQ QnAPIDINIT Sets the reference data for PID operation.*1PIDCONT Executes PID operation with the SV (set value) and the PV (process value).*1PID57Used to monitor the results of PID operation at an AD57(S1).×PIDSTOP PIDRUN Stops or starts PID operation for the set loop No.PIDPRMWChanges the operation parameters for the designated loop number to PID control data.*1: For High Performance model QCPU, PID limits can be set to ON or OFF. SeeSections 5.1 and 5.2 for the setting range used in each mode.3.3.1 How to read the instruction listThe instruction list in Section 3.3.2 has the format indicated below:Table 3.1 How to Read the Instruction ListExplanation(1) Classification of instructions according to their application.(2) Instruction names written in a sequence program.(3) Symbols used in the ladder diagram.(4) Processing for each instruction.(5) The execution condition for each instruction. Details are given below.(6) Number of instruction stepsFor details on the number of steps, refer to the QCPU (Q mode) /QnACPU Programming Manual (Common Instructions).(7) A circle indicates that subset processing is possible.For details on subset processing, refer to the QCPU (Q mode) /QnACPU Programming Manual (Common Instructions).(8) Indicates the page number in this manual where a detailed description for theinstruction can be found.3.3.2 PID operation instruction list4.2 PID ControlThe operation methods for PID control with the PID control instructions are the speedmethod and process value differentiation method. The following describes the controlexecuted for both of these methods:4.2.1 Operation method(1) Speed method operationThe speed method operation calculates amounts of changes in the MVs(manipulated values) during PID operation.The actual MV is the accumulatedamount of change of the MV calculated for each sampling cycle.(2) Process value differentiation method operationThe process value differentiation method operation executes PID operations bydifferentiating the PV (process value).Because the deviation is not subject to differentiation, sudden changes in theoutput due to differentiation of the changes in the deviation generated bychanging the set value can be reduced.Either forward operation or reverse operation can be selected to designate thedirection of PID control.4.2.2 Normal operation and reverse operation(1) In normal operation, the MV (manipulated value) increases as the PV (processvalue) increases beyond the SV (set value).(2) In reverse operation, the MV (manipulated value) increases as the PV (processvalue) decreases below the SV (set value).(3) In normal operation and reverse operation, the MV (manipulated value) becomeslarger as the difference between the SV (set value) and the PV (process value)increases.(4) The figure below shows the relationships among normal operation and reverseoperation and the MV (manipulated value), the PV (process value), and the SV(set value):(5) The figure below shows examples of process control with normal operation andreverse operation:4.2.3 Proportionate operation (P operation)The control method for proportionate operation is described below.(1) In proportionate operation, an MV (manipulated value) proportional to thedeviation (the difference between the set value and process value) is obtained.(2) The relationship between E (deviation) and the MV (manipulated value) isexpressed by the following formula:MV=Kp • EKp is a proportional constant and is called the "proportional gain".(3) The proportionate operation in step response with a constant E (deviation) isillustrated in Fig. 4.2.(4) The MV (manipulated value) changes within the range from -50 to 2050 or theuser-defined range (for High Performance model QCPU only).The MV (manipulated value) in response to the same deviation becomes largeras Kp becomes larger, thus the compensating motion is greater.(5) The proportionate operation is always associated with an offset (offset error).4.2.4 Integrating operation (I operation)The control method for integrating operation is described below.(1) In the integrating operation, the MV (manipulated value) changes continuously tozero deviation when it occurs.This operation can eliminate the offset that is unavoidable in proportionateoperation.(2) The time required for the MV in integrating operation to reach the MV forproportionate operation after the generation of deviation is called the integratingtime. Integrating time is expressed as T I.The smaller the setting for T I, the more effective the integrating operation will be.(3) The integrating operation in step response with a constant E (deviation) isillustrated in Fig. 4.3.(4) Integrating operation is always used in combination with proportionate operation(PI operation) or with proportionate and differentiating operations (PID operation).Integrating operation cannot be used independently.4.2.5 Differentiating operation (D operation)The control method for differentiating operation is described below.(1) In differentiating operation, an MV (manipulated value) proportional to thedeviation change rate is added to the system value to zero deviation when itoccurs.This operation prevents significant fluctuation at the control objective due toexternal disturbances.(2) The time required for the MV in the differentiating operation to reach the MV forthe proportionate operation after the generation of deviation is called thedifferentiating time. Differentiating time is expressed as T D.The smaller the setting for T D, the more effective the differentiating operation willbe.(3) The differentiating operation in step response with a constant E (deviation) isillustrated in Fig. 4.4.(4) Differentiating operation is always used in combination with proportionateoperation (PD operation) or with proportionate and integrating operations (PIDoperation).Differentiating operation cannot be used independently.4.2.6 PID operationThe control method when proportionate operation (P operation), integrating operation (Ioperation), and differentiating operation (D operation) are used in combination isdescribed below.(1) During PID operation, the system is controlled by the MV (manipulated value)calculated in the (P + I + D) operation.(2) PID operation in step response with a constant E (deviation) is illustrated in Fig.4.5.4.3 PID Control FunctionsDuring PID control using the PID control instructions, MV upper/lower limit control isautomatically executed by the bumpless changeover function explained below.4.3.1 Bumpless changeover functionThis function controls the MV (manipulated value) continuously when the control modeis changed between manual and automatic.When the control mode is changed between manual and automatic, data is transmittedbetween the MV area for automatic mode and the MV area for manual mode.The control mode is changed in the input/output data area (see Section 5.2).(1) Changing from the manual ...........mode to the automatic mode The MV in the manual mode is transmitted to the MV area for the automatic mode.(2) Changing from the automatic .......mode to the manual mode The MV in the automatic mode is transmitted to the MV area for the manual mode.POINT(1) Manual and automatic modes of PID control:1) Automatic modePID operation is executed with a PID control instruction.The control object is controlled according to the calculated MV.2) Manual modePID operation is not executed. The MV is calculated by the user and thecontrol object is controlled according to the user-calculated MV.(2) The loop set in the manual mode stores the PV (process value) in the set valuearea every sampling cycle.4.3.2 MV higher/lower limit control functionThe MV higher/lower limit control function controls the higher or lower limit of the MVcalculated in the PID operation. This function is only effective in the automatic mode. Itcannot be executed in the manual mode.By setting the MV higher limit (MVHL) and the MV lower limit (MVLL), the MVcalculated in the PID operation can be controlled within the range between the limits.When the MV higher/lower limit control function is used, the MV is controlled asillustrated above.A MVHL (manipulated value higher limit) and MVLL (manipulated value lower limit)takes on a value between -50 and 2050 or a user-defined value (for High Performancemodel QCPU only).The following are the default settings:• Higher limit................2000 (Or user-defined value)• Lower limit................0 (Or user-defined value)The value set for the higher limit must not be smaller than the value set for the lowerlimit.An error will occur if it is.4.3.3 Monitoring PID control with the AD57(S1) (QnACPU only)The PID control operation results can be monitored in a bar graph with an AD57(S1)CRT controller unit.(1) The monitor screen displays the monitored information of eight loops beginningwith the designated loop number.POINTThe SV, PV, and MV present value are displayed as percentages of 2000.1) SV percentage display...............SV2000100 (%)2) PV percentage display...............PV2000100 (%)3) MV percentage display...............MV2000100 (%)(2) Use the PID57 instruction to execute monitoring with an AD57(S1).See Section 8.3 for details on the PID57 instruction.4.3.4 Function for transfer to the SV storage device for the PV in manual modeThe PIDCONT instruction is also executed in manual mode.In the manual mode, it ispossible to select whether or not the PV input from the A/D conversion module onexecution of the PIDCONT instruction is transferred to the SV storage device or not inaccordance with the ON/OFF status of the PID bumpless processing flag (SM774).• When SM774 is OFF : When the PIDCONT instruction is executed, the PV istransferred to the SV storage device.On switching from the manual mode to the automaticmode, the MV output is continued from the value in themanual mode.After switching to the automatic mode, control can beswitched from the MV that was being output to the SV bychanging the SV.• When SM774 is ON : When the PIDCONT instruction is executed, the PV is nottransferred to the SV storage device.On switching from the manual mode to the automaticmode, control can be switched from the MV output in themanual mode to the SV.Before switching to the automatic mode, store a SV in theSV storage device.POINTWhen SM774 is ON or OFF, switching from the manual mode to the automaticmode may cause different control effects as follows.• When SM774 is OFF, the PV is transferred to the SV storage device.When the manual mode is switched to the automatic mode, no difference iscaused between the PV and the SV and the MV does not change rapidly, exceptthat the SV differs from a target value defined in the automatic mode.Use the sequence program to make step-by-step adjustments to the SV so thatthe SV approaches closer to the target value.See sample programs in Section 9.3.• When SM774 is ON, the PV is not transferred to the SV storage device. This maycause a difference between the PV and the SV when the manual mode isswitched to the automatic mode.A greater difference may cause the MV to change rapidly. So this procedure isused for systems in which the manual mode can be switched to the automaticmode only when the PV approaches closer tothe SV.The automatic mode can be effected without using the sequence program tomake step-by-step adjustments to the SV.REMARKThe SV and PV are stored in the devices in the I/O data area designated by thePIDCONT instruction.4.3.5 Changing the PID Control Data or Input/Output Data Setting Range (HighPerformance model QCPU Only)For High Performance model QCPU, setting ranges can be selectable for PID controldata (see Section 5.1) and input/output data (see Section 5.2). To effect the user-defined setting range, designate the loops for which PID limit settings (SD774 and SD775) are defined, and then set these loops' bits to ON before executing the PIDCONTand PIDINT instructions.SD774SD7750 : PID Limit ON (default setting)1 : PID Limit OFF (user-defined setting)A "PID Limit OFF" setting does not effect the limit control over internal data. To effectthe limit control, execute the processing by operating from the user's application side.。
PID由入门到精通
PID由入门到精通由入门到精通----吃透PID2.0版第一章自动调节系统的发展历程1-1 没有控制理论的世界1-2 控制论1-3负反馈1-4 PID1-5 怎样投自动1-6 观察哪些曲线1-7PID的基本原理1-8PID的曲线1-9怎样判断PID第二章吃透PID2-1 几个基本名词2-2 P——纯比例作用趋势图的特征分析2-3 I——纯积分作用趋势图的特征分析2-4 D——纯微分作用趋势图的特征分析2-5 比例积分作用的趋势特征分析2-6 比例积分微分作用的趋势特征分析2-7 整定参数的几个原则2-8 整定比例带2-9 整定积分时间2-10 整定微分时间2-11 比例积分微分综合整定2-12 自动调节系统的质量指标2-13 整定系统需要注意的几个问题2-14 整定参数的几个认识的误区2-15 其它先进控制方法简介第三章第三章火电厂自动调节系统3-1 火电厂自动调节系统的普遍特点3-2 自动调节系统的构成3-3 自动调节系统的跟踪3-4 高低加水位自动调节系统一、基本控制策略二、自平衡能力三、随动调节系统四、对于系统耦合的解决办法五、几个问题:六、偏差报警与偏差切除3-5 汽包水位调节系统一、任务与重要性二、锅炉汽包三、虚假水位四、影响汽包水位的因素五、制定控制策略六、捍卫“经典”七、正反作用与参数整定八、特殊问题的处理方法九、变态调节3-6 过热器温度调节系统一、迟延与惯性二、重要性三、干扰因素四、一级减温水调节系统五、导前微分自动调节系统六、导前微分系统的参数整定七、串级调节系统八、级调节系统的参数整定九、修改控制策略,增加抑制干扰能力十、变态调节方案3-6主汽压力一、重要性二、干扰因素三、直接能量平衡公式四、间接能量平衡五、控制策略六、参数整定3-7协调一、重要性一、干扰因素二、机跟炉三、参数整定四、炉跟机五、参数整定六、负荷前馈七、压力前馈八、耦合与解耦九、特殊解耦十、一次调频十一、AGC3-8 磨煤机优化燃烧杨过出了一会神,再伸手去会第二柄剑,只提起数尺,呛□一声,竟然脱手掉下,在石上一碰,火花四溅,不禁吓了一跳。
PID算法原理,PID源码,自整定,及工具
专家系统、模糊算法,需要参数整定就一定要有整定的依据,也就是说什么情 况下整定什么值是要有依据的,这个依据是一些逻辑的组合,只要找出其中的 逻辑组合关系来,这些依据就再明显不过了。下面先说一下专家 PID 的 C 语言 实现。正如前面所说,需要找到一些依据,还得从 PID 系数本身说起。
三、PID 算法参数整定方法 1.临界比例度法 (1)将调节器的积分时间置于最大,微分时间置零,比例度 δ 适当,平衡操 作一段时间,把系统投入自动运行。 (2)将比例度 δ 逐渐减小,得到等幅振荡过程,记下临界比例度和临界振荡 周期值。 (3)根据和值,采用经验公式,计算出调节器各个参数,即 δ、、的值。 (4)按“先 P 后 I 最后 D”的操作程序将调节器整定参数调到计算值上。若还 不够满意,可再作进一步调整。
上一节中介绍了最简单的位置型 PID 的实现手段,这一节讲解增量式 PID 的实 现方法。 #include<stdio.h> #include<stdlib.h>
struct t_pid{ float SetSpeed; float ActualSpeed; float err; float err_next; float err_last; float Kp,Ki,Kd;
临界振荡整定计算公式
2.衰减曲线法 在纯比例作用下,由大到小调整比例度以得到具有衰减比(4:1)的过渡过 程,记下此时的比例度及振荡周期,根据经验公式,求出相应的积分时间和微 分时间。
衰减曲线法控制器参数计算表
3.经验法 根据经验先将控制器参数放在某些数值上,直接在闭合的控制系统中通过改变 给定值以施加干扰,看输出曲线的形状,以 δ、、,对控制过程的规律为指 导,调整相应的参数进行凑试,直到合适为止。
合信技术PID_T库使用说明
PID_OUT
LW2
因为没有用到,所以用了一个局部变量。
备注
9
深圳市合信自动化技术有限公司
1
深圳市合信自动化技术有限公司
PID_T 库使用说明书
目录
1 功能介绍..................................................................................................................3 2 安装说明..................................................................................................................3
备注
4 应用例子
4如下: 7
深圳市合信自动化技术有限公司
PID_T 库使用说明书
系统配置 控制要求
I/O点分布 Q0.0 AIW0 M0.0 M1.0
CPU226L+231-7PD32
温度采集采用四路热电偶模块
1、 只有加热输出,没有冷却输出 2、 要求自整定参数 3、 K型热电偶
位
字,整数,变量
当定义为只有加 热输出时,输出 范围为: 0-32000。带冷 却输出时: -32000-32000
3.2 控制字、状态字位地址
控制字的位地址意义如下:
控制字位
设置
备注
0
PID 停止
0
1
PID 运行
6
深圳市合信自动化技术有限公司
PID_T 库使用说明书
0
积分一直起作用,比例系数 Kp 不自动调整
2 安装说明
PID专题及C语言的实现
PID专题及C语⾔的实现注意:任何算法使⽤程序表⽰,都得将算法离散化,以下的算法公式及代码都是将连续函数离散化后的表⽰结果。
个⼈鄙见,请多多指导。
问题⼀:PID计算结果与实际信号的对应关系[5]?位置式PID计算结果表⽰信号量的多少,增量式PID计算结果表⽰信号量的增多或减少多少。
⼀般来说: 位置式PID计算结果⽤0~1来表⽰控制信号的绝对⼤⼩, ⽽增量式PID计算结果⽤-1~1来表⽰控制信号的相对⼤⼩。
例如:⼯业设备通常采⽤4mA~20mA控制信号,PID计算结果⽤0~1来表⽰。
对于位置式PID来说: 0来表⽰应该向设备输如4mA的控制信号, 0.5则表⽰向设备输如12mA的控制信号, 1则表⽰向设备输如20mA的控制信号。
对于增量式PID来说: 若当前控制信号⼤⼩为6mA,⽽增量式PID的计算结果为0.2, 则表⽰控制信号应该从6mA增⼤到6mA+(20mA-4mA)*20%=9.2mA; 若当前控制信号⼤⼩为16mA,⽽增量式PID的计算结果为-0.2, 则表⽰控制信号应该从16mA减⼩到16mA-(20mA-4mA)*20%=12.8mA。
问题⼆:位置式pid与增量式pid有何区别和联系?(1)位置式pid将误差累加,增量式pid与当前及前两次误差有关,增量式pid是位置式pid的微分。
(2)位置式pid计算结果直接作⽤于执⾏机构,增量式pid计算结果只是上次控制量的增量。
(3)位置式pid需要积分限幅和输出限幅,增量式pid只需要输出限幅。
(4)从计算公式来看,位置式pid的P参数对应增量式pid的I参数,位置式pid的D参数对应增量式pid的P参数。
(5) 位置式pid应⽤于不带记忆功能的执⾏机构,增量式pid应⽤于带记忆功能的执⾏机构。
//DC-DC数字电源可以设置成带记忆功能的执⾏机构,也可以设置成不带记忆功能的执⾏机构。
带PFC的Boost电路,好像是不带记忆功能的执⾏机构。
PID详解
使用FB41进行PID调整的说明FB41称为连续控制的PID用于控制连续变化的模拟量,与FB42的差别在于后者是离散型的,用于控制开关量,其他二者的使用方法和许多参数都相同或相似。
PID的初始化可以通过在OB100中调用一次,将参数COM-RST置位,当然也可在别的地方初始化它,关键的是要控制COM-RST;PID的调用可以在OB35中完成,一般设置时间为200MS,一定要结合帮助文档中的PID框图研究以下的参数,可以起到事半功倍的效果以下将重要参数用黑体标明.如果你比较懒一点,只需重点关注黑体字的参数就可以了。
其他的可以使用默认参数。
A:所有的输入参数:COM_RST: BOOL: 重新启动PID:当该位TURE时:PID执行重启动功能,复位PID内部参数到默认值;通常在系统重启动时执行一个扫描周期,或在PID进入饱和状态需要退出时用这个位;MAN_ON: BOOL:手动值ON;当该位为TURE时,PID功能块直接将MAN的值输出到LMN,这可以在PID 框图中看到;也就是说,这个位是PID的手动/自动切换位;PEPER_ON: BOOL:过程变量外围值ON:过程变量即反馈量,此PID可直接使用过程变量PIW(不推荐),也可使用 PIW规格化后的值(常用),因此,这个位为FALSE;P_SEL: BOOL:比例选择位:该位ON时,选择P(比例)控制有效;一般选择有效;I_SEL: BOOL:积分选择位;该位ON时,选择I(积分)控制有效;一般选择有效;INT_HOLD BOOL:积分保持,不去设置它;I_ITL_ON BOOL:积分初值有效,I-ITLVAL(积分初值)变量和这个位对应,当此位ON时,则使用I-ITLVAL 变量积分初值。
一般当发现PID功能的积分值增长比较慢或系统反应不够时可以考虑使用积分初值;D_SEL : BOOL:微分选择位,该位ON时,选择D(微分)控制有效;一般的控制系统不用;CYCLE : TIME:PID采样周期,一般设为200MS;SP_INT: REAL:PID的给定值;PV_IN : REAL:PID的反馈值(也称过程变量);PV_PER: WORD:未经规格化的反馈值,由PEPER-ON选择有效;(不推荐)MAN : REAL:手动值,由MAN-ON选择有效;GAIN : REAL:比例增益;TI : TIME:积分时间;TD : TIME:微分时间;TM_LAG: TIME:我也不知道,没用过它,和微分有关;DEADB_W: REAL:死区宽度;如果输出在平衡点附近微小幅度振荡,可以考虑用死区来降低灵敏度;LMN_HLM: REAL:PID上极限,一般是100%;LMN_LLM: REAL:PID下极限;一般为0%,如果需要双极性调节,则需设置为-100%;(正负10V输出就是典型的双极性输出,此时需要设置-100%);PV_FAC: REAL:过程变量比例因子PV_OFF: REAL:过程变量偏置值(OFFSET)LMN_FAC: REAL:PID输出值比例因子;LMN_OFF: REAL:PID输出值偏置值(OFFSET);I_ITLVAL:REAL:PID的积分初值;有I-ITL-ON选择有效;DISV :REAL:允许的扰动量,前馈控制加入,一般不设置;B:部分输出参数说明:LMN :REAL:PID输出;LMN_P :REAL:PID输出中P的分量;(可用于在调试过程中观察效果)LMN_I :REAL:PID输出中I的分量;(可用于在调试过程中观察效果)LMN_D :REAL:PID输出中D的分量;(可用于在调试过程中观察效果)C:规格化概念及方法:PID参数中重要的几个变量,给定值,反馈值和输出值都是用0.0~1.0之间的实数表示,而这几个变量在实际中都是来自与模拟输入,或者输出控制模拟量的因此,需要将模拟输出转换为0.0~1.0的数据,或将0.0~1.0的数据转换为模拟输出,这个过程称为规格化规格化的方法:(即变量相对所占整个值域范围内的百分比对应与27648数字量范围内的量)对于输入和反馈,执行:变量*100/27648,然后将结果传送到PV-IN和SP-INT对于输出变量,执行:LMN*27648/100,然后将结果取整传送给PQW即可;D:PID的调整方法:一般不用D,除非一些大功率加热控制等惯大的系统;仅使用PI即可,一般先使I等于0,P从0开始往上加,直到系统出现等幅振荡为止,记下此时振荡的周期,然后设置I为振荡周期的0.48倍,应该就可以满足大多数的需求。
云台调节注意事项1
注:以下内容仅供参考,不足地方,大家多完善,给以后学习的人多多提供些方便!!!!!写这篇关于调节pid的文档,就是分享一下个人的想法,或许谈得上是经验吧。
最近几天调节pid一直达不到预想的结果,队长(张雅达)在5月1号下午和我谈了一些关于pid调节的问题,认识到了一些以前的没有注意的东西(pid结构体中的各个参数问题以及电机说明书的一些细节问题)。
首先先从电机说明书说起吧,目前我们所使用的云台电机(6020、6623、6025)的说明书都有一个CAN通信协议部分,里面有写到电机接受报文的格式以及电机反馈报文格式。
上述图片是6020接受报文格式的一半,每个电机都有自己特定的标识符,图片中可看到标识符为0x1FF,标识符就像名字中的姓一样,他只是区别电机的一部分,另外的一部分是电机ID(他是电机的名),那如何把信息传递给电机呢?那就要用到大家所熟悉的CAN通信,CAN通信可发送8位数据,我们所使用的电调把can发送的数据进行解算,can发送的前两位数据会发送给ID为1的电机,2、3的数据会发送给ID为2的电机………。
至于,发送的数据指什么,图片的开头已经写清告诉我们了,(用于向电机发送控制指令的控制驱动器的电压输出,控制电压范围为-30000-30000),也就是我们给电机发送的数据应控制在正负30000以内,(严禁给电机超过30000的值,否则电机会被烧了的)至于我给的最大的设定值为25000,目前使用足够了。
但并不是所有的电机发送的数据是电压,比如云台电机6623发送的数据的控制电流(-5000-5000)。
接下来,说一下电机的反馈报文。
所使用的6020电机的反馈标识符为0x204+驱动器ID,其他电机的反馈标识符也是类似的。
电机反馈的标文也是分为8部分的数据(date0~date7),前两位数据是机械角度,2、3位为转速,4、5位为转矩…………主要使用反馈报文的角度数据,也是前两位数据。
可以看到电机的机械角度范围为0~8191,与我们熟悉的一圈(0-360度)对应。
DocNamePID功能说明附烤箱温控实例
例: 设定 1000,则输出值(MV)大于 1000 时 将以 1000 输出,需大于等于 S3+9、10,否则上 限值与下限值将互换
32 位输出值 饱和下限
-2147483648~ 2147483647
例: 设定-1000,则输出值(MV)小于-1000 时 将以-1000 输出
为本指令每多少时间去计算一次,并更新输出值 (MV),TS 小于一次扫描时间的话,PID 指令 以一次扫描时间来执行,TS=0 则不动作。即取 样时间最小设定值需大于程序扫描时间
比例增益(KP) 0~30000(%) 为 SV−PV 间的误差放大比例值
积分增益(KI) 积分时间常数 (TI)
微分增益(KD)
-30000~30000(%) -30000~30000 (ms)
控制模式 K0~K8 控制模式 K10
0: 自动控制方向 1: 正向动作(E=SV-PV),当 E<0 时,与 E=0 的执行方式相同。 2: 逆向动作(E=PC-SV),当 E<0 时,与 E=0 的执行方式相同。 3: 温度控制专用的自动调整参数功能,调整完毕时将自动改为 K4,
5: 自动控制方向模式,输出值(MV)达饱和上下限时,停止累积
积分量。
32 位偏差量 0~2147483647
(E)不作用范围
偏差量(E)等于 SV−PV 的误差值,当设定 K0 即表示不启动此功能。例: 设定 5,则 E 在-5~5 之区间,偏差量(E)将为 0
32 位输出值 饱和上限
-2147483648~ 2147483647
目的: 因使用者第一次对于 PID 控制特性不熟悉,透过本文件能让使用者了解 PID 控制模式原理及如何使用 PID 控制模式。
PID参数理解与整定方法
增量式PID计算公式4个疑问与与理解PID参数整定一开始见到PID计算公式时总是疑问为什么是那样子?为了理解那几道公式,当时将其未简化前的公式“活生生”地算了一遍,现在想来,这样的演算过程固然有助于理解,但假如一开始就带着对疑问的答案已有一定看法后再进行演算则会理解的更快!首先推荐白志刚的《由入门到精通—吃透PID 2.0版》看完一、二章之后,建议你先通过实践练习然后再回来看接下来的所有章节,这样你对这本书的掌握会更加牢固、节省时间。
PID就是对输入偏差进行比例积分微分运算,运算的叠加结果去控制执行机构。
实践练习中,如何把这一原理转化为程序?为什么是用那几个error进行计算?以下是我摘录的一段PID程序,我曾用其对智能车的速度进行闭环控制:P:Proportional比例I:Integrating积分D:Differentiation微分Pwm_value:输出Pwm暂空比的值Current_error:当前偏差last_error:上次偏差prev_error:上上次偏差增量式PID计算公式:P=Kp*(current_error﹣last_error);D=Kd*(current_error﹣2*last_error﹢prev_error);I=Ki*current_error;PID_add=Pwm_value+P﹢I﹢D;一、为什么是PID_add=Pwm_value+(P﹢I﹢D)而不是PID_add=P+I+D?如左图,有一个人前往目的地A,他用眼睛视觉传感器目测到距离目的地还有100m,即当前与目的地的偏差为100,他向双脚输出Δ=100J的能量,跑呀跑,10s之后,他又目测了一次,此时距离为40m,即current_error=40,他与10s前的偏差last_error=10对比,即current_error—last_error=—60,这是个负数,他意识到自己已经比较接近目的地,可以不用跑那么快,于是输出Δ=100+(—60)=40J的能量,40J的能量他刚好以4m/s的速度跑呀跑,10s之后,他发现已经到达目的点,此时current_error=0,大脑经过思考得出current_error—last_error=0—40=—40,两脚获得的能量Δ=40+(—40)=0,即他已经达到目的地,无需再跑。
使用Dock基础镜像解决 PID 1 问题
使用Dock基础镜像解决 PID 1 问题,让僵尸进程瞑目而去当构建Docker 容器时,需要注意PID 1 僵尸回收问题,那个问题会在你最不期望出现问题的时候,导致一些不期望的结果和看起来很困惑的问题。
本文解释了PID 1问题,解释怎样解决它,并且作为一个预先构建的方案--可以作为一个基本的Docker镜像来使用。
介绍大概一年前-回溯到Docker0.6 的时期-我第一次介绍Docker基础镜像。
这是为了对Docker友好而修改的最小的Ubuntu 基础镜像。
其他人可以从Docker 登记下载Docker基础镜像并且把它作为他们自己镜像的基础镜像。
我们是早期的Docker使用者,用Docker来持续集成并且在Docker达到1.0版本之前,用作搭建开发环境的方式。
为了解决一些使用Docker能够解决的问题,我们开发了docker基础镜像。
例如,Docker不会在某个恰当处理子进程的初始化进程下运行进程。
以至于容器有可能结束导致各种各样的问题僵尸进程。
Docker 也不会做任何事情,以至于让重要的消息能够正常的被处理等等。
然而,我们已经发现很多人对我们解决的问题理解上有问题。
Granted,是Unix操作系统底层很少人知道和理解的系统级机制。
所以在本文中我们将会详细描述这个我们已经解决了的最重要的PID 1僵尸进程问题。
Zombies我们发现:1.我们解决的问题适用于很多人2.大多数人甚至没有意识到这些问题,所以很多事情会以意想不到的方式被打断(墨菲定律)3.如果每个人都一遍又一遍的重复解决这些问题是低效率的。
所以我们在空闲时间,把解决方案提取为每个人可以复用的基础镜像:Baseimage-docker.这个镜像也加入了一些有用的,相信大多数Docker镜像开发者都需要的工具。
我们把Baseimage-docker作为我们所有Docker镜像的一个基础镜像。
社区看起来喜欢我们所做得事情:我们是Docker注册处最流行的第三方镜像。
PID控制从入门到精通
PID控制器广泛应用于工业自动化领域,参数整定是实现自动化 控制的关键环节。
优化资源利用
合理的参数设置可以减少系统能耗,提高资源利用效率。
常见参数整定方法介绍
01
试凑法
02
临界比例度法
通过手动调整PID参数,观察系统响 应,逐步逼近最优参数组合。这种方 法简单易行,但效率较低,对经验要 求较高。
参数调整策略
根据仿真结果,逐步调整PID参数,以获得最佳的控制性 能。注意遵循一定的调整规律,避免盲目尝试。
系统稳定性分析
在调试过程中,要密切关注系统的稳定性。通过观察响应 曲线和性能指标,判断系统是否出现振荡或不稳定现象, 并及时采取相应措施。
抗干扰能力测试
在仿真环境中模拟实际运行中可能遇到的干扰因素,测试 PID控制器的抗干扰能力。根据测试结果,对控制器进行 进一步优化。
提供强大的数学建模和仿真功能,支持多种控制算法,可 方便地进行PID控制器设计和性能分析。
02
LabVIEW
图形化编程环境,易于构建复杂的控制系统,提供丰富的 数据分析和可视化工具。
03
PLECS
专注于电力电子系统仿真,提供高精度的电气元件模型, 适用于电机控制等应用领域的PID设计。
利用仿真软件进行PID设计步骤演示
建立被控对象模型
根据实际需求,在仿真软件中建立被控对象 的数学模型。
设计PID控制器
选择合适的PID控制算法,并根据性能指标 调整控制器参数。
构建仿真系统
将PID控制器与被控对象模型连接,构建完 整的仿真系统。
运行仿真并分析结果
运行仿真,观察系统响应曲线,评估PID控 制器的性能。
调试过程中注意事项和技巧分享
c2000 pid编程实例
c2000 pid编程实例全文共四篇示例,供读者参考第一篇示例:C2000 PID编程实例PID控制器是一种经典的控制算法,广泛应用于各种工业系统中,以实现对被控对象的精准控制。
C2000系列是德州仪器公司推出的一款高性能数字信号处理器(DSP),具有高速、低功耗等特点,在工业控制领域得到广泛应用。
本文将介绍如何在C2000系列DSP上实现PID控制,通过一个简单的示例展示PID算法的具体应用。
1. 基本原理PID控制器是由比例(P)、积分(I)和微分(D)三个部分组成的控制算法,其输出值由这三个部分的加权和决定。
通过不断调整P、I、D的系数,可以实现对被控对象的精确控制,使其达到设定值。
具体的PID算法如下:\[ u(t) = K_p e(t) + K_i \int e(t) dt + K_d \frac{de(t)}{dt} \]\( u(t) \)为控制器输出,\( e(t) \)为误差信号(设定值与实际值之差),\( K_p \)、\( K_i \)、\( K_d \)为比例、积分、微分系数。
2. 实现步骤在C2000系列DSP上实现PID控制的步骤如下:1)初始化PID参数:设置比例系数\( K_p \)、积分系数\( K_i \)、微分系数\( K_d \);2)读取传感器数据:读取被控对象的实际值;3)计算误差信号:计算设定值与实际值之差,得到误差信号;4)根据PID算法计算输出值:根据PID算法计算出控制器输出值;5)将输出值送入执行器:将计算得到的控制器输出值送入执行器,控制被控对象。
3. 编程实例下面以控制一个直流电机的转速为例,演示如何在C2000系列DSP上实现PID控制。
步骤一:初始化PID参数```Cfloat Kp = 0.1;float Ki = 0.01;float Kd = 0.05;```步骤二:读取传感器数据```Cfloat read_sensor(){// 读取传感器数据return sensor_value;}```步骤三:计算误差信号```Cfloat compute_error(float set_point, float actual_value){ float error = set_point - actual_value;return error;}```步骤四:计算PID输出值```Cfloat compute_pid_output(float error){static float integral = 0;static float prev_error = 0;// 计算比例项float p = Kp * error;// 计算积分项integral += error;float i = Ki * integral;// 计算微分项float derivative = error - prev_error; float d = Kd * derivative;// 计算输出值float output = p + i + d;prev_error = error;return output;}```通过以上实例,我们可以看到如何在C2000系列DSP上实现PID 控制,并将其应用于直流电机的转速控制中。
C语言编程中pid,tid以及真实pid的关系(转)
C语⾔编程中pid,tid以及真实pid的关系(转)add by zhj: 下⾯是我对pid,tgid,ppid的个⼈理解对于ubuntu14.04操作系统,可以在/usr/src/linux-headers-4.4.0-31/include/linux/sched.h⽂件中看到进程控制块的结构体,如下struct task_struct {volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */void *stack;atomic_t usage;unsigned int flags; /* per process flags, defined below */unsigned int ptrace;#ifdef CONFIG_SMPstruct llist_node wake_entry;int on_cpu;unsigned int wakee_flips;unsigned long wakee_flip_decay_ts;struct task_struct *last_wakee;int wake_cpu;#endif............pid_t pid;pid_t tgid;............}可以看到,⾥⾯定义了两个字段,pid和tgid,其中pid就是这个轻量级进程lwp的id,⽽tgid是轻量级进程组的id,当创建进程时,我们可以为⾃⼰指定进程的tgid字段,貌似可以随便指定,只要存在就⾏,另外在⽗进程中,可以为⼦进程设置进程组id,如果没有指定,它会继承⽗进程的进程组id。
还有⼀个概念ppid,我没在这个结构体中找到,但操作系统肯定是会记录的,在Python中,通过os.get_ppid()就可以获取当前进程的⽗进程。
tgid与ppid,这两者其实没有任何关系,因为tgid是可以⾃⼰来指定的,平时基本不⽤,不⽤管它。
linux pidof原理
linux pidof原理Linux操作系统中的pidof命令是用来查找正在运行的进程的进程ID(PID)的工具。
它的原理是通过查找进程的名称来获取与之匹配的进程ID。
在本文中,我们将深入探讨pidof命令的原理及其在Linux系统中的应用。
让我们了解一下进程ID是什么。
在Linux系统中,每个正在运行的进程都有一个唯一的进程ID。
这个ID是由操作系统分配给进程的,并且在进程创建后保持不变。
通过进程ID,我们可以唯一地识别和定位一个正在运行的进程。
pidof命令的原理是基于进程的名称来查找对应的进程ID。
当我们在命令行中输入"pidof 进程名"时,pidof命令会在系统进程表中搜索与指定名称匹配的进程,并将它们的ID打印出来。
pidof命令的工作原理可以通过以下步骤来解释:1. 首先,pidof命令会获取当前系统中正在运行的所有进程的信息。
这些信息存储在操作系统的进程表中,其中包含了每个进程的进程ID和名称等。
2. 然后,pidof命令会遍历进程表,逐个比较进程的名称和指定的进程名是否匹配。
如果找到匹配的进程,就将其进程ID记录下来。
3. 最后,pidof命令将找到的进程ID打印出来,以供用户查看。
需要注意的是,pidof命令只能返回与指定进程名完全匹配的进程ID。
如果有多个进程的名称部分或完全相同,pidof命令只会返回其中一个进程的ID。
如果需要获取所有匹配的进程ID,可以使用-p参数,如"pidof -p 进程名"。
除了基本的用法外,pidof命令还支持一些其他的选项,用于进一步过滤和定位进程。
例如,-s选项可以用于指定进程名的完整路径,以避免与同名的进程产生混淆。
-x选项可以用于指定进程名的完全匹配,而不是部分匹配。
在实际应用中,pidof命令有着广泛的用途。
例如,我们可以使用pidof命令来检查一个进程是否正在运行,或者通过进程ID来终止一个进程。