- 博客(108)
- 收藏
- 关注
原创 【控制系统建模与分析#2】流体系统建模
流体系统建模是控制系统领域的重要分支,涉及对的数学描述,用于分析压力、流量、能量传递等动态特性。其核心在于建立物理变量(如压力、流速)与系统参数(如管道阻力、容积)之间的微分方程,通常基于。
2025-10-15 09:39:20
866
原创 【控制系统建模与分析#1】电系统建模
如下电压源ei为系统输入,电阻Rload为下一环节系统总负载,初始状态参数为0。令电机轴电压u为系统输入,电机轴电流i为系统输出,轴反电动势e为系统状态。伏安满足如下微分关系(捕捉电流变化过程)伏安满足如下积分关系(充电过程)本章介绍了几种典型的电系统建模,主要难点集中在微分方程的求解。(1)电量 q 单位 C库伦。(2)电流 i 单位 A安培。(3)电阻 R 单位 Ω欧姆。(5)电容 C 单位F法拉第。(6)电感 L 单位 H亨利。(4)电压 U 单位V伏特。过程太长,求得差分方程为。
2025-10-12 20:14:35
443
原创 【嵌入式电机控制#进阶11】FOC电气性能优化:波形分析&窄脉冲消除&死区补偿
本章讲了永磁电机的电气性能优化,主要有三个方面,电信号采集优化(波形测量),窄脉冲消除(防止逆变系统震荡),死区补偿(优化大功率IGBT的死区损失)其中死区补偿是难度最大的一部分,难点在于电流极性辨识和小电流补偿。
2025-09-09 01:37:34
1091
1
原创 【嵌入式电机控制#进阶8】I/F强拖启动(通俗版)
IF这块如果深入研究难度较大且需要大量工程数学基础,初学者可以把它当作一个黑盒去使用,三个核心问题需要注意自动过流保护、电机同步加速、最终速度可靠性。
2025-09-03 15:56:51
608
原创 【嵌入式电机控制#进阶7】V/F强拖启动
对于永磁同步电机的VF控制方法与上面所讲的类似,没有任何物理量的反馈,动态性能差,如果负载突变可能会产生。你VF中的F是磁圈频率就乘2 * pi,如果是霍尔频率就乘 pi / 3。启动时转矩较大,因为电机需要加速,随后电机转速平稳,电流趋于稳定。可以很明显看到,电角度曲线逐渐在变窄,说明换相加速了。电机定子电感 Ld = 3.7e-5 H;问题,但是它算法简单,所以在低成本、对转速精度要求不高的无感中被广为使用。给一个斜坡速度输入,斜率5000,并且后置限速1500。
2025-09-02 23:47:34
1002
原创 【嵌入式电机控制#进阶6】三段启动法
观察波形,确定一个最保险的时间,能够确保电机加速启动到反电动势曲线与过零点能被准确检测出来。确定转子初始位置后,由于此时定子绕组反电动势还是0(没有磁通变化),所以需要在此基础上让单片机。1. 换相触发频率(fphase)不变,逐步增大外加电压(Duty)让电机加速,称为。开环状态下,能影响电机转速的有两个量,一是占空比,二是换相触发频率。保证外加电压不变,逐步增大换相信号频率,让电机逐步加速,叫做。3. 在逐步增大外加电压的同时,增高换相频率,称为。电机外施电压和换相信号,使得电机从静止逐步加速,称为。
2025-09-02 15:49:37
468
原创 【嵌入式FreeRTOS#10】时间管理实验
(2)xTaskDelayUntil():绝对延时,影响整体任务时间,将一次任务控制在指定时间内。可将以下两个任务函数启动,并把LED灯电平通入Logic Analyzer比较,结果与上图类似。(1) vTaskDelay():相对延时,进入后到指定时间结束,不对整体任务做保证。vtaskdelay只能影响一个任务执行次之间的时间间隔。(这种延时通常用于控制算法等需要固定频率执行的任务,假如FreeRTOS中除了空闲。xLastWakeTime一旦被初始化。但是until用法中。任务外只有一个任务A。
2025-09-02 10:15:47
187
原创 【别人的代码值得抄】ST库底层出现的一种优化版循环队列+滑动窗口
在之前阅读ST的SDK库底层驱动时,我在HALL中断函数中发现了如下的写法,很值得学习。若放入数据让尾指针超出界限则触发循环,并且可能队满(只剩一个内存单元,队满标志)咱们先从最简单的道理开始,最基本的FIFO初始状态长这样,首尾指针全部归0。有人在想,正常的FIFO不都是队头出,队尾入吗,注:即使我们未队满,在对0进行操作,也丝毫不影响计算过程!若越界则触发循环,指针重新指向最旧的元素。当塞入一个数据后,队列变成。必须全初始化为0,不然后果不堪设想。时,用这种库可以提升驱动的效率。此时若再添入数据,则。
2025-09-01 21:13:04
503
原创 【嵌入式FreeRTOS#9】任务API实验
可以看到,我们这里给ulHighFrequencyTimerTicks的计数频率为。上面最重要的是时间统计API,其他的都跟TaskList大同小异。大部分时间都交给了空闲任务,我们有极少的时间去执行其他任务。然后我们需要分配足够的字符串空间,让它去接收输出文字。首先,需要明确一点,时间统计API计算的是。可以看出,此时FreeRTOS的。以“表格”形式获取所有任务的信息。根据任务名获取该任务的任务句柄。获取任务的任务栈历史剩余最小值。获取指定单个的任务信息。获取当前任务的任务句柄。获取系统中任务的数量。
2025-09-01 16:50:43
338
原创 【嵌入式电机控制#进阶5】无感控制(三):龙伯格观测器(算法篇)
内容已经删减很多了,文章没有解释为什么在对电机系统建模时采用了升-降阶的方法,这个可以通过查阅资料了解。下一章将讲述龙伯格观测器的仿真。
2025-08-26 01:25:20
1246
原创 【嵌入式电机控制#进阶4】无感控制(二):观测器导论&锁相环(全网最通俗易懂)
上一节我们提到一种基于反电动势的过零检测方法,但在低速(例如低速伺服)情况下,由于磁场在线圈内变化的速度较慢,所以感生电动势比较低,此时ADC测出今天带给大家一类专门的高阶电机控制算法——观测器。
2025-08-25 23:14:08
2350
原创 【嵌入式电机控制#进阶3】FOC算法中的Kp与Ki确定
由于FOC算法进一步涉及到了电机的物理层,引入了dq电流及磁场矢量的概念,这让我们的控制参数确定有了。这个板块理论性较强,在学习前可以复习一下自控中经典控制的内容。
2025-08-24 00:42:56
1264
原创 【嵌入式电机控制#进阶2】BLDC无感控制
不需要传感器就能对无刷电机进行驱动的控制方式。业内也有些人认为,无感控制才是真正的电机控制。(1)有感和无感的区别核心点:无感电机在低速时反电动势过小,难以实现过零检测,所以会造成低速下速度环几乎失控,而且0速启动将难以实现。(2)无感原理:反电动势(感应电流磁场阻碍引起感应电流的磁通变化)(3)动生电动势:导体在磁场中运动而在导体内部产生的电动势(4)感生电动势:变化磁场中静止导体产生的电动势显然无刷电机中的反电动势是感生电动势。
2025-08-23 14:06:46
575
原创 【嵌入式电机控制#34】FOC:意法电控驱动层源码解析——HALL传感器中断(不在两大中断内,但重要)
如果此时速度正常, 则读取霍尔传感器引脚电平、计算转动方向并同步电角度,补偿霍尔安装误差,最后计算霍尔频率。完成后,如果速度过低,就会进入霍尔更新中断。进入中断超过一定次数就会复位霍尔参数。的方式将自己的周期变为SYSTICK周期(安全任务周期,500us)的。中频任务挂在SYSTICK中断上,通过。请大家牢记以下框架,
2025-08-20 23:22:59
568
原创 【嵌入式电机控制#33】FOC:意法电控驱动层源码解析——整体框架篇(了解,常查阅)
平台:STM32F407+硬石科技F4Pro工业运动控制驱动板FOC库版本:5.4.8。
2025-08-20 16:10:41
368
原创 【嵌入式电机控制#32】FOC:电流精确采样
(1) PWM_Period - CNTC(结果为C下桥臂导通时间)> 2 * adNoiseTime。SVPWM生成的相电压波形一般如上图所示,我们可以发现其中总会有一相占空比比较高。PWM_Period - CNTC(结果为C下桥臂导通时间)< 2 * adNoiseTime。注:采样结束后,将会立即执行FOC,在下一个更新事件出现之前,FOC必须结束。此时C下桥臂导通时间过短,若 =2,则FOC跑两遍。(2)但最有效的方法,是。,那么导通时间最短的C相便是基准。,来限制FOC占据的时间。
2025-08-20 14:50:32
763
1
原创 【嵌入式电机控制#进阶1】对FOC电流算法的更深层次理解(必看,推导极其深刻)
在之前的基础内容中,我们没有提及逆克拉克。其实,逆克拉克变换的过程就是SVPWM开头,将Vα和Vβ重新化作三相电流的过程。我们经过克拉克变换后,把abc相电流化成α-β轴分量。矢量Iα和Iβ是两个轴向固定但大小方向还在不断变化的矢量,而。其实在控制系统前路中,我们是操作占空比来控制电流的,为了实现更精确的变换,我们一般会把。克拉克变换的出发点是,1在无刷电机中,一个永磁体。这样,我们就强制性让Iα与ia相等了。由上面得公式可知,在等幅变换下,我们。也就是说,我们可以在驱动电路。但是在嵌入式系统中,
2025-08-19 15:21:10
1061
原创 【嵌入式基础梳理#12】风压计Modbus框架示例
风压(wind pressure)由于通风管道的阻挡,使四周空气受阻,动压下降,静压升高。侧面和背面产生局部涡流,静压下降,动压升高。和远处未受干扰的气流相比,这种静压的升高和降低统称为风压。在航空航天领域,“风压” 本质上是气流与飞行器表面相互作用产生的压力(包括静压、动压及压力差)的宏观表现,其分布和变化直接影响飞行器的气动性能、结构设计、飞行控制及任务安全。风压计是一种用于测量气流对物体表面产生压力(即风压)的仪器,广泛应用于气象、航空航天、建筑、能源、环境监测等多个领域。
2025-08-18 22:05:12
588
原创 【嵌入式基础知识梳理#11】Modbus-RTU工业总线协议
本章向大家分享了工控、运动控制领域常用的Modbus-RTU协议,如果想要实际上手在单片机上练习,建议买一些工控自动化设备与单片机进行通讯。
2025-08-17 17:13:12
886
1
原创 【嵌入式FreeRTOS#8】时间片轮询式调度(直接实验)
其实后面的概念都不难,FreeRTOS功能其实也不多,都是在同一个框架里兜圈子。不要钻牛角尖,注重上手做。整个系统会越来越清晰。
2025-08-17 00:28:14
323
原创 【嵌入式FreeRTOS#补充1】临界区
当多个任务(线程)可能同时访问同一个共享资源(如全局变量、硬件寄存器等)时,临界区可以确保只有一个任务能进入这段代码,防止出现数据竞争或不一致的问题。:进入临界区时,系统通常会暂时关闭中断响应或任务调度功能,确保当前任务的执行不会被其他任务或中断打断,直到调用对应的退出临界区函数(如。:对于需要连续执行的一系列操作(如读取 - 修改 - 写入共享变量),临界区能保证这些操作作为一个整体完成,不会被其他任务分割。在起始任务中,我们一次创建了多个任务,,如果不能强制修改优先级,
2025-08-15 16:15:01
281
原创 【嵌入式电机控制#31】FOC:霍尔安装误差的补偿
比如上图这种情况,第一次虚线霍尔信号为60度,到第二次虚线时,其实电角度已经是120了 ,但是我们并没有采样出霍尔信号的变化。跟高中数学一样,当时是把360度化成2pi*系数,现在dpp是把360度化成。我们利用的是输入捕获中断取计数值的方法来进行平均值估计,:用来表示转速,在速度模式和用户界面层使用,单位dHz,0.1Hz = 0.1 RPS。,换相直接与霍尔信号绑定,所以不需要考虑中断周期的延迟问题。我们从时序上分析,如果FOC频率过高,偏差时如何产生的。在六步方波控制中,我们使用的是。
2025-08-13 23:36:42
964
原创 【嵌入式电机控制#30】FOC:空间电压矢量
(1)目的:使用逆变电路6个管的开关状态,把在空间中旋转的矢量表示出来,这个矢量叫做空间电压矢量SVPWM由六个开关元件组成特定的开关模式,生成特定的波形,着眼于如何让电机获得理想的圆形磁通轨迹。(3)研究本质:六个开关何时导通关断(4)分析:因为一对MOS管上下桥臂有死区,我们可以用Sa = 1表示上桥导通,Sa = 0表示下桥导通而且不像六步方波控制,在FOC矢量控制中,电机的UVW三相都处于正弦波状态,所以所有。
2025-08-13 01:27:00
1170
原创 【嵌入式电机控制#29】FOC:磁场定向控制
首先我们需要明确一点,FOC的被控对象是广义的无刷电机(包括BLDC和PMSM)。从这一章节开始,理论性将大幅度上升,而驱动以及debug的问题会逐步减少。建议大家能多利用网上资源补充现控和电力电子方面的一些知识,这样整个控制算法在脑海中会逐步清晰。FOC(Field Oriented Control),直译过来就是磁场定向控制,但由于国内外控制理论的学术体系不太一样,中文又把FOC叫做矢量控制(Vecter Control,简称VC)在之前的六步方波控制中,我们利用了磁场矢量去控制永磁体旋转。
2025-08-11 01:22:27
1115
原创 【嵌入式电机控制#补充3】SDK电机控制台的功能
接下来介绍以下后面FOC(矢量控制)开发需要使用的一个工具,Motor Control Work Bench,它能够像simulink一样,给出三相逆变电路的架构,并让用户提供具体的器件参数,然后配合CubeMX自动生成驱动代码,会极大的提升后续电机驱动开发调试的效率。
2025-08-10 22:00:27
797
原创 【嵌入式电机控制#26】BLDC:三相模拟采集
之前有些网友试着用有刷的平均电流法采集三相,还搞了个闭环控制。求!结果直接把驱动板给干没了......做过仿真的朋友们都知道,无刷电机的相电流波形是介于方波和正弦波的。如果拿平均电流去测量,很不靠谱。这节内容为大家分享采集三相模拟量的通用配置思路。
2025-08-06 23:44:14
518
转载 【电机控制simulink仿真#2】BLDC(二):六步换相系统搭建
输出的数据决定输入,而输入的数据又反过来影响输出,这个相互的过程,如果没有传播时间条件,则必然有同一时刻某个量拥有两个值。时序系统中,如果输入与输出相互联系,但整个系统环路没有任何延迟,将很有可能形成。我们是通过霍尔传感器的位置信息,进行120度除以及磁极运算后,得到的霍尔相位。而我们使用的是增量式霍尔传感器,给的是过程量,所以必须进行。根据表格,我们的换向逻辑用角度表示应该为,[1 0 0 0 0 1] A相上桥、C相下桥打开。[0 0 1 0 0 1] B相上桥、C相下桥打开。
2025-08-06 01:44:16
238
原创 【嵌入式电机控制#25】BLDC : 速度环控制
此章代码比较复杂,这里给出速度环的程序+控制算法框图。请对注释进行代码理解、实操后,在回来看框图回忆。
2025-08-05 16:37:58
311
原创 【嵌入式电机控制#24】BLDC:霍尔测速(高难度,重理解)
前面我们实现了霍尔传感器检测转子位置、改变导通策略的换相方法,但是无刷电机自身存在着难以直接消除的非线性。也就是说,我们无法保证给定占空比后的速度是准确的,这个时候我们就必须。此部分开始,将会进入电控算法中代码整体的部分,这不是代码本身造成的,而是无刷控制逻辑本身需求就很高。后面做FOC使用了SDK库,工作量将会减少很多。
2025-08-04 14:17:08
1275
原创 【电机控制Simulink仿真】BLDC(一):三相逆变系统的建模
电控算法工程师除了需要在ARM等控制器上进行算法编写、底层调试,还需要会在MATLAB平台中对电机系统建模进行仿真。本专栏将着重讲解PMSM、BLDC 以及 广义伺服系统的Simulink仿真设计。若不理解BLDC工作原理,请跳转嵌入式实践教程分享:Simulink实际上是MATLAB中的一个工具,用于控制设计、机械设计等对可视化要求较高的环境下。MATLAB以及Simulink的安装请各位自行搜索,本文使用2020b版本的MATLAB进行演示,版本之间界面操作有区别,还请各位仔细权衡。
2025-08-03 01:51:58
1430
原创 六步控制项目分享:面向飞机\船舶\车载\工业环境下的发动机散热系统
例如:当缸体温度超过 100℃时,PID 控制器输出占空比提升至 80%,风扇与水泵转速同步提高 30%,增强散热能力。飞机发动机散热系统采用六步控制的 BLDC 电机作为核心驱动部件,针对发动机工作时产生的大量热量,通过精准调控散热风扇和冷却液泵的运行状态,维持发动机在适宜温度区间(80-110℃)内稳定工作,保障动力输出效率与设备寿命。发动机启动后,系统默认进入预热模式,BLDC 电机以 30% 额定转速运行,风扇低速送风、水泵小流量循环,避免发动机因骤冷骤热产生应力损伤。3. 轻量化与防护。
2025-08-02 00:31:15
483
原创 【嵌入式电机控制#23】BLDC:开环运动控制框架
此章对上节内容进行补充,增加了调速、刹车充电一体化等运动控制功能,是后续机器人、飞行器底层驱动编写的基础,此框架务必熟悉。
2025-07-31 20:15:26
268
原创 【嵌入式电机控制#22】BLDC:六步换向开环驱动
接下来讲述如何进行六步换向的开环控制,此章节代码于上节有明显区别,务必仔细甄别避免烧毁电机。此外,由于Cube不是一个单独针对控制算法代码的生成平台,所以后面有些底层细节需要手动调整。一、Cube初始化配置(1)初始化ShutDown引脚,记住高电平为开启,低电平为关闭其中,输入滤波器和延迟参数,需要根据实际情况调整这里注意,需要修改配置代码中的PWM配置为OC配置。PWM配置中,波形占空比会存在预装载,这会导致我们每一段PWM开头的脉宽是不确定的。
2025-07-31 09:52:55
699
1
原创 【嵌入式电机控制#18】有刷直流串级控制
接下来介绍位置速度电流三闭环系统的控制框架,// ADC结果,电压结果,adc电流值初始化{ //距离环中断//计算计数器绝对计数值//进行距离PID//获得了速度占空比//速度占空比不能超过设定最大值//速度环中断//这里不能用获取counter再清零的方式算转速,因为我们还要算绝对位置//所以用两次绝对量做差算速度//计算实际转速 脉冲总数/PPR/减速比/倍频系数 * 频率 * 单位换算//进行速度PID计算else。
2025-07-29 23:53:14
747
原创 【嵌入式电机控制#17】电流环(四):电流闭环控制
但不代表这个系统设计能有效调节所有电机系统,我这里只给了一个方法论,在大型产品研发过程中,控制算法工程师常会利用自己的控制理论、嵌入式、数学等知识设计新的算法。前面介绍了很多电流相关的代码,内容比较乱,但其实是循序渐进的,这里整理出电流闭环控制所需的所有算法以及对应流程,帮助大家加深印象。注意初始化时频率必须比ADC采样频率高,并且最好把优先级设置低于ADC中断,不然ADC还没采集完就一直被定时器中断打断。接下来进行关键代码解析,默认硬件层过压过流保护已经生效,驱动层不再处理。. 任意定时器的中断回调。
2025-07-29 15:33:12
547
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅