- 博客(69)
- 资源 (3)
- 收藏
- 关注
原创 【从零开始实现stm32无刷电机FOC】【实践】【7.2/7 完整代码编写】
本节使用stm32cubemx配置外设,生成keil工程,代码适配本文的硬件电路板。
2024-09-29 17:32:32
44121
130
原创 【FOC常见问题系列】为什么纯电流环iq无法达到目标值?
摘要:本文分析了永磁同步电机在纯电流环控制下空载飞转的现象。当设定目标iq为0.3A时,实际反馈iq无法达到目标值,而用手捏住电机后反馈iq可恢复。实验表明,极限转速不受轴承摩擦力限制,而是由反电动势决定。随着转速升高,反电动势挤占母线电压,导致反馈iq下降。数学模型分析显示,当转速达到临界点,反电动势项主导电压方程,使iq趋近于0。应对措施包括加入积分限幅保护和转速监测,防止失控飞转。
2026-05-30 20:55:10
436
原创 【stm32无感FOC理论与实践:滑模观测器】【04 稳定性证明】
本文通过李雅普诺夫稳定性理论证明了滑模观测器的可行性。首先建立了以电流估计误差模长为能量函数V,验证其满足三个稳定性判据:1)V在误差非零时为正,在零误差时为零;2)V随时间递减,保证渐进稳定;3)V在误差趋近无穷时发散,确保全局性。分析表明,当滑模增益K大于反电动势幅值时,误差系统全局渐近稳定。对于采用饱和函数替代符号函数的情况,仅在非线性区满足稳定性,因此建议将线性区设置为额定电流的5%以兼顾稳定性和抑制抖振。该证明为滑模观测器在无感FOC中的工程应用提供了理论依据。
2026-05-16 20:21:08
506
原创 【stm32无感FOC理论与实践:滑模观测器】【03 代码实践】
本文介绍了基于STM32的无感FOC电机控制实现,重点讲解了滑模观测器(SMO)的设计与应用。文章首先给出了电机参数配置方法,包括极对数、磁链、相电阻/电感等关键参数。在硬件层面详细说明了PWM占空比计算、ADC零漂校准等实现细节。核心部分阐述了滑模观测器的数学原理和C语言实现,包括反电动势观测、电流误差计算和离散化处理等关键步骤。文中提供了完整的代码片段,展示了如何通过SMO算法实现电机转子位置的无传感器检测,为无感FOC控制系统的开发提供了实用参考。
2026-05-16 20:20:25
848
1
原创 【stm32无感FOC理论与实践:滑模观测器】【02 PLL】
本文介绍了从永磁同步电机反电动势计算转子角度的两种方法。首先解释了反电动势与转子角度的关系,指出反电动势仅与转子相关。传统arctan方法通过αβ轴反电动势比值直接计算角度,但易受噪声影响。重点阐述了锁相环(PLL)方法:通过Park变换将αβ轴反电动势转换为dq轴分量,以d轴分量作为误差信号构建闭环控制,输出估计转速并积分得到转子角度。PLL相比arctan具有更好的抗噪性能,通过误差信号sin(θ̂-θ)≈θ̂-θ实现角度跟踪,形成稳定的相位锁定环路。该方法有效解决了转子角度估计中的噪声敏感问题。
2026-05-08 22:22:04
591
原创 【stm32无感FOC理论与实践:滑模观测器】【01 观测反电动势】
本文深入探讨了无感FOC控制中的滑模观测器原理与应用。首先强调无感FOC需要扎实的理论基础,特别是前文关于永磁同步电机数学模型的内容。核心推导围绕电流偏差方程展开,通过调节估计反电动势$z_\alpha$使估计电流逼近实际采样电流,当二者接近时即获得真实反电动势。文章详细分析了两种离散积分方法:前向欧拉法(计算简单但对采样周期要求高)和精确离散化(求解微分方程,精度更高)。关键创新点在于采用滑模控制思想,当电流偏差为负时令$z_\alpha=K$,为正时令$z_\alpha=-K$,通过这种开关控制迫使电流
2026-05-06 22:15:16
745
原创 【无感FOC开环拖动V/F和I/F】【2 代码实践】
本文介绍了基于STM32的FOC电机开环控制实现,包含V/F和I/F两种控制方法。代码在特定硬件平台上测试运行,基于开源FOC框架修改。文章详细讲解了数学函数实现(角度归一化、限幅等)以及V/F控制的核心公式实现,包括电角速度积分计算和输出电压处理。I/F控制部分则通过调节q轴电流实现,提供了电流爬升和固定电流两种模式。代码中关键参数可调,如加速度、最大速度等,便于实际应用调整。两种开环控制方法均能实现电机的基本运行,为后续闭环控制奠定基础。
2026-05-04 21:01:15
632
原创 【无感FOC开环拖动V/F和I/F】【1 理论推导】
本文探讨永磁同步电机无感控制中的两种开环拖动方法:V/F和I/F。V/F通过电压-频率线性关系保持转矩稳定,其电压给定公式为u_q=K+ωψ_f,适合空载启动但难以应对负载变化。I/F在此基础上引入电流环控制,能适应一定负载条件,提高拖动可靠性。两种方法均需逐步提高转速至观测器可工作范围,通过积分转速获取转子角度。分析表明,V/F侧重维持恒定转矩,I/F通过电流反馈增强负载适应性,但二者均存在开环控制固有的发热问题。这些方法为无感观测器启动提供了简单有效的过渡方案。
2026-05-03 14:33:55
647
原创 【永磁同步电机无感FOC思路建立:估计αβ轴、PLL、零速启动】
无感FOC的核心思路是通过观测与转子相关的量来估计转子角度。主要方法包括反电动势观测器和磁链观测器,通过估计α、β轴分量并使用arctan计算角度。由于直接arctan易受噪声影响,工程中采用PLL锁相环技术,通过闭环PID控制提高估计精度。在零速或低速情况下,需采用开环拖动或高频注入法等特殊启动方式。无感FOC的关键在于建立数学模型,通过迭代调整使估计值逼近真实值,最终实现无传感器控制。具体实现细节将在后续系列中详细展开。
2026-04-08 11:52:00
930
2
原创 【永磁同步电机数学模型全程推导】【7 转矩方程】
摘要:本文推导了永磁同步电机的转矩方程。通过分析输入功率构成,指出只有电磁功率与转矩相关。基于等功率变换原理,建立了电磁功率表达式,并结合物理关系式P=Tω,最终得出转矩公式T=3/2·p(ψfiq+(Ld-Lq)idiq),其中p为极对数。推导过程涉及坐标变换和功率守恒原理,明确了各功率分量的物理意义。该方程为永磁同步电机控制提供了理论基础。
2025-08-10 21:09:30
3472
3
原创 【永磁同步电机数学模型全程推导】【6 电表测量方法】
本文介绍了永磁同步电机关键参数的测量方法:1)通过电阻表测量线电阻并除以2得到相电阻$R_s$;2)采用电感表测量两相间电感随转子位置变化的极值$L_{min}$和$L_{max}$,推导计算$L_0$、$L_2$、$L_d$和$L_q$;3)通过外力匀速拖动电机测量反电动势线电压峰峰值,结合转速计算磁链常数$\psi_f$;4)给出了厂商提供的反电动势常数$K_e$(V/kRPM)与$\psi_f$的转换公式。这些方法为电机控制提供了必要的参数获取途径。
2025-07-16 09:24:34
2045
1
原创 【永磁同步电机数学模型全程推导】【5 推导结论整理】
本文总结了永磁同步电机在不同坐标系下的数学模型。在abc相坐标系中给出了磁链方程和电压方程的基本形式;在αβ坐标系中推导了隐极电机的电压方程,指出凸极电机需参考扩展反电动势理论;在dq坐标系中得出了磁链和电压方程的简化表达。重点给出了dq轴电压方程:d轴包含电阻压降、电感压降和速度电动势项,q轴除类似项外还包含永磁体磁链产生的反电动势项。这些方程为后续电机控制算法设计提供了理论基础。
2025-07-16 09:24:06
2871
1
原创 【永磁同步电机数学模型全程推导】【4 dq轴磁链、电压方程】
本文介绍了Park变换及其在无刷电机磁场定向控制(FOC)中的应用。Park变换通过旋转坐标变换将αβ轴转换为dq轴,其变换矩阵为顺时针旋转矩阵,逆变换为逆时针旋转矩阵。通过Park变换推导了dq轴的磁链方程,最终得到简化的磁链方程形式,其中包含电感参数Ld、Lq和永磁体磁链ψf。推导过程利用了等幅值变换和矩阵运算技巧,简化了复杂的计算步骤。该结果为无刷电机FOC控制提供了理论基础。
2025-07-15 14:16:23
3348
原创 【永磁同步电机数学模型全程推导】【3 αβ轴磁链、电压方程】
本文推导了αβ坐标系下的磁链和电压方程。通过等幅值Clarke变换将三相abc变量转换为αβ轴分量,变换矩阵为2/3比例系数。磁链方程由电感矩阵转换和永磁体磁链贡献两部分组成,其中蓝色部分经三角函数化简后得到简洁表达式ψ_f[cosθ; sinθ],红色部分涉及复杂的电感矩阵计算。推导过程利用三角恒等式简化运算,最终得到αβ轴磁链方程。该推导为无刷电机FOC控制奠定了理论基础,详细步骤可参考相关技术文档。
2025-07-15 14:15:36
2115
原创 【永磁同步电机数学模型全程推导】【2 abc相磁链、电压方程】
摘要:本文推导了凸极永磁同步电机三相绕组磁链方程。a相电压方程由电阻压降和电感感应电动势组成,磁链包含自感、互感和永磁体磁链三部分。自感磁链受相电感和凸极电感影响,互感磁链通过dq轴投影分析,永磁体磁链直接投影。最终推导出abc三相磁链的矩阵表达式,其中电感矩阵包含固定分量和随转子角度变化的周期分量。该模型为后续电机控制算法提供了理论基础。
2025-07-14 11:35:39
4990
13
原创 【永磁同步电机数学模型全程推导】【1 前言】
本文介绍了永磁同步电机的数学模型建立过程。重点分析了电机内部复杂的电磁环境,包括定子绕组的电阻电感特性、三相绕组互感关系以及转子磁场作用。通过数学推导,建立了αβ轴和dq轴坐标系下的磁链方程和电压方程,这些方程是电机高级控制算法的基础。文章还列出了学习该内容所需的前置知识,包括FOC基础、求导运算和线性代数知识,并预告了后续将涉及的磁链方程推导方法和电机参数测量技术。
2025-07-14 11:34:59
1899
原创 【无刷电机FOC进阶基础准备】【04 clark变换、park变换、等幅值变换、等功率变换】
本文重点解析了FOC控制中的Clark变换、Park变换及等幅值变换原理。Clark变换将三相静止坐标系(abc)投影到两相静止坐标系(αβ),其矩阵形式为2×3矩阵;Park变换则将αβ坐标系旋转至两相旋转坐标系(dq),通过2×2旋转矩阵实现。等幅值变换通过在Clark变换前乘以2/3系数,使坐标轴幅值统一为1,便于数学推导与代码实现。分析表明,Clark逆变换无需额外系数即保持等幅值特性,而Park变换作为旋转矩阵天然满足等幅值要求。文中通过矩阵运算验证了变换与逆变换的乘积为单位矩阵,并对比了等幅值变
2025-06-23 19:55:36
5149
3
原创 【无刷电机FOC进阶基础准备】【03 电机凸极性】
本文分析了永磁电机转子的两种常见结构:表贴式和内嵌式。表贴式电机永磁体直接贴在转子表面,气隙均匀;内嵌式电机永磁体嵌入转子铁芯凹槽,形成不均匀气隙。关键差异体现在磁链特性:表贴式仅受永磁体影响,而内嵌式还受周期性气隙变化影响。电感特性方面,表贴式d轴和q轴电感相等,内嵌式因永磁体位置导致d轴电感小于q轴。基于这些电磁特性差异,内嵌式又称为凸极电机,表贴式则称为隐极电机。
2025-06-23 19:54:34
2371
原创 【无刷电机FOC进阶基础准备】【02 常用电磁名词】
本文简要介绍了几种高频电磁名词的概念。磁导率反映材料受磁场影响的能力,低磁导率如木头,高磁导率如铁。气隙指线圈与材料间的空气距离,越小越好。磁感应强度表示单位面积内的磁力线密度,受介质影响。磁通量为非单位面积的磁力线数量,磁链则是多圈线圈的叠加磁通量。电感值描述线圈产生磁链的能力,会随介质变化而变化。感应电动势由磁链变化产生,包括电流变化、介质变化和外部磁场影响三种方式,电机中的反电动势属于第三种情况。这些概念虽不严格但非常实用。
2025-06-03 10:28:42
2437
1
原创 【无刷电机FOC进阶基础准备】【01 前言】
本文介绍了无刷电机FOC控制的进阶知识框架,重点阐述了永磁同步电机的数学模型构建。文章指出电机绕组并非纯电阻,而是存在电感、互感和感应电动势等复杂电磁特性,电压与电流矢量方向不一致。作者将电机控制知识分为模型、算法和参数整定三大模块,强调理解电磁学基础概念的重要性。文章预告后续将涉及电磁学名词解析、永磁同步电机电感特性等内容,并提示读者做好数学推导的心理准备。该系列需要导数知识和高中电磁学基础,适合已完成《从零开始实现stm32无刷电机FOC》基础内容的读者继续深入学习。
2025-06-03 10:27:27
2649
原创 【扩展卡尔曼滤波理论推导与实践】【理论】【1/3 前言】
扩展卡尔曼滤波,【扩展】是指在标准卡尔曼滤波基础上扩展算法而来。标准卡尔曼滤波是建立在二阶弹簧阻尼质量块系统上的线性模型,最明显的是状态转移方程和测量方程是线性的。将系统模型笼统地建模为弹簧阻尼质量块系统,这是不准确的;很多场景测量模型不是线性倍数关系,在那些场景下是不准确的。扩展卡尔曼滤波就是为了解决这类非线性问题的。
2024-12-26 21:00:13
1366
原创 【卡尔曼滤波理论推导与实践】【理论】【5/5 实践】
卡尔曼滤波要人工调节的参数包括初值、Q、R,就和调PID参数一样,要调出一个好的参数还是不容易的。文章中的电机进行电机速度数据滤波测试,设置为纯电流控制模式,对速度进行卡尔曼滤波,设置了。结果如下图,红色数据为测量出来的电机速度,绿色数据为卡尔曼滤波之后的速度。这些矩阵都只有一维,退化成一个数了,协方差矩阵退化成方差了。
2024-12-22 15:21:46
1190
原创 【卡尔曼滤波理论推导与实践】【理论】【4/5 公式总结】
模型噪声和测量噪声的协方差矩阵,是人为假设的,这也是需要调参的点。卡尔曼的推导过程中将卡尔曼增益做了一个变换。是最优估计值,是卡尔曼滤波的最终输出值。是状态转移矩阵,是人为建模给定的。是控制矩阵,是人为建模给定的。左乘、右乘、转置是一样的,
2024-12-22 15:20:58
1121
原创 【卡尔曼滤波理论推导与实践】【理论】【3.2/5 卡尔曼增益02】
用测量值修正系统模型值,得到当前轮次的最优估计值。再将该最优估计值当作下一轮的系统模型输入,继续进行下一轮的最优估计,如此迭代进行。到此为止,所有东西都被推导出来了,能看到这是一轮迭代求解的过程,下一节对公式进行整理,也就是卡尔曼滤波的5个公式。是一个模型噪声的协方差矩阵,是人为假定的常数,是已知的,记做。上节推导得到的两个表达式如下,注意只是将。等式右边全是上轮迭代得到的已知数,但是。代入表达式,即可得到最优估计时的。等号右边都是上轮迭代得出的值,的表达式,将最优估计时的。根据协方差定义的公式,
2024-12-22 15:20:12
830
原创 【卡尔曼滤波理论推导与实践】【理论】【3.1/5 卡尔曼增益01】
上节,推导得到了状态空间方程,可以得到系统模型值了。目前核心思想中的【修正】这个概念还处于迷雾中,本节对此进行推导。往下看之前,如果让你来原创,你会怎么用表达式将【测量值修正系统模型值】这句话的逻辑清晰地写出来?有差值才有【修正】,而差值是测量值和系统模型之间的差,是在被修正值的基础上加这个差值,因此这是一个关于测量值和系统模型值的逻辑。【修正】的逻辑应当是这样的:将测量值与模型值的差作为修正值,乘个系数后,叠加到模型值,这就是卡尔曼滤波的【修正】。这个系数,被称为卡尔曼增益。
2024-12-22 15:18:47
1685
原创 【卡尔曼滤波理论推导与实践】【理论】【2/5 状态空间方程】
测量值是我们测量得到的,这个是已知的。系统模型现在还没有建模,本节建立系统模型,系统模型值就是系统模型计算得到的值。由于一阶微分表述的是当前量与当前量的导数的关系,离散后具有有迭代的性质,符合状态转移理念,因此我们要想办法将上面这个二阶微分方程转换为一阶微分方程,当然二阶量就无法作为状态的一员了。大部分情况下,会使用弹簧阻尼质量块这个模型进行分析,大部分物理现象被抽象概括成这个模型,当然不一定准确,但是具有一定的普适性。,这就是系统模型所谓的【描述了上一轮次的状态与本轮次状态的转换关系】。
2024-12-22 15:17:38
1573
4
原创 【卡尔曼滤波理论推导与实践】【前言】【1/5 前言】
滤波是在一串有先后顺序的观测值中尽量估计出接近真值的操作。估计出的值是最优估计值,每收到一个杂乱数据都算出一个最优估计值,即每轮次都有最优估计值。当然,真值永远也无法知道。现在看这个思想是符合自然逻辑的,卡尔曼提出来了并用数学语言进行描述,这就是人家的创新之处。这样,每轮次的最优估计值都算出来了。
2024-12-22 15:17:08
861
原创 【从零开始实现stm32无刷电机FOC】【实践】【7.1/7 硬件设计】
为了承载和验证本文的FOC代码工程,本节设计了一个简易的三相无刷电机,主控采用非常常用的stm32f103c8t6单片机,电机编码器采用MT6701,电机采用22xx系列云台电机,驱动电路采用集成驱动芯片DRV8313,电流传感器采用INA199A1在线采样。该使用无工具快拆装设计,到手即可直接快速手拧安装拆卸。
2024-09-29 17:30:28
15411
20
原创 【从零开始实现stm32无刷电机FOC】【实践】【6/7 CMSIS-DSP】
CMSIS-DSP库是ARM开源的、对ARM处理器优化的数学库,本文使用了其提供的三角函数、反park变换函数、park变换函数、clarke变换函数、PID控制器。CMSIS-DSP原始代码仓库是,官方对其的介绍是一个针对Cortex-M和Cortex-A内核优化的嵌入式系统计算库,此处的DSP不是指的硬件,而是数字处理的意思。
2024-07-18 22:59:24
8245
4
原创 【从零开始实现stm32无刷电机FOC】【实践】【5/7 stm32 adc外设的高级用法】
本节介绍的adc外设高级用法用于电机电流控制。从前面几节可知,电机力矩来自于转子的q轴受磁力,而磁场强度与电流成正比,也就是说电机力矩与q轴电流成正相关,控制了q轴电流就是控制了电机力矩。从前文电流控制内容可知,q轴电流从三个相线电流计算得到,三个相线电流通过电流采样单元连接到stm32的adc接口得到。这里要注意,本文全文没有提到过dq轴电压或相线的电压,因为相线电阻会随着温度而改变,而电流才是决定磁场强度。
2024-07-16 22:06:45
10830
10
原创 【从零开始实现stm32无刷电机FOC】【实践】【4/7 stm32高级定时器】
本节对stm32高级定时器中可用于FOC控制的配置项进行了介绍,并尽量开启了TIM1的完整功能,请根据自己的电路环境以及配置项说明图进行配置项的删减,比如是否开启互补和死区功能、是否开启刹车功能、死区时间的修改等等。从上图看到,半桥的上功率管和下功率管不能同时导通,否则功率管会由于短路流经大量电流被烧毁(电机绕组有电阻在,不算短路),因此上下两个的功率管的pwm要求互补导通。下图是定时器配置为上下计数模式的pwm产生示意图,定时器当前计数值与设定的比较线(值)的比较关系控制定时器通道的输出。
2024-07-11 23:14:01
14241
9
原创 【从零开始实现stm32无刷电机FOC】【理论】【3/7 位置、速度、电流控制】
上一节,通过对SVPWM的推导,我们获得了控制电机转子任意受力的能力。本节,我们选用上节得到的转子dq轴解耦的SVPWM形式,对转子受力进行合理控制,实现FOC电机控制的最终目标:位置、速度、电流控制。
2024-07-09 21:43:23
13779
9
原创 【从零开始实现stm32无刷电机FOC】【理论】【2/7 SVPWM数学模型】
本节推导了svpwm数学模型,得到了目标磁矢量的生成函数。
2024-05-22 22:46:36
18804
46
原创 Keil 厂商DFP pack实现原理
直接复制别人的厂商文件夹到这里也是相同的效果,比如这里复制了一份ArteryTek的文件夹命名为ArteryTek2,打开Keil时会提示ArteryTek2相应的信息,说明Keil会扫描这个目录下的文件夹。在Keil中用鼠标选择芯片型号操作的原理是读取解析厂商文件夹下对应型号文件夹中的pdsc文件(pack description),这个文件写着芯片的介绍文字、外设功能库的路径、debug时寄存器文件的路径等等芯片相关的信息,Keil读取出这些信息后显示到Keil界面上供程序员鼠标点选。
2023-10-12 11:40:52
997
原创 串口硬件流控RTS、CTS
硬件流控机制:发送端在发送前需要检查自身的CTS,CTS低电平为可以发送。接收端RTS连接到发送端的CTS,接收端准备好接收后拉低自己的RTS即拉低发送R端的CTS。设置流控模式后,芯片内部自动完成以上机制,CTS为高时,即使程序运行发送函数,实际上并不会发送。当接收端的串口处理速度过低时,会丢失数据,因此考虑增加一种通知的机制来告诉发送端是否可以发送,即增加了RTS(Require To Send)和CTS(Clear To Send)信号线。
2023-10-11 14:01:21
3167
原创 MOS管各种概念(三个极、沟道、衬底、电流方向、箭头方向、耗尽型和增强型、寄生二极管、封装引脚)
MOS管各种概念(三个极、沟道、衬底、电流方向、箭头方向、耗尽型和增强型、寄生二极管)
2023-10-09 11:02:37
45679
5
libopencv_world450.dll
2020-12-06
libopencv_world450.dll.a
2020-12-06
opencv.zip
2020-12-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅