STM32的DSP库中PID的使用介绍

STM32使用PID调速 PID算法是一种闭环控制系统中常用的算法,它结合了比例(P)、积分(I)和微分(D)三个环节,以实现对系统的控制。它的目的是使控制系统的输出值尽可能接近预期的目标值。在PID算法中,控制器通过不断地测量实际输出值和目标值之间的误差,并使用比例、积分和微分部分的控制参数来调整控制系统的输出值。比例部分根据误差的大小进行控制,其输出与误差成正比。积分部分根据误差的历史累积值进行控制,其输出与误差积分的结果成正比。微分部分根据误差的变化率进行控制,其输出与误差变化率成正比。 阅读详情

最近工程需要用到PID控制,正好STM32的DSP库有DIP函数,所以研究了下

先看数据参数:

typedef struct
{
    float32_t A0; /**< The derived gain, A0 = Kp + Ki + Kd . */
    float32_t A1; /**< The derived gain, A1 = -Kp - 2Kd. */
    float32_t A2; /**< The derived gain, A2 = Kd . */
    float32_t state[3]; /**< The state array of length 3. */
    float32_t Kp; /**< The proportional gain. */
    float32_t Ki; /**< The integral gain. */
    float32_t Kd; /**< The derivative gain. */
} arm_pid_instance_f32;

使用的时候只需要设置比例、积分、微分的比例因子即可。

/*PID库中的PID参数结构体 是float_32格式数据 */

arm_pid_instance_f32 PID;

/* 1、设置PID参数 */
PID.Kp = PID_PARAM_KP; /* Proporcional --比例参数 */
PID.Ki =  PID_PARAM_KI;         /* Integral         --积分参数*/
PID.Kd = PID_PARAM_KD; /* Derivative     --微分参数*/

/* 2、初始化PID的参数, */

arm_pid_init_f32(&PID, 1);

       void arm_pid_init_f32(arm_pid_instance_f32 * S, int32_t resetStateFlag)

      该函数是通过用户配置了Kp,Ki,Kd后,通过该函数获得A0,A1,A2。第二个参数是初始化标志位,设1即为初始化。

      

while (1) {
			/* 计算误差 */
			float pid_error = TEMP_CURRENT - TEMP_WANT;
			
			/* Calculate PID here, argument is error */
			/* Output data will be returned, we will use it as duty cycle parameter */
			duty = arm_pid_f32(&PID, pid_error);


       

DSP28335 PID实现高压电路自动调压 搞了一下午,总算实现PID稳定调压,目前精度是5V,范围是100V到4000V,电路设计,此处不表。主要是记录一下DSP的PID调试过程。 还是先赘述一下PID: 工科电子狗,PID全靠网上参考,说说心得: 1. 小明接到任务,向木桶加水,。。。。这个讲PID比较生动形象,连接如下:https://www.zhihu.com/question/23088613 2. 直接上原理框图和公... 阅读详情

相关推荐

别再手动配置了!用STM32CubeMX一键开启DSP库,5分钟搞定FFT和PID算法工程

本文介绍了如何使用STM32CubeMX一键配置DSP库,快速实现FFT和PID算法开发。通过图形化界面简化传统繁琐的配置流程,大幅提升开发效率,特别适合STM32F4/F7/H7系列芯片的数字信号处理应用。

chenkai5182的博客 461

【嵌入式】STM32利用arm-dsp库进行PID调节控制

在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称 PID 控制,又称 PID调节。其原理介绍教科书以及网上已经有大量资料,本文着重介绍在嵌入式设备中,如何快速上手进行PID控制。 ...

spiremoon的博客 1万+

从PID控制到音频处理:实战解析CMSIS-DSP库在STM32上的高效应用

本文深入探讨了如何利用ARM的CMSIS-DSP库在STM32平台上高效实现PID控制和音频处理等应用。通过详细解析库的核心模块和实战案例,展示了如何充分发挥Cortex-M4内核的FPU和DSP能力,提升嵌入式系统的实时性能和处理效率。

weixin_33693070的博客 273

(转)安富莱stm32 pid介绍以例子

第15章 ControllerFunctions的使用(PID控制)    本期教程主要讲解控制函数中PID部分,PID的应用十分广泛,希望初学的同学认真学习这部分知识。    15.1 PID介绍    15.2 PID形象解释    15.3 CMSIS的PID库    15.4 浮点数PID库    15.5 定点数Q31格式PID库    15.6 定点数Q15格式PID库    15.7...

bubuxindong的专栏 7792

从PID控制到音频FFT:实战解析CMSIS-DSP库在STM32上的高效用法

本文深入解析CMSIS-DSP库在STM32平台上的高效应用,涵盖PID控制、音频FFT和传感器滤波三大场景。通过M4内核的FPU和DSP指令集优化,实现电机控制、音频频谱分析等高性能处理,提供参数配置、内存优化和实时性能监测等实用技巧,助力开发者提升嵌入式信号处理效率。

weixin_42522575的博客 148

告别浮点运算卡顿:在STM32CubeIDE中为G4系列配置IQmath库的保姆级教程

本文详细介绍了如何在STM32CubeIDE中为STM32G4系列配置IQmath库,以解决浮点运算卡顿问题。通过定点数模拟浮点运算,IQmath库能显著提升计算效率,特别适合实时控制系统开发。教程涵盖库获取、项目配置、性能对比及高级应用技巧,帮助开发者优化STM32G4系列芯片的数学运算性能。

weixin_30628801的博客 536

STM32的DSP库中PID库函数过程详解

STM32的DSP库中PID库函数过程详解 去发现同类优质开源项目:https://gitcode.com/ 在此仓库中,我们为您提供了STM32的DSP库中PID库函数过程的详细说明。该资源文件将帮助您了解如何在STM32的数字信号处理器(DSP)库中使用PID(比例-积分-微分)控制函数。 本资源文件包含以下内容: PID控制原理简介 STM32 DSP库中PID函数的调用方法 PID参数的...

gitblog_06760的博客 460

汇编语言优化的STM32 DSP库设计与实践

STM32的数字信号处理(DSP)库是一组经过优化的、面向数据流操作的例程集合,特别适用于处理数学和信号处理任务。该库提供了一系列数学函数,如乘法、加法和数字滤波,以满足实时性能要求较高的应用需求。使用这些库可以显著减少开发时间,同时提高代码的执行效率和精确度,是实现高性能应用的重要工具。

weixin_42361478的博客 1218

STM32的DSP库中PID库函数过程详解:助力精准控制,优化开发效率

STM32的DSP库中PID库函数过程详解:助力精准控制,优化开发效率 去发现同类优质开源项目:https://gitcode.com/ STM32的DSP库中PID库函数过程详解,专注于数字信号处理器中的PID控制函数,助力开发者实现更精准的控制效果。 项目介绍 在现代工程实践中,PID(比例-积分-微分)控制器被广泛应用于各种控制系统中,以实现精确的流程控制。本项目旨在深入剖析STM32的DS...

gitblog_06785的博客 782

STM32 HAL库 PID算法库

有3种PID算法函数,拿来就可以用。增量PID、位置PID

STM32的DSP库中PID库函数过程。

STM32的DSP库中PID库函数过程。

从PID控制到音频处理:用STM32的CMSIS-DSP库能玩出哪些花样?附源码工程

本文探讨了如何利用STM32的CMSIS-DSP库实现从PID控制到音频处理的高性能数字信号处理应用。通过M4内核的FPU和DSP指令集,开发者可以在资源有限的微控制器上实现专业级信号处理,包括电机控制、传感器滤波和音频频谱分析等。文章提供了详细的源码工程和优化技巧,帮助开发者充分发挥硬件潜力。

weixin_30847865的博客 408

MDK-ARM_pid_stm32f407keil5_stm32f407_电机PID_mdk-arm_源码.zip

MDK-ARM_pid_stm32f407keil5_stm32f407_电机PID_mdk-arm_源码.zip

从FFT到PID:手把手教你用STM32的DSP库搞定几个实际信号处理小项目

本文详细介绍了如何利用STM32的DSP库实现实际信号处理项目,包括音频频谱分析、电机PID控制和传感器噪声滤除。通过FFT、PID算法和滤波技术的实战应用,帮助开发者高效处理信号,提升系统性能。文章还提供了工程优化技巧,如内存对齐和编译器配置,确保DSP库发挥最大效能。

janckywong963的专栏 429

绕过卡巴斯基通过RPC控制lsass注入DLL

参考国外的XPN以及3gstudent大佬的文章: https://blog.youkuaiyun.com/xiangshen1990/article/details/104872566 https://gist.github.com/xpn/93f2b75bf086baf2c388b2ddd50fb5d0 原理:正常的ssp扩展(dll)可以加载到lsass进程中去,比如kerberos验证都是通...

2ed 3523

复合材料RVE建模与力学性能分析实战指南

代表体积元(RVE)建模是复合材料多尺度分析的核心技术,通过建立微观结构与宏观性能的定量关联,可准确预测材料力学行为。本文基于ABAQUS平台,详细解析三材料(纤维/基体/界面相)RVE建模全流程,包括参数化几何建模、周期性网格划分策略、材料属性定义技巧等关键技术环节。针对碳纤维增强环氧树脂等典型复合材料,提供网格控制参数建议和材料参数参考表,并重点说明周期性边界条件的实现方法与验证标准。通过Python脚本自动化处理和优化分析流程,可显著提升计算效率,为复合材料设计提供可靠仿真依据。

weixin_34062469的博客 547

【免费下载】 STM32ARM官方DSP库:高效数字信号处理的利器

随着嵌入式系统在各个领域的广泛应用,数字信号处理(DSP)成为了提高系统性能的关键技术之一。本文将向您推荐一款专为STM32/ARM处理器设计的官方DSP库,它能够极大简化开发流程,提升开发效率。 ## 项目介绍 STM32ARM官方DSP库是一个开源项目,提供了一系列专为STM32/ARM处理器优化的数字信号处理算法。这些算法不仅适用于工业控制、机器人领域,还能在音频处理、图像处理等多个领域...

gitblog_06737的博客 866

MCGS触摸屏数据记录与U盘导出配置全解析

在工业自动化现场,数据记录是设备运行状态分析与故障追溯的基础。HMI触摸屏作为人机交互核心,不仅承担实时监控任务,还负责过程数据的存储与导出。理解数据采集周期、存盘机制与存储介质的匹配原理,能帮助工程师高效配置数据记录功能。合理运用定时存盘、存盘组与U盘导出,可支撑设备趋势分析、报表生成及事故排查。本文以MCGS触摸屏为例,详解数据记录的完整组态流程,并汇总常见配置陷阱与排查思路,为现场调试与长期运维提供可落地的技术参考。

weixin_34253126的博客 459

print函数 stm32_STM32 DSP库函数详解

对于每个函数,都存在浮点数和定点数的类型,由于使用方法是一致的,这里我们仅以32为浮点数为例来说明。一.BasicMathFunctions1.绝对值pDst[n] = abs(pSrc[n]), 0 <= n < blockSize示例float32_t*pSrc;float32_t*pDst;uint32_tblocksize;arm_add_f32(pSrc,pDst,bl...

weixin_28839601的博客 1354

保姆级避坑指南:用IWR6843ISK毫米波雷达实现区域检测,从软件安装到可视化调试全流程

本文提供IWR6843ISK毫米波雷达区域检测的全流程实战指南,涵盖环境搭建、固件烧录、可视化工具配置及性能优化等关键步骤。重点解决软件版本兼容性、烧录失败等常见问题,帮助开发者高效实现精准区域检测,避免开发过程中的常见陷阱。

weixin_42653691的博客 374

STM32H743内存告急?手把手教你用CubeMX+FMC外扩32MB SDRAM(W9825G6KH-6)

本文详细介绍了如何在STM32H743上使用CubeMX和FMC外扩32MB SDRAM(W9825G6KH-6),解决内存不足问题。从硬件选型、CubeMX配置到初始化代码实现,提供完整的配置教程和性能优化技巧,帮助开发者高效扩展内存,适用于图形界面和复杂算法处理。

weixin_30568591的博客 492

【亲测免费】 STM32/ARM官方DSP库

STM32/ARM官方DSP库 【下载地址】STM32ARM官方DSP库 STM32/ARM官方DSP库为开发者提供了一套高效的数字信号处理算法,专为STM32/ARM处理器设计,能够显著简化开发流程。该库包含多种实用算法,如PID算法,适用于工业控制和机器人等领域的闭环控制;以及FFT快速数学三角函数,用于信号处理中的...

gitblog_06745的博客 698

orange软件:入门使用

orange做数据分析契机实验手册目录orange软件部分界面展示小试牛刀:数据导入和展示小试牛刀:散点图绘制总结 契机 今天在上大数据时代实验课,作为一名软件工程专业的大三学生,在上这节公选课之前就决定这节课做完这个学期所有的实验报告,可以说“有亿点”不屑;尤其当老师说Python很麻烦的时候,我更是震惊了,因为我接触过这么多编程语言,Python真的很友好了,很傻瓜,但是当老师打开实验手册的时候,我真香了!!!下面先来看看手册的目录: 实验手册目录 为什么会真香呢,因为目录里这些有好多机器学习算法!

weixin_45880844的博客 1万+
上一篇: Debian 某些程序无法使用中文输入法设置方法
下一篇: Debian环境安装Flash Player
代码很单纯,复杂的是人。
博客等级 码龄18年 95粉丝 53原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值