开源飞控为我们提供了丰富的研究、实践、学习资料。为了平衡硬件与算法实践难度,本小节会以Multiwii开源飞控为例,挑选2.3版本控制器实现的部分代码与大家一同分析。完整代码或其他开源算法中的实现过程,大家可以通过互联网找到。在控制器设计中往往会涉及三个方面:误差的获取,基于误差的算法实现,控制信号的生成和输出。代码中errorGyroI[axis]+error体现了上一小节中积分运算的程序实现方式。......
2023-07-05
这是标准的基金会功能块,如图7-16所示。PID功能块提供了比例、积分和微分形式的计算控制。
PID运算是非迭代或ISA标准的算法。在这种运算体系中,GAIN被作用在PID的各项上,比例和积分仅作用在偏差上,微分运算作用在PV值上。功能块在自动模式时,由于微分运算的介入,用户改变SP值不会引起输出量的扰动。
只要偏差存在,PID功能将对偏差进行积分运算,即将输出向纠正偏差的方向进行。当初级和次级过程的时间常数不同时,如果需要,PID控制可以构成串级调节。
图7-16 PID控制算法功能块PID
1.正向和反向作用
通过选项参数CONTROL_OPTS中的“Direct acting”位来设置运动的正向或反向作用。
如果“Direct acting”为“真”(1),偏差值即为PV值和SP值的差值:
Error=PV-SP
如果“Direct acting”位为“伪”(0),即为“Reverse acting”(反向),偏差即为SP值和PV值的差值:
Error=SP-PV
“Direct acting”位的默认值为0,即“Reverse acting”(反向作用)。
2.前馈控制
PID功能块支持前馈运算。FF_VAL输入由外部值提供,该值与控制回路中的干扰值成比例关系。此值由FF_SCALE和OUT_SCALE参数转换为输出量程标准。此输出与FF_GAIN相乘后加到PID运算输出上,如图7-17所示。
图7-17 前馈控制示意图
a)无前馈 b)有前馈
如果FF_VAL输出状态为无效,上次可用的值将被使用。当状态位恢复正常时,FF_ VAL的差值需与BIAS_A/M相减,以避免与输出的扰动。
3.PID常数
GAIN(Kp)、RESET(Tr)和RATE(Td)是比例P、积分I和微分D运算的调节参数,其中GAIN是无量纲数,RESET和RATE是用秒来表示的时间参数。许多现有的控制器有几个或所有的参数用相反值进行调谐,例如“比例带”、每分钟的重复次数等。人机界面对这些参数一般都能适应用户的选择喜好。
4.旁路
当旁路方式工作时,SP值将不通过PID计算直接转换为OUT输出。当串级调节副环的PV是无效时,副环PID就使用旁路方式。
旁路方式运行的条件:CONTROL_OPTS中的“Bypass enable”位必须为真。
旁路方式参数为ON。
旁路参数ON/OFF开关控制旁路转换:默认情况下,只有在块模式Man或O/S时才可以转换。此外,当资源模块的FEATURES SEL中的“Change of bypass in an automatic mode”位为真时,控制模块也允许在自动模式下进行旁路切换。
为避免输出的扰动,旁路参数中有ON/OFF特别处理方式。当旁路切换为ON时,SP接受输出值OUT;在旁路切换为OFF时,SP接受PV的值。
5.输出跟踪
PID模块支持输出跟踪算法。在跟踪开关为ON时,允许输出强制改变为跟踪值。
为了激活输出跟踪功能,模块应满足以下条件:(www.chuimin.cn)
1)CONTROL_OPTS中的“Track enable”位必须为真。
2)目标模式为“Automatic”模式,即Auto、Cas、Rcas或Rout。
3)TRK_VAL和TRK_IN_D状态为可用,即状态是好或用STATUS_OPTS表示不确定状态也做好的用,“Use uncertain as good”位为真。
4)TRK_IN_D的值是激活的。
如果目标模式为Man(手动)时,除以上条件外还需要:
CONTROL_OPTS中的“Track in manual”位必须为真
在输出跟踪作用时,OUT输出将被OUT_SCALE转换过的TRK_VAL代替。输出限位状态变为常数,现实模式转变为LO。
若TRK_IN_D或TRK_VAL状态为不可用,输出跟踪功能将关闭,PID状态将回到正常操作状态。
6.块错误(BLOCK-ERR)
PID模块的错误反映了以下原因:
1)模块在O/S模式。
2)在BYPASS和SHED_OPT参数有无效值时发生设置错误。
7.支持的模式
支持模式为O/S、Iman、LO、Man、Auto、Cas、Rcas和Rout。
8.控制算法(Control Algorithm)
OUT=GAIN∗[E+RATE∗S∗PV/(1+α∗RATE∗S)+E/RESET∗S]+BIAS_A/M+FEEDFOWRARD
注:BIAS_A/M:内部BIAS按照自动模式计算(Rcas,Cas,Auto)。α=0.13。
9.PID控制功能块参数表
PID控制功能块参数见表7-9。
表7-9 PID控制功能块参数
(续)
(续)
(续)
有关现场总线及其应用技术的文章
开源飞控为我们提供了丰富的研究、实践、学习资料。为了平衡硬件与算法实践难度,本小节会以Multiwii开源飞控为例,挑选2.3版本控制器实现的部分代码与大家一同分析。完整代码或其他开源算法中的实现过程,大家可以通过互联网找到。在控制器设计中往往会涉及三个方面:误差的获取,基于误差的算法实现,控制信号的生成和输出。代码中errorGyroI[axis]+error体现了上一小节中积分运算的程序实现方式。......
2023-07-05
功能块PULSEGEN和功能块CONT_C一起,可实现具有脉冲输出的控制器,用于控制比例执行器。在参数分配期间,用户可以激活或取消激活PID控制器的子功能,以使控制器适合实际的工艺过程。......
2023-06-18
PI控制器在频率较低时主要起积分器的作用,而在高频时主要起线性比例放大器的作用。如果输入信号为单位阶跃信号时,其单位阶跃响应为其中,Kp=-R1/R0,PID控制器比例系数;Ti=R1C1,PID控制器积分时间常数;Td=R2C2,PID控制器微分时间常数。随着C2充电,反馈到输入端的电压逐渐增大,控制器输出电压逐渐降低。图4-7 PID控制器a)原理图 b)响应曲线......
2023-06-30
连续控制系统中的PID控制规律为式中 KP——比例系数;TI——积分时间常数;TD——微分时间常数;e——偏差;u——控制量。一个线性连续系统的模拟PID控制系统原理框图如图10-36所示。图10-36 模拟PID控制系统原理框图一个PID调节器的比例系数、积分时间常数和微分时间常数一旦确定,该控制器的性能随之确定。比例控制可以迅速反应误差,并减小稳态误差。积分控制的作用:积分控制可以对系统误差进行积分,输出控制量,以消除误差。......
2023-08-30
表1-30 采样周期的经验数据3.PID回路控制指令S7-200的PID指令没有设置控制方式,执行PID指令时为自动方式;不执行PID指令时为手动方式。PID指令的功能是进行PID运算。当PID指令的允许输入EN有效时,即进行手动/自动控制切换,开始执行PID指令。在一个应用程序中,最多可以使用8个PID控制回路,一个PID控制回路只能使用1条PID指令,不同的PID指令不能使用相同的回路编号。......
2023-06-26
PID控制器的功能结构示意图如图9-5所示。两种方式都可以定义PID控制器的控制方式与过程。图9-7 PID基本参数组态图9-7中,“控制器类型”项可以选择控制对象的类型,如温度控制器、压力控制器等,默认为以百分比为单位的通用常规控制器,该选择会影响后面参数的单位。......
2023-06-15
程序和顺序控制程序控制中的被控制量是时间的函数,被控制量按照预先规定的时间函数变化,如单晶炉的温度控制。比例积分微分控制控制器的输出是控制器输入的比例、积分、微分函数的组合。PID控制是应用最广、最常见、最易懂的控制技术。PID控制结构简单、参数容易调整,因此,无论模拟控制器或者数字控制器,多数使用PID控制。存在随机扰动信号的系统,仅用PID控制是达不到满意的性能指标的。......
2023-06-29
针对此问题提出模糊PID-D耦合算法,通过车身加速度判定路面的输入状态,然后通过模糊算法在线自适应调节PID-D微分系数,使整车在各状态运行时都可以适度减小及避免定点冲击,改善驾驶室的舒适性。车身垂向加速度论域:量化因子:表16-2微分系数调节模糊规则图16-25模糊PID-D系统......
2023-09-17
相关推荐