1. 项目概述与核心价值
最近在做一个家用风扇的电机驱动项目,客户要求必须满足IEC 60730(对应UL 1998)的Class B安全标准,同时还要兼顾成本、效率和静音。经过一番选型和方案对比,最终敲定了基于TI的TMS320F28021这颗Piccolo系列MCU,来实现永磁同步电机(PMSM)的无传感器磁场定向控制(FOC)逆变器。这个方案听起来高大上,其实核心目标很明确:用一颗性价比高的芯片,做出一个既安全可靠、性能又足够好的风扇电机驱动器。
为什么选择无感FOC?对于风扇这类负载相对稳定、对成本敏感的应用来说,霍尔传感器或编码器不仅增加BOM成本和组装复杂度,在高温、高湿的恶劣环境下可靠性也是个问题。无感FOC通过算法“观测”转子位置,完美解决了这个问题。而TMS320F28021作为C2000家族的一员,虽然定位入门,但片上资源对于实现一个高性能的FOC算法绰绰有余:40MHz的主频、高分辨率的PWM(HRPWM)、快速的ADC以及丰富的模拟比较器等外设,为构建一个全数字化的紧凑型驱动器提供了硬件基石。
整个设计的挑战在于,如何将复杂的FOC算法、实时性要求极高的保护逻辑(过流、缺相、堵转等)以及IEC 60730标准要求的微电子故障自诊断功能,全部塞进这颗MCU里,并稳定可靠地跑起来。这不仅仅是写代码,更是对系统架构、资源分配和实时调度能力的全面考验。下面,我就结合这次实际开发的经验,从硬件选型、软件架构、算法实现到安全合规,把整个设计思路和踩过的坑详细拆解一遍。
2. 系统整体设计与硬件选型考量
2.1 系统规格与需求解析
在动手画原理图之前,必须先把系统的“性能合同”定下来。这次项目针对的是室内机和室外机风扇,虽然功率不同(30W和70W),但核心架构一致。规格书里明确了几个关键点,这直接决定了后续的硬件设计和软件参数整定。
首先是电机参数。两台电机都是4对极的PMSM,额定转速在1500-1760rpm之间。这里需要注意定子电阻(Rs)和电感(Ls),它们是FOC算法中电机模型的核心参数,直接影响电流环的PI调节器设计和观测器的收敛性。例如,室内机电感为0.137H,室外机为0.32H,电感值不同,意味着软件中电流环的积分时间常数需要分别调整,不能一套参数通用。
其次是电气规格。系统采用310VDC母线电压,这在家用变频风扇中很常见,通常由PFC电路后的直流母线提供。输入范围要求250V-360VDC,这就要求我们的硬件采样电路和软件保护阈值必须覆盖这个范围。开关频率定为16kHz,这是一个权衡值:频率太高会增加开关损耗,降低效率;频率太低则电流纹波大,电机噪音和振动会变差。16kHz对于风扇应用,能在听觉范围之外,同时保证不错的控制性能。
最后是性能与保护指标。效率要求>85%,这要求我们在功率器件选型(低导通电阻)、死区时间设置(最小化电压损失)和控制算法(最小化电流谐波)上都要做优化。丰富的保护功能是安全运行的基石,也是IEC 60730标准审查的重点,包括过压/欠压、过流、缺相、堵转、短路、功率限制等,每一项都需要硬件和软件的协同设计。
2.2 核心MCU外设分配与电路设计
TMS320F28021的资源对于这个应用是“刚刚好”,因此引脚分配和外围电路设计必须精打细算。根据规格书中的引脚分配表,我们可以清晰地看到设计思路。
1. 功率驱动与PWM生成(ePWM模块)这是电机驱动的执行机构。我们使用了MCU的三个ePWM模块(ePWM1, 2, 3)来生成六路互补带死区的PWM信号,分别驱动三相逆变桥的上、下管。这里的关键是死区时间的设置和PWM对齐方式。
- 死区时间:为了防止同一桥臂的上下管直通,必须插入死区。时间太短有直通风险,太长则会导致输出电压畸变,增加谐波。通常根据IGBT/MOSFET的开关特性(开通/关断延迟)来设定,一般设置在几百纳秒到几微秒。F28021的ePWM模块可以硬件自动插入死区,非常方便。
- PWM对齐方式:我们选择中心对称PWM(Up-Down计数模式)。相比于边缘对齐,中心对称PWM的谐波特性更好,能有效降低电机的转矩脉动和噪音,这对于追求静音的风扇应用至关重要。三个ePWM模块通过时钟同步链(EPWMxSYNCI/O)串联,确保六路PWM的载波周期严格同步,避免相间干扰。
2. 电流与电压采样(ADC模块)无感FOC的“眼睛”就是电流采样。方案采用了双电阻采样(对于室内机)或三电阻采样(对于室外机)方案。采样电阻串联在逆变桥的下桥臂和地之间。
- 采样时刻:这是第一个坑。必须在PWM开通时间内,且电流稳定时进行采样。通常选择在PWM周期中心点附近,或者下桥臂导通的中点时刻进行采样,此时采样到的电流就是对应相的相电流。这需要通过精确配置ADC的SOC(Start-Of-Conversion)触发源,将其与ePWM模块的时基计数器挂钩来实现。
- 运放电路设计:采样电阻上的电压信号很小(mV级),需要经过运放放大。这里要注意运放的共模输入电压范围和带宽。由于采样点电位在快速开关,共模电压变化剧烈,需要选择共模抑制比高、压摆率足够的运放。同时,为了抑制开关噪声,在运放输入端通常需要加入一阶RC低通滤波,但截止频率不能设得太低,否则会影响电流环的响应速度。我们的经验是,滤波器的截止频率至少是PWM频率的10倍以上。
3. 硬件保护电路(比较器与Trip-Zone)软件保护有延迟,对于过流这种需要纳秒级响应的致命故障,必须依赖硬件。F28021片内集成了模拟比较器(COMP)和跳闸区(Trip-Zone)模块,构成了最后一道防线。
- 比较器:我们将采样放大后的电流信号(如Ifb-U)直接接入比较器的正输入端,负输入端连接片内DAC设定的阈值。一旦电流超过阈值,比较器输出立即翻转。
- Trip-Zone:比较器的输出直接连接到ePWM模块的TZ输入。可以配置为**单次触发(OST)或周期触发(CBC)**模式。我们选择OST模式,一旦触发,硬件会立即将全部PWM输出强制置为高阻态或固定安全状态(如下桥臂全开),这个动作是完全由硬件逻辑完成的,不依赖CPU干预,响应速度极快。这个功能在调试阶段救了我们好几次,避免了炸管。
4. 通信与调试接口GPIO18和GPIO17分别驱动两个LED,用于指示运行状态和故障代码,这是最直观的调试手段。SCI(UART)接口用于连接上位机,在开发阶段可以实时监控变量(如电流、速度、角度)、修改参数,是算法调试不可或缺的“后门”。
实操心得:硬件设计的“坑”
- 采样电阻的功率与布局:采样电阻的功率要留足余量,尤其是启动或堵转时电流很大。布局上必须采用开尔文连接(四线制),将采样信号线直接引到电阻的焊盘上,避免大电流路径上的压降干扰采样。我们曾因布局不当,导致采样信号中串入了开关噪声,使得电流波形毛刺严重,观测器无法收敛。
- 隔离与电平转换:MCU是3.3V系统,而驱动三相逆变桥的隔离驱动器(如文档中提到的PS21765)可能需要15V供电和信号电平转换。这部分隔离电源(如反激或隔离DC-DC)的设计要保证稳定,否则可能导致PWM信号畸变,甚至损坏MCU。
- 母线电压采样分压电阻:分压电阻的精度和温度稳定性直接影响过压/欠压保护的准确性。建议使用精度1%、温漂小的金属膜电阻。同时,在ADC输入端并联一个小电容(如100pF)滤除高频噪声。
3. 无感FOC算法在F28021上的实现细节
3.1 FOC算法原理与软件架构
很多人觉得FOC算法很复杂,其实它的核心思想很直观:把交流电机当成直流电机来控制。永磁同步电机的转矩由定子电流和转子永磁体磁场相互作用产生。在自然的三相坐标系(ABC)下,这两个量都是交流的,难以直接解耦控制。FOC通过一系列坐标变换,将它们转换到与转子磁场同步旋转的d-q坐标系下。在这个坐标系里,d轴电流(Id)控制磁通(对于PMSM,通常设为零,因为磁通由永磁体提供),q轴电流(Iq)直接控制转矩,这就实现了类似直流电机的线性控制。
软件流程的主循环通常由一个高优先级的定时器中断(例如,与PWM频率同步,16kHz)来驱动。在这个中断服务程序(ISR)中,需要顺序完成以下关键任务:
- ADC采样与处理:读取三相电流(Ia, Ib)和母线电压(Vdc)。注意,由于采用双电阻采样,需要根据当前扇区重构出第三相电流Ic = -Ia - Ib。
- Clarke变换:将三相静止坐标系(ABC)下的电流(Ia, Ib, Ic)变换到两相静止坐标系(α-β)下的电流(Iα, Iβ)。
- Park变换:将静止的(Iα, Iβ)变换到旋转的(d-q)坐标系下的电流(Id, Iq)。这个变换需要转子的电角度(θ),而这个角度正是无感算法的核心输出。
- PI调节:将变换得到的Id、Iq与它们的给定值(Id_ref通常为0,Iq_ref来自速度环输出)进行比较,误差经过PI调节器,输出d-q坐标系下的电压给定值(Vd_ref, Vq_ref)。
- 反Park变换:将旋转坐标系下的电压(Vd_ref, Vq_ref)变换回静止坐标系(α-β)下的电压(Vα_ref, Vβ_ref)。
- 空间矢量脉宽调制(SVPWM):将(Vα_ref, Vβ_ref)合成一个空间电压矢量,通过计算,决定在一个PWM周期内,三相桥臂的六个开关管如何动作,以最接近该矢量。最终输出就是六路PWM的占空比。
3.2 无感位置观测器:滑模观测器(SMO)的实现
无感FOC的“灵魂”在于位置观测器。我们采用的是滑模观测器(Sliding Mode Observer, SMO),因为它结构相对简单,对参数变化鲁棒性强,非常适合像风扇这样对成本敏感的应用。
其基本原理是构建一个电机的反电动势(Back-EMF)观测器。PMSM的反电动势与转子位置直接相关。SMO通过设计一个滑模面,迫使观测的电流与实际采样的电流误差趋近于零,从而估算出包含反电动势信息的项。再从估算的反电动势中提取出转子的电角度(θ)和电角速度(ω)。
在F28021上实现SMO,有几个关键点:
- 离散化:控制理论中的SMO是连续的,需要在MCU中离散化。离散化的步长(即PWM周期)直接影响观测器的稳定性和精度。我们的经验是,在16kHz开关频率下,离散化后的SMO性能足够。
- 低通滤波与相位补偿:从SMO直接估算出的反电动势含有高频开关噪声,需要经过低通滤波才能得到平滑的角度信息。但低通滤波器会引入相位滞后,必须进行补偿。补偿角度 = arctan(ω_e / ω_c),其中ω_e是电角速度,ω_c是低通滤波器的截止频率。这个补偿需要在软件中实时计算。
- 锁相环(PLL):为了从滤波后的反电动势信号中得到更平滑、无抖动的角度和速度,通常会再用一个软件锁相环。PLL能够有效抑制观测器输出的高频噪声,提供更稳定的角度信息给Park变换。
调试技巧:观测器参数整定观测器的性能很大程度上取决于几个增益参数(如滑模增益、滤波器截止频率、PLL的PI参数)。调试时,可以先将电机用有传感器方式带起来,同时运行无感算法但不使用其角度(开环V/F控制),对比观测器估算的角度与编码器反馈的真实角度。通过上位机观察两者的误差,逐步调整观测器参数,直到在全程速域内(尤其是低速和高速)估算角度都能紧密跟踪真实角度。这个过程需要耐心,也是无感FOC调试中最耗时的部分。
3.3 启动策略:从开环拖拽到闭环观测
PMSM无感启动是个经典难题,因为零速或低速时反电动势几乎为零,观测器无法工作。我们采用的是经典的“三段式”启动法:
- 预定位:给定子三相绕组通入一个固定的电流矢量,将转子强行拉到一个已知的初始位置(例如,对齐到A轴)。保持一段时间,确保转子稳定。
- 开环拖拽(IF启动):在预定位的基础上,按照预设的加速度和V/F曲线,逐步增加给定电压矢量的幅值和频率,强制电机旋转起来。这个阶段,电机像步进电机一样被“拖”着走,转速和角度完全由给定值决定。
- 切换观测:当电机转速被拖拽到足够高(例如,文档中提到的<750 rpm),反电动势信号足够强,观测器能够稳定收敛时,进行切换。切换过程要平滑,避免电流和速度冲击。通常是在一个电周期内,逐渐减小开环给定的权重,同时增加观测器角度反馈的权重,完成过渡。
文档中提到的“飞启”(Flying Start)功能,是指当电机还在自由旋转时(比如断电后惯性旋转),控制系统能够快速检测出当前转速和位置,并平滑切入闭环运行,避免重启时的冲击电流。这需要观测器具备在任意初始角度下快速收敛的能力。
4. 故障保护与IEC 60730合规性设计
4.1 电机系统级故障保护机制
对于家电产品,安全是底线。我们设计了一套分层的故障保护体系,从硬件到软件,从快速响应到周期性诊断。
1. 过流保护(硬件+软件双重防护)
- 硬件保护(纳秒级):如前所述,利用片内比较器和Trip-Zone。阈值通过DAC设定,略高于电机的最大允许峰值电流。一旦触发,PWM立即被硬件封锁。
- 软件保护(微秒级):在ADC中断中,实时计算三相电流的瞬时值或有效值。如果超过软件设定的阈值(通常比硬件阈值低,作为预警),则置位故障标志,在下一个控制周期中安全停止PWM输出。软件保护还用于电流限幅,当电流接近但未达到故障阈值时,通过降低转矩给定(Iq_ref)来限制电流,实现“软”保护。
2. 缺相与短路检测这是通过注入诊断信号来实现的。在电机停止状态下,程序会进入一个特定的检测状态(如文档中的FAN_CHK_CTRL)。
- 缺相检测:依次给某一相通入一个很小的、固定占空比的PWM电压(如6.25%),另外两相关闭。通过检测母线电流的变化,可以判断该相绕组是否连通。如果电流远低于预期,则判断为该相开路。
- 短路检测:同样通入小电压,如果检测到的电流异常大,则可能为相间短路或对地短路。 在电机运行中,则通过监测三相电流的平衡度来判断。如果某一相电流持续异常(过小或为零),则报缺相故障。
3. 堵转保护电机在启动或运行中,如果负载过大导致转子停转,电流会急剧上升。保护逻辑通过监测两个条件来判断:实际转速低于一个很低阈值,同时q轴电流(转矩电流)持续高于最大允许值。满足条件并持续一定时间(防误判),则触发堵转保护。
4. 过压/欠压、过功率保护这些保护基于母线电压采样和功率计算。功率可以通过实时计算电压和电流的乘积(P = Vdc * Idc)来近似得到,或者通过更精确的基于d-q轴的公式计算。当电压或功率超过设定阈值时,触发保护。
4.2 IEC 60730 Class B软件自诊断库(STL)集成
满足IEC 60730 Class B标准,意味着软件不仅要处理外部故障,还要能自我诊断MCU内部的潜在故障。TI提供了针对C2000的IEC 60730软件测试库(STL),我们需要将其集成到项目中。
STL库主要执行以下几类测试,文档中列出了详细的测试项:
- 启动自检(Power-Up Test):上电时执行一次,包括检查MCU器件ID、时钟、Flash CRC等。如果失败,系统根本不会进入运行状态。
- 周期自检(Periodic Test):在后台循环执行,检测MCU核心功能是否正常。这是Class B合规的关键。
- CPU寄存器测试:检查ACC、P、XAR0-XAR7等核心寄存器是否存在“卡死”位(stuck-at fault)。
- 程序计数器(PC)测试:验证程序流是否正常。
- RAM测试:对程序RAM、数据RAM、堆栈等进行March C等算法测试,检查存储单元是否损坏。
- Flash CRC测试:周期性计算应用程序Flash区的CRC值,与预存的标准值对比,防止代码因Flash位翻转等原因被篡改。
- 时钟失效检测:利用硬件监控模块,检测外部或内部时钟是否丢失。
- 外设功能测试:如ADC测试(采样已知的基准电压)、看门狗测试、定时器测试、PWM模块测试等。
集成与调试经验:
- 资源占用:STL库会占用一定的CPU时间和内存(代码空间和RAM)。F28021的32K Flash和5K RAM需要精打细算。务必在项目初期就规划好内存映射,为STL库分配专用的RAM区域(SafeRAM),避免与应用代码冲突。
- 测试时机:周期测试不能干扰电机控制的实时性。通常将耗时长的测试(如RAM全检)拆分成多个小块,在电机控制中断的间隙中分时执行。或者,利用C2000双核(CLA)或更低优先级的后台任务(如while(1)主循环)来执行。
- 错误注入测试:为了验证自诊断功能确实有效,标准要求进行错误注入测试。如文档所示,通过修改头文件中的宏定义(例如
#define ERROR_SIM_PART_ID 1),可以模拟各种故障(如错误的器件ID、错误的ADC读数)。在调试阶段,必须逐一测试这些模拟故障是否能被正确检测到,并触发预定的安全反应(通常是安全停机)。这是认证测试机构会重点审查的部分。 - 故障响应:一旦任何自检失败,STL库会设置对应的故障标志。我们的应用程序需要实时监控这些标志,并立即执行安全状态转换(如封锁PWM,点亮故障灯,记录错误码)。故障码可以通过LED闪烁序列或UART上报,便于售后诊断。
5. 软件架构与状态机设计
一个健壮的电机控制系统,必须有一个清晰的软件状态机来管理其生命周期。文档中的流程图给出了一个很好的框架,我们可以将其细化。
主状态机通常包含以下几个状态:
- 初始化状态(INIT):配置系统时钟、GPIO、PWM、ADC、比较器等所有外设,初始化电机参数、控制变量和软件滤波器。调用STL库的启动自检函数。
- 停止状态(STOP):PWM输出被禁止,所有控制变量复位。系统等待启动命令(如速度给定电压超过阈值)。
- 启动状态(START):执行前述的“三段式”启动流程(预定位 -> 开环拖拽 -> 切换观测)。这个状态内部还有子状态机。
- 运行状态(RUN):进入无感FOC闭环控制。在此状态下,高优先级的定时器中断负责执行FOC算法核心循环。主循环或低优先级任务负责执行速度环计算、保护标志检查、通信处理以及STL库的周期自检。
- 故障状态(FAULT):任何硬件或软件保护触发,或STL自检失败,都会立即跳转到此状态。在此状态下,必须立即封锁PWM输出(通过硬件Trip-Zone和软件双重保证),记录故障类型,并可能通过LED或通信接口报警。系统必须等待故障条件消除(如过流消失)且收到明确的复位命令后,才能尝试重新初始化。
中断服务程序(ISR)设计要点:
- ADC采样中断:优先级最高,与PWM周期同步。它负责触发ADC、读取结果、执行Clarke/Park变换、电流环PI计算、反Park变换和SVPWM计算,并更新PWM占空比寄存器。整个计算必须在下一个PWM周期开始前完成,否则会导致控制延迟,系统不稳定。
- 速度环中断:优先级低于电流环,频率也低得多(例如1kHz)。它负责读取观测器计算出的速度,与给定速度比较,经过PI调节器输出Iq_ref。同时,可以在这里进行电压前馈、弱磁控制等高级算法。
- 后台主循环:执行非实时性任务,如UART命令解析、参数更新、LED闪烁、故障状态处理以及调用STL库的分块周期测试函数。
避坑指南:软件时序与资源冲突
- ADC采样窗口:确保ADC的采样保持时间足够,让采样电容充分充电。对于电流采样这种可能存在高频噪声的信号,TI的ADC模块支持“采样窗口”设置,可以延长采样时间以提高精度。
- PWM寄存器更新时机:计算出的新占空比,必须在影子寄存器中更新,并在下一个PWM周期开始时(计数器为零或周期匹配点)由硬件自动加载到活动寄存器。切忌在PWM周期中间直接写活动寄存器,会导致输出毛刺。
- 浮点与IQMath:F28021支持硬件浮点单元,但大量使用浮点运算仍会消耗较多周期。对于固定的算法(如PI调节),可以使用TI的IQMath库。IQMath用定点数模拟浮点数运算,速度极快,但需要开发者注意数据的定标(Q格式),防止溢出和精度损失。在资源紧张的系统中,合理混用浮点和IQMath是性能优化的关键。
6. 调试、测试与性能优化实录
6.1 开发环境搭建与基础调试
工欲善其事,必先利其器。我们使用Code Composer Studio (CCS)作为集成开发环境,配合TI的C2000 DigitalPower SDK(或更早的MotorControl SDK),里面包含了FOC算法库、驱动程序库和许多示例工程,能极大加快开发进度。
第一步:让电机转起来(开环)
- 先不接电机,用示波器观察六路PWM输出是否正常,死区时间是否正确,互补信号是否正常。
- 接上电机,但先屏蔽掉所有闭环算法和观测器。编写一个简单的开环V/F控制程序,给定一个很小的电压和缓慢增加的频率,观察电机是否能平稳启动并旋转。此时应能听到电机均匀的旋转声,用手轻轻捏住轴能感觉到均匀的阻力。这一步验证了硬件驱动电路和最基本的PWM生成是正常的。
第二步:电流环调试(闭环基础)
- 保持电机静止(或卸掉负载)。将Id_ref和Iq_ref都设为0。在电流环中断中,让Park变换使用的角度θ固定为0。
- 用CCS的实时图形工具,观察ADC采样到的三相原始电流值。它们应该是围绕0值上下波动的噪声。调整电流采样电路的偏置和增益,确保零电流时ADC读数接近理论值。
- 然后,给定一个很小的阶跃Iq_ref(例如对应0.1A),观察d-q轴电流Id和Iq的响应。此时因为角度固定,响应可能不对,但重点看电流环PI输出是否饱和,ADC值是否变化。通过调整电流环的PI参数(先调P,再调I),让电流响应既快速又无超调。这一步是闭环稳定的基石。
第三步:观测器调试与闭环切换这是最核心也最考验耐心的步骤。
- 首先,让电机在开环V/F下稳定运行在中等速度(例如500rpm)。
- 同时,在后台运行无感观测器算法,但不使用其输出的角度来控制电机(即Park变换仍使用开环给定的角度)。通过CCS同时绘制观测器估算的角度和开环给定的角度(可以近似视为真实角度)。
- 仔细调整滑模观测器的增益、低通滤波器截止频率和PLL参数,目标是让估算角度紧紧跟随给定角度,误差尽可能小且平稳。可以尝试不同的速度点(低速、中速、高速)进行调试。
- 当观测器在全速域都能稳定跟踪后,实现切换逻辑。在开环运行一段时间后,平滑地将Park/反Park变换使用的角度源,从开环给定切换到观测器估算。观察切换瞬间的电流和速度是否平稳,无冲击。如果切换失败(电机失步、抖动),需要检查切换逻辑的平滑算法,或者回到上一步继续优化观测器参数。
6.2 性能测试与问题排查
当电机能稳定闭环运行后,就需要进行全面的性能测试和压力测试。
1. 稳态性能测试
- 电流波形:如文档图13、14所示,用电流钳和示波器观察电机稳定运行时的相电流波形。理想情况下应是光滑的正弦波。如果波形毛刺多,可能是采样噪声大或PWM死区设置不当;如果波形畸变(如平顶),可能是母线电压不足或进入了过调制区域。
- 效率测试:在不同转速和负载下,测量输入功率和输出功率(或扭矩转速),计算系统效率。确保在全工作范围内满足>85%的要求。效率偏低可能的原因有:开关频率过高导致开关损耗大;死区时间过长导致输出电压损失;电流谐波大导致铜耗增加。
- 噪音与振动测试:在静音室或用噪音计测量。异常的噪音可能来源于:电流谐波(调整SVPWM算法或注入谐波抑制);机械共振(调整速度环参数,避开共振点);观测器估算角度有抖动(优化观测器滤波参数)。
2. 动态与保护功能测试
- 突加负载:电机运行时,突然施加负载(如用手捏住扇叶),观察速度恢复情况和电流变化。速度环的PI参数需要调整到能快速抗扰动,但又不能超调过大引起振荡。
- 保护功能触发:这是安全认证的关键。需要逐一测试:
- 过流:短时短路电机线,或大幅增加负载,观察硬件比较器和软件保护是否依次正确触发,PWM是否立即封锁。
- 缺相:运行时拔掉一相电机线,系统是否能在设定时间内检测到并安全停机。
- 堵转:在电机轴上施加机械锁,系统是否触发堵转保护。
- STL自检:通过修改宏定义,模拟各种MCU内部故障,验证系统是否能检测并进入安全状态。
3. 常见问题与排查表在实际调试中,我们遇到了不少问题,这里总结一个速查表:
| 现象 | 可能原因 | 排查步骤与解决方法 |
|---|---|---|
| 电机完全不转,无电流 | 1. PWM无输出 2. 驱动电路供电异常 3. 硬件保护已触发 | 1. 查MCU PWM引脚输出波形。 2. 查隔离驱动器电源(如15V)。 3. 查Trip-Zone状态寄存器,清除故障标志。 |
| 电机抖动、异响、无法启动 | 1. 相序错误 2. 电机参数(Rs, Ls)不准 3. 电流采样偏置或增益错误 4. 观测器参数不佳,角度估算发散 | 1. 任意交换两相电机线或调整软件相序。 2. 用LCR表实测电机参数,更新到软件。 3. 校准ADC零点和比例系数。 4. 回归观测器调试步骤,在开环下观察估算角度。 |
| 高速运行时失步 | 1. 观测器带宽不足,跟不上高速变化 2. 弱磁控制未开启或参数不对 3. 母线电压不足 | 1. 提高观测器增益和PLL带宽(需注意稳定性)。 2. 检查并调试弱磁控制算法。 3. 检查输入电源,或降低高速下的电压利用率。 |
| 特定转速点振动大 | 机械共振点 | 1. 修改速度环PI参数,避开共振频率。 2. 在速度环中加入陷波滤波器。 |
| 过流保护频繁误触发 | 1. 硬件比较器阈值设置过低 2. 电流采样受干扰,有尖峰 3. 软件保护判断逻辑过于敏感 | 1. 适当提高硬件DAC阈值。 2. 优化电流采样电路布局和滤波参数。 3. 在软件中增加滤波或延时判断(防抖)。 |
| IEC 60730自检误报故障 | 1. STL库测试时间不足,被电机控制中断打断 2. 分配给STL库的SafeRAM被其他任务篡改 | 1. 调整自检任务的执行时机或分块更细。 2. 检查链接命令文件(.cmd),确保内存分区无重叠。 |
6.3 效率与温升优化
在满足性能的前提下,优化效率可以降低散热成本,提升产品竞争力。
- 死区时间优化:在保证不直通的前提下,尽可能减小死区时间。可以通过双脉冲测试精确测量功率器件的开关延迟来确定最小安全死区。
- 开关频率选择:对于风扇这种对动态响应要求不极致的应用,可以尝试适当降低开关频率(如从16kHz降到12kHz),能显著降低开关损耗。但需重新评估电流纹波和噪音是否可接受。
- 功率器件选型:选择导通电阻(Rds(on))更小的MOSFET或IGBT。虽然成本可能略高,但在大电流下带来的导通损耗降低非常可观。
- 控制算法微调:优化SVPWM算法,采用七段式SVPWM可以减少开关次数。在轻载时,可以考虑采用不连续PWM(DPWM)模式,进一步降低开关损耗。
整个项目从硬件设计、软件编写到调试认证,是一个不断迭代和解决问题的过程。基于TMS320F28021的无感FOC风扇逆变器方案,以其高性价比和可靠性,完全能够满足家用电器对性能、安全和成本的综合要求。最关键的是,吃透FOC的原理,理解硬件与软件的交互细节,建立起清晰的调试思路,才能在各种问题面前游刃有余。希望这份结合了官方文档和实战经验的总结,能给正在或即将从事类似项目的朋友带来一些实实在在的帮助。