micropython_PID 适用于Python的PID库
2022-02-18 21:05:44 3KB Python
1
深圳市合信自动化技术有限公司PID-T库函数,带自整定功能。
2021-12-10 14:49:19 722B 温度PID
1
何为PID算法: 在过程控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制器(亦称PID调节器)是应用最为广泛的一种自动控制器。它具有原理简单,易于实现,适用面广,控制参数相互独立,参数的选定比较简单等优点;而且在理论上可以证明,对于过程控制的典型对象──“一阶滞后+纯滞后”与“二阶滞后+纯滞后”的控制对象,PID控制器是一种最优控制。 这个是我搜集的PID算法以及PID库资料。内容很全,等你下载打开后就知道了。 主要分为以下几类: STCunio数字电源带PID数字闭环。附件内容:包括pid控制数字电源源码、PID库PID库结合数控电源介绍说明、STCunio入门基础(如截图)。 位置式PID算法实现,C语言实现,源码来自老外。 增量式PID-STM32实现,介绍了整个增量式PID功能实现过程,主要包括PWM输出和捕获、增量式PID实现代码。 结合51单片机arduino完成步进电机,通过PID算法控制步进电机。附件内容包括:PID控制步进电机代码和库文件、演示视频。 PID调节控制做电机速度控制,包括模拟PID控制和数字PID控制、软件说明等。 数字电源实物图: PID算法以及PID库资料附件内容截图:
1
arduino-pid库测试器 一个简单的一次性程序,用于测试Arduino PID库
2021-11-04 21:41:51 2KB
1
arduino PID库.rar
2021-09-18 11:01:41 7KB
PID-增量式PID和位置式PID算法实现和PID库(51单片机+STM32+arduino完成).zip 分别用51单片机+STM32+arduino写的
2021-08-02 19:30:46 1.2MB PID 增量式PID 位置式PID PID库
1
前言: 开始之前先要说为什么要采用PID的算法来控制小车。玩过小车的DIY爱好者们都会碰到这样一种情况:为什么本该直线行驶的小车走着走着轨迹就会发生偏移,即所谓的“走不直”。 小车走不直的原因有:两个电机本身的驱动特性不可能完全相同,两个电机外形大小不可能是完全一致,组装时精度也会出现差异,另外轮胎在滚动时打滑、遇到细小的障碍物等因素都会造成左右轮的速度出现差异,从而走不直。开环控制是无法消除左右轮的速度误差的,因为上述的扰动是随机的。 要想小车走一条直线,唯有实现闭环控制,当小车受到扰动时能对左右轮及时给予反馈,修正两轮的速度偏差,从而可以走出一条直线。PID算法就是一种闭环控制算法,实现PID算法需得从硬件上实现闭环控制,即存在反馈,所以我采用的是带测速装置的电机。 项目简介: 本项目采用的是PID控制算法来修正小车行走时两轮的速度偏差,实现小车可以走直线。小车是使用一个安卓App来控制小车的行走路径,App通过App Inventor2来进行编写。 完成作品图: 需要用到的材料: 1. Arduino Uno 2. Arduino Uno的扩展板 3. DFRobot L298 双路2A直流电机驱动板 4. HC-05或HC-06的蓝牙模块 5. 坦克小车底盘 6. 两个带霍尔传感器的电机 7. 锂电池 8. 杜邦线若干 软件部分: 1. Arduino IDE 2. App Invent 附件内容截图:
2021-06-16 12:46:01 219KB pid库 电路方案
1
PID-小车类-PID算法控制小车直线行驶(制作步骤+程序+PID库).zip 里面包括了详细的制作步骤以及程序+PID库
2021-06-16 12:41:29 9KB PID PID算法 小车
1
PID-倒立摆-旋转倒立摆源码+PID库下载
2021-05-20 08:35:08 9KB PID 倒立摆 源码+PID库
1
### STM32 DSP库中PID库函数详解 #### 一、DSP库的使用 在STM32开发过程中,为了高效地实现数字信号处理(DSP)功能,STM32提供了专用的DSP库。对于PID控制应用而言,STM32的DSP库提供了一套完整的PID算法实现。下面详细介绍如何在STM32项目中集成并使用DSP库。 ##### 1. 使用runtimeenvironment包管理器时引入 当使用STM32CubeIDE或类似IDE时,可以通过runtimeenvironment包管理器来引入所需的DSP库。需要注意的是,在引入内核文件时可能会遇到问题。例如,手动加入`cmX.h`内核文件可能导致错误,因为runtimeenvironment会自动处理这些依赖关系。解决方法是: - 移除`includepath`中的内核头文件文件夹。 - 添加全局宏定义:例如`#define ARM_MATH_CM3`用于指定CM3内核,其他内核可根据需要修改为CM0~CM4。 ##### 2. 头文件 确保项目的编译选项中包含了DSP库的相关头文件路径,并且在源代码文件中包含必要的头文件,例如`arm_math.h`。 #### 二、PID数据参数 PID控制算法是一种常用的闭环控制系统,其核心在于计算比例(P)、积分(I)和微分(D)三个部分的加权和来调整控制输出。在STM32 DSP库中,PID算法支持浮点运算,这使得它能更加精确地进行控制。 ##### PID参数结构体 PID库中的PID参数结构体使用`float_32`格式的数据类型,该结构体通常定义为`arm_pid_instance_f32`,包含了比例(Kp)、积分(Ki)、微分(Kd)等参数。 - **比例因子(Kp)**:直接影响控制器的响应速度和控制效果。 - **积分因子(Ki)**:累积误差的作用,消除静态误差。 - **微分因子(Kd)**:预测未来的趋势,减小动态偏差。 ##### PID初始化 在使用PID库之前,需要调用`arm_pid_init_f32`函数进行初始化。此函数接受一个PID结构体指针`*S`和一个重置状态标志`resetStateFlag`作为参数。 ```c void arm_pid_init_f32(arm_pid_instance_f32 *S, int32_t resetStateFlag); ``` - `*S`: 指向PID结构体的指针。 - `resetStateFlag`: 控制是否重置内部状态。0表示不重置,1表示重置。 ##### PID重置 除了初始化之外,还可以使用`arm_pid_reset_f32`函数来重置PID控制器的状态。该函数同样接受一个PID结构体指针作为参数。 ```c void arm_pid_reset_f32(arm_pid_instance_f32 *S); ``` - `*S`: 指向PID结构体的指针。 #### 三、DSP库浮点数PID库函数 ##### 1. `arm_pid_init_f32` - **函数定义**: ```c void arm_pid_init_f32(arm_pid_instance_f32 *S, int32_t resetStateFlag); ``` - **参数**: - `*S`: 指向PID结构体的指针。 - `resetStateFlag`: 重置标志。0表示不重置,1表示重置。 - **注意事项**: - 此函数根据用户配置的Kp、Ki、Kd计算出A0、A1和A2。 - 通过设置`resetStateFlag`,可以选择是否初始化所有相关变量为0。 ##### 2. `arm_pid_reset_f32` - **函数定义**: ```c void arm_pid_reset_f32(arm_pid_instance_f32 *S); ``` - **参数**: - `*S`: PID控制数据结构实例指针。 - **注意事项**: - 此函数较为简单,仅负责将相关变量重置为0。 ##### 3. `arm_pid_f32` - **函数定义**: ```c static __INLINE float32_t arm_pid_f32(arm_pid_instance_f32 *S, float32_t in); ``` - **参数**: - `*S`: 浮点PID控制结构体实例。 - `in`: 输入样本,即当前值与设定值之差。 - **返回值**: - `out`: 处理后的输出样本。 - **注意事项**: - `in`参数是当前值与设定值之差,用于计算PID控制输出。 #### 四、PID使用过程 1. **初始化**:使用`arm_pid_init_f32`函数初始化PID结构体,并设置参数Kp、Ki、Kd以及重置标志。 2. **循环计算**:在控制循环中,不断调用`arm_pid_f32`函数来更新控制输出,其中输入参数`in`为当前测量值与目标设定值之差。 3. **重置状态**:如果需要重置PID控制器的状态,可以调用`arm_pid_reset_f32`函数。 通过以上步骤,可以有效地利用STM32的DSP库实现PID控制功能。这种方式不仅提高了控制精度,还简化了软件开发流程,是STM32在各种工业控制应用场景中的重要技术支撑。
2021-05-12 17:25:44 389KB STM32 DSP库
1