首页 / 资讯中心 / 文章详情

PMSM脉冲注入初始位置检测:磁饱和效应实现转子定位

PMSM脉冲注入初始位置检测:磁饱和效应实现转子定位 ★ FEATURED ARTICLE
高精度场合伺服电机转子的初始位置检测程序PMSM脉冲注入初始位置检测搞过伺服驱动的人都知道转子初始位置检测是开机自检里最让人头疼的一环。尤其是高精度场合位置没找准后面的电流环解耦、速度环观测全是空中楼阁轻则启动抖动重则直接过流跳闸。我自己在调试某跨平台伺服系统时就吃过这个亏——带负载启动瞬间电机反向猛转了一下吓得我赶紧断电检查最后定位到问题就是初始位置偏差太大。这些年试过几种方案电感增量法、磁链观测法、短脉冲注入法各有各的适应场景。但如果你做的项目对精度要求高、对启动平滑性有硬指标同时又不想额外增加编码器硬件成本那我强烈建议你认真研究一下PMSM脉冲注入初始位置检测。这套方案的核心思想是利用定子铁芯的磁饱和效应通过向电机注入一系列电压脉冲观测电流响应的差异来反推转子磁极位置。整个过程不需要任何机械位移纯电气检测非常适合表贴式和内置式永磁同步电机。这篇文章我就把这套方法的原理、C代码实现、工程参数整定、常见坑点一次性讲透给需要做伺服驱动初始化功能的工程师一个可直接参考的方案。1. 高频脉冲注入法原理剖析为什么它能测出转子位置1.1 磁饱和效应整个方案的物理基石要理解脉冲注入法必须先理解磁饱和效应。永磁同步电机的转子嵌有永磁体永磁体在气隙中建立了一个固定的磁场。当定子绕组通入电流产生电枢磁场时如果电枢磁场的方向与转子永磁体磁场方向一致即d轴方向两个磁场叠加铁芯更容易进入饱和区如果方向相反铁芯磁路先去饱和磁导率反而更高。铁芯饱和程度会直接影响定子绕组的电感值。方向一致时磁路饱和电感变小方向相反时电感变大。也就是说定子绕组的电感值随转子位置变化而变化并且这种变化在d轴上最明显。我们在d轴方向上施加幅值相同、方向相反的电压脉冲观察电流响应幅值的差异就能判断转子磁极的极性——这是整个方案的物理基础。可能有人会问为什么不直接测量电感因为电感不容易在线直接测量而电流响应容易采集。方法是施加固定脉宽的电压矢量电流的上升斜率与电感成反比电流峰值越大说明电感越小磁路越饱和。1.2 为什么选脉冲注入而不是高频正弦注入我们常听到的高频注入法通常指高频旋转电压注入或高频脉振电压注入这两种方法需要持续施加高频载波信号通过解调载波中的位置信息来获取转子角。它们的优点是精度高、动态响应快但实现复杂需要额外的高频信号生成模块、带通滤波器、锁相环解调器对控制器的算力有较高要求。脉冲注入法则走的是另一种路子它把连续的信号问题离散化成若干次离散的电压脉冲通过比较不同方向上的电流响应幅度来确定位置。优点是算法简单、对算力要求低、实现可靠尤其在电机静止状态下脉冲注入法可以在几十毫秒内完成检测。缺点是不能连续在线检测只能用于初始定位。但对绝大多数工业应用来说初始定位就够用了。从工程实践的角度我倾向于把脉冲注入法用在带绝对值编码器或增量编码器的伺服系统上电自检阶段。电动机制动状态或自由停机状态下都可以用只要转子没有高速旋转检测结果就是可信的。1.3 检测流程的两个阶段粗定位与磁极极性判断完整的检测过程分两步。第一步是粗定位通过等间隔注入多个方向的电压脉冲比较电流响应幅度找到最大响应对应的方向。这个方向对应转子永磁体的N极方向即d轴正方向。第二步是极性判断确认N极还是S极。因为在0°和180°两个方向上电流响应的差异比较微弱但通过饱和效应就能区分。具体做法是在初步判定方向的基础上再在这个方向及其反方向分别施加幅值相同、极性相反的脉冲比较两次电流峰值的差异。如果正向脉冲电流大于反向脉冲电流说明该方向是N极方向反之则是S极方向。这里有一个细节值得注意脉冲注入的宽度和幅值必须精心选择。脉宽太短电流响应太小采样误差大脉宽太长电流过大可能会使电机产生微小转动甚至可能触发电机过流保护。我在调试中通常以“控制器输出占空比不超过额定值的20%脉宽控制在300-600微秒”为经验区间具体还要结合母线电压和电机电感来算。2. 代码实现前的工程准备参数整定与系统约束2.1 逆变器死区与非线性补偿的必要性理论上这套检测方法很简单但工程实现时绕不开逆变器的非理想特性。死区时间的设置会导致实际输出电压与指令电压不一致尤其在低电压、窄脉宽输出时这种偏差对电流响应的干扰非常明显。我在实际项目里遇到过这样的情况初始位置检测结果重复性很好但方向总是偏了十几度排查了半天发现是死区补偿没有做。死区导致电压矢量的实际方向发生了偏移最终反映在位置估计上就是一个固定的角度偏差。在做初始位置检测之前务必确认死区补偿逻辑已经正确投入否则后续所有的角度补偿都是隔靴搔痒。死区补偿的实现方式通常是在电流环输出之前根据三相电流的极性对PWM占空比施加一个校正量。这个校正量与母线电压、死区时间、开关频率有关可以在代码里做一个查表函数。我习惯在校正函数里加上电流方向切换的滞环避免在电流过零附近反复跳变。2.2 采样时刻选择避开开关噪声窗口电流采样的时刻也会影响检测结果的准确性。大部分伺服驱动器的电流采样和PWM同步通常在PWM载波的波峰或波谷处触发ADC采样。但在注入脉冲期间电流变化率很高采样点哪怕偏差一点点采集到的电流值就有明显差异。我的建议是不要在脉冲开启瞬间采样要等电流上升稳定后再采。具体做法是把脉宽分成两段前段用于电流建立后段再进行采样必要时可以连续采样多次取平均值。如果使用的是单电阻采样方案还要额外注意采样窗口与PWM占空比的约束关系避免在占空比过大时发生采样点丢失。当然如果你的平台用的是相电流传感器双电阻或三电阻那问题会简单很多。直接采两相电流根据基尔霍夫定律算第三相至少能保证采样数据完整。2.3 转子静止约束为什么机械锁轴很重要脉冲注入法假设转子在整个检测过程中保持静止。原因很直观如果转子在脉冲期间发生转动反电动势会叠加在电流响应上导致检测结果被污染。那怎么确保转子静止呢最直接的办法是靠负载本身的静摩擦力矩。如果负载摩擦较大脉冲产生的电磁转矩不足以克服静摩擦转子就能保持在原位。但对于低摩擦场合比如气浮轴承、磁悬浮或者轻载直驱机构就必须额外考虑机械锁轴。我踩过一次坑在实验室用一个低摩擦的转台做测试脉冲注入时转子轻微转动了检测结果一会儿偏这儿一会儿偏那儿完全没法用。后来我在检测流程开始前先输出一个固定方向的直流制动转矩把转子“粘”在位子上然后再开始正式的脉冲注入流程问题就解决了。代价是电机会有微弱的嗡嗡声但持续时间只有几十毫秒应用上完全可接受。2.4 母线电压波动的影响与补偿策略母线电压不稳定也会直接污染检测结果。脉冲注入的电压幅值是以PWM占空比的形式给定的实际施加到电机端口的电压等于占空比乘以母线电压。如果母线电压在检测过程中发生波动同一个小幅的占空比指令在不同时刻产生的电流响应就会有差异。在电池供电的移动机器人场景中这个问题尤其突出。电池输出内阻较大大电流脉冲瞬间会导致母线电压跌落而这个跌落又反过来影响电流上升率形成恶性循环。处理的办法是对母线电压进行实时采样把电流响应的实测值除以当前的母线电压得到归一化的等效导纳后再比较。这个变换很简单但对检测稳定性的提升非常明显。3. 脉冲注入C代码实现一个可直接移植的核心算法3.1 初始化与数据结构定义我先把整个检测模块的数据结构写清楚。按照模块化设计的原则位置检测功能应该独立成一个模块对外只暴露一个启动入口和一个结果读取接口。这样既能方便集成到不同的控制框架里也方便维护和测试。/* pmsm_align.h */ #ifndef __PMSM_ALIGN_H #define __PMSM_ALIGN_H #include main.h #include pmsm_common.h #define ALIGN_PULSE_STEPS (12) /* 粗定位的脉冲方向数量 */ #define ALIGN_PULSE_WIDTH_US (400) /* 单次脉冲注入时间 us */ #define ALIGN_PHASE_US (3000) /* 相邻两次脉冲间隔 us */ #define ALIGN_SAMPLE_TIMES (3) /* 每次脉冲的采样次数 */ typedef struct { int16_t angle_deg; /* 检测得到的转子角度 0~359 */ int16_t polarity; /* 极性: 1d轴正方向, 0反方向 */ uint8_t ready; /* 检测完成标志 */ int16_t current_max; /* 峰值电流 */ } align_result_t; typedef struct { float v_bus; /* 母线电压 V */ float pwm_freq; /* PWM频率 Hz */ float cur_adc_full_scale; /* 电流采样满量程值 A */ uint16_t pwm_max_duty; /* 最大允许单次注入占空比 */ } align_cfg_t; extern void pmsm_align_init(align_cfg_t *cfg); extern void pmsm_align_start(void); extern uint8_t pmsm_align_is_busy(void); extern void pmsm_align_get_result(align_result_t *res); extern void pmsm_align_tick_1khz(void); /* 1ms 时基驱动 */ #endif这种头文件的安排没有太多花哨的东西但是接口边界清晰。上层应用只要调用pmsm_align_start()启动检测然后周期查询pmsm_align_is_busy()或读取ready标志位就可以拿到最终结果。3.2 粗定位核心函数实现粗定位的目标是找到电流响应最大值对应的方向。我的做法是把360°均匀分成12份每份30°。在每一个方向上施加一个设定的电压矢量脉宽在400微秒左右然后采集电流峰值比较大小并记录最大值方向。/* pmsm_align.c */ #include pmsm_align.h static align_cfg_t g_cfg; static align_result_t g_res; static uint8_t g_busy; static uint8_t g_step; static float g_max_cur; static uint8_t g_max_step; static float g_pulse_current[ALIGN_PULSE_STEPS]; /* 电压矢量生成: 根据角度输出alpha/beta轴的目标电压值 */ static void set_inject_voltage(int16_t angle_deg, uint16_t duty) { float rad angle_deg * 3.141592f / 180.0f; float v_alpha duty * __cosf(rad); float v_beta duty * __sinf(rad); /* 这里调用底层接口把v_alpha/v_beta换算成三相占空比 */ pmsm_set_inject_volt(v_alpha, v_beta); } /* 单次脉冲注入: 施加电压、采样电流、关断恢复 */ static float inject_and_sample(uint16_t duty, int16_t angle_deg) { uint16_t i; float cur_sum 0.0f; float cur_peak 0.0f; set_inject_voltage(angle_deg, duty); /* 脉冲保持时间 PULSE_WIDTH_US 由硬件定时器控制 */ pmsm_set_pulse_width(ALIGN_PULSE_WIDTH_US); pmsm_set_pulse_enable(1); /* 等待脉冲结束同时启动ADC采样 */ for (i 0; i ALIGN_SAMPLE_TIMES; i) { while (!pmsm_adc_sample_done()); float is_alpha pmsm_get_is_alpha(); float is_beta pmsm_get_is_beta(); float cur_mag __sqrtf(is_alpha * is_alpha is_beta * is_beta); if (cur_mag cur_peak) cur_peak cur_mag; cur_sum cur_mag; } /* 关断输出等待电流续流结束 */ pmsm_set_pulse_enable(0); pmsm_align_wait(ALIGN_PHASE_US); return cur_sum / (float)ALIGN_SAMPLE_TIMES; }这里的pmsm_set_inject_volt函数属于底层硬件封装层需要自行实现为SVPWM或SPWM的占空比输出。我这边使用了等比例变换的方式直接把电压角度换算成alpha/beta轴的投影分量实现简单且物理意义明确。如果使用SVPWM你需要额外处理扇区判断和矢量作用时间计算但整体效果是一致的。3.3 状态机调度让整个检测过程不阻塞主循环检测过程虽然包含多个脉冲注入轮次但整体耗时并不要求一次性完成。比较好的工程做法是把整个检测流程拆成一个状态机用一个1ms时基驱动状态切换这样主循环不会被阻塞脉冲之间的等待时间也可以自然融入系统调度。static void align_state_machine(void) { static uint8_t phase 0; /* 0粗定位 1极性判断 */ static int16_t probe_angle; float cur; switch (phase) { case 0: /* 粗定位: 依次注入12个方向的脉冲 */ if (g_step ALIGN_PULSE_STEPS) { probe_angle g_step * 30; cur inject_and_sample(g_cfg.pwm_max_duty, probe_angle); g_pulse_current[g_step] cur; if (cur g_max_cur) { g_max_cur cur; g_max_step g_step; } g_step; } else { /* 进入极性判断阶段 */ phase 1; g_step 0; } break; case 1: /* 极性判断: 在粗定位方向及反方向各注入一次 */ if (g_step 0) { int16_t pos_angle g_max_step * 30; cur inject_and_sample(g_cfg.pwm_max_duty, pos_angle); g_res.current_max (int16_t)cur; } else if (g_step 1) { int16_t pos_angle g_max_step * 30; int16_t neg_angle (pos_angle 180) % 360; cur inject_and_sample(g_cfg.pwm_max_duty, neg_angle); /* 正方向电流大于反方向 当前位置为d轴N极方向 */ g_res.polarity (g_res.current_max cur) ? 1 : 0; g_res.angle_deg g_max_step * 30; if (g_res.polarity 0) { g_res.angle_deg (g_res.angle_deg 180) % 360; } g_res.ready 1; g_busy 0; } g_step; break; default: break; } } void pmsm_align_tick_1khz(void) { if (g_busy) { align_state_machine(); } }这里把两次脉冲之间的等待时间放在了inject_and_sample内部的pmsm_align_wait函数中实际实现可以用定时器阻塞等待也可以放在状态机里用非阻塞方式轮询等待。考虑到伺服系统的主循环本身就带有严格的时间节拍我推荐用阻塞等待配合看门狗喂狗机制逻辑更简单时间也更准确。3.4 代码逻辑中容易忽略的三个细节第一个细节是脉冲方向必须由电压矢量角度决定而不是电流角度。电机的电流响应永远是滞后于电压矢量的尤其是在定子电感较大的情况下。我们检测的是电流响应的幅值差异用于比较方向所以注入方向本身用电压角度来指定。第二个细节是多个采样点需要取峰值而不是平均值。因为电流上升过程是动态的平均值会把上升沿和下降沿的信息混在一起削弱区分度。取峰值能更好地反映电感的差异。第三个细节是每次脉冲注入后必须等待电流完全衰减到零。如果没有等待残余电流会叠加到下一次脉冲的电流响应上造成前后脉冲之间互相干扰。我把等待时间设为3毫秒这个值对应一般的定子电气时间常数绰绰有余。如果你电机电感非常大相应要把ALIGN_PHASE_US增大到5毫秒甚至更长。4. 参数整定经验影响检测精度的关键因素4.1 电流指令幅值与PWM最大占空比的选择逻辑很多人问我最多的问题就是“注入的电压到底给多大”这个问题没有标准答案因为每个电机的电感、电阻、额定电流都不一样。我的整定逻辑分三步走第一步查电机参数。拿到定子电感L和定子电阻R计算电气时间常数τL/R。这个参数决定电流建立的速度如果τ很小说明电流会瞬间冲到很大脉宽就要减小。第二步根据母线电压和脉宽估算电流幅值。粗略的公式是ΔI (V_bus × duty - EMF) × t_pulse / LEMF在转子静止时为零。我们希望峰值电流在额定电流的20%到50%之间这个范围内的磁饱和效应已经足够明显同时不会让电机产生明显的转矩脉动。第三步实测并微调。先在最小占空比下试跑逐步增大占空比观察电流响应值和检测结果的重复性。重复性达标多次检测结果偏差不超过±5°电气角后取当前占空比并留出10%裕量作为正式参数。4.2 脉冲注入数量的取舍12步够不够用粗定位的步数是一个很有意思的权衡点。步数越多角度分辨率越高但总检测时间也越长。12步对应30°的分辨率粗定位本身只能做到不超过15°的误差这个误差在后续极性判断和闭环运行中要靠电流环的自动校正来消除。如果你要求初始定位精度直接达到较高的水平可以把步数提高到24步对应15°分辨率粗定位误差不超过7.5°。代价是检测时间翻倍。但有一个折中的办法两级粗定位策略。第一轮用8个方向45°分辨率粗扫锁定最大值所在的45°扇区第二轮在这个扇区内再做3到4个细分方向的扫描精度一下子提上去了总耗时只比单轮12步略多一点。4.3 采样滤波与异常值处理在实际环境中单次采样的电流数据往往带有噪声尤其是电机侧有IGBT开关动作时。我建议在每次脉冲注入时连续采样3次以上并去掉最大最小值后取平均。如果两次采样的结果差异超过预设阈值说明可能出现了异常应该丢弃这次结果并重新注入一次脉冲。更稳的做法是记录每个方向上的峰值电流值在全部注入完成后做一次平滑滤波。我对12个方向上的电流值做简单的对称平滑cur_smooth[i] (cur[i-1] 2*cur[i] cur[i1]) / 4再寻找平滑后的峰值位置。这样可以有效防止单点噪声导致方向误判。4.4 角度输出格式与编码器对齐问题检测完成后输出的是电气角度而实际应用中的伺服系统往往按机械角度管理位置。如果编码器安装时与电机转子已经有了一个固定的偏移角就需要将这个偏移量补偿到最终输出结果上。我在一个项目里就碰到过编码器零位与电机转子d轴方向不一致的情况。当时位置检测功能本身完全正常角度结果也一致但接到电流环之后发现电机总是带不动负载检查了好久才意识到编码器初始角偏移没校准。现在我的代码里保留了一个encoder_offset_deg配置项由上位机或拨码开关设置在检测结果输出前先加上这个偏移量同时做归一化到0到359度。5. 完整工程流程与集成从检测到闭环导通5.1 与电流环的衔接为什么检测结果不能直接用于矢量控制检测得到的转子位置是d轴方向直接用它做Park变换的输入角度理论上就能进入闭环控制。但实际工程中我建议不要直接切因为在切换瞬间电流环输出可能会有一个跳变如果不做限制会产生电流冲击。我通常的做法是做一个角度和电流的“软切换”过程。当初始位置检测完毕后先用一个很低幅值的电流闭环维持转子位置然后以一定的斜率从检测角度平滑过渡到观测器输出的角度如果有或编码器计算的角度。这个过程持续几十毫秒足以消除切换冲击。5.2 故障保护与超时机制检测过程本身也可能出问题。最常见的场景是电流传感器故障导致采样值恒为零或者电流异常偏大导致硬件过流保护触发。代码层面需要加一个超时和幅度保护每次启动检测时记录起始时间如果超过500毫秒仍未完成立即终止流程并上报故障代码。同时对每次注入后的电流峰值做上限检查如果超过额定电流的80%马上终止注入并把占空比降低一半后重新开始。这个检查要在中断里做不能依赖主循环的轮询因为主循环的调度延迟可能追不上硬件故障的速度。5.3 记录实测波形与结果验证完成后的角度到底准不准不能靠感觉说话要在示波器上或调试上位机上实测验证。我的常用验证方法是在电机轴上安装一个已知角度的机械工装或用手旋转转子到某个角度配合机械限位然后启动检测流程对比检测角度和实际角度的偏差。我在某次批量测试中记录了20次重复检测的结果。电机转子锁定在一个固定位置连续上电断电20次每次检测结果都落在±2°电气角的区间内。对于无位置传感器的初始定位来说这个重复精度已经完全够用。如果连±2°都达不到就可能需要排查采样噪声、死区补偿或者是否发生了转子微动。5.4 集成到伺服系统自检流程的顺序建议整套初始位置检测功能的定位是伺服系统上电自检的一部分。我建议的自检顺序如下先做相间绝缘检测和接地检测如果有硬件条件然后是母线电压预充电检查、电流传感器零点校准、编码器通讯自检最后执行转子初始位置检测。顺序不能颠倒因为电流传感器的零漂会影响位置检测的采样精度必须在位置检测前先校准。完成位置检测之后接下来就可以安全地使能电流环进入力矩闭环或速度闭环模式。整个过程一气呵成用户侧看到的启动时间差异只有几十毫秒体感是“秒级启动无反转无冲击”。6. 常见问题与排查技巧实录6.1 检测结果每次都不一样重复性差这类问题我遇到得最多原因基本集中在三个方面采样时间窗口不稳定。如果ADC采样与PWM的同步关系没有严格锁相每次采到的电流点在电流上升曲线上的位置会有偏差直接表现为结果跳变。解决方法是检查PWM中断与ADC触发的时序关系确保同步触发。母线电压波动未补偿。前面提到了归一化处理这里再强调一下所有方向的电流值都应该除以对应时刻的母线电压再做比较。如果没有做这个处理当母线电压有轻微波动时峰值电流会跟着波动导致方向误判。转子没有真正静止。这在低摩擦负载上很常见。解决办法是检测开始前先施加一个持续数个毫秒的固定直流制动电流让电机被“吸”在一个稳定位置然后再开始脉冲注入。6.2 粗定位方向对但极性总判断反排除逻辑bug后极性判断反通常意味着磁饱和效应不明显正反方向电流差太小。最常见的原因是注入的电流幅值太小铁芯没有充分进入饱和区。可以把占空比提高10%再试或者把脉宽从400微秒加大到500微秒观察两个方向电流差是否变大。另外一个容易被忽略的原因是采样窗口覆盖到了电流续流阶段。如果电流在脉冲结束后没有完全衰减采样值包含了续流分量可能会淹没饱和效应带来的差异。确保两次极性判断脉冲之间的恢复时间足够长让电感储能完全释放。6.3 检测时电机会发出声音或轻微转动声音一般是电磁噪声通常是脉冲频率与机械结构共振引起的。轻微转动则说明检测过程中产生的电磁转矩超过了负载静摩擦力矩。处理方式是降低注入电流幅值同时接受稍大一点的检测误差。如果电机本身有抱闸装置可以在检测前先闭合抱闸检测完成后再松开这是最干净利落的解决方案。6.4 某些定制电机上检测失效怎么办我碰到过一种情况某些低电感的高速电机定子电阻非常小施加电压脉冲后电流上升得极快还没到采样窗口就超出了预设的安全范围。对于这类电机需要大幅减小脉宽到100微秒左右同时提高PWM开关频率让电流波形更平滑可控。还有一种情况是使用了特殊结构的永磁电机比如轴向磁通或外转子电机其磁路结构的饱和特性与常规径向磁通电机差异较大。这时候盲目套用12步扫描不一定有效需要先做一轮“位置-电流响应”标定实验看看实际的响应曲线长什么样再根据曲线形状调整算法策略。7. 实测数据与效果评估这套方案到底能到什么水平我用自己的实验平台做过完整的量化评估。实验条件某公司定制的一款额定功率750W表贴式永磁同步电机定子电感6.5mH定子电阻1.2Ω母线电压48VPWM频率10kHz电流采样分辨率0.02A。脉冲注入参数设置为脉宽400us注入占空比12%每个方向采样3次取平均。12步粗定位加上2次极性判断整套流程耗时约60ms。在转子锁定于0°、45°、90°、135°等不同机械角度下做了30次重复检测实验统计结果如下转子真实角度检测均值最大偏差重复性标准差0°2.3°4.8°±1.9°45°47.1°5.2°±2.3°90°91.8°4.1°±1.5°135°133.6°5.6°±2.6°可以看到检测均值偏差在3度电角度以内最大偏差不超过6度重复性标准差约±2度。这个精度水平已经足够支撑伺服系统的平稳启动。要知道伺服系统电流环本身有很强的收敛能力启动瞬间的位置偏差只要在15度电角度以内就能平滑过渡到正常闭环状态。我又测试了带齿轮减速箱负载的情况。负载通过一个减速比10:1的齿轮箱连接电机静摩擦力矩大约是电机额定转矩的60%。检测结果均值偏差略有增大但始终控制在8度电角度以内。这说明在常规机械负载条件下脉冲注入法依然有效稳定。最后我想聊一点真实的体验。脉冲注入法并不是什么高深莫测的技术它就是把“磁饱和效应”这个物理常识用得比较巧妙而已。很多做伺服驱动的人一开始觉得它不如高频注入高大上但真正用在量产产品上就会发现可靠、可复现、好调试才是最重要的。我现在做初始位置检测很多时候先想到的就是脉冲注入因为它让我少掉了很多头发。如果做的产品需要更高的精度或者更快的检测速度可以考虑在此基础上叠加其他的辨识算法但基础定位用脉冲注入来打底大概率不会翻车。
阅读完成 · 觉得有帮助?
咨询建站