自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 遗传算法学习二之求TSP问题

本文介绍了基于遗传算法求解旅行商问题(TSP)的方法。TSP问题要求找到访问所有城市一次并返回起点的最短路径。算法实现包括:1)实数编码表示路径;2)随机生成初始种群;3)采用路径长度倒数作为适应度函数;4)轮盘赌选择、顺序交叉和逆转变异操作;5)精英保留策略确保最优个体不丢失。实验使用10个随机分布的城市,种群规模100,经过500代迭代后获得最优解。结果显示算法在约160代后收敛,最终路径长度为33.7464。该方法通过模拟自然选择过程,有效解决了这一NP难问题。

2025-12-21 21:00:05 855

原创 基于Matlab的广义预测控制

本文介绍了广义预测控制(GPC)算法的原理与应用。文章详细阐述了GPC的三个核心要素:预测模型、滚动优化和反馈校正,并推导了相关数学公式。通过实例演示了如何对开环不稳定系统实施GPC控制,包括参数设置、代码实现和结果分析。特别展示了当模型参数不准确时,通过调整预测时域等参数仍能保持系统稳定的能力。相比传统最小方差控制,GPC具有更强的适应性和抗干扰能力,适用于工业环境中常见的非线性、时变系统控制。

2025-12-15 11:28:08 583

原创 遗传算法学习一之求函数的最值

本文详细介绍了使用Matlab实现遗传算法(GA)的基本流程。首先解释了遗传算法的基本原理和核心流程,包括种群初始化、适应度函数、选择、交叉和变异操作。重点演示了如何通过Matlab的ga函数和optimoptions工具求解函数极值问题,包括适应度函数设计、参数设置和结果分析。文章提供了完整代码示例,展示了对函数y=x+10sin(5x)+7cos(4x)在区间[-10,10]求极值的过程,并讨论了如何调整参数以获得最优解。最后介绍了两种求最大值的方法:取反操作和分式操作,为初学者提供了实用的GA实现指导

2025-12-11 21:47:33 1078

原创 基于Matlab的广义最小方差自校正控制

本文研究了广义最小方差自校正控制(GMVSTC)方法,通过引入加权目标函数解决了最小方差自校正控制的局限性。GMVSTC适用于具有执行器约束的非最小相位系统,能实现多目标优化,但对噪声较为敏感。文中详细推导了控制理论,给出了系统模型和Matlab实现代码。仿真结果表明:增大加权系数q0会增强控制约束但降低动态性能;系统幅值越大,噪声影响越小;单纯依靠GMVSTC难以有效抑制噪声。该方法在工业控制中具有实用价值,但需结合噪声滤波使用。

2025-11-30 20:44:38 628

原创 基于Matlab的最小方差自校正控制

对于一个输出值不够理想的系统,前面介绍了基于MIT律的模型参考自适应控制(MRAC),本文介绍另一种控制方式——最小方差自校正控制。目的都是为了使系统能够输出理想输出值,但是这两类控制方法(自适应控制和自校正控制)在应用和原理上有很多区别。先学习如何进行最小方差自校正控制,最后对两种控制方法进行一个比较一、最小方差自校正控制原理最小方差自校正控制是自适应控制的核心分支之一,本质是将 “参数估计” 与 “最小方差控制” 结合,针对未知或时变参数的随机系统。

2025-11-24 22:42:47 639

原创 基于Matlab的MIT自适应控制率实现MRAC

本文介绍了MIT自适应控制律在模型参考自适应系统(MRAC)中的应用。该方法通过最优梯度法实时调整控制器参数,使被控系统输出逼近参考模型理想输出。文章详细推导了MIT自适应律的数学原理,给出了具体系统实例的Matlab实现代码,并分析了调整因子λ和输入幅值对系统稳定性的影响。结果表明,MIT自适应控制能有效补偿系统增益波动,在参数未知或时变情况下保持系统稳定输出。

2025-11-23 18:27:38 878

原创 RTthread studio编译文件过大,仿真器烧录特点

RTThread Studio编译文件过大问题解决方案:当代码编译后超过芯片flash空间时,可通过修改link.lds文件临时增大ROM空间完成编译。但实际优化应从固件尺寸入手,建议参考官网的优化指南,重点关注GCC编译器优化等级调整和关闭MSH功能。此外,STLink烧录时会自动忽略HEX文件中的无效数据,但可能导致程序异常;而J-Link会严格校验地址范围,建议优先使用J-Link进行调试和烧录。调试时应确保最终程序大小在芯片容量范围内,避免使用临时扩容方案导致潜在风险。 (149字)

2025-11-18 19:25:04 662

原创 基于Matlab的欧拉法和龙格-库塔法微分方程求解

本文介绍了两种常用的数值积分方法——欧拉法和龙格-库塔法,用于求解连续系统的微分方程。欧拉法通过线性近似计算离散点解,计算简单但精度较低;龙格-库塔法利用泰勒级数和线性组合,显著提高了精度,特别是四阶和五阶方法。通过Matlab仿真比较发现,在相同步长下,高阶龙格-库塔法稳定性更好,能适应更大步长。结果表明,四阶龙格-库塔法在大多数工程场景下已足够精确,而更高阶方法适用于特殊高精度需求。

2025-11-11 15:28:38 822

原创 基于Matlab的递推最小二乘法参数估计

摘要:本文对比了批处理最小二乘法(BLS)和递推最小二乘法(RLS),重点探讨了RLS的实现方法。BLS适合离线高精度场景,而RLS适用于在线时变系统。通过MATLAB仿真验证了RLS的性能:给定系统方程后,经过约25次迭代即可收敛至理论值(含噪声),无噪声时仅需10次迭代。文章详细说明了RLS的算法步骤和实现代码,展示了参数估计的收敛过程。结果表明RLS能有效跟踪时变参数,适用于实时系统参数辨识。

2025-11-04 17:20:36 1053

原创 基于Matlab的批处理最小二乘法参数估计

本文是对学习系统辨识的一个记录,因为也是初学者,很多理论会以通俗的个人理解加以描述,这样便于理解,但是会缺失一些严谨性,故合理参考。本文会简单讲述什么是批处理最小二乘法参数估计,然后基于一个示例用Matlab完成这个示例的参数估计验证,会讲解Matlab语句的用法和代表的矩阵运算机理。非常适合入门。

2025-10-28 18:26:57 853

原创 基于RT-Thread的STM32开发第十讲——CAN通讯

本文介绍了基于RT-Thread和STM32F103C8T6的CAN通讯开发。

2025-10-05 20:07:41 1048

原创 CAN的构成介绍及CubeMX配置说明

文章介绍了CAN的核心特点,详细解析了数据帧的组成(包括标准帧和扩展帧)及其7个字段,最后通过CubeMX配置示例,说明了时钟分频等关键参数设置方法。

2025-10-01 15:10:02 1249

原创 高精度ADC——ADS1146电路设计及RTthread程序开发

摘要:本文介绍了ADS1146高精度16位模数转换器的外部电路设计,包括电压基准电路、模拟输入电路和SPI接口设计。重点阐述了差分输入配置和滤波电路优化方法,以及如何通过RT-Thread实现驱动程序开发。文中提供了基于STM32F103C8T6的硬件连接方案和SPI设备初始化代码,展示了在RT-Thread环境下配置ADS1146的详细过程,为高精度数据采集系统设计提供了完整解决方案。

2025-09-29 22:21:09 940

原创 晶振电路的负载电容、电阻参数设计

本文介绍了晶振电路设计中的关键参数与配置方法。主要内容是在有源晶振电路下通过实验对比不同负载电容(0-15pF)和电阻(0-33Ω)组合的波形效果,最终推荐15pF电容和20Ω电阻的配置方案;强调PCB布局时需做好电磁屏蔽,优先选用有源晶振,避免使用MCU内部不精准的晶振。文章为硬件设计提供了实用的晶振电路配置参考。

2025-08-15 22:59:14 1409

原创 嵌入式电路设计第一讲——基于比较器与继电器的过压保护电路

本文设计了一款适用于0-80V高精度电压测量的过压保护电路。采用比较器TLV1805为核心,配合基准电压芯片REF3025、继电器G6S-2F-TR和MOSFET 2N7002等元件,实现稳定的过压保护功能

2025-07-01 12:29:11 1479 2

原创 基于RT-Thread的STM32F4开发第九讲——硬件看门狗(IWDG)

本文介绍了基于RT-Thread Studio实现硬件看门狗(IWDG)的方法,使用正点原子STM32F4探索者开发板。主要内容包括:看门狗原理:硬件看门狗由独立时钟驱动,通过定期"喂狗"防止系统复位;配置方法:通过CubeMX设置预分频值和重装载值,修改驱动文件实现最小8ms的计时精度;代码实现:创建空闲钩子函数自动喂狗,结合LED线程演示看门狗功能。该方案提高了系统可靠性,当程序异常时可自动复位,适用于对稳定性要求较高的嵌入式场景。

2025-05-28 16:45:28 856

原创 基于RT-Thread的STM32F4开发第八讲——SPI(普通、DMA、SFUD)

本文基于RT-Thread Studio实现了STM32F4探索者开发板与W25Q128芯片的三种SPI通信方式:普通SPI、DMA和SFUD。文章首先介绍了SPI基础知识和SFUD通用驱动库的优势,对比了SPI与QSPI的区别。详细讲解了RT-Thread工程创建步骤,包括SPI环境配置和参数修正。重点展示了普通SPI通信的实现代码,包含初始化配置、空闲等待判断和数据写入功能,为后续DMA和SFUD通信奠定基础。该方案适用于需要高效SPI通信的嵌入式存储应用场景。

2025-05-26 22:59:39 1003

原创 基于RT-Thread的STM32F4开发第七讲——RTC(硬件、软件)

本章是基于RT-Thread studio实现RTC硬件和软件下的日历时钟功能

2025-05-23 21:36:09 970

原创 基于STM32F4的cubemx关于RTC配置说明

本文介绍了基于STM32F4系列芯片的实时时钟(RTC)使用Cubemx工具进行参数设置。文章旨在帮助读者更好地理解和配置RTC功能,同时欢迎指出可能的错误或不足。

2025-05-22 16:42:00 1726 2

原创 基于RT-Thread的STM32F4开发第六讲——PWM输出(CH1和CH1N)

本章是基于RT-Thread studio实现PWM一对互补信号输出,开发板是正点原子的STM32F4探索者,使用的RT-Thread驱动是5.1.0。本章官方驱动文档内容较好,改动地方很少,开发难度小。————————————————版权声明:本文为RT-Thread论坛用户「Pai同学」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://club.rt-thread.org/ask/article/a4c5198970edac1f.html

2025-05-21 15:49:59 1311

原创 基于RT-Thread的STM32F4开发第五讲——软件模拟I2C

本章是基于RT-Thread studio实现软件模拟I2C,开发板是正点原子的STM32F4探索者,使用的RT-Thread驱动是5.1.0,使用的I2C通讯芯片是存储芯片AT24C02,本章和前面文章不同在于I2C是软件模拟,与设备无关,所以驱动文件不会有问题,但是对于代码开发官方文档有些重要内容没有提到,本文将进行补充。————————————————版权声明:本文为RT-Thread论坛用户「Pai同学」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接

2025-05-19 22:17:35 1222

原创 基于RT-Thread的STM32F4开发第四讲——硬件定时器更新中断(缺失补齐教程)

本章是基于RT-Thread studio实现定时器更新中断教程,开发板是正点原子的STM32F4探索者,使用的RT-Thread驱动是5.1.0,使用的是TIM6和TIM7,RT-Thread目前定时器型号大量缺少,所以本章提供添加方案

2025-05-15 10:13:42 1176

原创 基于RT-Thread的STM32F4开发第三讲——DAC

本章利用RT-Thread最新的驱动5.1.0开发DAC模块,使用的开发板是正点原子的STM32F4探索者。很多配置和上文重复,本文不再重复叙述。

2025-05-13 22:59:01 1183 4

原创 STM32LL库编程系列第九讲——定时器cubemx配置详细说明及PWM输入模式

详细的解释了定时器输入和输出的工作模式,对cubemx的配置选项进行了详细介绍,然后提供了PWM输入的一种输入捕获的使用。

2025-05-13 09:43:40 1792

原创 基于RT-Thread的STM32G4开发第二讲第二篇——ADC

本文使用的是RT-Thread最新的驱动5.1.0,开发板是蓝桥杯嵌入式国信长安的开发板,MCU是STM32G431RBT6。有非常关键的ADC驱动函数编写和设置。

2025-05-07 11:49:47 790

原创 基于RT-Thread的STM32F4开发第二讲第一篇——ADC

极其详细的基于RT-Thread studio的使用STM32F4系类开发板的ADC工程创建,一定值得一看

2025-05-06 22:14:43 910

原创 RT-Thread studio的驱动5.1.0报错修改

我发现,好像很多芯片使用最新的驱动包5.1.0都会有报错和警告(5以上好像都有些问题),于是整合多方资料,终于修改成功。

2025-05-03 13:25:40 1621 3

原创 基于RT-Thread的STM32开发第一讲——USART

之前本人一直都是使用keil搭配STM32cubemx使用LL库来开发STM32,但随着使用,发现裸机编程对于集成大的工程越来越费劲,经常几天不看,自己都忘了为啥这么写。于是就想使用操作系统来开发。于是我就去了解嵌入式系统中常用的实时操作系统(RTOS),发现使用较多是以下三种——RT-Thread、FreeRTOS、uC/OS。我并没有过多去比较它们的优缺点,就冲着RT-Thread是唯一国产的且开源,而且是最晚面世的(本人就喜欢用新东西),就选择它了。这里说一下对于没接触过操作系统如何开始学习。

2025-05-02 11:15:35 1338

原创 STM32LL库编程系列第八讲——ADC模数转换

ADC模数转换这个字眼大家都已经习以为常了,但是在STM32中有很多关于ADC工作的配置大家可能还不是那么清楚,这里借助蓝桥杯嵌入式的开发板,利用STM32cubemx对ADC的配置进行一个全面的介绍。

2025-04-12 13:57:20 1112

原创 STM32的SPI通信的NSS引脚设置原理

关于SPI通信的NSS引脚,大部分的处理都是NSS引脚不使用,用普通IO口当片选信号来选通外设芯片,实话说,这样确实很方便。那对于专门的NSS引脚他又有什么特殊的功能呢?本文将致的说明在主从模式下各种NSS引脚配置对应的功能。

2025-04-01 12:12:09 2175

原创 STM32LL库编程系列第七讲——SPI通信(W25Q128)

本章将介绍使用STM32芯片的LL库编程实现SPI通信。利用的开发板为正点原子的STM32F4探索者,MCU是STM32F407ZGT6。通信流程:MCU发送数据到W25Q128,W25Q128保存好数据——>MCU读取W25Q128中的数据,判断两次数据是否一致。注:本章第二章篇幅过长,主要是图片过多,快速阅读可忽略图片信息这个工程仅仅是进行一次SPI通信,如果在一个集成工程中运用还有许多需要改进的地方,

2025-03-10 20:23:27 1773

原创 STM32LL库编程系列番外——DMA常用编程

前面与很多工程都有使用到DMA,DMA在传输大量数据时有非常好的效果,但是DMA本人也是边接触,边学习,不断使用不断总结,这里给出本人认为一般情况下非常好用DMA发送与接收LL库配置代码。

2024-05-26 21:48:25 1715

原创 STM32LL库编程系列第六讲——定时器编码器模式+电机驱动

本章将介绍如何使用STM32读取电机编码器时序,从而计算出电机转速。同时搭配对电机的PWM渐变控制。使用的微处理器是STM32F407VET6。编程逻辑,手机APP发送数据——>控制板蓝牙接收数据——>根据数据计算出占空比——>控制电机——>读取编码器时序——>得到转速

2024-05-13 22:05:58 2022 1

原创 STM32LL库编程系列第五讲——定时器PWM输出+DS3115舵机控制

本文是STM32LL库编程系列第五讲,主要分享如何使用定时器输出PWM,本文使用的芯片型号是STM32F407编程逻辑:手机APP发送数据——>控制板蓝牙接收数据——>DMA传输数据置内存——>到内存提取需要数据——>经过换算转化成PWM占空比——>控制舵机说明一下,每次遇到新配置我都会详细说明,如果直接个答案,没解析的都是往期文章解析过的,有需要可以考古。我每次工程会开一下搭配外设,比如串口、DMA,如果不需要自行省略。

2024-05-04 23:12:25 2587 2

原创 STM32LL库编程系列第四讲——定时器输入捕获+超声波测距

编程逻辑:利用定时器9的输入捕获功能捕获超声波回传信号的双边沿,从而计算高电平持续时间,结合声速得到测距,在利用DMA将测距信息发送到USRT3的DR寄存器,从而让上位机串口助手接收到。(对DMA、USART外设不了解可参考往期文章)本文会对每一步操作详细说明,代码逻辑清晰,希望能对大家有所帮助!!

2024-05-03 12:51:44 3246 1

原创 STM32LL库编程系列第三讲——USART+DMA通信

仅仅使用串口通信,会频繁进入中断,对CPU资源消耗大,于是使用DMA对数据进行“搬运”,减少对CPU的占用。本文是通过蓝牙模块接入UART5和USART1之间进行数通信,利用DMA搬运接收数据,也可以按照按照本文方式直接配置尾USART1接收和发送。本文逻辑清晰,内容详细,有大量解释语句,方便各位理解底层逻辑。

2024-04-27 11:53:53 2571

原创 STM32LL库编程系列第二讲——蓝牙+USART串口通信(步骤详细、原理清晰)

这次使用蓝牙模块搭配开发板完成串口通行。通信流程如下:发送流程:手机APP——>蓝牙——>开发板——>上位机接收流程:上位机——>开发板——>蓝牙——>手机APPU内容包括串口通信知识分享,cubemx和keil工程创建,工程文件编写,原理解释,整体加入大量照片和视频说明,通俗易懂,解释详细。

2024-04-24 22:23:06 5161 3

原创 STM32LL库编程系列第一讲——Delay精准延时函数(详细,适合新手)

基于STM32F407,使用LL库编程,详细说明了cubemx工程创建、delay演示函数编写及原理(详细到寄存器)及LL_mDelay()的错误,提供大量图片便于读者理解。最后给出了视频验证代码正确性,免费公开工程。

2024-04-23 13:38:44 8173 11

遗传算法学习一之求函数的最值

含有本章使用的optimoptions和ga函数的文件夹,来源于官方工具箱,如果没有这些函数可以添加,添加时注意子文件夹也添加。

2025-12-11

基于RT-Thread的STM32F4开发第九讲-硬件看门狗(IWDG)

基于RT-Thread的STM32F4开发第九讲-硬件看门狗(IWDG)

2025-05-28

基于RT-Thread的STM32F4开发第八讲-SPI(普通、DMA、SFUD)

基于RT-Thread的STM32F4开发第八讲-SPI(普通、DMA、SFUD)

2025-05-26

基于RT-Thread的STM32F4开发第六讲-PWM输出(CH1和CH1N)

基于RT-Thread的STM32F4开发第六讲-PWM输出(CH1和CH1N)

2025-05-21

基于RT-Thread的STM32F4开发第五讲-软件模拟I2C

基于RT-Thread的STM32F4开发第五讲-软件模拟I2C

2025-05-19

基于RT-Thread的STM32F4开发第四讲-硬件定时器更新中断(缺失补齐教程)

基于RT-Thread的STM32F4开发第四讲-硬件定时器更新中断(缺失补齐教程)

2025-05-15

基于RT-Thread的STM32F4开发第三讲-DAC

基于RT-Thread的STM32F4开发第三讲-DAC

2025-05-13

基于RT-Thread的STM32G4开发第二讲第二篇-ADC

基于RT-Thread的STM32G4开发第二讲第二篇-ADC

2025-05-07

基于RT-Thread的STM32G4开发第二讲第二篇-ADC

基于RT-Thread的STM32G4开发第二讲第二篇-ADC

2025-05-07

基于RT-Thread的STM32F4开发第二讲第一篇-ADC

基于RT-Thread的STM32F4开发第二讲第一篇-ADC

2025-05-06

基于RT-Thread的STM32F4开发第二讲第一篇-ADC

基于RT-Thread的STM32F4开发第二讲第一篇-ADC

2025-05-06

STM32LL库编程系列第七讲-SPI通信(W25Q128)

第七讲工程文件

2025-03-10

定时器编码器模式+电机驱动(工程包)

见STM32LL库编程系列第六讲——定时器编码器模式+电机驱动

2024-05-14

第六讲-定时器编码器模式+电机驱动工程包

见对应文章第六讲——定时器编码器模式+电机驱动

2024-05-13

STM32LL库编程系列第五讲-定时器PWM输出+DS3115舵机控制

见文章

2024-05-04

STM32LL库编程系列第四讲-定时器输入捕获+超声波测距工程

见对应文章

2024-05-03

STM32LL库编程系列第三讲-USART+DMA通信工程

第三讲的工程文件

2024-04-27

STM32LL库编程系列

蓝牙+串口通信工程文件

2024-04-24

STM32LL库编程系列

delay工程

2024-04-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除