news 2026/8/31 7:37:52

电机产线检测:PWM调速、转速测量与NVH分析实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
电机产线检测:PWM调速、转速测量与NVH分析实战

在电机产线检测中,PWM 信号、转速测量、NVH 声学分析这三件事经常被放在同一个工位完成。生产一台直流电机,从装配完成到下线,通常要验证它在给定 PWM 占空比下能否达到目标转速,同时监听它在运行过程中的振动和噪声是否超标。难点不在于某一个单一环节,而在于 PWM 信号既驱动电机旋转,又会在电流环路里产生电磁噪声,这些噪声会被振动传感器和麦克风采集到,混进 NVH 分析结果。如果信号采集、时序控制和判定逻辑设计得不好,产线一整天都在处理误判和漏检。

下面围绕电机产线检测场景,讲清楚 PWM 调速、转速测量、NVH 声学分析各自要做什么,再给出一套可落地的检测系统框架,包括硬件选型、软件实现、判定标准和排错方法。适合产线自动化工程师、电机测试工程师、刚接触 NVH 分析的开发者阅读。看完后能独立搭建一个最小可运行的电机会 NVH 在线检测方案,并知道关键参数怎么设、异常数据怎么查。

1. 先理清 PWM、转速与 NVH 之间的关系

1.1 PWM 调速的本质

PWM 的全称是 Pulse Width Modulation,即脉冲宽度调制。它用固定频率的方波,通过改变高电平持续时间占整个周期的比例,也就是占空比,来改变施加在负载上的平均电压。占空比越大,平均电压越高,电枢电流越大,电机转速通常也越高。

在直流有刷电机里,PWM 频率一般取 8kHz 到 20kHz。取 20kHz 是因为人耳对 20kHz 以上的声音敏感度急剧下降,可以减少电机啸叫。但 PWM 频率并不是越高越好,频率升高会增加驱动管的开关损耗,电流纹波虽然变小,控制器发热却会上升。这是电机驱动与 NVH 之间的第一层矛盾:想让人听不到开关噪声,就得把频率推到可听范围之外,但开关损耗和驱动成本随之上升。

PWM 信号和 PPM 信号经常被放在一起对比。PPM 是脉冲位置调制,用脉冲在周期内的位置来传递信息,主要用于航模遥控接收机通道信号。PWM 的编码信息在高电平宽度,PPM 的编码信息在脉冲相对位置,两者不是一回事。在电机控制里,主流是 PWM 加 H 桥或半桥驱动电路,产线测试上位机只需要下发目标占空比或目标转速,具体驱动由嵌入式控制器完成。

1.2 转速测量为什么是 NVH 分析的前提

NVH 是 Noise、Vibration、Harshness 的缩写,中文常译为噪声、振动与声振粗糙度。在电机这里,Harshness 通常弱化,重点落在噪声和振动上。振动信号和声学信号有一个共同点:它们都随转速变化。同一台电机,在 1000 转时可能很安静,在 5000 转时可能因为共振而发出明显噪音。

所以单纯测振动和声音不够,必须知道采样那一刻的转速是多少,才能做阶次分析。阶次分析是旋转机械声学分析中最重要的方法之一。它把频率归一化到旋转基频的倍数上,避免电机转速波动导致频谱频率漂移,从而让同一个缺陷在不同转速下都能被同一个阶次位置命中。

由此引出整个产线检测系统的数据流主线:PWM 决定电机转速,转速决定振动和噪声的特征,NVH 分析结果反过来判断电机与装配是否存在异常。三者是一条链路,不是三个独立测试项,这也是本文标题把 PWM、转速、NVH 和产线检测放在一起的原因。

1.3 产线 NVH 检测解决什么问题

产线检测和研发实验室的 NVH 测试目的完全不同。实验室追求测量精度、模态分析和优化方案,产线追求在几十秒甚至十几秒内判断这台电机有没有缺陷。产线常见缺陷包括转子不平衡、轴承损伤、换向器毛刺、电刷安装异常、磁钢位置偏移、装配松动。这些缺陷的共性表现是特定频段出现异常振动或噪声。轴承损伤会在与转速相关的阶次上出现峰值,转子不平衡会在 1 倍频上突出。产线检测的本质是:先测量频谱特征,再与合格样本建立阈值或模型,快速分类。

同样的逻辑也适用于 PWM 风扇产线。服务器风扇、笔记本散热风扇同样是 PWM 调速,产线要验证风扇在最低占空比下能否启动、转速监测是否回零、运行噪声是否超标。很多人在使用电脑监控软件时看到风扇转速为 0,其中一个原因就是 PWM 占空比过低,电机无法克服静摩擦和轴承阻力,霍尔脉冲一直不出现,转速计数值自然为 0。这个现象在产线测试中同样会出现,属于判定逻辑必须覆盖的边界情况。

2. 检测系统的硬件与环境准备

2.1 测试台架的基本组成

一个典型的电机产线 NVH 检测工位由以下部分构成:

组成作用常见选型
上位机运行测试软件、控制流程、保存数据工业 PC 或带 DAQ 的电脑
PWM 驱动模块按设定输出 PWM 给电机独立驱动板、PLC 高速输出口、可编程电源
转速传感器获取实时转速霍尔传感器、增量式编码器、光电反射片
振动传感器测量机壳振动IEPE 加速度计
麦克风测量辐射噪声ICP 传声器或测量麦克风
隔音箱降低环境噪声干扰简易隔声罩或半消声箱
采集设备同步采集转速、振动、声音多通道 DAQ 数据采集卡
信号调理放大、滤波、隔离恒流源供电、抗混叠滤波器

学习环境可以简化成:一块 STM32 开发板输出 PWM,一个霍尔传感器接外部中断引脚测转速,一个 USB 声卡加驻极体麦克风采声音,再用 Python 离线分析。这样在实验室就能先把算法跑通,再考虑升级到工业级硬件。

2.2 关键传感器选型要点

选加速度计主要看量程和频率范围。电机振动加速度通常在几个 g 以内,但产线装配偶发撞击或瞬态振动可能达到 10g 以上,建议选 ±50g 量程的 IEPE 加速度计。频率响应要覆盖到最关心的最高阶次。如果电机最高转速 30000rpm,基频是 500Hz,分析到 10 阶就需要覆盖 5kHz 以上。小尺寸直流有刷电机在空载状态下转速超过 30000rpm 并不罕见,这类高速电机对传感器的高频响应和采集卡的采样率要求更高。

麦克风要注意测量距离和声压级。产线隔音箱内一般把麦克风放在电机前方或侧面 10cm 到 30cm 处。普通直流电机在近场的声压级可能在 60dB 到 90dB 之间,选量程上限 120dB 的测量麦克风比较保险。声压级是相对量,计算公式为 Lp = 20 × log10(p / p0),其中 p0 是参考声压 20 微帕。

转速传感器推荐增量式编码器或霍尔传感器。霍尔传感器简单便宜,缺点是每转脉冲数少,低速时测量延迟大。编码器每转几十到几千脉冲,低速分辨率好,适合需要快速获取转速的产线场景。如果工位要测多个转速点,建议优先考虑编码器。

2.3 声学测试环境要求

NVH 检测最怕背景噪声。产线车间里气动工具、传送带、空调风机都会产生噪声,混入麦克风后轻则抬高噪声底,重则直接掩盖电机缺陷特征。

最标准的做法是隔音箱。箱体采用多层钢板加吸音棉,内部做吸声处理,隔音箱的插入损耗至少要有 20dB 以上。也就是说,关上门之后,外部 80dB 的声音进入箱体后要降到 60dB 以下。隔音箱还有一个好处:隔离气流,阻断气流对麦克风产生的风噪。

如果现场条件有限,可以采用差分测量法:先记录背景噪声,再启动电机测量,用能量相减做背景修正。这种方法只能修正平稳噪声,对突发噪声无能为力。产线要保证可靠性,还是应该把隔音箱当成标配,背景噪声修正只作为辅助手段。

3. 用最小系统打通 PWM 调速与转速测量

这一节给一个可运行的最小闭环,代码用 Python 配合串口来演示思路。实际产线可能用 C 写在嵌入式里,也可能用 LabVIEW 采集,但核心逻辑一致:发指令、等稳定、读转速、进分析。

3.1 PWM 输出与转速开环控制

先看 PWM 与平均电压的关系。设 PWM 周期为 T,高电平时长为 t_on,占空比 D = t_on / T,驱动电源电压为 Vcc,忽略管压降时,电机端平均电压 V_avg = D × Vcc。

嵌入式端如果使用 STM32,PWM 配置的关键是定时器时钟、自动重载值和比较值的关系。下面是一段简化配置:

// 假设定时器时钟 72MHz,目标 PWM 频率 20kHz // ARR = 72000000 / 20000 - 1 = 3599 TIM_TimeBaseInitTypeDef TIM_InitStruct; TIM_InitStruct.TIM_Prescaler = 0; TIM_InitStruct.TIM_Period = 3599; // 决定 PWM 频率 TIM_OCInitTypeDef TIM_OCInitStruct; TIM_OCInitStruct.TIM_Pulse = 1800; // 占空比 50%

占空比由比较值 TIM_Pulse 决定,频率由 Period 决定。修改占空比就是修改比较值,而不是重新初始化定时器,否则输出会瞬间跳变。

上位机通过串口发送占空比指令并读取转速,最小交互协议可以写成这样:

import serial import time ser = serial.Serial('COM5', 115200, timeout=1) time.sleep(1) def set_pwm(port, duty_percent): cmd = f"PWM {duty_percent:.1f}\n".encode() port.write(cmd) time.sleep(0.05) return port.readline().decode().strip() def read_speed(port): port.write(b"SPD?\n") time.sleep(0.02) line = port.readline().decode().strip() try: return float(line.split()[1]) except Exception: return None set_pwm(ser, 50) for _ in range(10): rpm = read_speed(ser) print(f"PWM=50% speed={rpm} rpm") time.sleep(0.5) ser.close()

这段代码的关键是协议要简单、可解析。产线上位机与嵌入式控制器之间用文本行协议最方便,出问题能直接看串口日志。默认占空比 50% 只是演示,实际要根据额定电压和负载标定。

3.2 用霍尔脉冲计算转速

霍尔传感器或编码器输出一串脉冲。转速计算有两种常见方式:测频法,M 法;测周法,T 法。

M 法是统计固定时间内脉冲个数。设测量时间窗口为 Tc,计数为 N,每转脉冲数为 P,则转速 n = 60 × N / (P × Tc)。转速越高,窗口内脉冲越多,精度越高。

T 法是测量两个脉冲之间的时间间隔。设计时器频率为 f_clk,两次脉冲之间计数值为 M,则 n = 60 × f_clk / (P × M)。转速越低,间隔越长,精度越高。

实际产线常用 M 法和 T 法结合。下面是 M 法的 Python 实现:

def speed_by_m_method(pulse_count, duration_s, pulses_per_rev=1): freq = pulse_count / duration_s # 脉冲频率 Hz rev_per_sec = freq / pulses_per_rev # 每秒转数 rpm = rev_per_sec * 60.0 return rpm print(speed_by_m_method(50, 0.5, pulses_per_rev=1)) # 输出 6000.0

如果霍尔传感器每转出 1 个脉冲,0.5 秒内数到 50 个脉冲,说明电机每秒 100 转,也就是 6000rpm。换算系数就是 60 除以每转脉冲数,这个系数写错是最常见的低级错误。采用多脉冲编码器时,比如每转 1000 脉冲,同一个 50 计数值算出来的转速只有 6rpm,完全不一样。

3.3 用 PID 闭环把转速稳定在目标值

开环 PWM 控制下,转速会随负载波动。产线 NVH 测试要求电机在稳定转速下测量,如果转速波动,频谱会变糊,阶次分析准确性下降。因此产线测试通常要加闭环。

PID 控制器的输出是 PWM 占空比,输入是目标转速与实测转速的误差。下面是常用的位置式 PID 离散形式:

class PID: def __init__(self, kp, ki, kd, dt): self.kp = kp self.ki = ki self.kd = kd self.dt = dt self.integral = 0.0 self.prev_error = 0.0 def update(self, target, current): error = target - current self.integral += error * self.dt derivative = (error - self.prev_error) / self.dt self.prev_error = error return self.kp * error + self.ki * self.integral + self.kd * derivative

实际使用时要对积分项做限幅,防止长时间超调把 PWM 推到 100% 或 0%。输出也要限幅,因为占空比只能在 0 到 100% 之间。参数整定可以从 KP 先调,再加 KI,大多数电机转速闭环场景下 KD 可以先设 0。

3.4 转速测量误差来源与校准

转速测量最常见的误差来源有三个:

误差来源现象处理方式
脉冲计数丢失霍尔信号幅值过小或受干扰,计数偏少增加上拉电阻、RC 滤波、施密特触发器
时间窗不同步M 法窗口边界截断脉冲使用硬件计数器,避免软件计数丢中断
每转脉冲数设错转速系统偏差用光电编码器或示波器校准系数

注意:转速测量不是只算一个数就结束。产线系统要在标定阶段用高精度转速表或光电测速仪对比确认系数,否则后续 NVH 特征值全部建立在错误转速上。

4. 把振动和声音转换成可分析的信号

4.1 振动信号的采集与预处理

加速度计输出模拟电压信号,经 IEPE 恒流源供电后由 DAQ 采集。采样率至少要达到关心最高频率的两倍以上,这是奈奎斯特采样定理。电机噪声关心的频率上限如果是 20kHz,采样率至少 51200Hz,工程上常用 51200Hz 或 65536Hz,留出裕量避免混叠。

采集到的原始信号要先做去趋势和零均值处理,再去做频谱分析。如果原始信号存在明显直流偏置,FFT 后会在 0Hz 附近出现巨大能量,影响其他频段的观察。

import numpy as np from scipy.fft import rfft, rfftfreq def analyze_vibration(signal, fs): signal = signal - np.mean(signal) # 去直流 n = len(signal) window = np.hanning(n) data = signal * window # 加窗抑制频谱泄漏 spectrum = np.abs(rfft(data)) * 2.0 / n freqs = rfftfreq(n, 1.0 / fs) return freqs, spectrum

加窗是频谱分析里容易被忽略的步骤。如果截取长度不是信号周期的整数倍,FFT 结果会出现频谱泄漏,峰值变宽、旁边出现很多假峰。汉宁窗是机械振动分析的常用选择。

4.2 声压级计算

声音信号同样先做预处理,然后计算总声压级。声压级定义是 Lp = 20 × log10(p / p0),p0 = 20μPa。实际应用中,我们习惯用 A 计权模拟人耳对不同频率的敏感度。A 计权曲线在低频大幅衰减,中频相对平坦,高频适当衰减,更接近人耳对安静环境中声音的主观响应。

def spl_db(pressure_rms, ref=20e-6): if pressure_rms <= 0: return -float('inf') return 20.0 * np.log10(pressure_rms / ref)

需要注意的是,麦克风灵敏度、前置放大器增益、采集卡 ADC 参考电压都会影响最终算出的声压是否准确。产线测试如果不追求绝对声压精度,更关注相对一致性,可以用标准声源或参考样件定期标定,保证每台被测电机在相同条件下比较。

4.3 频谱分析与阶次分析

频谱分析可以看到噪声和振动能量随频率的分布,但频率是绝对量,不依赖转速。同一类型的电机,测试转速不同,轴承缺陷产生的频率也不同,很难用一个固定频段做阈值判断。

阶次分析解决了这个问题。阶次定义为频率除以旋转基频。1 阶就是转一圈发生一次的事件,比如转子不平衡。轴承外圈缺陷会产生与滚动体数量相关的阶次。通过阶次分析,可以按阶次而不是绝对频率设定阈值,即使转速有偏差,判定依然可靠。

def order_spectrum(signal, fs, rpm): freq_axis, amp = analyze_vibration(signal, fs) rot_freq = rpm / 60.0 # 旋转基频 order_axis = freq_axis / rot_freq return order_axis, amp

在实际产线中,转速不一定恒定,严格的做法是用转速计信号做等角度重采样,把时域信号按角度域重采样,再做 FFT,得到阶次谱而不是频率谱。LabVIEW 的 Sound and Vibration Toolkit 提供阶次跟踪模块,老牌声学分析软件也有成熟实现。如果暂时没有专业工具,也可以用转速相对稳定的假设,在固定转速段内直接做 FFT 再除以基频近似处理,但精度会打折。

4.4 一个简单的噪声异常判定示例

设定判定目标:提取 1 阶、2 阶、轴承阶次三个特征值,再与合格样本的均值加 3 倍标准差比较。

def pass_fail_by_order(order_axis, amp, feature_orders, thresholds): results = {} for order, threshold in zip(feature_orders, thresholds): idx = np.argmin(np.abs(order_axis - order)) value = amp[idx] results[order] = value if value > threshold: results['fail_order'] = order return False, results return True, results

这个逻辑只是示意。真正产线判定要考虑测量重复性、传感器一致性、样品差异等因素。只靠单一阶次超限往往不够,可能需要联合多个特征,甚至用机器学习分类模型,把正常电机和缺陷电机当作两类样本训练。

5. 产线在线检测流程与判定逻辑

5.1 测试工位的工作流程

一个典型的检测工位流程可以设计成七步:

  1. 被测电机放入夹具,接好电源线和传感器。
  2. 上位机下发测试参数,包括目标转速、测试时长、采样率。
  3. 上位机发出启动指令,PID 闭环让电机加速并稳定到目标转速。
  4. 等待转速稳定 1 到 2 秒。
  5. 同步采集转速、振动、声音信号,时长 2 到 5 秒。
  6. 计算特征值,与阈值比较,输出 PASS 或 FAIL。
  7. 保存原始数据与判定结果,生成产线追溯记录。

这条流程的核心是同步。转速、振动、声音三个通道必须使用同一个采样时钟,否则阶次分析无法对齐。多通道 DAQ 硬件时钟同步是首选,速度计数通道和模拟输入通道共用内部时钟源。

测试参数建议用配置文件管理,不要把参数散落在代码里。下面是一个测试配方示例:

{ "test_name": "motor_nvh_eol_v1", "target_rpm": 8000, "pwm_freq_hz": 20000, "settle_time_s": 1.5, "acquire_time_s": 3.0, "sample_rate_hz": 51200, "features": [ {"name": "order1", "order": 1.0, "threshold": 0.15}, {"name": "order2", "order": 2.0, "threshold": 0.10}, {"name": "bearing", "order": 8.3, "threshold": 0.08} ] }

配置文件的好处是产线换型号时只改配方,不重新编译软件。阈值字段和特征阶次要能随时调整,才能支持产线不断优化。

5.2 判定阈值怎么定

阈值不能拍脑袋。推荐流程是:

  1. 取 50 到 100 台已知合格的电机,在相同条件下测量特征值。
  2. 对每个特征值计算均值和标准差。
  3. 暂定阈值为均值加 3 倍标准差,作为初始边界。
  4. 用包含已知缺陷电机的样件验证阈值能否检出缺陷。
  5. 结合误判率和漏检率调整阈值。
  6. 定期用新样本重新校准,监测特征值分布漂移。

阈值定得太严,产线误杀严重,每天都在人工复测;定得太松,缺陷电机流到客户端,客户投诉。这两者之间的平衡要用数据说话,不能凭经验随手填一个数字。

5.3 数据追溯与统计分析

产线数据要有追溯能力。每台电机应记录序列号、测试时间、测试工位、操作员、测试参数、特征值、判定结果、原始数据文件路径。客户端发生批量投诉时,能快速回溯同一批电机,判断是装配批次问题还是测量系统异常。

SPC 统计过程控制也值得引入。把每个班次的关键特征值画控制图,观察均值是否漂移、标准差是否变大。特征值缓慢上升往往预示夹具松动、物料变化或设备老化,这些在单台阈值判定时看不出来。

6. 常见问题排查

6.1 PWM 干扰导致转速计数异常

现象:转速读数跳变,有时为 0,有时突然翻倍。

原因:PWM 切换瞬间电流突变,在电机电源线上产生很强的电磁干扰。霍尔传感器信号线如果与电源线平行走线,干扰会耦合到霍尔输出,造成误触发或漏触发。

检查方式:用示波器查看霍尔输出引脚,重点观察 PWM 开关切换瞬间是否有毛刺。把霍尔信号线单独走线或加双绞屏蔽,靠近控制器端加 RC 滤波,能有效减少误触发。

处理建议:霍尔信号线上加 10kΩ 上拉到 3.3V 或 5V,信号端与地之间并 100nF 电容滤除高频毛刺。

6.2 背景噪声导致误判

现象:同一台电机白班和夜班测试结果差别很大,白班经常误报噪声超限。

原因:白班车间设备多、背景噪声大,隔音箱门密封变差或麦克风位置偏移时,背景噪声混入测量。

检查方式:在不启动电机的情况下采集 3 秒背景噪声,看总声压级是否超过设定基线。对比隔音箱关门前后的噪声差距,检查密封条是否老化。

处理建议:每天班前做背景噪声验证,超过阈值则暂停测试或重新标定。麦克风位置用定位夹具固定,避免人工摆放改变测量距离。

6.3 阈值设置不合理导致误杀或漏杀

现象:合格电机频繁判定 FAIL,或者已知缺陷电机偶尔判定 PASS。

原因:阈值依据的样本量太小,或样本不是同一批次物料。电机换向器、轴承供应商变更后,产品特征分布平移,旧阈值失效。

检查方式:用最近一周的数据画直方图,看合格样本分布是否偏移,对比阈值线与分布位置。

处理建议:建立阈值校准流程,物料变更、工艺变更后重新取样标定。用统计控制图监控特征值漂移。

6.4 振动传感器安装方式影响数据

现象:传感器在同一个位置,两次测量差异很大,或者测试台夹具振动传递不一致。

原因:加速度计安装面没有清理,安装力矩不统一,或者传感器安装在被测电机与夹具之间,结果测到的是夹具振动而不是电机振动。

检查方式:用同一台电机重复装夹 10 次,观察特征值变异系数,超过 10% 就要检查安装方式。

处理建议:传感器用螺纹安装或强力胶固定,安装面平整干净,每次安装力矩一致。

注意:产线排错要按顺序来,先确认传感器接线和安装,再确认采样参数,最后才怀疑算法和阈值。很多问题其实是传感器层面引起的,却被误判成软件问题。

7. 最佳实践与扩展方向

7.1 产线 NVH 检测的可复用清单

交付一个产线检测系统前,按以下清单逐项检查:

  • 背景噪声是否满足测试要求?隔音箱插入损耗是否达到 20dB 以上?
  • 转速、振动、声音三个通道是否同步采集?
  • 转速换算系数是否校准?每转脉冲数是否正确?
  • PWM 频率是否避开人耳敏感频段?电磁干扰是否已经处理?
  • 声压级标定是否完成?麦克风灵敏度是否写入配置?
  • 特征值阈值是否由合格样本统计得出?是否覆盖不同批次?
  • 原始数据和判定结果是否可追溯?
  • 是否有异常数据保护机制?超过量程的数据不应自动判定 PASS。
  • 是否预留数据接口给 MES 或上层管理平台?

7.2 学习环境与生产环境的差异

学习环境可以把信号源、模拟传感器和软件分析全部放在一台电脑上,失败了大不了重跑一遍。生产环境要考虑连续运行、抗干扰、抗冲击、软件崩溃恢复、数据存储容量和网络断线续传。学习代码可以设 0.5 秒一个循环,产线软件必须考虑测试节拍,尽量把耗时操作并行化或预分配。

生产环境的判定结果不能只靠打印,要写到数据库并推送可视化看板。原始波形文件要定期归档,磁盘空间不足时要报警,而不是让系统悄然停止保存。任何一次数据丢失,都可能让客户端投诉时找不到追溯依据。

7.3 下一步可以扩展的方向

如果当前系统已经稳定运行,可以往三个方向扩展。

第一个方向是机器视觉辅助。结合电机外观、引脚位置、换向器磨损等视觉信息,把多维度检测统一到一个工位,减少工序流转时间。

第二个方向是机器学习。使用大量已标注的正常和缺陷样本训练分类模型,把阶次谱、倒频谱、小波包能量作为特征,替代或辅助人工阈值。模型可以做在线推理,但要注意样本分布变化和数据漂移,定期用新数据重新训练验证。

第三个方向是预测性维护。记录每台电机的特征值随时间变化,建立老化趋势模型,从合格与不合格升级为还能工作多长时间。这对批量化电机用户的售后支持和质量改进很有价值,也是把产线检测数据从单次判定变成产品寿命资产的关键一步。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/31 7:28:01

牛客模考一模实战解析:程序员笔试避坑与提分策略

每年到了春招和秋招的节点&#xff0c;牛客网上的模考活动就成了程序员求职者的“练兵场”。我自己经历了两次校招、又帮团队做过几次笔试题筛选&#xff0c;对“牛客模考&#xff08;一模&#xff09;”这类线上模拟笔试的含金量还是比较认可的。它最大的价值不是押中原题&…

作者头像 李华
网站建设 2026/8/31 7:27:16

B站2019秋招笔试编程题解析:字符串与动态规划实战指南

1. 2019秋招笔试全景&#xff1a;题型分布与考察逻辑先交代一下背景。2019年那会儿&#xff0c;B站的秋招笔试还远没有现在这么卷&#xff0c;但已经能看出这家公司的出题口味和一般互联网大厂不太一样。我当时完整刷过那一批题目&#xff0c;也帮学弟学妹做过复盘&#xff0c;…

作者头像 李华
网站建设 2026/8/31 7:22:10

用PyTorch从零实现Transformer:字符级语言模型实战

Transformer 是当前大语言模型和许多深度学习任务的核心架构&#xff0c;但很多人学它时卡在“概念听懂了、代码写不出来”这一步。网上讲解自注意力、QKV、位置编码的文章很多&#xff0c;真正能让人从 Token 开始一步步把模型写出来、跑起来、看到损失下降的材料却不多。这篇…

作者头像 李华
网站建设 2026/8/31 7:18:28

从零写一个思源笔记插件:6步完成你的第一个Petals

从零写一个思源笔记插件&#xff1a;6步完成你的第一个Petals 【免费下载链接】siyuan An open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间&#xff0c;让人与智能体在此协作 …

作者头像 李华
网站建设 2026/8/31 7:14:36

基于JSP+Servlet+MySQL的校园活动管理系统设计与实现

简介&#xff1a;本资源是一套完整的校园活动管理系统毕业设计实现方案&#xff0c;面向计算机相关专业本科生及Web开发初学者&#xff0c;聚焦高校第二课堂管理场景&#xff0c;解决活动申报、审批、发布、报名与数据统计等核心业务流程的数字化落地问题。压缩包共2011个文件&…

作者头像 李华
网站建设 2026/8/31 7:11:18

STM32+MAX30102心率血氧监测实战:从寄存器配置到OLED显示

简介&#xff1a;本资源是一套完整的STM32嵌入式健康监测项目源码&#xff0c;面向嵌入式初学者与课程设计实践者&#xff0c;解决心率血氧实时采集、本地OLED可视化显示及串口数据上位机同步传输的核心开发需求。项目基于STM32F1系列单片机&#xff08;HAL库开发&#xff09;&…

作者头像 李华