【单片机学习笔记】(36):理解应用PID算法,通过上位机查看波形以整定PID参数

理解应用PID算法

PID的实现方式分为两种—位置式和增量式。之前我用得比较多的是野火的位置式的PID计算代码,没怎么用增量式PID计算代码。

位置式PID更便于理解,增量式PID的实际应用更多。两者本质上并没有什么不同。在编写PID算法实现代码时需要注意,位置式PID需要有积分限幅和输出限幅,而增量式PID只需输出限幅。

算法推导过程截图的旧笔记链接如下:

【单片机学习笔记】(26):编码器、离散化PID算法推导、增量式PID与位置式PID比较、平衡车_wenhaiii的博客-CSDN博客

算法代码实现摘录旧笔记链接如下:

【单片机学习笔记】(27):sysTick知识补充、MPU6050、PID算法实现代码 、速度闭环内环控制_wenhaiii的博客-CSDN博客

【单片机学习笔记】(30):蓝牙通信、板球控制系统、串级PID_wenhaiii的博客-CSDN博客

参数整定相关摘录旧笔记链接如下:

【单片机学习笔记】(29):平衡车PID参数整定,基于sysTick的任务调度,STLink四线连接、上位机查看波形,定时器按键消抖_wenhaiii的博客-CSDN博客

[单片机学习笔记](35):串级PID算法应用剖析、通过串口控制电机、MPU6050获取平衡车姿态、自制平衡车PID算法程序设计_wenhaiii的博客-CSDN博客

更为详细的PID算法程序设计与参数整定参考本人上传的板球控制系统程序的相关注释

在串级PID两个环中,一个为主调,一个为副调。主调是串级系统中,要被调节的量的PID控制器;副调是串级系统中,输出直接去指挥执行器动作的PID控制器

一般来说,对于串级PID系统,主调为了调节被调量,副调为了消除干扰主调的死区可以降低甚取消,设置副调的死区就可以降低执行机构的动作次数了。

单纯比例调节:被调量变化多少,输出乘以比例系数的积就变化多少。

单纯积分调节(实际必须配合比例项):如果调节器的输入偏差不等于零,就让调节器的输出按一定的速度一直朝一个方向累加下去。(积分的作用仅仅是为了消除静态误差)

单纯微分调节(实际必须配合比例项):被调量不动,输出不动;被调量移动,输出马上动。(对于串级调节系统而言,主调的死区可以降低甚至取消。设置副调的死区就可以降低机构的动作次数了)(被调量存在不可避免的微笑波动的时候,不应该加微分,而因该加滤波)

最终所整定的系统,其调节效果应该是被调量波动小而平缓。在一个扰动过来之后,被调量的波动应该达到“一大一小两个波“的效果。

最重要的两个指标:被调量的波动范围执行机构的动作次数

时间滞后包括容量滞后纯滞后。容量滞后又包含测量滞后传送滞后

整定参数常用口诀

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

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

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

曲线漂浮绕大弯,积分时间往下降,

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

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

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

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

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

通过上位机查看波形以整定参数

想要进一步的理解PID的应用,强烈推荐看焦作华
润白志刚写的《由入门到精通-吃透PID 2.0版

白志刚:趋势读定法整定口诀

自动调节并不难,复杂系统化简单。

整定要练硬功夫,图形特征看熟练。

趋势读定三要素,设定被调和输出。

三个曲线放一起,然后曲线能判读。

积分微分先去掉,死区暂时也不要。

比例曲线最简单,被调与输出一般。

顶点谷底同时刻,升降同时同拐点。

波动周期都一样,静态偏差没法办。

比例从弱渐调强,阶跃响应记时间。

时间放大十来倍,调节周期约在内。

然后比例再加强,没有周期才算对。

                                         静差消除靠积分,能消静差就算稳。        

不管被调升或降,输出只管偏差存。

输入偏差等于零,输出才会不积分。

积分不可加太强,输出拐点仔细辨。

积分拐点再靠前,既消静差又不乱。

微分分辨最容易,输入偏差多注意。

偏差不动微分死,偏差一动就积极。

跳动之后自动回,微分时间管回归。

系统若有大延迟,微分超前最适宜。‘

风压水位易波动,微分作用要丢弃。

比例微分和积分,曲线判读特征真。

如果不会看曲线,多看杖策行吟文。

综合比较灵活用,盛极衰来扼杀因。

串级PID控制系统(例如串级PID板球控制系统)参数整定有5个需要上传到上位机的值:主调量设定值(目标坐标)、主调实际值(实际坐标)、主调的PID输出(目标速度)、副调的实际值(实际速度),副调的PID输出(控制速度值)

(甚至副调的PID输出值也可以不管,只要将相应的目标值和实际值去比较就行,最终效果要达到实际值能够快速跟踪目标值的效果。至于后面控制速度值如何转换成加速度,再转换成舵机角度不进行详细推导,只要保证是线性的转换关系就行)

用过三种上位机,移植过喵呜实验室与其上位机,移植过正点协议代码与匿名上位机,移植过野火协议代码与其上位机。没用过硬石的整定PID的上位机,但后面学无刷电机FOC控制时肯定还得学会用硬石的上位机。

喵呜上位机

只能查看四个通道,不过就算对于串级PID来说,能看四条波形也够用了(外环目标值,外环实际值,外环输出值/内环目标值,内环实际值)

主要移植optputdata.c  .h文件,以及usart.c  .h 的几个关键的宏定义及函数就行。

使用方法将需要上报的数值填入一个数组后,调用OutPut_Data();将数据上传,。关旧笔记链接如下:

【单片机学习笔记】(29):平衡车PID参数整定,基于sysTick的任务调度,STLink四线连接、上位机查看波形,定时器按键消抖_wenhaiii的博客-CSDN博客

匿名上位机

移植了正点原子的相关例程代码,暂时只定义了发送mpu6050的原始数据和欧拉角数据。经常用来查看MPU6050的姿态。

主要是移植debug_niming.c  .h 文件 usart.c  .h的关键函数和定义即可。

使用方法是调用mpu6050_send_data()usart1_report_imu()即可很方便查看mpu6050的数据,如果需要自行定义上报特定数据的功能函数,则要先定义一个数组,并参照上面两个函数的形式对数据进行处理,在函数的最后调用usart1_niming_report(),传入参数如何设定还需要看对照手册来确定。相关旧笔记链接如下:

https://blog.csdn.net/wenhaiii/article/details/120511886?spm=1001.2014.3001.5501

野火上位机

比较常用,功能也挺齐全,很方便进行PID参数的镇定,相应的协议也可以用在无线通信上用来保证数据传输可靠。电赛之前主要用这个来查看波形,最多可支持同时查看十个通道的波形。

主要是移植”protocol.c  .h”, ”control.c .h” , “bsp_pid.c  .h”, “bsp_debug.c  .h ” 以及 “stm32f1xx_it.c”里的串口中断回调函数

调试时在protocol.h里面“#define PID_ASSISTANT_EN  1”, 脱机运行时则将它注释掉

使用方法是调用”protocol.c  .h”  里定义的 set_computer_value(uint8_t cmd, uint8_t ch, void *data, uint8_t num),根据需要选择相应命令与通道值,最多同时查看5个通道的目标值和实际值,共10个波形。

协议相关代码码移植参考旧笔记,链接如下

【单片机学习笔记】(32):L298N H桥驱动电路原理、基于野火的通信协议进行PID参数设置、中断服务函数标志位注意事项、非独立IO口注意事项、野火PID助手调参失败原因_wenhaiii的博客-CSDN博客

### 回答1: 我可以回答这个问题。匿名上位机波形显示 PID 是一种常见的控制算法,用于控制系统中的稳定性和精度。PID 控制器可以根据系统的反馈信号来调整控制输出,以达到期望的控制效果。在匿名上位机中,可以通过波形显示来观察 PID 控制器的输出和系统的反馈信号,以便进行调试和优化。 ### 回答2: 匿名上位机波形显示PID(比例-积分-微分)控制器是一种常用于工业自动化系统中的控制算法。它是通过分析被控对象的反馈信号来实现精确控制的一种方法。 匿名上位机是一种通信工具,可以通过串口或者网络接口与被控对象进行通信,并对其进行监控和控制。波形显示是匿名上位机的一项功能,它可以实时绘制被控对象的输入输出信号的波形图,并通过图像直观地展示出这些信号的特征。 PID控制器是一种经典的控制算法,其通过不断调节被控对象的输出信号,使其与期望的输入信号保持一致。PID控制器包括三个参数:比例、积分和微分。比例参数的调整会影响响应速度和稳定性,积分参数的调整会影响系统的稳态误差,微分参数的调整会影响系统的抗干扰能力。 匿名上位机波形显示PID可以帮助工程师实时监测被控对象的输入输出信号,以及PID控制器的调节效果。通过观察波形图,可以直观地了解系统的动态特性,判断是否存在超调、振荡等问题,并及时调整PID参数以实现更好的控制效果。 在匿名上位机中,通过设置参数,选择要显示的信号,并将其连续采样并绘制成波形图。这些波形图可以用来评估系统的性能,并且可以与期望的输入信号进行比较,以评估控制器的准确性和稳定性。 总之,匿名上位机波形显示PID是一种非常实用的工具,它可以帮助工程师更好地理解和优化控制系统,提高系统的稳定性和性能。 ### 回答3: 匿名上位机波形显示PID,其实是一种通过匿名上位机软件实现的PID控制系统的可视化展示方式。传统的PID控制系统在运行过程中,往往仅能通过数字或者文本方式显示控制结果和参数调整情况,缺乏直观的图形化展示。而通过匿名上位机波形显示PID,可以将控制结果以波形的形式实时展示出来,便于用户直观了解系统的运行情况和控制效果。 匿名上位机软件是一种常用的开源软件,它可以通过串口或者网络连接与控制系统进行通信,实时接收和发送数据。在PID控制系统中,通过匿名上位机软件,可以将系统的输出信号、目标信号、误差信号等数据采集并送给上位机进行处理。上位机根据接收到的数据,可以绘制出相关的波形图,如输出信号、目标信号和误差信号随时间变化的波形图等。 通过匿名上位机波形显示PID,用户可以直观地观察到控制系统的工作状态,判断系统是否正常运行。同时,用户还可以通过对波形的观察,判断控制参数的调整效果,并进行相应的优化和改进。通过波形图的展示,可以更加直观地观察和分析PID控制的稳定性、精确度和响应速度等性能指标,从而提高系统的控制质量和性能。 总之,匿名上位机波形显示PID为用户提供了一种直观、可视化的PID控制系统展示方式,方便用户实时观察和分析系统的运行状态和控制效果,提高控制系统的性能和稳定性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值