STM32

STM32是STMicroelectronics(意法半导体)推出的一系列基于ARM Cortex-M内核的32位微控制器(MCU)产品。这些微控制器提供了广泛的产品系列,覆盖了多种不同的性能和功能需求,适用于各种应用领域,包括工业控制、汽车电子、消费类电子、医疗设备等。

STM32系列微控制器以其高性能、低功耗、丰富的外设接口和灵活的开发工具而闻名。它们通常具有丰富的存储器、多种通信接口(如UART、SPI、I2C、CAN等)、模拟数字转换器(ADC)、定时器、PWM输出等功能,以满足不同应用场景下的需求。

STM32微控制器通常使用标准的ARM Cortex-M内核,包括Cortex-M0、M0+、M3、M4和M7等,这些内核具有不同的性能和功耗特性,可根据具体应用的需求进行选择。此外,STM32系列还提供了多种封装和引脚配置,以满足不同尺寸和集成度的要求。

STMicroelectronics为STM32系列提供了丰富的开发工具和支持资源,包括基于ARM开发环境的集成开发环境(IDE)、调试器、评估板和参考设计等。这些工具和资源有助于开发人员快速开发和部署他们的应用,并提供了全面的技术支持和文档资料,帮助用户充分发挥STM32微控制器的性能和功能优势。

在用Keil对STM32的程序进行仿真时程序有时会跑飞,停止仿真程序会停在HardFault_Handler函数里的死循环while(1)中。

这说明STM32出现了硬件错误。

STM32硬件错误的调试技巧
硬件错误中断

STM32出现硬件错误可能有以下原因:
① 数组越界操作;
② 内存溢出,访问越界;
③ 堆栈溢出,程序跑飞;
④ 中断处理错误;

遇到这种情况,可以通过以下2种方式来定位到出错代码段。

方法1:

在硬件中断函数HardFault_Handler里的while(1)处打调试断点,程序执行到断点处时点击STOP停止仿真。

STM32硬件错误的调试技巧
示例

1.2 在Keil菜单栏点击View——Registers Window,在寄存器查看窗口查找R14(LR)的值。

如果R14(LR) = 0xFFFFFFE9,继续查看MSP(主堆栈指针)的值;如果R14(LR) = 0xFFFFFFFD,继续查看PSP(进程栈指针)的值;

我的程序R14(LR) = 0xFFFFFFF9,接下来以此为例。

STM32硬件错误的调试技巧
寄存器信息

1.3 在Keil菜单栏点击“View”——“Memory Windows”——“Memory1”;

在“Address”地址栏中输入MSP的值:0x20001288,然后在对应的行里找到地址。

地址一般以0x08开头的32位数。本例中,地址为0x08003CB9。

STM32硬件错误的调试技巧
内存信息

1.4 在Keil菜单栏点击View——Disassembly Window,在Disassembly窗口中右击,在下拉菜单中选择Show Disassemblyat Address...。

在弹出框Show Code atAdress的地址框中输入地址0x08003CB9进行搜索,然后就会找到相对应的代码。这里的代码就是进入循环中断之前的情况。

仔细查看附近区域的相关代码来排查错误具体原因。

STM32硬件错误的调试技巧

方法2:

2.1在硬件中断函数HardFault_Handler里的while(1)处打调试断点,程序执行到断点处时点击“STOP”停止仿真。

STM32硬件错误的调试技巧
CallStack

2.2 在Keil菜单栏点击View——Call Stack Window弹出Call Stack + Locals对话框。

然后在对话框中右键选择Show Caller Code,就会跳转到出错之前的函数处,仔细查看这部分函数被调用或者数组内存使用情况。


本文转自:
小麦大叔,转载此文目的在于传递更多信息,版权归原作者所有。如不支持转载,请联系小编demi@eetrend.com删除。
围观 162

问题:

该问题由某客户提出,发生在 STM32F103VDT6 器件上。据其工程师讲述:在其产品的设计中,STM32 的 HSE 外接 8MHz 的晶体产生振荡,然后通过 STM32 内部的PLL 倍频到 72MHz,作为 STM32 的系统时钟,驱动芯片工作。在 STM32 片外有专用的看门狗芯片,监控 STM32 的运行。STM32 内部的软件会在 STM32 的某个管脚上产生脉冲来复位看门狗。一旦 STM32 没有及时的产生脉冲来复位门狗,则看门狗会认为 STM32 运行不正常,从而复位 STM32。在对该产品做可靠性测试时,进行了对看门狗监控时钟失效能力的测试。测试的方法是:将 HSE 外接的晶体的两个端子接地,使其停止振荡,从而验证看门狗能否做出对 STM32 的做出复位动作。试验结果表明,看门狗没有产生复位动作。进一步测试发现,STM32 在失效情况下仍在向看门狗发送复位脉冲。

调研:

重复测试,确认其所述现象属实。检查软件代码,确认其软件没有开启 STM32 的 CSS功能。修改代码,将 PLL 的二分频从 STM32 的 MCO 管脚送出,以方便用示波器观察。通过控制晶体的管脚是否接地来控制 HSE 是否振荡。当 HSE 正常振荡时,MCO 送出的信号频率为 36MHz,当 HSE 停止振荡时,MCO 送出的信号的频率在 1.7MHz 附近,如图(一)所示:

“时钟失效之后,STM32还能运行?"

“时钟失效之后,STM32还能运行?"

通过调试器观察寄存器 RCC_CFGR 中的 SWS 控制控制位,其值为[10],说明此时的系统时钟确实来自 PLL 的输出。

从 STM32F103VD 的数据手册中查找 PLL 相关的参数如表(一):

“时钟失效之后,STM32还能运行?"

其中,PLL 的输出频率范围是 16MHz – 72MHz。也就是说,PLL 在处于相位锁定的状态下,可以输出 16MHz – 72MHz 的时钟信号。而当输入信号频率过低而导致输出信号频率低于 16MHz 时,将可能处于失锁的状态。在这状态下,它的输出信号的频率与输入信号的频率之间,不一定符合所设定的倍频与分频关系。更确切的说,不能通过公式:

“时钟失效之后,STM32还能运行?"

得出“输入信号频率为零时,输出信号频率也为零”这样的结论。这一点与实测的结果相吻合。

结论:

STM32 的 PLL 在没有输入信号的情况下,仍能维持在最低的频点处振荡,产生输出。以至,CPU 及其它外设仍能在 PLL 送出的时钟的驱动下运行。所以,通过判断有无时钟来驱动 CPU 执行指令的方式来判断 HSE 是否失效是行不通的。

处理:

对软件做如下修改:

1. 在软件的初始化部分,开启 STM32 的 CSS 功能;

2. 修改 NMI 中断服务程序,加入 while(1) 陷阱语句;

开启 CSS 功能后,当 HSE 失效时,STM32 会自动开启 HSI,并将系统时钟的来源切换到HSI 的输出,同时产生 NMI 中断。这样,程序的流程将停留在 NMI 中而不能产生复位片外的看门狗的脉冲。当片外看门狗溢出后,就会复位 STM32,使其恢复到正常驻的状。

建议:

STM32 中的 CSS 功能是专门为检测和处理 HSE 失效而设计的。但该功能在 STM32 复位后是被禁止的,须要软件对其使能才会发挥作用。当 CSS 单元检测到 HSE 失效时,它会使能 HSI,并将系统时钟切换到 HSI。同时,它会关闭 HSE,如果 PLL 的输入信号来自 HSE的输出,它也会关闭 PLL。CSS 单元在做时钟调整的同时,也会产生一个 NMI 中断请求,和一个送给高级定时器的刹车信号。NMI 中断请求会产生一个 NMI 中断,以便用户程序可以在中断服务程序中做紧急处理,而刹车信号则是使高级定时器进入刹车状态,以防止由其控制的电机驱动桥臂由于失去控制而过流。用户程序可以在 NMI 中断服务程序中尝试恢复 HSE 及 PLL 的功能,也可以使用陷阱让程序的流程停留在服务程序中,从而等待看门狗复位整个系统。

“时钟失效之后,STM32还能运行?"

来源:鱼鹰谈单片机
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 17

STM32 用户界面设计环境新增屏幕旋转和纹理映射功能,支持性能强大的 Neochrom 图形加速器

服务多重电子应用领域、全球排名前列的半导体公司意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)公布了STM32 微控制器图形用户界面设计软件TouchGFX 4.20版。最新的软件更新支持意法半导体新推出的 Neochrom 图形加速器。新款图形加速器集成在意法半导体的先进微控制器产品中,例如STM32U5系列

“意法半导体发布STM32

意法半导体 Chrom-ART Accelerator™ 图形加速技术可以处理像素和形状,源自这项技术的Neochrom支持全屏旋转到任何角度,并支持纹理映射,实现光滑、流畅的图形,增强易用性。

全球知名消费电子公司松下多年来一直在用 TouchGFX 和 STM32 微控制器开发家电产品。松下电器软件开发(大连)有限公司设备解决方案开发中心主任Wang Cong表示:“TouchGFX 工具的质量和设计,以及我们在 ST 的支持下实现的出色用户体验,有助于提升我们的品牌知名度和体验。 TouchGFX 能够让我们的工程师提高工作效率”。

片上 集成Neochrom加速器后,最新的 STM32微控制器大幅提升了嵌入式图形处理性能,接近当今智能手机和平板电脑的应用处理器水平。另一方面,微控制器更经济实惠、更节能、更好用,可以运行在FreeRTOS 和 Microsoft® Azure ThreadX 等简单的操作系统上,甚至可以裸机运行。

意法半导体微控制器和数字芯片产品部旗下通用微控制器产品部执行副总裁Ricardo de-sa-Earp 补充说: “现在,TouchGFX 4.20让世界各地的开发者利用我们新推出的高能效STM32 MCU在嵌入式系统中释放 Neochrom的图形加速性能。”

TouchGFX 4.20 为开发人员增加了更多重要的新功能,包括支持导入和导出自定义小部件。该开发环境包括 TouchGFXDesigner图形开发工具和 X-CUBE-TOUCHGFX嵌入式软件,后者还提供了在目标微控制器上运行用户界面所需的全部固件。 TouchGFX全都集成在STM32Cube MCU 开发生态系统内,提供完整的端到端工作流程,简化产品设计,缩短上市时间。

TouchGFX 4.20现已上线,免费下载使用,下载链接:https://www.st.com/en/embedded-software/x-cube-touchgfx.html

阅读我们的博文:https://blog.st.com/touchgfx/

关于意法半导体

意法半导体拥有48,000名半导体技术的创造者和创新者,掌握半导体供应链和先进的制造设备。作为一家半导体垂直整合制造商(IDM),意法半导体与二十多万家客户、数千名合作伙伴一起研发产品和解决方案,共同构建生态系统,帮助他们更好地应对各种挑战和新机遇,满足世界对可持续发展的更高需求。意法半导体的技术让人们的出行更智能,电力和能源管理更高效,物联网和互联技术应用更广泛。意法半导体承诺将于2027年实现碳中和。详情请浏览意法半导体公司网站:www.st.com

围观 29

基于STM32环形队列来实现串口接收数据

cathy的头像

说在前面

码代码的应该学数据结构都学过队列。环形队列是队列的一种特殊形式,应用挺广泛的。因为有太多文章关于这方面的内容,理论知识可以看别人的,下面写得挺好的:STM32进阶之串口环形缓冲区实现。

代码实现

环形队列数据结构

typedef struct ringBuff{
    unsigned int in;               //写入的位置
    unsigned int out;              //读出的位置
    unsigned char buffer[RING_BUFF_SIZE];     //数据域
}stRingBuff;

写一字节数据到队列

设计师和开发人员在进行嵌入式系统UI 设计时经常会在协同方面遇到问题。而Qt 是 ST 合作伙伴计划的成员之一,它的框架可简化 STM32 的工作流,实现开发者与设计者的完美协同。

Qt 是一个由Qt Company开发的跨平台图形UI应用程序开发框架。最近,Qt对在ST的 MPU 上使用他们的工具进行了简化。Qt Board Support Package (QBSP) 安装指南展示了如何为 STM32MP157A 创建 Linux 启动映像。此外,Qt还提供 STM32的演示图像和 STM32MP157F-DK / STM32MP157-EVAL 开发工具的板级支持包。因此,将相同的应用程序及其 UI 从 MCU 移植到微处理器更容易了。在ST的解决方案中是如何使用Qt的呢?让我们详细介绍一下。

“让开发者疯狂爱上STM32

Qt:弥合设计和开发之间的差距

Qt 是包括框架及一系列工具和库的一个生态系统,主要用于在移动设备、PC 和嵌入式系统上开发应用程序。它弥合了设计和开发之间的差距。事实上,许多团队在从设计阶段进入开发阶段时进度会变慢,会遇到很多挑战。在 Photoshop 中设计 UI 时是无法预见到框架的复杂性或编程语言的局限性的。因此,当设计人员将他们的工作交给开发人员时,会带来很多挑战,例如如何创建一个反应敏捷的设计。同样,设计师也会觉得他们的想法没有被开发人员充分实现。这样的反反复复会很影响项目进度和团队士气,延长产品上市时间。

Qt采用不同的设计方法解决了这个问题。Qt Design Studio 使 UI 专家能够从 Photoshop 中导入自己的作品并使用线框来开发界面。What you see and what you get (所见即所得) 界面和基于时间线的动画可以更直观地创建环境。一旦设计师将他们的工作交给开发人员,这套工具就会显示执行优化、编写应用程序逻辑等的代码。开发人员还可以访问更复杂的 IDE,例如 Qt Creator IDE。仅具备以上这些功能还不够。ST 和 Qt 必须确保库、软件和框架能够在 STM32 MCU 和 MPU 上高效运行。

Qt助力提升性能

工程师在权衡 STM32 上的 Qt 是否适合自己的项目时,首先考虑的就是框架的性能。在与Qt合作期间,我们了解到了他们的解决方案如何利用我们的IP。比如,Qt针对ST的 ChromART 加速器或 STM32MP1 的 GPU 对它的库进行了优化,因此在相关硬件的助力下,让ST的MCU 和 MPU 上使用相同的代码库更具吸引力。 Qt 还提到,有些客户在采用Qt框架时看到性能提升了,并为UI带来了新的功能和更丰富的特性。这是因为 ST一直在与 Qt 合作,在他们为ST的器件优化代码时提供支持。

Qt充分激发STM32 MCU/MPU的潜力

Qt 在几年前进入微控制器领域,并与 ST 合作为STM32提供支持。这是该公司第一次在 Cortex-M 处理器上运行他们的库和框架,为ST的多款 MCU(从 STM32F7 、STM32H7到 STM32L4) 创建了二进制文件。因此,工程师可以在更多的开发板上进行概念验证。研发团队会更轻松地说服他们的主管,并且可以从更接近最终产品的配置开始。此外,当开发人员在需要满足特定功能安全标准的设置下使用 MCU 时,只需使用 Qt Safe Renderer就能更快地获得认证。
工程师青睐 Qt 的另一个原因是他们可以轻松地将MCU 应用程序移植到 STM32MP1 MPU。更丰富的资源和Linux操作系统让从MCU到MPU的过渡更容易。研发团队只需关注基本的实现问题,如加载脚本或硬件计时器,而无需担心库和性能。从 MCU 迁移到 MPU 还会涉及显示尺寸或分辨率的变化。Qt 通过提供可创建响应敏捷的用户界面的工具,解决了这个问题。总之,Qt为 STM32提供的支持,使研发团队可以更顺利地迁移到不同的平台,从而缩短产品上市时间。

来源:STM32
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 224

2022 STM32 线上技术周

说起嵌入式技术,STM32可以说是开发者心目中一个响当当的品牌。经过多年发展,意法半导体已成为全球通用MCU厂商。如今的STM32家族包含1,200多款MCU和MPU产品,分为十八条产品线。值此STM32嵌入式技术诞生十五周年之际, 意法半导体2022年STM32中国线上技术周于7月18 - 22日隆重举办。

首届STM32中国线上技术周汇聚众多生态系统合作伙伴、开发者和客户,展示各种基于ST产品开发的最新创新成果。意法半导体管理层、行业合作伙伴及工程师带来了35场高能演讲,以及“最热”的产品与技术解决方案演示,真可谓嵌入式技术领域的一场风云际会。

在活动开幕日上,意法半导体总裁兼首席执行官 Jean-Marc Chery通过视频发表了热情洋溢的主题演讲,分享了ST的公司愿景与未来的发展规划。他指出,中国是意法半导体最重要的市场之一,不仅仅是针对MCU市场。ST的战略源于三个长期赋能社会发展的趋势:智能出行,电源&能源,物联网&互联,而STM32嵌入式处理解决方案在促进这些趋势发展过程中发挥着重要作用,尤其是工业应用。他还特别强调,在ST推动STM32技术创新及STM32Cube生态系统建设过程中,始终将开发者需求放在首位。未来,ST将继续创新,加大资源投入,力争为用户提供市场上最好的开发环境。

“STM32发展三大关键词:战略平台化,客户稳健化,生态有机化"

意法半导体执行副总裁兼通用微控制器子产品部总经理Ricardo.De-Sa-earp在主题演讲中,向大家诠释了研判MCU市场和供应链发展趋势和所面临的挑战,以及ST为继续创新和发展通用MCU应用的主要战略举措。

意法半导体执行副总裁,中国区总裁Henry CAO阐述了STM32如何助力中国客户创新。ST致力于为中国开发者提供更安全、更互联和更智能的创新设计思路和解决方案,不仅通过各种线上线下技术盛会,还致力于中国嵌入式人才培养和本地化支持,以强大的全球及本地生态合作伙伴为用户提供更全面的技术赋能。

通用MCU:挑战与机遇并存

Ricardo指出,受汽车、工业应用、家庭和建筑自动化以及节能行业增长推动,市场对MCU的需求非常强劲。MCU以更低的价格带来更强的计算能力,让终端系统能够获得更丰富的感知、用户和数据界面等功能。系统能够处理来自传感器越来越多的数据,驱动更多的电力系统,提供更复杂的用户界面。

从供应链角度来看,行业整体交货期还是较长。ST与客户密切合作,通过评估替代产品和解决方案,尽量减少对供应链的影响,同时加大投资,扩大在克罗尔和阿格雷特的300 mm晶圆产能,为90 nm和40 nm新产品提供增长潜力。

“STM32发展三大关键词:战略平台化,客户稳健化,生态有机化"

工业市场占通用MCU市场(不包括汽车MCU和MPU)的52%。据Omdia预计,到2026年这一数据将提升至65%。推动市场增长的主要动力包括:能效、云连接、无线连接、人工智能(AI)的普及(尤其是在预测性维护领域)、电动汽车基础设施开发以及能源使用优化(在专业和个人建筑环境中使用能源)。ST的战略重点是通过开发者社区为这些领域的开发者提供解决方案。
让STM32开发者更轻松

ST与合作伙伴社区一起不断丰富Cube生态系统中的附加扩展板、软件驱动程序、中间件、应用实例、AI扩展工具包。使用STM32Cube生态系统的开发者数量在大幅增加,5年来年均复合增长率(CAGR)达到27%,远高于市场增长率。

“STM32发展三大关键词:战略平台化,客户稳健化,生态有机化"

除了提供资源,ST和合作伙伴还在专业和学术领域开展大量培训计划,在线上提供超过150小时的慕课课程。6月初,ST在网站上推出STM32开发者专区,将开发STM32产品时所需内容整合起来,让开发者轻松访问,轻松开发。

不断提升嵌入式处理性能

STM32不断通过创新的功能模块和低功耗性能来强化产品内容,尤其注重增加更多无线连接功能,提供更高级的安全特性,提供AI功能及提高计算能力,并由生态系统提供支持,让客户在整个产品组合中自由挑选。

支持客户云连接应用

客户群和应用需要越来越多的云连接(我们称之为“云化”)以及与其他设备的互连。系统需要各种无线技术,从Bluetooth、Zigbee、Thread、Matter、Wi-Fi、UWB等短程连接到Sub-GHz和蜂窝技术等远程连接。

“STM32发展三大关键词:战略平台化,客户稳健化,生态有机化"

据ABI预测,未来五年通用 MCU的无线市场将以每年24% 的速度增长。ST正在开发支持所有标准的产品,并与STM32Cube生态系统完全兼容。此外,无线MCU还利用STM32Trust平台,并内置安全特性,借助STM32Cube扩展包实现原生云连接。

赋能信息安全

STM32Trust平台为客户带来实现安全可靠系统所需的工具和特性,客户可在该平台使用混淆和加密等技术保护其软件(IP保护),还可使用针对单个产品的唯一识别密钥来认证连接至网络的设备。

“STM32发展三大关键词:战略平台化,客户稳健化,生态有机化"

ST的安全性以Global Platform全球平台发布的针对IoT平台的安全标准为基础,拥有完整的SESIP 3级认证产品。ST将为需要SESIP 4级认证的应用定义具有Secure Enclave安全飞地和原生安全服务的平台。对于更关键的应用,ST凭借附加安全芯片STSafe,已具备提供Common Criteria通用标准5级保护的能力。

让边缘端AI成为现实

ST在最近的资本市场日预先发布了STM32N6,这是首款嵌入意法半导体开发的Neural-ART NPU加速器的MCU。ST提出一种相当于采用AI硬件加速的四核MPU推理性能,能效提高12倍,推理能力成本提高11倍。智能城市领域的一些领先客户已在其新系统中围绕STM32N6与我们进行了合作。

“STM32发展三大关键词:战略平台化,客户稳健化,生态有机化"

因为有了STM32Cube.AI和NanoEdge.AI studio,客户也可在其现有平台上实施AI解决方案,无需等待STM32N6,无需内部AI专家团队即可构建AI解决方案,并快速推向市场。

STM32 MPU:提升面向工业应用的处理性能

根据IC Insights和ST内部估计,嵌入式MPU市场预计在未来五年内将以每年7%的速度增长。MPU是ST下一个增长产品,为STM32带来更完整的产品组合。

ST的目标是利用cube生态系统,为庞大的客户群提供嵌入式MPU解决方案。客户可以像使用STM32 MCU一样选择、配置和使用STM32MP产品。ST还在开源软件中提出差异化解决方案,例如OpenSTLinux平台,它是OSS社区中的参考32位平台。

“STM32发展三大关键词:战略平台化,客户稳健化,生态有机化"

MPU产品组合由24条产品组成,提供单双A7 ARM内核解决方案,并集成适合实时应用处理的Cortex M4内核。产品中丰富的以太网和CAN接口,非常适合工业应用;其GPU和显示接口,也非常适合图形系统和网关。

自ST在2020年首次推出该产品系列以来,已经有超过150家客户实现3倍年增长率,主要涵盖智能家居和智能建筑、POS系统、工厂自动化解决方案、数字电源和能源管理系统以及系统级模块(SOM)制造领域。

ST通用MCU未来规划

未来5年内,全球通用MCU市场将以每年9%的速度增长。ST将在以下三个领域超越市场:

通用 MCU:这源于ST高度创新的解决方案和生态系统
无线MCU:这源于ST可覆盖所有连接标准,并具有STM32Cube生态系统和安全认证解决方案支持
嵌入式MPU:这源于ST的新产品和软件解决方案

“STM32发展三大关键词:战略平台化,客户稳健化,生态有机化"

面对饱和的供应链,ST将与客户密切合作,处理紧急情况并寻找解决方案,利用强大的产品组合提高灵活性,如新推出的STM32C0和STM32G0产品系列,并投资扩大产能,为新产品系列服务。

ST正在通过强大的新产品开发路线图,解决围绕无线连接、AI解决方案、安全性、超低功耗和高性能MCU和MPU的重大市场演变,让STM32继续为行业带来创新的产品和生态。

STM32以平台化战略塑造工业市场

“如何在不确定性中寻找确定性,这是关键所在。对于STM32来说,只有不断深化产品,根据边际效用递增原则,打造符合市场需求的一站式产品平台。”意法半导体中国区市场部卢永海强调。

据OMDIA数据,2020年工业市场规模为410亿美金, 预计2023年可达480亿美金。ST 拥有广泛的产品线, 包括STM32 MCU、强大的功率和模拟产品线(IGBT,SIC ,GAN,功率驱动)等,关键就是覆盖工业应用对芯片的全方面需求。

一方面,风光水储新能源、5G、数字经济、云、服务器、数字电源等领域对半导体产生强劲需求。另一方面,工业4.0时代用工荒和劳动力之间的矛盾,机器自动化代替人的趋势驱动下,未来工业发展的热点和需求包括:无线连接能力、全方位的安全保护、边缘AI,及电机控制及电源智能化。

“STM32发展三大关键词:战略平台化,客户稳健化,生态有机化"

针对市场需求,ST确定了以电源和能源,电机控制及自动化为STM32的主力市场和发展重心,打造STM32全方位产品平台阵营,覆盖从低端到高端,从低成本到高性能,从简单性应用到复杂性应用,从支持蓝牙、Lora无线应用的STM32WB、STM32WL,到可以运行LINUX 的STM32MPU系列。

工业自动化,一个典型的工业自动化系统核心组成包括HMI , PLC 和IO 扩展模块,伺服控制,编码器,变频器,步进电机控制器,及通讯板卡。近年来,工业自动化客户由小变大, 由弱变强, 从单一产品到涵盖工业自动化全方面产品系统组合,平台化的自动化产品需要平台化的MCU 和功率电源驱动芯片为之服务,而且可以覆盖从低成本到高性能,从低端到高端的产品应用需求。

电机控制,是工业控制的核心领域。典型的电机控制主要组成包括:电流环,速度环,位置环,功率单元,位置和速度检测控制单元,主控和通讯部分。

在MCU主控部分,ST推荐STM32G0(64MHz )/G4(170MHz )/H7(550MHz )/F4(180MHz)。在编码器部分,ST推荐主频170MHz的AD 4M, 带硬件过采样模块的STM32G4。中国市场上的头部企业已经把G4 作为变频器和编码器将来的主要平台。

“STM32发展三大关键词:战略平台化,客户稳健化,生态有机化"

在伺服PLC控制方面,F4已经被广泛应用。如果用户有性能和资源升级化需求,ST推荐STM32F7/H7,主频550MHz ,FLASH 为2M , RAM 为1M 。STM32已占据目前伺服市场主要份额, 并成为头部供应商。目前市场通讯协议主要有CAN OPEN、ETHERCAT、RS485 , Ethercat 正在成为主流, 已有两家头部工业自动化客户通过FPGA 实现EtherCAT IP Core ,并且成为STM32+FPGA( 内嵌的Ethercat IP CORE )主流平台和架构。

ST的平台化战略不仅体现于在整体上打造针对工业自动化的STM32, 还体现于针对重要的细分领域如电机控制打造其专属平台化解决方案。比如STM32G0 入门级32位 MCU, 满足低成本应用相对简单的电机控制,例如风机、水泵、电动工具、电动自行车等简单应用;STM32G4 主流型MCU, 主频170MHz ,集成了众多模拟外设,满足变频器、编码器、步进伺服等中端应用;高性能MCU STM32F4(180MHz ) /F7( 216MHz) /H7 (550MHz)满足PLC 、Servo 从低端到高端的应用。所有单核F4/F7/H7 在144 PIN 及以上甚至可做到PIN TO PIN 兼容。

在数字电源市场,目前主流架构是用STM32G4 + STM32H7 作为主控。G4 具有达到184ps高精度TIMER ,H7的 TIMER精度达NS 级,非常适合数字电源应用。目前几家头部企业已经进入量产阶段。

光伏逆变器和储能新能源是个强劲增长的领域, 也是ST的发展重点。典型光伏逆变器系统主要包括通讯监控, HMI 和逆变,拉弧检测快速关断。针对单三相逆变器核心主控,ST推荐单核STM32H743/H753/双核H745/G491,可轻松实现处理PFC、MPPT,以及逆变的功能算法。目前市场上几家头部企业正在使用STM32H7 单双核做逆变器和储能的主控器, 已经进入量产,正在取代传统DSP进入平台性使用阶段。对于HMI 和通讯监控部分 ,STM32占据了绝对市场份额。对于新的设计或者性能提升的用户需求,ST推荐单核和双核STM32H7以及G4 /F4。

“STM32发展三大关键词:战略平台化,客户稳健化,生态有机化"

在人机交互方面,STM32系列同样表现出色。对于低阶显示应用,ST推荐STM32G0,仅一颗入门型MCU便能实现320x240彩屏显示。对于分辨率在800x600,只需要单缓存的情况,推荐STM32H7A3,直接使用内置1MB SRAM作为图像缓存,无需外扩SDRAM。如需进一步的图像处理,推荐STM32H723或者H725系列,主频高达550MHz,可以更好地对图像进行编辑,实现更好的动态效果。对于习惯使用开源系统Linux的用户,可以选用STM32MP1,分辨率最大支持1366x768,并且支持MIPI接口。ST还提供免费的TouchGFX图像开发工具,让显示效果更加炫酷。

STM32软硬件生态是平台化的有机组成

在打造平台化MCU的同时,ST也在加强生态建设。优秀的平台化产品和稳健的客户是基础,生态作为有机组成,两者相辅相成。

在硬件方面,ST为STM32系列配置了一系列开发板和评估板,方便用户快速评估加快产品上市。在软件方面,ST已推出最新的针对电机控制的软件包SDK5.Y,源码全部开放,把对电机控制的想法,算法和积累分享给所有用户。

“STM32发展三大关键词:战略平台化,客户稳健化,生态有机化"

在功能安全方面,客户出口工业产品往往需要各种产品认证,如SIL2、SIL3、CLASS B等。STM32能够给用户提供完整的已通过TUV 认证的 SIL2/SIL3 软件包和资料,适用于IEC61508 ,以及在此基础上延申的更多行业标准如 61800等。许多客户已使用ST的软件库,产品涉及BMS 、电机控制器、电梯控制器、伺服控制器等。ST的目标是将功能安全性能涵盖所有的STM32产品,将其打造成为针对功能安全的百宝箱。

“STM32发展三大关键词:战略平台化,客户稳健化,生态有机化"

以优秀的平台化STM32产品战略为依托, 以稳健的工业客户群为基础,以丰富强大的生态为有机组成,与客户同目标,共成长,笃行致远,这就是STM32最终的确定性!期待来年的STM32峰会上与你分享STM32平台与生态的更多突破与创新!

来源:STM32
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 233

我们把搜集到的开发者需求汇总,并更新在垂直应用板块,STM32开发者们可以在这里找到各个应用相关的硬件,软件资源,参考设计文档,Demo视频,培训课程或资料等,最近上线的AI 人工智能页面可带你解锁以下丰富资源。

“【收藏】开发者资源汇总-STM32人工智能应用"

嵌入式机器学习能以简单、快速、经济划算的方式来改进许多应用。

预测性维护、物联网产品、智能楼宇、资产追踪、人员计数……集成了人工智能之后,许多应用将变得更加智能!

面向STM32的人工智能解决方案可全面并迅速帮助您在产品中嵌入机器学习功能!

“【收藏】开发者资源汇总-STM32人工智能应用"

市场方向

预测性维护

Predictive Maintenance,简称PdM 。是指通过对设备进行数据收集和状态监测,在故障发生之前,就预测可能出现的故障隐患。并在故障损害发生之前,提出防范措施,更换相关零部件。

数千个STM32产品型号均允许用户通过Nanoedge AI Studio 和STM32Cube.AI工具链实施机器学习和神经网络,从而实现预测性维护的机器学习和深度学习算法。STM32完善全面的生态体系及工业领域的广泛应用帮助客户更好的实现预测性维护。例如:

“【收藏】开发者资源汇总-STM32人工智能应用"

计算机视觉

嵌入式计算机视觉,具有:响应速度快、带宽低、隐私性好、低成本、低功耗的优势。

STM32 MCU 通过STM32Cube.AI的工具,以及STM32 MPU加上X-LINUX-AI可以帮助客户快速的实现计算机视觉中 图像分类和目标检测。 这些计算机视觉能力,可以广泛的应用在各种需要计算机视觉的实际场景中。同时,AI具有的这些优势能力,正在启发越来越多的客户使用场景。

“【收藏】开发者资源汇总-STM32人工智能应用"

音频和传感

低功耗语音识别,STM32的优势在于在语音识别基础上的丰富通用外设和型号组合,相比较AP方案,功功耗。All-in-1 STM32可以使用场景:

  • 显示+语音:可穿戴、智能家居 

  •   无线+语音:智慧照明

  •   控制+语音:家电(空调、洗衣机)

“【收藏】开发者资源汇总-STM32人工智能应用"

软件及工具

面向STM32的人工智能解决方案 ,可提供以下三种工具或软件的支持。

“【收藏】开发者资源汇总-STM32人工智能应用"

1. NanoEdge AI Studio,您的机器学习向导。

“【收藏】开发者资源汇总-STM32人工智能应用"

NanoEdge AI Studio有数以百万计可用的预构建模型,能够轻松为嵌入式设备生成库。

即使您对于AI不太熟悉,只需几天就能创建一个完整的产品!例如,基于其异常检测、分类或回归算法,该工具让您可以轻松开发预测性维护应用。

NanoEdge AI Studio工具介绍视频

 产品下载
  说明

NanoEdge AI Studio

面向STM32开发人员的自动化机器学习 (ML) 工具

2. STM32Cube.AI,有此软件工具在手,即可助您储存和优化人工神经网络。

“【收藏】开发者资源汇总-STM32人工智能应用"

NanoEdge AI Studio有数以百万计可用的预构建模型,能够轻松为嵌入式设备生成库。

即使您对于AI不太熟悉,只需几天就能创建一个完整的产品!例如,基于其异常检测、分类或回归算法,该工具让您可以轻松开发预测性维护应用。

STM32Cube.AI工具介绍视频

产品编号   说明

STM32CubeMX

STM32Cube初始化代码生成器
X-CUBE-AI STM32CubeMX的AI扩展包

通过STM32功能包加速开发

为了简化应用程序开发,我们提供关于重要用例(例如计算机视觉、传感,以及状态监测)的代码示例。我们的功能包完整集成了人工神经网络与预处理/后处理功能,并连接到微控制器外设。

这些软件包帮助您节省宝贵的时间,使您能够专注于人工神经网络模型,让您的应用程序脱颖而出。

产品编号   说明
FP-AI-SENSING1 STM32Cube功能包,用于超低功耗物联网节点,具有基于音频和运动  传感的人工智能(AI)应用
FP-AI-VISION1  STM32Cube功能包,用于高性能STM32,带有用于计算机视觉的人工 智能(AI)应用
FP-AI-NANOEDG1 STM32Cube的人工智能(AI)状态监测功能包
FP-AI-FACEREC STM32Cube的人工智能(AI)面部识别功能包
FP-AI-CTXAWARE1 STM32Cube功能包,用于分布式人工智能(AI)的超低功耗情景感知
FP-AI-MONITOR1 STM32Cube功能包面向超低功耗STM32,基于多种传感器实现人工智能 (AI) 监控应用

3. STM32 MPU的Linux扩展包

  产品编号   说明
X-LINUX-AI 用于AI计算机视觉应用的STM32 MPU OpenSTLinux扩展包
STEVAL-STLKT01V1 SensorTile开发套件

硬件

面向STM32的人工智能解决方案

STM32芯片对AI工具的支持

“【收藏】开发者资源汇总-STM32人工智能应用"

可用于AI评估的STM32开发板

产品编号 说明
B-L475E-IOT01A STM32L4探索套件,包含IoT节点、低功耗无线解决方案、BLE、NFC、SubGHz和Wi-Fi
STEVAL-STLKT01V1 SensorTile开发套件
STEVAL-STWINKT1B 用于工业IoT应用的STWIN SensorTile无线工业节点开发套件和参考设计
STM32L562E-DK 配备STM32L562QE MCU的探索套件
STM32H747I-DISCO

配备STM32H747XI MCU的探索套件

STM32MP157C-DK2 配备STM32MP157C MPU的探索套件
STM32MP157F-DK2 配备STM32MP157F MPU的探索套件
Avenger96 基于STM32MP157A的Avenger96板源自96Boards
B-CAMS-OMV 摄像头模块套装,用于STM32板

设计资源

*点击编号/文档可查看下载

STM32人工智能相关资

如何在OpenMV生态系统中集成STM32Cube.AI生成的代码 实战经验
UM2526_X-CUBE-AI 人工智能 (AI) 扩展包入门 用户手册
UM2611_STM32H7 微控制器的人工智能   (AI) 和计算机视觉功能包 用户手册
UM2870_用于STM32Cube通过分布式人工智能 (AI) 实现超低功耗环境感知 用户手册
UM2721_STM32Cube的人工智能状态监视功能包 用户手册
DB3788_STM32Cube的人工智能AI数据手册 数据手册
DB4255_X_LINUX_AI数据手册摘要 数据手册
DB4418_AI软件示例数据手册 数据手册
DB4467_STM32Cube的人工智能AI和面部识别数据手册 数据手册
DB4196_STM32Cube的人工智能(AI)状态监测功能包 数据手册
DB4494_无线工业节点多传感器AI数据监控框架,STM32Cube功能包 数据手册
Demo & Webinar视频资源
NanoEdge AI  介绍视频 NanoEdge AI Studio V3介绍 
 预测性维护 NanoEdge AI-通过对驱动风扇的电流信号进行监测
NanoEdge AI-STM32微控制器的TinyML预测性维护
基于机器学习的具有嵌入式预测性维护功能的电机控制
 故障检测 X-NUCLEO-IHMO7M1板上的滤网阻塞检测
STM32Cube.AI计算机视觉 光学字符识别 (OCR) STM32 Edge AI解决方案
 人物检测 人物检测——低功耗STM32微控制器上的神经网络(STM32H7或者STM32L4)
 人脸识别 FP-AI-FACEREC1_STM32H7_面部识别应用
 计算机视觉 如何使用STM32Cube.AI进行计算机视觉项目开发?
NanoEdge AI  STM32Cube.AI 计算机视觉 人工智能demo-风扇滤网堵塞检测以及基于视觉的人数统计

训课程及资料

意法半导体边缘人工智能解析

观看视频

ST端侧人工智能之视觉检测培训课件

 下载培训课件

来源:STM32
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 250

“Internet of Everything is the next evolutionary stage of the connected world.” 万物互联是互联世界的下一个进化阶段。随着信息网络的不断发展,未来社会将是一个万物互联的时代,小到每一滴水,每一度电、大到一间工厂、一座城市,都将实现全场景万物智联的愿景。

STM32通用MCU拥有丰富的产品线,广泛应用于各种通信技术应用,包括短距离通信,低功耗广域网通信,蜂窝通信等应用。STM32紧跟未来的发展趋势,在STM32通用MCU的优势基础上,推出新的无线MCU家族产品系列—STM32Wx。

“万物互联,STM32带来无限可能"

随着STM32Wx集成各种无线射频能力,STM32将提供更多的高集成度单芯片方案用于无线连接应用中。

“万物互联,STM32带来无限可能"

如上图所示,目前STM32Wx系列目前已有两个产品已经量产,分别是STM32WBSTM32WL系列,同时STM32也将继续保持在STM32Wx无线SoC领域的研发与投入,相信会有更多的STM32Wx系列产品呈献给用户,敬请期待。

STM32WB系列

点击跳转至STM32WB垂直应用页面2.4GHz-BLE&Zigbee&Thread

STM32WB系列是一款双核架构、可支持BLE 5.2等多种2.4GHz频段射频协议的SoC射频芯片。

“万物互联,STM32带来无限可能"

✦ STM32WB系列产品特点:

1.双核架构:更高数据处理能力,多协议通信能力,信息安全防护能力,超低功耗性能。

2.支持多种2.4GHz频段下的无线协议:

a.Bluetooth™ LE 5.2

b.Zigbee® 3.0

c.OpenThread

d.基于IEEE 802.15.4标准的私有协议

e.基于BLE HCI/BLE LLD标准的私有协议

“万物互联,STM32带来无限可能"
  • 点击此处,可跳转至STM32WB产品页面

  • 点击此处,可跳转至STM32WB垂直应用页面

  • 点击此处,可跳转至STM32WB生态系统页面

STM32WL系列

点击跳转至STM32WL垂直应用页面Sub-GHz-LoRa&SigFox

STM32WL是一款单/双核架构、可支持LoRa等Sub-GHz频段射频协议的SoC射频芯片。

“万物互联,STM32带来无限可能"

✦ STM32WL系列产品特点:

1.单/双核架构:选择更灵活,多协议通信能力,信息安全防护能力,超低功耗性能。

2.可支持4种调制模式、多种标准协议栈以及私有协议栈:

“万物互联,STM32带来无限可能"
  • 点击此处,可跳转至STM32WL产品页面

  • 点击此处,可跳转至STM32WL垂直应用页面

设计资源

STM32WB设计资源

数据手册

DS13258

STM32WB15CC 数据手册

DS13259

STM32WB10CC 数据手册

DS11929

STM32WB55xx和STM32WB35xx数据手册

参考手册

RM0473

STM32WB15CC 参考手册

RM0478

STM32WB10CC 参考手册

RM0434

STM32WB55xx和STM32WB35xx参考手册

点击此处查看更多

STM32WL设计资源

数据手册

DS13293

STM32WL5x 数据手册

DS13105

STM32WLEx 数据手册

参考手册

RM0453

STM32WL5x 参考手册

RM0461

STM32WLEx 参考手册

点击此处查看更多

STM32Wx WIKI

“STM32与BLE"
STM32与BLE

“STM32与Zigbee"
STM32与Zigbee

“STM32与LoRaWAN"
STM32与LoRaWAN

成功案例

“万物互联,STM32带来无限可能"

“万物互联,STM32带来无限可能"

“万物互联,STM32带来无限可能"

来源:STM32
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 64

分享本文,总结万能的PID算法。

PID的数学模型

在工业应用中PID及其衍生算法是应用最广泛的算法之一,是当之无愧的万能算法,如果能够熟练掌握PID算法的设计与实现过程,对于一般的研发人员来讲,应该是足够应对一般研发问题了,而难能可贵的是,在很多控制算法当中,PID控制算法又是最简单,最能体现反馈思想的控制算法,可谓经典中的经典。经典的未必是复杂的,经典的东西常常是简单的,而且是最简单的。

PID算法的一般形式

PID算法通过误差信号控制被控量,而控制器本身就是比例、积分、微分三个环节的加和。这里我们规定(在t时刻):

1.输入量为“理解STM32控制中常见的PID算法”

2.输出量为“理解STM32控制中常见的PID算法”

3.偏差量为“理解STM32控制中常见的PID算法”

“理解STM32控制中常见的PID算法”

PID算法的数字离散化

假设采样间隔为T,则在第K个T时刻:

偏差= “理解STM32控制中常见的PID算法”

积分环节用加和的形式表示,即:“理解STM32控制中常见的PID算法”

微分环节用斜率的形式表示,即:“理解STM32控制中常见的PID算法”

PID算法离散化后的式子: “理解STM32控制中常见的PID算法”

则可表示成为:

“理解STM32控制中常见的PID算法”

其中式中:

比例参数“理解STM32控制中常见的PID算法”:控制器的输出与输入偏差值成比例关系。系统一旦出现偏差,比例调节立即产生调节作用以减少偏差。

特点:过程简单快速、比例作用大,可以加快调节,减小误差;但是使系统稳定性下降,造成不稳定,有余差。

积分参数“理解STM32控制中常见的PID算法”:积分环节主要是用来消除静差,所谓静差,就是系统稳定后输出值和设定值之间的差值,积分环节实际上就是偏差累计的过程,把累计的误差加到原有系统上以抵消系统造成的静差。

微分参数“理解STM32控制中常见的PID算法”:微分信号则反映了偏差信号的变化规律,或者说是变化趋势,根据偏差信号的变化趋势来进行超前调节,从而增加了系统的快速性。

PID的基本离散表示形式如上。目前的这种表述形式属于位置型PID,另外一种表述方式为增量式PID,由上述表达式可以轻易得到:“理解STM32控制中常见的PID算法”

那么:“理解STM32控制中常见的PID算法”

上式就是离散化PID的增量式表示方式,由公式可以看出,增量式的表达结果和最近三次的偏差有关,这样就大大提高了系统的稳定性。需要注意的是最终的输出结果应该为:输出量 = “理解STM32控制中常见的PID算法”+ 增量调节值。

目的

PID 的重要性应该无需多说了,这个控制领域的应用最广泛的算法了。本篇文章的目的是希望通过一个例子展示算法过程,并解释以下概念:

(1)简单描述何为PID?为何需要PID?PID 能达到什么作用?

(2)理解P(比例环节)作用:基础比例环节。

缺点:产生稳态误差。

疑问:何为稳态误差 为什么会产生稳态误差。

(3)理解I(积分环节)作用:消除稳态误差。

缺点:增加超调

疑问:积分为何能消除稳态误差?

(4)理解D(微分环节)作用:加大惯性响应速度,减弱超调趋势

疑问:为何能减弱超调?

(5)理解各个比例系数的作

“理解STM32控制中常见的PID算法"

何为PID以及为何需要PID?

以下即PID控制的整体框图,过程描述为:

设定一个输出目标,反馈系统传回输出值,如与目标不一致,则存在一个误差,PID根据此误差调整输入值,直至输出达到设定值

“理解STM32控制中常见的PID算法"

疑问:那么我们为什么需要PID呢,比如我控制温度,我不能监控温度值,温度值一到就停止吗?

这里必须要先说下我们的目标,因为我们所有的控制无非就是想输出能够达到我们的设定,即如果我们设定了一个目标温度值,那么我们想要一个什么样的温度变化呢?

比如设定目标温度为30度,目标无非是希望达到图1希望其能够快速而且没有抖动的达到30度。

那这样大家应该就明白,如果使用温度一到就停止的办法,当然如果要求不高可能也行,但肯定达不到图1这样的要求,因为温度到了后余温也会让温度继续升高。而且温度自身也会通过空气散热的。

“系统输出的响应目标"
系统输出的响应目标

综上所述,我们需要PID的原因无非就是普通控制手段没有办法使输出快速稳定地到达设定值。

控制器的P、I、D项选择

下面将常用的各种控制规律的控制特点简单归纳一下:

(1)比例控制规律P:采用P控制规律能较快地克服扰动的影响,它的作用于输出值较快,但不能很好稳定在一个理想的数值,不良的结果是虽较能有效的克服扰动的影响,但有余差出现。它适用于控制通道滞后较小、负荷变化不大、控制要求不高、被控参数允许在一定范围内有余差的场合。如:金彪公用工程部下设的水泵房冷、热水池水位控制;油泵房中间油罐油位控制等。

(2)比例积分控制规律(PI):在工程中比例积分控制规律是应用最广泛的一种控制规律。积分能在比例的基础上消除余差,它适用于控制通道滞后较小、负荷变化不大、被控参数不允许有余差的场合。如:在主线窑头重油换向室中F1401到F1419号枪的重油流量控制系统;油泵房供油管流量控制系统;退火窑各区温度调节系统等。

(3)比例微分控制规律(PD):微分具有超前作用,对于具有容量滞后的控制通道,引入微分参与控制,在微分项设置得当的情况下,对于提高系统的动态性能指标,有着显著效果。因此,对于控制通道的时间常数或容量滞后较大的场合,为了提高系统的稳定性,减小动态偏差等可选用比例微分控制规律。如:加热型温度控制、成分控制。需要说明一点,对于那些纯滞后较大的区域里,微分项是无能为力,而在测量信号有噪声或周期性振动的系统,则也不宜采用微分控制。如:大窑玻璃液位的控制。

(4)例如积分微分控制规律(PID):PID控制规律是一种较理想的控制规律,它在比例的基础上引入积分,可以消除余差,再加入微分作用,又能提高系统的稳定性。它适用于控制通道时间常数或容量滞后较大、控制要求较高的场合。如温度控制、成分控制等。

鉴于D规律的作用,我们还必须了解时间滞后的概念,时间滞后包括容量滞后与纯滞后。其中容量滞后通常又包括:测量滞后和传送滞后。测量滞后是检测元件在检测时需要建立一种平衡,如热电偶、热电阻、压力等响应较慢产生的一种滞后。而传送滞后则是在传感器、变送器、执行机构等设备产生的一种控制滞后。纯滞后是相对于测量滞后的,在工业上,大多的纯滞后是由于物料传输所致,如:大窑玻璃液位,在投料机动作到核子液位仪检测需要很长的一段时间。

总之,控制规律的选用要根据过程特性和工艺要求来选取,绝不是说PID控制规律在任何情况下都具有较好的控制性能,部分场合都采用是不明智的。如果这样做,只会给其它工作增加复杂性,并给参数整定带来困难。当采用PID控制器还达不到工艺要求,则需要考虑其它的控制方案。如串级控制、前馈控制、大滞后控制等。

Kp、Ti、Td三个参数的设定是PID控制算法的关键问题。一般说来编程时只能设定他们的大概数值,并在系统运行时通过反复调试来确定最佳值。因此调试阶段程序必须得能随时修改和记忆这三个参数。

数字PID控制器

(1)模拟PID控制规律的离散化

“理解STM32控制中常见的PID算法”

(2)数字PID控制器的差分方程

“理解STM32控制中常见的PID算法”

参数的自整定

在某些应用场合,比如通用仪表行业,系统的工作对象是不确定的,不同的对象就得采用不同的参数值,没法为用户设定参数,就引入参数自整定的概念。实质就是在首次使用时,通过N次测量为新的工作对象寻找一套参数,并记忆下来作为以后工作的依据。具体的整定方法有三种:临界比例度法、衰减曲线法、经验法。

1、临界比例度法(Ziegler-Nichols)

1.1 在纯比例作用下,逐渐增加增益至产生等副震荡,根据临界增益和临界周期参数得出PID控制器参数,步骤如下:

(1)将纯比例控制器接入到闭环控制系统中(设置控制器参数积分时间常数Ti =∞,实际微分时间常数Td =0)。

(2)控制器比例增益K设置为最小,加入阶跃扰动(一般是改变控制器的给定值),观察被调量的阶跃响应曲线。

(3)由小到大改变比例增益K,直到闭环系统出现振荡。

(4)系统出现持续等幅振荡时,此时的增益为临界增益(Ku),振荡周期(波峰间的时间)为临界周期(Tu)。

(5) 由表1得出PID控制器参数。

“理解STM32控制中常见的PID算法”
表1

1.2 采用临界比例度法整定时应注意以下几点:

(1)在采用这种方法获取等幅振荡曲线时,应使控制系统工作在线性区,不要使控制阀出现开、关的极端状态,否则得到的持续振荡曲线可能是“极限循环”,从线性系统概念上说系统早已处于发散振荡了。

(2)由于被控对象特性的不同,按上表求得的控制器参数不一定都能获得满意的结果。对于无自平衡特性的对象,用临界比例度法求得的控制器参数往往使系统响应的衰减率偏大(ψ>0.75 )。而对于有自平衡特性的高阶等容对象,用此法整定控制器参数时系统响应衰减率大多偏小(ψ<0.75 )。为此,上述求得的控制器参数,应针对具体系统在实际运行过程中进行在线校正。

(3) 临界比例度法适用于临界振幅不大、振荡周期较长的过程控制系统,但有些系统从安全性考虑不允许进行稳定边界试验,如锅炉汽包水位控制系统。还有某些时间常数较大的单容对象,用纯比例控制时系统始终是稳定的,对于这些系统也是无法用临界比例度法来进行参数整定的。

(4)只适用于二阶以上的高阶对象,或一阶加纯滞后的对象,否则,在纯比例控制情况下,系统不会出现等幅振荡。

1.3 若求出被控对象的静态放大倍数KP=△y/△u ,则增益乘积KpKu可视为系统的最大开环增益。通常认为Ziegler-Nichols闭环试验整定法的适用范围为:“理解STM32控制中常见的PID算法"

(1) 当KpKu > 20时,应采用更为复杂的控制算法,以求较好的调节效果。

(2)当KpKu < 2时,应使用一些能补偿传输迟延的控制策略。

(3)当1.5 <KpKu< 2时,在对控制精度要求不高的场合仍可使用PID控制器,但需要对表1进行修正。在这种情况下,建议采用SMITH预估控制和IMC控制策略。

(4)当KpKu< 1.5时,在对控制精度要求不高的场合仍可使用PI控制器,在这种情况下,微分作用已意义不大。

2、衰减曲线法

衰减曲线法与临界比例度法不同的是,闭环设定值扰动试验采用衰减振荡(通常为4:1或10:l),然后利用衰减振荡的试验数据,根据经验公式求取控制器的整定参数。整定步骤如下:

(1)在纯比例控制器下,置比例增益K为较小值,并将系统投入运行。

(2)系统稳定后,作设定值阶跃扰动,观察系统的响应,若系统响应衰减太快,则减小比例增益K;反之,应增大比例增益K。直到系统出现如下图(a)所示的4:1衰减振荡过程,记下此时的比例增益Ks及和振荡周期Ts数值。

“理解STM32控制中常见的PID算法"

(3)利用Ks和Ts值,按下表给出的经验公式,计算出控制器的参数整定值。

“理解STM32控制中常见的PID算法"

(4)10:1 衰减曲线法类似,只是用Tr带入计算。

采用衰减曲线法必须注意几点:

(1)加给定干扰不能太大,要根据生产操作要求来定,一般在5%左右,也有例外的情况。
(2)必须在工艺参数稳定的情况下才能加给定干扰,否则得不到正确的整定参数。
(3)对于反应快的系统,如流量、管道压力和小容量的液位调节等,要得到严格的4:1衰减曲线较困难,一般以被调参数来回波动两次达到稳定,就近似地认为达到4:1衰减过程了。
(4)投运时,先将K放在较小的数值,把Ti减少到整定值,把Td逐步放大到整定值,然后把K拉到整定值(如果在K=整定值的条件下很快地把Td放到整定值,控制器的输出会剧烈变化)。

3、经验整定法

3.1方法一A:

(1)确定比例增益

使PID为纯比例调节,输入设定为系统允许最大值的60%~70%,由0逐渐加大比例增益至系统出现振荡;再反过来,从此时的比例增益逐渐减小至系统振荡消失,记录此时的比例增益,设定PID的比例增益P为当前值的60%~70%。

(2)确定积分时间常数

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

(3)确定积分时间常数Td

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

(4)系统带载联调,再对PID参数进行微调,直至满足要求。

3.2 方法一B:

(1)PI调节

(a)纯比例作用下,把比例度从较大数值逐渐往下降,至开始产生周期振荡(测量值以给定值为中心作有规则的振荡),在产生周期性振荡的情况下,把此比例度逐渐加宽直至系统充分稳定。

(b)接下来把积分时间逐渐缩短至产生振荡,此时表示积分时间过短,应把积分时间稍加延长,直至振荡停止。

(2)PID调节

(a)纯比例作用下寻求起振点。

(b)加大微分时间使振荡停止,接着把比例度调得稍小一些,使振荡又产生,加大微分时间,使振荡再停止,来回这样操作,直至虽加大微分时间,但不能使振荡停止,求得微分时间的最佳值,此时把比例度调得稍大一些直至振荡停止。

(c)把积分时间调成和微分时间相同的数值,如果又产生振荡则加大积分时间直至振荡停止。

3.3 方法二:

另一种方法是先从表列范围内取Ti的某个数值,如果需要微分,则取Td=(1/3~1/4)Ti,然后对δ进行试凑,也能较快地达到要求。实践证明,在一定范围内适当地组合δ和Ti的数值,可以得到同样衰减比的曲线,就是说,δ的减少,可以用增加Ti的办法来补偿,而基本上不影响调节过程的质量。所以,这种情况,先确定Ti、Td再确定δ的顺序也是可以的。而且可能更快些。如果曲线仍然不理想,可用Ti、Td再加以适当调整。

3.4 方法三:

(1)在实际调试中,也可以先大致设定一个经验值,然后根据调节效果修改。

流量系统:P(%)40--100,I(分)0.1--1

压力系统:P(%)30--70, I(分)0.4--3
液位系统:P(%)20--80, I(分)1—5
温度系统:P(%)20--60, I(分)3--10,D(分)0.5--3

(2)以下整定的口诀:

阶跃扰动投闭环,参数整定看曲线;先投比例后积分,最后再把微分加;

理想曲线两个波,振幅衰减4比1;比例太强要振荡,积分太强过程长;

动差太大加微分,频率太快微分降;偏离定值回复慢,积分作用再加强。

4、复杂调节系统的参数整定

以串级调节系统为例来说明复杂调节系统的参数整定方法。由于串级调节系统中,有主、副两组参数,各通道及回路间存在着相互联系和影响。改变主、副回路的任一参数,对整个系统都有影响。特别是主、副对象时间常数相差不大时,动态联系密切,整定参数的工作尤其困难。

在整定参数前,先要明确串级调节系统的设计目的。如果主要是保证主参数的调节质量,对副参数要求不高,则整定工作就比较容易;如果主、副参数都要求高,整定工作就比较复杂。下面介绍“先副后主”两步参数整定法。

第一步:在工况稳定情况下,将主回路闭合,把主控制器比例度放在100%,积分时间放在最大,微分时间放在零。用4:1衰减曲线整定副回路,求出副回路的比例增益K2s和振荡周期T2s。

第二步:把副回路看成是主回路的一个环节,使用4:1衰减曲线法整定主回路,求得主控制器K1s和T1s。

根据K1s、K2s、T1s、T2s按表2经验公式算出串级调节系统主、副回路参数。先放上副回路参数,再放上主回路参数,如果得到满意的过渡过程,则整定工作完毕。否则可进行适当调整。

如果主、副对象时间常数相差不大,按4:1衰减曲线法整定,可能出现“共振”危险,这时,可适当减小副回路比例度或积分时间,以达到减少副回路振荡周期的目的。同理,加大主回路比例度或积分时间,以期增大主回路振荡周期,使主、副回路振荡周期之比加大,避免“共振”。这样做的结果会降低调节质量。

如果主、副对象特性太相近,则说明确定的方案欠妥当,就不能完全依靠参数整定来提高调节质量了。
实际应用体会:

一是利用数字PID控制算法调节直流电机的速度,方案是采用光电开关来获得电机的转动产生的脉冲信号,单片机(MSP430G2553)通过测量脉冲信号的频率来计算电机的转速(具体测量频率的算法是采用直接测量法,定时1s测量脉冲有多少个,本身的测量误差可以有0.5转加减),测量的转速同给定的转速进行比较产生误差信号,来产生控制信号,控制信号是通过PWM调整占空比也就是调整输出模拟电压来控制的(相当于1位的DA,如果用10位的DA来进行模拟调整呢?效果会不会好很多?),这个实验控制能力有一定的范围,只能在30转/秒和150转/秒之间进行控制,当给定值(程序中给定的速度)高于150时,实际速度只能保持在150转,这也就是此系统的最大控制能力,当给定值低于30转时,直流电机转轴实际是不转动的,但由于误差值过大,转速会迅速变高,然后又会停止转动,就这样循环往复,不能达到控制效果。

根据实测,转速稳态精度在正负3转以内,控制时间为4到5秒。实验只进行到这种程度,思考和分析也只停留在这种深度。

二是利用数字PID控制算法调节直流减速电机的位置,方案是采用与电机同轴转动的精密电位器来测量电机转动的位置和角度,通过测量得到的角度和位置与给定的位置进行比较产生误差信号,然后位置误差信号通过一定关系(此关系纯属根据想象和实验现象来拟定和改善的)转换成PWM信号,作为控制信号的PWM信号是先产生对直流减速电机的模拟电压U,U来控制直流减速电机的力矩(不太清楚),力矩产生加速度,加速度产生速度,速度改变位置,输出量是位置信号,所以之间应该对直流减速电机进行系统建模分析,仿真出直流减速电机的近似系统传递函数,然后根据此函数便可以对PID的参数进行整定了。

两次体会都不是特别清楚PID参数是如何整定的,没有特别清晰的理论指导和实验步骤,对结果的整理和分析也不够及时,导致实验深度和程度都不能达到理想效果。

怎样形象理解PID算法?

小明接到这样一个任务:

有一个水缸点漏水(而且漏水的速度还不一定固定不变)要求水面高度维持在某个位置一旦发现水面高度低于要求位置,就要往水缸里加水。

小明接到任务后就一直守在水缸旁边,时间长就觉得无聊,就跑到房里看小说了,每30分钟来检查一次水面高度。水漏得太快,每次小明来检查时,水都快漏完了,离要求的高度相差很远,小明改为每3分钟来检查一次,结果每次来水都没怎么漏,不需要加水,来得太频繁做的是无用功。

几次试验后,确定每10分钟来检查一次。这个检查时间就称为采样周期。

开始小明用瓢加水,水龙头离水缸有十几米的距离,经常要跑好几趟才加够水,于是小明又改为用桶加,一加就是一桶,跑的次数少了,加水的速度也快了,但好几次将缸给加溢出了,不小心弄湿了几次鞋,小明又动脑筋,我不用瓢也不用桶,老子用盆,几次下来,发现刚刚好,不用跑太多次,也不会让水溢出。这个加水工具的大小就称为比例系数。

小明又发现水虽然不会加过量溢出了,有时会高过要求位置比较多,还是有打湿鞋的危险。他又想了个办法,在水缸上装一个漏斗,每次加水不直接倒进水缸,而是倒进漏斗让它慢慢加。这样溢出的问题解决了,但加水的速度又慢了,有时还赶不上漏水的速度。

于是他试着变换不同大小口径的漏斗来控制加水的速度,最后终于找到了满意的漏斗。漏斗的时间就称为积分时间 。

小明终于喘了一口,但任务的要求突然严了,水位控制的及时性要求大大提高,一旦水位过低,必须立即将水加到要求位置,而且不能高出太多,否则不给工钱。

小明又为难了!于是他又开动脑筋,终于让他想到一个办法,常放一盆备用水在旁边,一发现水位低了,不经过漏斗就是一盆水下去,这样及时性是保证了,但水位有时会高多了。

他又在要求水面位置上面一点将水凿一孔,再接一根管子到下面的备用桶里这样多出的水会从上面的孔里漏出来。这个水漏出的快慢就称为微分时间。

拿一个水池水位来说,我们 可以制定一个规则:

把水位分为超高、高、较高、中、较低、低、超低几个区段;

再把水位波动的趋势分为甚快、快、较快、慢、停几个区段,并区分趋势的正负;
把输出分为超大幅 度、大幅度、较大幅度、微小几个区段。
当水位处于中值、趋势处于停顿的时候,不调节;
当水位处于中值、趋势缓慢变化的时候,也可以暂不调节;
当水位处于较高、趋势缓慢变化 的时候,输出一个微小调节量就够了;
当水位处于中值、趋势较快变化的时候,输出进行较大幅度调节……

如上所述,我们需要制定一个控制规则表,然后制定参数判断水位区段的界值、波动趋 势的界值、输出幅度的界值。

比例控制(P)是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。

根据设备有所不同,比例带一般为2~10%(温度控制)。

但是,仅仅是P控制的话,会产生下面将提到的offset (稳态误差),所以一般加上积分控制(I),以消除稳态误差。

比例带与比例控制(P)输出的关系如图所示。用MVp运算式的设定举例

“稳态误差(Off
稳态误差(Off set)

比例控制中,经过一定时间后误差稳定在一定值时,此时的误差叫做稳态误差(off set)。

仅用比例控制的时候,根据负载的变动及设备的固有特性不同,会出现不同的稳态误差。

负载特性与控制特性曲线的交点和设定值不一致是产生稳态误差的原因。
比例带小时不会产生。为消除稳态误差,我们设定手动复位值--manual reset值(MR),以消除控制误差。

“手动复位(Manual
手动复位(Manual reset)

“理解STM32控制中常见的PID算法"

如前所述,仅用比例控制不能消除稳态误差。

为此,将MR(manual reset值)设为可变,则可自由整定(即调整)调节器的输出。只要手动操作输出相当于offset的量,就能与目标值一致。

这就叫做手动复位(manual reset),通常比例调节器上配有此功能。

在实际的自动控制中,每次发生off set时以手动进行reset的话,这样并不实用。在后面将叙述的积分控制功能,能自动消除稳态误差。

为此,将MR(manual reset值)设为可变,则可自由整定(即调整)调节器的输出。只要手动操作输出相当于offset的量,就能与目标值一致。

这就叫做手动复位(manual reset),通常比例调节器上配有此功能。

在实际的自动控制中,每次发生off set时以手动进行reset的话,这样并不实用。在后面将叙述的积分控制功能,能自动消除稳态误差。

“理解STM32控制中常见的PID算法"

所谓积分控制(I),就是在出现稳态误差时自动地改变输出量,使其与手动复位动作的输出量相同,达到消除稳态误差的目的。

当系统存在误差时,进行积分控制,根据积分时间的大小调节器的输出会以一定的速度变化,只要误差还存在,就会不断地进行输出。

积分时间的定义:

当积分项和比例项对于控制器的输出的贡献相同,即积分作用重复了一次比例作用时所花费的时间,就是积分时间。

“理解STM32控制中常见的PID算法"

微分控制(D)的功能是通过误差的变化率预报误差信号的未来变化趋势。

通过提供超前控制作用,微分控制能使被控过程趋于稳定。因此,它经常用来抵消积分控制产生的不稳定趋势。

通过提供超前控制作用,微分控制能使被控过程趋于稳定。因此,它经常用来抵消积分控制产生的不稳定趋势。

“理解STM32控制中常见的PID算法"

微分时间的定义:

当输入量持续的以一定速率变化时,微分项和比例项对于控制器的输出的贡献相同,即微分作用重复了一次比例作用时所花费的时间,就是微分时间。

“理解STM32控制中常见的PID算法"

“理解STM32控制中常见的PID算法"

实际中如何使用?

我们看一个生活例子,冬天洗热水澡,需要先放掉一段时间的冷水,因为水管里有一段冷水,热水器也需要一个加热过程,等过了这段时间之后水温有些接近目标值后,开始调节水龙头来调节冷、热水之间的比例及出水量,之后再慢慢的微调,在洗浴过程中感觉温度不合适,再一点点的调节。这个过程,其实就是PID算法过程。我们之所以微调,是因为水温的变化速度与我调节的速度不相匹配,存在一个滞后效应,我们需要调节一点点,等一下再感觉一下温度,不够再调节一点点,再感觉,这个过程就叫PID算法,也可以说,滞后效应是引入PID的原因。

失去的能否找回来?能!只是我找回了纽扣,却发现衣服已经不再了。这个就是滞后效应。

负反馈系统,都有滞后效应,但为什么运放、电源这类的却从来不提PID算法呢?这是因为这类系统的滞后延时时间非常短,若考虑这个延时,负反馈引入180度相位,延时恰好引入180度相位,则完全可能引起振荡。问题在于这个延时时间足够短,它的谐振频率点比较高,以运放为例,加入延时加上负反馈引起的谐振点为10MHz,但这片运放的频率响应是1MHz,则在10MHz下完全不可能导致振荡,因为这个芯片的频响特性只有1MHz。我们常用的线性电源IC,比如SOT23封装的LDO,假如输出不加电容,就会输出一个振荡的波形,相对来说电源IC的滞后效应比运放要大,但是,因为电源一般后面都要接大电容的,它的频响特性很低,接近直流0Hz,所以当有电容时候,就无法振荡了。

而工业控制领域,比如温度等,都是滞后效应很严重的,往往都是mS,甚至是10mS级别的,若直接用负反馈,因为激励与反馈的不同步,必然导致强烈的振荡,所以为了解决这个问题,我们需要引入PID算法,来实现这类滞后效应严重系统的负反馈控制,我们以高频感应加热设备加热工件,从常温25度加热到700度为例做说明:

1、25~600度,100%的全功率加热工件,这是因为温差太大,前期要全功率,先加热到靠近目标温度。之所以考虑在600度,是因为滞后效应,若设定太高,当发现接近700度再停下来,但实际上,温度会冲过700度。当然,600度是一个经验值,以下几个温度点都是经验值,根据实际情况而来。

2、600以上,开启P算法,P就是根据测量值与目标值的误差来决定负反馈的大小。P算法公式:反馈=P*(当前温度-目标温度)。但因为负反馈是基于存在误差为前提的,所以P算法导致一个问题,永远到不了想要的值:700度。因为到了700度,反馈值就没有了。P算法的开启,进一步逼近了目标温度,假设稳态下可以达到650度,这样就算因为滞后效应导致的延时,也不会超过700度太多。

3、当达到P算法的稳态极限650度附近的时候,比如640度,就应该开启另外一个算法解决P算法引起的极限误差,那就是I算法。I算法就是为了消除这个P算法导致的误差值,毕竟我们想要的是700度,而不是650度。I算法,本质上讲就是获取一个700度下对应的一个驱动值,之后用这个驱动值来取代P算法,那么我们怎么得到这个驱动值呢,唯一的手段就是把之前的误差都累加起来,最后得到一个期望值,这个期望值就是我们想要的驱动值。因为只要与目标值存在误差,那么把这些误差值积累起来再去反馈控制,就能一步步的逼近目标值,这如同水温不够高,再加一点点热水,不够高再加,这样总能达到想要的水温。值得注意的是,I算法不能接入太高,必须要在P算法的后期介入,不然很容易积累过大。这个时候可以引入一个误差门限,比如误差为60,当作6来处理,误差为50,当作5来处理,消除大的误差值,具体根据项目情况决定。

4、当I算法把工件温度加热到很接近目标温度后,那么可以调节的范围就很小了,最后一点点的微动,让调节的每一次的变化,不要太大,这就是D算法。D算法本质上讲就是反对剧烈的变化,所以适用于达到目标温度的时候。

总结:

PID算法其实不复杂,但从目前看,很多人都是因为对这三者的使用条件不了解导致的问题,都是从加热一开始,三个要素都上,结果可想而知。P算法是温度接近目标值的时候用,I算法是在P算法到稳态极限的时候用,D算法是达到目标值附近的时候用。实际项目中,D算法一般不用,效果不大。假如非要找一个现实中对应的实物,那么以开关电源为例,TL431基准电源比较器可以认为是P,输出滤波电容C是I,输出滤波电感是D,两者完全等价。它们各自的应用工作点可以认为:假设目标温度700度,600~800度:P算法;640~760度:I算法;690~710度:D算法。具体值,以实验为准,数据仅供参考。

最后给出一个PID最通俗的解读:我们设计一样东西,一般都是先打个样,这个样跟我们想要的接近,但细节没到位,这就是P,样有差异,所以就要修改,拟合逼近,这就是I,到了定稿,就不允许随便修改了,就算要修改,也是有限制的修改,这就是D。

来源:STM32嵌入式开发
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:
cathy@eetrend.com)。

围观 966

页面

订阅 RSS - STM32