打印
[范例教程]

PID速度控制和位置控制函数

[复制链接]
1511|48
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mickit|  楼主 | 2023-7-16 12:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

float PID_DATA1(float speed,float snum)//speed 期望速度,snum 实测速度
        {
        float incrementSpeed; //当前值
        pid.SetSpeed = speed;//设定的期望速度
        pid.err = pid.SetSpeed - snum; //偏差值= 设定的速度-实测的速度
        pid.s_error+=pid.err;//偏差积累
incrementSpeed = (pid.Kp + pid.Ki + pid.Kd)*pid.err - ( pid.Kp + 2* pid.Kd)*pid.err_next+pid.Kd*pid.err_last;//计算
pid.ActualSpeed += incrementSpeed;//实际输出值
        pid.err_last = pid.err_next;
        pid.err_next = pid.err;
                if( pid.ActualSpeed>pid.SetSpeedMAX){ pid.ActualSpeed=pid.SetSpeedMAX;}
                if( pid.ActualSpeed<-pid.SetSpeedMAX){ pid.ActualSpeed=-pid.SetSpeedMAX;}
        return pid.



float PID_DATA2(float speed,float snum)//speed 期望位置,snum 实测位置
{
float incrementSpeed; //当前值
pid.SetSpeed = speed;//设定的期望位置
pid.err = pid.SetSpeed - snum; //偏差值= 设定的位置-实测的位置
pid.s_error+=pid.err;//偏差积累
incrementSpeed = (pid.Kp + pid.Ki + pid.Kd)*pid.err - ( pid.Kp + 2* pid.Kd)*pid.err_next+pid.Kd*pid.err_last;//计算
pid.ActualSpeed = incrementSpeed;//实际输出值
pid.err_last = pid.err_next;
pid.err_next = pid.err;
if( pid.ActualSpeed>pid.SetSpeedMAX){ pid.ActualSpeed=pid.SetSpeedMAX;}
if( pid.ActualSpeed<-pid.SetSpeedMAX){ pid.ActualSpeed=-pid.SetSpeedMAX;}
return pid.ActualSpeed;ActualSpeed;

使用特权

评论回复
沙发
weifeng90| | 2023-7-17 08:17 | 只看该作者
有本讲PID算法的书

使用特权

评论回复
板凳
OKAKAKO| | 2023-7-22 13:26 | 只看该作者
PID算法其实还是比较实用的一个经典算法

使用特权

评论回复
地板
中国龙芯CDX| | 2023-7-24 13:09 | 只看该作者
没明白楼主这个函数的意思,建议楼主适当讲解一下

使用特权

评论回复
5
jf101| | 2023-7-24 13:35 | 只看该作者
PID算法楼主直接放公式在上面了?建议还是分开调节使用比较好

使用特权

评论回复
6
小夏天的大西瓜| | 2023-7-25 12:31 | 只看该作者
位置式PID与增量式PID

使用特权

评论回复
7
LOVEEVER| | 2023-7-26 18:52 | 只看该作者
PID很经典的控制算法

使用特权

评论回复
8
sesefadou| | 2023-8-9 15:04 | 只看该作者
一些PID控制函数可能需要较多的计算资源和存储空间

使用特权

评论回复
9
minzisc| | 2023-8-9 15:22 | 只看该作者
PID控制器的参数和调节方**影响控制系统的响应速度和精度。一些函数库或控制器可能提供了不同的PID控制模式或参数设置,可以根据具体需求选择合适的模式和参数。

使用特权

评论回复
10
pl202| | 2023-8-9 16:04 | 只看该作者
选择合适的控制函数可以提高系统的响应速度、准确性和鲁棒性。

使用特权

评论回复
11
updownq| | 2023-8-9 20:56 | 只看该作者
PID控制器的不当调节可能导致系统稳定性问题

使用特权

评论回复
12
lihuami| | 2023-8-9 21:21 | 只看该作者
根据实际需求,设定一些性能指标,例如稳态误差、响应时间等。这些指标将指导 设计PID控制器时如何权衡比例、积分和微分的贡献。

使用特权

评论回复
13
alvpeg| | 2023-8-14 08:42 | 只看该作者
PID控制算法可能涉及大量的计算和数据处理。在选择函数时,要考虑可用的处理能力、存储资源等因素

使用特权

评论回复
14
chenqianqian| | 2023-8-14 08:47 | 只看该作者
PID经典控制算法

使用特权

评论回复
15
backlugin| | 2023-8-14 09:49 | 只看该作者
不同的PID函数可能具有不同的调节算法和参数设置方式

使用特权

评论回复
16
modesty3jonah| | 2023-8-14 12:38 | 只看该作者
首先要明确控制系统所期望达到的目标,例如速度控制还是位置控制。不同的控制目标可能会导致不同的控制策略和参数设置。

使用特权

评论回复
17
ingramward| | 2023-8-14 13:52 | 只看该作者
选择PID速度控制和位置控制函数时,需要考虑控制系统的需求、控制对象的特性、稳定性、性能和复杂性等因素。

使用特权

评论回复
18
lzmm| | 2023-8-14 16:14 | 只看该作者
了解PID控制函数的算法实现方式。有些函数可能使用传统的PID控制算法,而其他函数可能包含了改进的控制算法,如自适应控制或模糊控制等。选择适合您需求的算法类型和实现方式。

使用特权

评论回复
19
modesty3jonah| | 2023-8-14 16:22 | 只看该作者
对系统的速度进行闭环控制,则选择具有PID速度控制功能的函数。如果你需要对系统的位置进行闭环控制,则选择具有PID位置控制功能的函数。

使用特权

评论回复
20
pixhw| | 2023-8-14 16:34 | 只看该作者
在某些情况下,速度控制比位置控制更适用于需要快速动态响应的系统,而在其他情况下,位置控制可能更适合需要更精确位置控制的系统。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

1105

帖子

1

粉丝