PID学习笔记

关于PID的一些基本概念

单回路:就是只有一个 PID 的调节系统。
串级:一个 PID 不够用怎么办?把两个 PID 串接起来,形成一个串级调节系统。又叫双 回路调节系统。
主调:串级系统中,要调节被调量的那个 PID 叫做主调。
副调:串级系统中,输出直接去指挥执行器动作的那个 PID 叫做副调
动态偏差:在调节过程中,被调量和设定值之间的偏差随时改变,任意时刻两者之间的 偏差叫做动态偏差
静态偏差:调解趋于稳定之后,被调量和设定值之间还存在的偏差叫做静态偏差。
回调:调节器调节作用显现,使得被调量开始由上升变为下降,或者由下降变为上升。
阶跃:被观察的曲线呈垂直上升或者下降,这种情况在异常情况下是存在的,比如人为 修改数值,或者短路开路。

P 纯比例作用趋势图的特征分析

一般来说,设定值不会经常改变,那就是说:当设定值不变的时候,调节器的输出只与 被调量的波动有关。那么我们可以基本上得出如下一个概念性公式:

** 输出波动=被调量波动*比例增益 **(注:当设定值不变)

结论:对于一个单回路调节系统,单纯的比例作用下,输出的波形与被调量的波形完全相似。
PS:输出量只与被调量的波动有关,因此,输出波形与被调量的波形完全相似。
在这里插入图片描述
推论:

  1. 对于正作用的调节系统,顶点、谷底均发生在同一时刻。
  2. 对于负作用的调节系统,被调量的顶点就是输出的谷底,谷底就是输出的顶点。
  3. 对于正作用的调节系统,被调量的曲线上升,输出曲线就上升;被调量曲线下降, 输出曲线就下降。两者趋势完全一样。
  4. 对于负作用的调节系统,被调量曲线和输出曲线相对。 波动周期完全一致。
  5. 只要被调量变化,输出就变化;被调量不变化,不管静态偏差有多大,输出也不会变化

I 纯积分作用趋势图的特征分析

**简述:**如果调节器的输如偏差不等于零,就让调节器的输出按照一定的速度一直朝一个方向累加下去。
(积分相当于一个斜率发生器。启动这个发生器的前提是调节器的输入偏差不等于零,斜率的大小与两个参数有关:输入偏差的大小、积分时间。)

总结:

  1. 输出的升降与被调量的升降无关,与输入偏差的正负有关。(ps:PWM_X与X的增加或者减小无关,与X和Aim_X之间的偏差有关)
  2. 输出的升降与被调量的大小无关。(ps:同上)
  3. 输出的斜率与被调量的大小有关。 (X大的话 变化就相对大?)
  4. 被调量不管怎么变化,输出始终不会出现阶跃扰动。(不管X怎么样变化,PWM_X不会出现阶跃变化,只能随时间累加或者累减)
  5. 被调量达到顶点的时候,输出的变化趋势不变,速率开始减缓。(X的变化率为0,PWM_X变化最慢(PWM_X=750-Ki*error),即error变化最小,PWM_X变化最小)
  6. 输出曲线达到顶点的时候,必然是输入偏差等于零的时候。(ps:error_X等于0,则输出变化率是0,即PWM_X变化率)
    在这里插入图片描述

T1~t2 error不变,即输入偏差不变,所以输出以不变的速率上升,即呈线性上升,相对于时间进行累加,调节器的输出缓慢改变,导致被调量逐渐受到影响而改变,,至于斜率为正是因为被调量小于设定值,系统需要使输出增加。

T2~t3被调量开始变化时,error逐渐减小,输出的速率开始降低,随时间累计速度减小。

T3~t4,t3时刻,偏差为0时,输出不变,输出曲线为水平。然后偏差开始为正时,输出才开始降低,斜率是负,而且Tout的负斜率绝对值变大。

后面就不写了,一样。。。

D纯微分作用趋势图的特征分析

单纯的微分作用是不存在的

概述:被调量不动,输出不动;被调量一动,输出马上跳变。

推论:

  1. 微分作用与被调量的大小无关,与被调量的变化速率有关; (PWM_X与X的大小无关,之于X的变化率有关)
  2. 与被调量的正负无关,与被调量的变化趋势有关;(X增加PWM_X减小,X减小PWM_X增大)
  3. 如果被调量有一个阶跃,就相当于输入变化的速度无穷大,那么输出会直接到最小或者最大;(同上)
  4. 微分参数 有的是一个,用微分时间表示。有的分为两个:微分增益和微分时间。微分增益表示输出波动的幅度,波动后还要输出回归,微分时间表示回归的快慢。见图, KD 是微分增益,TD 是微分时间。
    在这里插入图片描述
  5. 由第 4 条得出推论:波动调节之后,输出还会自动拐回头。

温习一下:
比例作用:输出与输入曲线相似。
积分作用:只要输入有偏差输出就变化。
微分作用:输入有抖动输出才变化,且会猛变化。

增量式、位置式PID算法

增量式PID

在这里插入图片描述

源码

下面是我自己的板球PID算法,小球坐标作为反馈,输出两路PWM控制舵机,但是PID参数整定我并不太擅长,下面的参数并不是最佳的。

.

	
		Kp=240;	                              //参数
		Kd=0;
		Ki=9;
		
		Aim_X=86;                             //目标点
		Aim_Y=72;
		
		Err_X=Aim_X-X;                    
		Err_Y=Aim_Y-Y;
		
							
		P_x=Kp*(Err_X-Err_X_LAST);
		D_x=Kd*(Err_X-2*Err_X_LAST+Err_X_LAST_LAST);
		I_x=Ki*Err_X;	
		
		P_y=Kp*(Err_Y-Err_Y_LAST);
		D_y=Kd*(Err_Y-2*Err_Y_LAST+Err_Y_LAST_LAST);
		I_y=Ki*Err_Y;
		
		PWM_X+=(P_x+D_x+I_x);                 
		PWM_Y+=(P_y+D_y+I_y);
		
		Err_X_LAST=Err_X;
		Err_Y_LAST=Err_Y;
		
		Err_X_LAST_LAST=Err_X_LAST;
		Err_Y_LAST_LAST=Err_Y_LAST;

		
		if(PWM_Y>820)PWM_Y=820;  //1250                                  //pid输出限幅度 防止抽风
		if(PWM_Y<650)PWM_Y=650;  //250
		
		if(PWM_X>830)PWM_X=830;
		if(PWM_X<600)PWM_X=600;
		
		
		TIM_SetCompare1(TIM14,PWM_X);	//修改比较值,修改占空比      输出pid计算值
		TIM_SetCompare1(TIM13,PWM_Y);	//修改比较值,修改占空比

位置式 PID

在这里插入图片描述
e(k): 用户设定的值(目标值) - 控制对象的当前的状态值(不要减错了 不然会进行反向调节)
e(k-1):上一次误差
e(i):当前error

源码

	Kp=4.4;	                              //pd参数
   	Kd=196;//?
   	Ki=7.6;

   	Aim_X=86;                             //目标点
   	Aim_Y=72;
   	
   	Err_X=X-Aim_X;                    
   	Err_Y=Y-Aim_Y;
   	
   	
   	
   	PWM_X=740-(Err_X*Kp+(Err_X-Err_X_LAST)*Kd+(PID_i+Ki*(Err_X-Err_X_LAST)));                //增量式pd计算
   	PWM_Y=750-(Err_Y*Kp+(Err_Y-Err_Y_LAST)*Kd+(PID_i+Ki*(Err_X-Err_X_LAST)));
   	
   	
   	PID_i=PID_i+Ki*(Err_X-Err_X_LAST);
   	
   	if(PWM_Y>900)PWM_Y=900;  //1250                                  //pid输出限幅度 防止抽风
   	if(PWM_Y<580)PWM_Y=580;  //250
   	
   	if(PWM_X>920)PWM_X=920;
   	if(PWM_X<600)PWM_X=600;
   	
   	Err_X_LAST=Err_X;
   	Err_Y_LAST=Err_Y;
   	
   		TIM_SetCompare1(TIM14,PWM_X);	//修改比较值,修改占空比      输出pid计算值
   		TIM_SetCompare1(TIM13,PWM_Y);	//修改比较值,修改占空比

PID整定方法

一是理论计算整定法,它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。

二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。

PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。

三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。现在一般采用的是临界比例法。

调试步骤

1.负反馈

自动控制理论也被称为负反馈控制理论。首先检查系统接线,确定系统的反馈为负反馈。例如电机调速系统,输入信号为正,要求电机正转时,反馈信号也为正(PID算法时,误差=输入-反馈),同时电机转速越高,反馈信号越大。其余系统同此方法。

2.PID调试一般原则

a.在输出不振荡时,增大比例增益P。

b.在输出不振荡时,减小积分时间常数Ti。

c.在输出不振荡时,增大微分时间常数Td。

3.一般步骤

a.确定比例增益P

确定比例增益P 时,首先去掉PID的积分项和微分项,一般是令Ti=0、Td=0(具体见PID的参数设定说明),使PID为纯比例调节。输入设定为系统允许的最大值的60%70%,由0逐渐加大比例增益P,直至系统出现振荡;再反过来,从此时的比例增益P逐渐减小,直至系统振荡消失,记录此时的比例增益P,设定PID的比例增益P为当前值的60%70%。比例增益P调试完成。

b.确定积分时间常数Ti

比例增益P确定后,设定一个较大的积分时间常数Ti的初值,然后逐渐减小Ti,直至系统出现振荡,之后在反过来,逐渐加大Ti,直至系统振荡消失。记录此时的Ti,设定PID的积分时间常数Ti为当前值的150%~180%。积分时间常数Ti调试完成。

c.确定微分时间常数Td

积分时间常数Td一般不用设定,为0即可。若要设定,与确定 P和Ti的方法相同,取不振荡时的30%。

d.系统空载、带载联调,再对PID参数进行微调,直至满足要求。

PID常用口诀:

参数整定找最佳,从小到大顺序查

先是比例后积分,最后再把微分加

曲线振荡很频繁,比例度盘要放大

曲线漂浮绕大湾,比例度盘往小扳

曲线偏离回复慢,积分时间往下降

曲线波动周期长,积分时间再加长

曲线振荡频率快,先把微分降下来

动差大来波动慢。微分时间应加长

理想曲线两个波,前高后低4比1

一看二调多分析,调节质量不会低

注:以上资料部分来源网络,如有侵权请及时联系删除。

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zato 是一个 Python 编写的开源企业服务总线(ESB),用于构建和集成微服务应用程序。下面是在 Ubuntu 系统上安装 Zato 的步骤: 1. 确保你的系统上已经安装了 Python 2.7 或 Python 3.4+。 2. 安装 Zato 的依赖项。在终端中运行以下命令: ``` $ sudo apt-get update $ sudo apt-get install gcc python-dev libxml2-dev libxslt1-dev zlib1g-dev ``` 3. 下载 Zato 安装程序。在终端中运行以下命令: ``` $ wget https://zato.io/downloads/3.1/zato-3.1.0.tar.gz ``` 4. 解压缩 Zato 安装程序。在终端中运行以下命令: ``` $ tar xvfz zato-3.1.0.tar.gz ``` 5. 进入解压缩后的目录。在终端中运行以下命令: ``` $ cd zato-3.1.0 ``` 6. 运行 Zato 安装程序。在终端中运行以下命令: ``` $ ./install.sh ``` 7. 按照提示进行安装。在安装过程中,你需要设置 Zato 的管理员密码和 Web 管理界面的端口号等信息。 8. 安装完成后,启动 Zato 服务器。在终端中运行以下命令: ``` $ zato start ``` 9. 检查 Zato 服务器是否启动成功。在终端中运行以下命令: ``` $ zato status ``` 如果看到类似以下输出,则表示 Zato 服务器已经启动成功: ``` Zato services status: * Load balancer is running (/opt/zato/3.1.0/zato-lb1.pid) * Server1 is running (/opt/zato/3.1.0/server1.pid) * Server2 is running (/opt/zato/3.1.0/server2.pid) * Scheduler is running (/opt/zato/3.1.0/zato-scheduler.pid) ``` 恭喜你,现在你已经成功安装了 Zato!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值