谐波降噪(1) - 基于步进脉冲相位调制

摘要

面向 3D 打印机及其他开环步进驱动平台,本文提出一种基于步进脉冲相位调制的前馈谐波降噪方法。该方法通过三轴 MEMS 加速度计采集结构振动信号,利用快速傅里叶变换提取目标谐波频段能量,并在 STEP 脉冲发送端注入可控的微小时序扰动,以破坏性干涉方式抑制由步进电机转矩脉动引发的结构共振。全文围绕物理机理、数学建模、测量方法、参数辨识、全速域标定及工程实现展开,给出适用于 Cartesian 与 CoreXY 架构的建模与标定流程,并对贪心搜索、贝叶斯优化、线性插值与样条插值等方法进行比较。本文旨在为相关研究人员和工程实践者提供一套逻辑清晰、便于实现的技术说明。

1. 引言与总体方案

1.1 问题定义

在高速运行条件下,3D 打印机、点胶平台和轻型数控机构中的步进电机容易激发结构件、皮带和导轨的固有模态,表现为啸叫、共振和轮廓误差增加。问题根源并不完全来自控制指令本身,而是来自电机转矩脉动与机械结构频响之间的耦合。

对于采用开环驱动器的系统,仅依靠细分、电流斩波或机械加固往往难以在全速域内兼顾成本、噪声和动态性能。本文研究的核心问题是:能否在不改动电机内部电流闭环的前提下,仅通过步进脉冲的发送时序,对特定谐波进行前馈补偿,从而降低结构振动与噪声。

1.2 方法概述

本文采用前馈谐波振动抑制方法。基本思路如下:

  1. 在给定速度和方向下,采集机架三轴振动数据。
  2. 通过 FFT 提取目标谐波频段的能量特征。
  3. 在 STEP 脉冲时间轴上注入幅值为 AnA_nAn、相位为 ϕn\phi_nϕn 的周期扰动。
  4. 以三轴综合振动代价函数 JJJ 为目标,搜索使 JJJ 最小的参数组合。
  5. 在多个速度节点离线标定后,构建查找表或插值模型,供在线运行时调用。

该方法本质上是对原始运动指令做微小的时序整形,而不是改变宏观路径规划。因此,只要补偿幅值受控,理论上不会破坏轮廓精度和终点位置精度。

1.3 系统架构与工作流程

系统由运动规划、脉冲生成、振动测量、频域分析、参数寻优和在线补偿六个部分组成,其闭环标定流程可概括为:

若从标定执行角度展开,可将其细化为更适合工程实现和教学理解的流程:

该展开流程强调了三个关键约束:一是标定必须带速度和方向信息,二是必须保证单电机解耦,三是参数搜索的评价依据始终来自统一的频域代价函数 JJJ。

1.4 适用范围与边界

本文方案适用于开环步进系统,尤其适合低成本、高速度、对噪声敏感的运动平台。对于具备高带宽电流环和位置环的闭环 FOC 或伺服系统,本文方法通常不作为首选,因为外部注入的时序扰动可能与底层闭环控制形成冲突。

1.5 本章小结

本章明确了研究对象、技术路线与系统边界。后续章节将依次说明谐波产生机理、测量与建模方法、参数优化策略以及工程实现方式。

2. 物理机理与数学模型

2.1 谐波与结构共振的来源

步进电机的实际电磁转矩并非理想正弦,而会受到齿槽转矩、反电动势非正弦性、加工误差及磁路不对称等因素影响,形成周期性脉动。可写为:

Te(θe)=Tsyncsin⁡(θe)+∑k=1∞Tksin⁡(kθe+αk)(2-1) T_e(\theta_e) = T_{sync}\sin(\theta_e) + \sum_{k=1}^{\infty} T_k\sin(k\theta_e + \alpha_k) \tag{2-1} Te(θe)=Tsyncsin(θe)+k=1∑∞Tksin(kθe+αk)(2-1)

式中,TsyncT_{sync}Tsync 为同步基波转矩,TkT_kTk 为第 kkk 次谐波转矩分量,θe\theta_eθe 为电气角。若这些谐波频率落入机架、导轨或皮带系统的固有频率附近,就会出现明显的结构共振与声学放大。

2.2 机械角与电气角映射

对于极对数为 NpN_pNp 的步进电机,机械角与电气角之间满足:

θe(t)=Np θm(t)(2-2) \theta_e(t) = N_p\,\theta_m(t) \tag{2-2} θe(t)=Npθm(t)(2-2)

其中,θm(t)\theta_m(t)θm(t) 为机械角,θe(t)\theta_e(t)θe(t) 为电气角。该映射说明,只要已知电机转速和极对数,即可推导激振基频及其倍频位置,为后续 FFT 目标频段提取提供依据。

2.3 位置脉位调制模型

未进行补偿时,匀速运动的理想位移可表示为:

xref(t)=vt(2-3) x_{ref}(t) = vt \tag{2-3} xref(t)=vt(2-3)

在引入谐波补偿后,实际发送给驱动器的参考位移修改为:

x(t)=vt+∑n∈{1,2,4}Ansin⁡(2πfnt+ϕn)(2-4) x(t) = vt + \sum_{n \in \{1,2,4\}} A_n\sin(2\pi f_n t + \phi_n) \tag{2-4} x(t)=vt+n∈{1,2,4}∑Ansin(2πfnt+ϕn)(2-4)

其中,AnA_nAn 和 ϕn\phi_nϕn 分别为第 nnn 次谐波补偿的幅值和相位,fnf_nfn 为目标补偿频率。该表达式对应的工程含义是:在不改变宏观轨迹的条件下,对微观脉冲时序进行调制。

2.4 破坏性干涉条件

设结构原始振动响应为:

e(t)=Bsin⁡(2πfvibt+θ)(2-5) e(t) = B\sin(2\pi f_{vib} t + \theta) \tag{2-5} e(t)=Bsin(2πfvibt+θ)(2-5)

若注入补偿分量

u(t)=Ansin⁡(2πfnt+ϕn) u(t) = A_n\sin(2\pi f_n t + \phi_n) u(t)=Ansin(2πfnt+ϕn)

满足近似条件

An≈B,ϕn≈θ±π(2-6) A_n \approx B, \qquad \phi_n \approx \theta \pm \pi \tag{2-6} An≈B,ϕn≈θ±π(2-6)

则合成响应 e(t)+u(t)e(t)+u(t)e(t)+u(t) 在目标频段内趋于减小。该条件并不要求数学上完全相消,但为参数辨识提供了明确目标,即通过实验搜索找到最接近式 (2-6) 的参数对。

2.5 工程示例:G-code 到脉冲时序调制

以指令 G1 X100 F6000 为例,若 X 轴脉冲当量为 80 step/mm80\ \text{step/mm}80 step/mm,则 100 mm/s100\ \text{mm/s}100 mm/s 对应基准脉冲频率为:

fstep=100×80=8000 Hz f_{step} = 100 \times 80 = 8000\ \text{Hz} fstep=100×80=8000 Hz

若目标补偿频率为 130 Hz130\ \text{Hz}130 Hz,补偿幅值为 0.05 mm0.05\ \text{mm}0.05 mm,相位为 45∘45^\circ45∘,则位移模型可写为:

x(t)=100t+0.05sin⁡(2π⋅130t+π4)(2-7) x(t)=100t+0.05\sin(2\pi\cdot130t+\tfrac{\pi}{4}) \tag{2-7} x(t)=100t+0.05sin(2π⋅130t+4π)(2-7)

为了让这个例子更容易理解,可以把它拆成"未补偿"和"补偿后"两种情况。

  1. 未补偿时,理想位移为:

xref(t)=100t x_{ref}(t)=100t xref(t)=100t

对应的累计脉冲数为:

Pref(t)=xref(t)×80=8000t P_{ref}(t)=x_{ref}(t)\times 80 = 8000t Pref(t)=xref(t)×80=8000t

这意味着脉冲发生器以固定频率 8000 Hz8000\ \text{Hz}8000 Hz 输出脉冲,相邻脉冲间隔为:

Δt=18000=125 μs \Delta t = \frac{1}{8000} = 125\ \mu s Δt=80001=125 μs

  1. 补偿后,位移参考变为式 (2-7),对应的累计脉冲数可写为:

Preal(t)=8000t+4sin⁡(2π⋅130t+π4) P_{real}(t)=8000t + 4\sin(2\pi\cdot130t+\tfrac{\pi}{4}) Preal(t)=8000t+4sin(2π⋅130t+4π)

其中,0.05 mm0.05\ \text{mm}0.05 mm 的补偿幅值乘以 80 step/mm80\ \text{step/mm}80 step/mm,可换算为约 4 个 step 的微小位置扰动。它不会改变最终总脉冲数的大趋势,但会让局部脉冲间隔在 125 μs125\ \mu s125 μs 附近做周期性提前和滞后。

在工程上,可以把两种情况画成下面的时序对比图:

从这个图可以看出,PPPM 的关键不是"多发脉冲"或"少发脉冲",而是"在正确的时间稍微提前或稍微延后发出脉冲"。宏观上,执行器仍然会到达同样的位置;微观上,时序被重新排布,从而向机械系统注入一个相位可控的补偿激励。

从最容易理解的角度总结,这个过程等价于:

  1. 先按照正常轨迹计算应当何时发脉冲。
  2. 再根据查表得到的 AAA 和 ϕ\phiϕ,给这些脉冲附加一个周期性时间偏移。
  3. 该偏移的周期锁定在目标谐波频率附近,因此能对特定共振频段起作用。

因此,式 (2-7) 的作用不是改变运动路径,而是改变脉冲时序,从而改变系统受到的激励方式。

2.6 本章小结

本章说明了谐波噪声的物理来源,并建立了从转矩脉动到脉冲时序调制的数学联系。位置脉位调制的本质是可控前馈扰动,其目标是以较小的时序代价换取目标频段振动能量的下降。

3. 振动测量与代价函数构建

3.1 激振频率与运动速度映射

补偿参数的搜索依赖对目标激振频率的准确估计。对于同步带传动系统,若电机每转一圈带来的线位移为 LrevL_{rev}Lrev,则在 Cartesian 架构下,电机电气基频可写为:

fe,Cartesian=vheadLrevNp(3-1) f_{e,Cartesian} = \frac{v_{head}}{L_{rev}}N_p \tag{3-1} fe,Cartesian=LrevvheadNp(3-1)

在 CoreXY 架构的单电机解耦标定条件下,沿特定对角线运动时,单台电机实际线速度约为 2vhead\sqrt{2}v_{head}2 vhead,因此有:

fe,CoreXY=2vheadLrevNp(3-2) f_{e,CoreXY} = \frac{\sqrt{2}v_{head}}{L_{rev}}N_p \tag{3-2} fe,CoreXY=Lrev2 vheadNp(3-2)

该差异意味着同一打印头速度下,CoreXY 的目标谐波频率通常高于 Cartesian,因此对采样带宽与分析频率分辨率提出了更高要求。

为便于建立数量级直觉,下面给出两个直接的计算示例。设同步轮等效周长 Lrev=40 mmL_{rev}=40\ \text{mm}Lrev=40 mm,电机极对数 Np=50N_p=50Np=50,打印头标称速度 vhead=300 mm/sv_{head}=300\ \text{mm/s}vhead=300 mm/s。

  1. Cartesian 架构:

fe,Cartesian=30040×50=375 Hz f_{e,Cartesian}=\frac{300}{40}\times 50 = 375\ \text{Hz} fe,Cartesian=40300×50=375 Hz

若关心 4 倍频,则目标频率约为:

f4x=4×375=1500 Hz f_{4x}=4\times375=1500\ \text{Hz} f4x=4×375=1500 Hz

此时采样率至少应满足:

fs≥2×1500=3000 Hz f_s \ge 2\times1500 = 3000\ \text{Hz} fs≥2×1500=3000 Hz

  1. CoreXY 架构下的单电机解耦标定:

fe,CoreXY=2×375≈530.3 Hz f_{e,CoreXY}=\sqrt{2}\times375\approx530.3\ \text{Hz} fe,CoreXY=2 ×375≈530.3 Hz

若同样分析 4 倍频,则目标频率变为:

f4x=4×530.3≈2121.2 Hz f_{4x}=4\times530.3\approx2121.2\ \text{Hz} f4x=4×530.3≈2121.2 Hz

对应的最低采样率要求变为:

fs≥2×2121.2≈4242.4 Hz f_s \ge 2\times2121.2 \approx 4242.4\ \text{Hz} fs≥2×2121.2≈4242.4 Hz

这说明同样是 300 mm/s 的标称速度,CoreXY 在单电机解耦标定时对采样带宽的要求明显高于 Cartesian。若传感器最大输出率只有 3200 Hz,则足以覆盖前一种情况,但对后一种情况已经存在失真风险。

3.2 单电机解耦标定原则

为使输入参数与输出振动之间尽可能满足单输入单输出关系,标定时应保证同一时刻仅有一台电机主导激励。否则,多台电机同时运行会引入拍频、串扰和峰值漂移,降低参数搜索的可重复性。

对于 Cartesian 架构,可采用纯 X 或纯 Y 方向直线运动进行单轴标定。对于 CoreXY 架构,则应通过 45∘45^\circ45∘ 或 135∘135^\circ135∘ 对角线运动,使一台电机工作而另一台电机保持静止,从而完成单电机解耦。

3.3 正反向独立标定的必要性

理论上,若系统完全对称,则速度 +v+v+v 与 −v-v−v 的补偿参数应具有简单镜像关系;但在实际机构中,皮带张力、摩擦、回差和安装误差会导致明显的方向不对称。因此,正反向应分别标定,至少应分别记录相位参数,必要时幅值也应独立存储。

3.4 采样率与抗混叠约束

设目标分析频率上限为 fmaxf_{max}fmax,则采样频率应满足奈奎斯特条件:

fs≥2fmax(3-3) f_s \ge 2f_{max} \tag{3-3} fs≥2fmax(3-3)

在工程上,考虑滤波余量、传感器性能和 FFT 分辨率,建议采样率适当高于理论下限。对于高速度 CoreXY 系统,若需要观察 4 倍频甚至更高频成分,采样率通常应达到数千赫兹以上。

这里给出一个更具体的选型示例。假设当前测试条件为:

  1. 目标结构为 CoreXY。
  2. 打印头速度为 300 mm/s300\ \text{mm/s}300 mm/s。
  3. 目标分析谐波为 4 倍频。
  4. 已由上节计算得到 fmax≈2121.2 Hzf_{max}\approx2121.2\ \text{Hz}fmax≈2121.2 Hz。

则不同采样率下的判断如下:

采样率 fsf_sfs 是否满足奈奎斯特 结论
1600 Hz1600\ \text{Hz}1600 Hz 否 必然混叠,不能用于该工况
3200 Hz3200\ \text{Hz}3200 Hz 否 可用于较低频谐波,但不足以覆盖本例 4 倍频
5000 Hz5000\ \text{Hz}5000 Hz 是 满足基础采样要求,适合进一步做频域分析

除采样率外,还应关注 FFT 频率分辨率。若采用 fs=3200 Hzf_s = 3200\ \text{Hz}fs=3200 Hz、N=1024N = 1024N=1024 点 FFT,则频率分辨率为:

Δf=fsN=32001024≈3.125 Hz \Delta f = \frac{f_s}{N} = \frac{3200}{1024} \approx 3.125\ \text{Hz} Δf=Nfs=10243200≈3.125 Hz

该量决定了频谱上相邻频点的间距。若目标峰值恰好位于两个频点之间,仅取单点会低估峰值,因此后续必须配合带宽窗口 ΔfBW\Delta f_{BW}ΔfBW 进行局部峰值提取。

3.5 窗函数与 FFT 处理

为减小有限时窗带来的频谱泄漏,采样序列在 FFT 前应施加窗函数。以汉宁窗为例:

wm=0.5(1−cos⁡2πmN−1)(3-4) wm = 0.5\left(1-\cos\frac{2\pi m}{N-1}\right) \tag{3-4} wm=0.5(1−cosN−12πm)(3-4)

对任一轴向加速度序列 amamam,其频域表示为:

X(k)=∑m=0N−1amwme−j2πNkm(3-5) X(k)=\sum_{m=0}^{N-1} amwme^{-j\frac{2\pi}{N}km} \tag{3-5} X(k)=m=0∑N−1amwme−jN2πkm(3-5)

在实际实现中,通常对 X、Y、Z 三轴分别进行 FFT,再在目标频带上提取幅值特征。

3.6 目标频带窗口设置

由于 FFT 频率分辨率有限,且真实系统存在转速波纹和结构频响展宽,因此不宜只读取单个离散频点。设目标中心频率为 fkf_kfk,则可在窗口

fk−ΔfBW, fk+ΔfBW\] \[f_k-\\Delta f_{BW},\\ f_k+\\Delta f_{BW}\] \[fk−ΔfBW, fk+ΔfBW

内提取局部峰值。ΔfBW\Delta f_{BW}ΔfBW 需要同时满足两点:

  1. 足以覆盖频率漂移和 FFT 栅栏效应。
  2. 不至于扩展到相邻谐波频段,引入串扰。

更具体地说,带宽窗口之所以要"配合"采样率和 FFT 一起设定,是因为它本质上是在回答两个问题:

  1. 目标峰值可能偏离理论频点多少?
  2. 为了不漏掉这个峰值,至少要在理论频点两侧留多宽的搜索余量?

常见的窗口选取逻辑如下:

  1. 先由采样率和 FFT 点数确定频率分辨率 Δf=fs/N\Delta f = f_s/NΔf=fs/N。
  2. 再给窗口设定一个不小于若干个频率分辨率的余量,避免单点漏峰。
  3. 最后检查窗口是否过宽,避免把邻近谐波或寄生峰一起纳入。

例如,若 fs=3200 Hzf_s=3200\ \text{Hz}fs=3200 Hz、N=1024N=1024N=1024,则:

Δf=3.125 Hz \Delta f = 3.125\ \text{Hz} Δf=3.125 Hz

如果只取理论频点一个 bin,那么目标峰值一旦偏在两个频点之间,就可能被低估。一个更稳妥的做法,是至少保留 3 倍频率分辨率作为下限:

ΔfBW,min≈3Δf≈9.4 Hz \Delta f_{BW,min} \approx 3\Delta f \approx 9.4\ \text{Hz} ΔfBW,min≈3Δf≈9.4 Hz

工程上通常会向上取整到 ±10 Hz\pm 10\ \text{Hz}±10 Hz 或 ±20 Hz\pm 20\ \text{Hz}±20 Hz,用于覆盖以下几类误差:

  1. FFT 栅栏效应导致的单点偏差。
  2. 电机实际转速波纹造成的频率轻微漂移。
  3. 结构共振峰本身不是理想尖峰,而是具有一定展宽。

下面给出一个完整示例。假设理论目标频率为 fk=1500 Hzf_k = 1500\ \text{Hz}fk=1500 Hz,FFT 分辨率仍为 3.125 Hz3.125\ \text{Hz}3.125 Hz。若取:

ΔfBW=20 Hz \Delta f_{BW} = 20\ \text{Hz} ΔfBW=20 Hz

则实际搜索区间为:

1480,1520 Hz 1480,1520\ \text{Hz} 1480,1520 Hz

这意味着算法不会只盯住 1500 Hz 单点,而是会在该区间内寻找局部最大值。若真实峰值由于机械漂移落在 1492 Hz 或 1508 Hz,仍能被窗口正确抓到。

但窗口也不能无限放大。设相邻谐波峰分别位于 1500 Hz 和 1600 Hz,则窗口半宽必须满足:

ΔfBW<1600−15002=50 Hz \Delta f_{BW} < \frac{1600-1500}{2} = 50\ \text{Hz} ΔfBW<21600−1500=50 Hz

否则窗口就有可能越过两个峰之间的分界,把邻近谐波一起纳入,导致搜索目标失真。

因此,可以把带宽窗口理解为"围绕理论频点画一个有限宽度的搜索框"。这个搜索框既要足够宽,防止漏掉真实峰值;又要足够窄,防止抓到不该抓的邻近峰。对轻载步进系统,一个常用且易实现的经验范围是:

  1. 下限不低于 3Δf3\Delta f3Δf。
  2. 经验值常取 ±10 Hz\pm 10\ \text{Hz}±10 Hz 到 ±30 Hz\pm 30\ \text{Hz}±30 Hz。
  3. 上限必须小于相邻谐波间距的一半。

3.7 三轴综合振动代价函数

为避免单轴观测带来的方向偏置,本文采用三轴频域幅值的欧几里得范数构建代价函数:

J(ftarget)=max⁡k∈fk−ΔfBW, fk+ΔfBW∣X(k)∣2+∣Y(k)∣2+∣Z(k)∣2(3-6) J(f_{target}) = \max_{k \in f_k-\\Delta f_{BW},\\ f_k+\\Delta f_{BW}}\sqrt{|X(k)|^2+|Y(k)|^2+|Z(k)|^2} \tag{3-6} J(ftarget)=k∈fk−ΔfBW, fk+ΔfBWmax∣X(k)∣2+∣Y(k)∣2+∣Z(k)∣2 (3-6)

该定义具有两个优点:

  1. 对传感器安装方向不敏感,具有较好的旋转不变性。
  2. 能反映空间整体振动水平,避免单轴最优而整机并不最优的情况。

其数据处理过程可进一步表示为:

例如,在某次测试中,目标频带内某一点的三轴幅值分别为 ∣X∣=0.8|X|=0.8∣X∣=0.8、∣Y∣=0.6|Y|=0.6∣Y∣=0.6、∣Z∣=0.3|Z|=0.3∣Z∣=0.3,则综合评分为:

J=0.82+0.62+0.32=1.09≈1.044 J = \sqrt{0.8^2+0.6^2+0.3^2} = \sqrt{1.09} \approx 1.044 J=0.82+0.62+0.32 =1.09 ≈1.044

若另一组参数使得三轴幅值变为 0.50.50.5、0.40.40.4、0.20.20.2,则有:

J=0.52+0.42+0.22=0.45≈0.671 J = \sqrt{0.5^2+0.4^2+0.2^2} = \sqrt{0.45} \approx 0.671 J=0.52+0.42+0.22 =0.45 ≈0.671

由于第二组参数对应的 JJJ 更小,因此说明其在空间总体振动抑制上更优。

3.8 本章小结

本章建立了从速度到目标频率、从采样到 FFT、从频域特征到代价函数的完整测量链路。该链路为后续参数搜索提供了可重复、可量化的评价标准。

4. 参数辨识与优化算法

4.1 优化问题定义

给定速度、方向和目标谐波阶次后,需要求解参数对 (A,ϕ)(A,\phi)(A,ϕ),使代价函数 JJJ 最小:

min⁡A,ϕJ(A,ϕ)(4-1) \min_{A,\phi} J(A,\phi) \tag{4-1} A,ϕminJ(A,ϕ)(4-1)

该问题通常是非凸的,且每次评价都需要真实运动和实际采样,因此属于典型的高代价黑盒优化问题。工程上常用两类方法:方案 A 为分步贪心搜索,方案 B 为贝叶斯优化。前者强调实现简单,后者强调全局搜索效率。

4.2 方案 A:分步贪心搜索

方案 A 的核心思想是把二维搜索拆分成两个一维问题:先找相位,再找幅值。这样做的原因是相位对破坏性干涉的影响通常更敏感,先把相位调到接近最优,后续的幅值搜索会更稳定。

4.2.1 第一步:固定幅值,搜索相位

设初始测试幅值为 AinitA_{init}Ainit。在第一步中,算法保持 A=AinitA=A_{init}A=Ainit 不变,只在相位区间内搜索最优的 ϕ\phiϕ。常见做法是先粗扫,再局部细化:

  1. 以较大步长在 0,2π0,2\\pi0,2π 上扫描,找到若干低谷区域。
  2. 选择最低谷附近作为局部搜索起点。
  3. 使用更小步长继续比较,直到相位收敛。

其执行流程可写为:

这一步的目标不是立刻得到最终参数对,而是先找到一个足够接近反相抵消条件的相位值 ϕopt\phi_{opt}ϕopt。

4.2.2 第二步:固定相位,搜索幅值

当 ϕopt\phi_{opt}ϕopt 确定后,算法进入第二步。此时相位保持不变,只沿幅值方向搜索 AAA。搜索逻辑与相位完全一致,只是搜索变量换成了补偿幅值:

  1. 固定 ϕ=ϕopt\phi = \phi_{opt}ϕ=ϕopt。
  2. 测试 A−ΔAA-\Delta AA−ΔA、AAA、A+ΔAA+\Delta AA+ΔA 三个点。
  3. 若左侧或右侧更优,则向对应方向滑动。
  4. 当中心点成为局部最小值时,得到 AoptA_{opt}Aopt。

从物理意义上看,若相位已经接近最优,则改变幅值就是在判断"补偿过小、刚好合适还是补偿过大"。因此这一阶段通常比相位搜索更容易收敛。

4.2.3 STEP_SLIDE 的三点滑动机制

无论优化变量是 ϕ\phiϕ 还是 AAA,底层都可以统一用三点滑动法实现。设当前搜索中心为 XkX_kXk,步长为 dXdXdX,则测试三点:

  1. Xk−dX→JminusX_k-dX \rightarrow J_{minus}Xk−dX→Jminus
  2. Xk→JcenterX_k \rightarrow J_{center}Xk→Jcenter
  3. Xk+dX→JplusX_k+dX \rightarrow J_{plus}Xk+dX→Jplus

其判据如下:

  1. 若 JminusJ_{minus}Jminus 最小,说明更优点在左侧。
  2. 若 JplusJ_{plus}Jplus 最小,说明更优点在右侧。
  3. 若 JcenterJ_{center}Jcenter 最小,说明当前已落入局部谷底。

可以将它理解为"离散版梯度下降",只不过不显式计算导数,而是直接通过三次真实测量判断下降方向。

4.2.4 方案 A 的工程例子

假设某一速度点下,当前固定幅值为 A=30A=30A=30,搜索相位。若测试结果为:

  1. ϕ=0∘→J=10.0\phi=0^\circ \rightarrow J=10.0ϕ=0∘→J=10.0
  2. ϕ=10∘→J=9.2\phi=10^\circ \rightarrow J=9.2ϕ=10∘→J=9.2
  3. ϕ=−10∘→J=10.5\phi=-10^\circ \rightarrow J=10.5ϕ=−10∘→J=10.5

由于右侧点最小,说明更优相位在正方向。随后继续测试 20∘20^\circ20∘、30∘30^\circ30∘ 直到 90∘90^\circ90∘ 附近。如果测得:

  1. ϕ=90∘→J=4.0\phi=90^\circ \rightarrow J=4.0ϕ=90∘→J=4.0
  2. ϕ=100∘→J=4.2\phi=100^\circ \rightarrow J=4.2ϕ=100∘→J=4.2

则可判断最优相位位于 90∘90^\circ90∘ 附近。再固定该相位搜索幅值。若依次得到:

  1. A=40→J=3.8A=40 \rightarrow J=3.8A=40→J=3.8
  2. A=50→J=2.6A=50 \rightarrow J=2.6A=50→J=2.6
  3. A=60→J=2.0A=60 \rightarrow J=2.0A=60→J=2.0
  4. A=70→J=2.4A=70 \rightarrow J=2.4A=70→J=2.4

则说明最优幅值位于 A=60A=60A=60 附近,最终得到参数对 (Aopt,ϕopt)=(60,90∘)(A_{opt},\phi_{opt})=(60,90^\circ)(Aopt,ϕopt)=(60,90∘)。

方案 A 的优点是计算量低、容易下沉到 MCU;缺点是如果初始点靠近伪局部极小值,就可能收敛到局部最优而不是全局最优。

4.3 方案 B:贝叶斯优化

当系统具备上位机算力时,可采用贝叶斯优化对 (A,ϕ)(A,\phi)(A,ϕ) 联合求解。与方案 A 不同,方案 B 不先拆分变量,而是把二维参数空间整体看作一个待搜索平面,再用代理模型预测哪些区域最值得继续测试。

4.3.1 基本流程

贝叶斯优化通常包含以下四步:

  1. 先在参数空间内选少量点做初始测试。
  2. 用这些真实样本建立代理模型,例如高斯过程模型。
  3. 用采集函数在"去已知低谷附近继续细找"和"去未知区域继续探索"之间做平衡。
  4. 选择新的测试点,执行真实测量,再更新模型。

其流程可以概括为:

这种方法的关键优势在于,每一次新测试都不是盲试,而是利用已有样本信息做"最有价值的一次试探"。

4.3.2 方案 B 的工程例子

仍以上节的同一速度点为例,假设真实最优点位于 (60,90∘)(60,90^\circ)(60,90∘),但系统并不知道。贝叶斯优化可能先随机选取三组样本:

  1. (0,0∘)→J=10.0(0,0^\circ) \rightarrow J=10.0(0,0∘)→J=10.0
  2. (100,180∘)→J=15.0(100,180^\circ) \rightarrow J=15.0(100,180∘)→J=15.0
  3. (50,−90∘)→J=5.5(50,-90^\circ) \rightarrow J=5.5(50,−90∘)→J=5.5

此时模型会认为第三个点附近较优,但右上区域样本极少、不确定性很高。采集函数综合"低均值"和"高方差"后,可能选择 (55,80∘)(55,80^\circ)(55,80∘) 作为下一次测试点。若真实测得:

(55,80∘)→J=2.5 (55,80^\circ) \rightarrow J=2.5 (55,80∘)→J=2.5

则模型会迅速把低谷区域收缩到该点附近。随后再测试:

(60,90∘)→J=2.0 (60,90^\circ) \rightarrow J=2.0 (60,90∘)→J=2.0

即可定位真正最优点。和方案 A 相比,方案 B 往往能用更少的测试次数避开伪局部极小值,但前提是系统具备更高的软件复杂度和计算资源。

4.4 两类方法的工程比较

比较项 方案 A:分步贪心搜索 方案 B:贝叶斯优化
搜索变量处理 先相位后幅值,分两步 幅值与相位联合搜索
计算资源 低 中到高
实现复杂度 低 高
对初值敏感性 高 低
局部最优风险 较高 较低
物理测试次数 中等 通常更少
典型部署位置 MCU 本地标定 上位机辅助标定
适用场景 快速、低成本、可接受局部解 追求更高精度和更少试次

4.5 本章小结

本章将参数辨识归纳为非凸黑盒优化问题,并给出了两类典型解法。方案 A 适合嵌入式控制器上的低成本实现,方案 B 更适合上位机参与的高效全局标定。对而言,可以把两者理解为"简单但可能卡在局部谷底"和"更聪明但实现更复杂"这两类典型工程取舍。

5. 全速域标定与参数插值

5.1 离散速度节点标定

由于不同速度会激发不同频段的结构模态,单一参数对无法覆盖整个速度范围。因此,应在多个速度节点分别完成参数标定。例如,对速度集合

V={±50, ±100, ±150, ..., ±300} mm/s \mathcal{V}=\{\pm 50,\ \pm100,\ \pm150,\ \dots,\ \pm300\}\ \text{mm/s} V={±50, ±100, ±150, ..., ±300} mm/s

中的每个点,分别求得对应的最优参数 (Aopt,ϕopt)(A_{opt},\phi_{opt})(Aopt,ϕopt),并形成带方向信息的查找表。

一个适合教学和实现的离散打点流程如下:

这样得到的不是单个最优点,而是一张随速度和方向变化的参数地图。在线运行时,控制器从这张地图上读取或插值出当前所需补偿量。

5.2 方法 A:一阶线性插值

当实际运行速度 vvv 位于相邻节点 vk,vk+1v_k,v_{k+1}vk,vk+1 之间时,可先采用一阶线性插值。该方法默认参数在两个已知节点之间近似线性变化,优点是实现简单,适合 MCU 实时运算。

α=v−vkvk+1−vk,α∈0,1(5-1) \alpha = \frac{v-v_k}{v_{k+1}-v_k},\qquad \alpha\in0,1 \tag{5-1} α=vk+1−vkv−vk,α∈0,1(5-1)

A(v)=(1−α)Ak+αAk+1(5-2) A(v)=(1-\alpha)A_k+\alpha A_{k+1} \tag{5-2} A(v)=(1−α)Ak+αAk+1(5-2)

ϕ(v)=ϕk+α(ϕk+1−ϕk)(5-3) \phi(v)=\phi_k+\alpha(\phi_{k+1}-\phi_k) \tag{5-3} ϕ(v)=ϕk+α(ϕk+1−ϕk)(5-3)

其执行步骤可以概括为:先找到相邻速度节点,再计算权重 α\alphaα,最后分别对幅值与相位做线性过渡。该方法实现最简单,但在节点交界处导数不连续,动态性能一般。

5.3 方法 B:最小二乘全局拟合

若希望以较少参数描述整段速度范围,可对幅值或相位分别拟合多项式。该方法的思路不是"通过每一个点",而是"寻找整体误差最小的一条平滑曲线"。例如:

A(v)=p0+p1v+p2v2+⋯+pMvM(5-4) A(v)=p_0+p_1v+p_2v^2+\cdots+p_Mv^M \tag{5-4} A(v)=p0+p1v+p2v2+⋯+pMvM(5-4)

通过最小化残差平方和:

min⁡p0,...,pM∑i=1K(A(vi)−Ameasured(vi))2(5-5) \min_{p_0,\dots,p_M}\sum_{i=1}^{K}\left(A(v_i)-A_{measured}(v_i)\right)^2 \tag{5-5} p0,...,pMmini=1∑K(A(vi)−Ameasured(vi))2(5-5)

得到全局拟合系数。若采用一阶拟合 y=kv+by = kv + by=kv+b,则斜率和截距可由下式求得:

k=n∑viyi−∑vi∑yin∑vi2−(∑vi)2 k = \frac{n\sum v_iy_i - \sum v_i\sum y_i}{n\sum v_i^2-(\sum v_i)^2} k=n∑vi2−(∑vi)2n∑viyi−∑vi∑yi

b=∑yi−k∑vin b = \frac{\sum y_i-k\sum v_i}{n} b=n∑yi−k∑vi

其中,yiy_iyi 可以表示幅值数据,也可以表示相位数据。该方法计算平滑,但不一定穿过所有标定点,可能牺牲局部精度。若系统参数随速度变化较平缓,它可以显著压缩存储量;若真实曲线存在局部陡变,则可能出现欠拟合。

5.4 方法 C:三次样条插值

若要求插值结果经过所有测点,同时在节点处保持较高平滑性,可采用三次样条插值。对区间 vk,vk+1v_k,v_{k+1}vk,vk+1 构造:

Sk(v)=ak+bk(v−vk)+ck(v−vk)2+dk(v−vk)3(5-6) S_k(v)=a_k+b_k(v-v_k)+c_k(v-v_k)^2+d_k(v-v_k)^3 \tag{5-6} Sk(v)=ak+bk(v−vk)+ck(v−vk)2+dk(v−vk)3(5-6)

并在拼接节点上满足函数值、一阶导数和二阶导数连续。若采用自然边界条件,则端点二阶导数取零。对于只有 3 个等距节点的教学示例,样条求解可以简化为先求二阶导数参数 M1,M2,M3M_1,M_2,M_3M1,M2,M3,再代回分段公式求目标点的函数值。该方法通常比线性插值更平滑,也比高阶全局多项式更稳定,因此更适合作为工程实现方案。

5.5 相位解卷绕处理

相位是模 2π2\pi2π 变量,直接拟合或插值可能在 000 与 2π2\pi2π 的边界产生跳变。因此在方法 B 和方法 C 中,通常都应先进行解卷绕:

ϕunwrap(k)=ϕunwrap(k−1)+wrapToPi⁡(ϕmeasured(k)−ϕunwrap(k−1))(5-7) \phi_{unwrap}(k)=\phi_{unwrap}(k-1)+\operatorname{wrapToPi}\left(\phi_{measured}(k)-\phi_{unwrap}(k-1)\right) \tag{5-7} ϕunwrap(k)=ϕunwrap(k−1)+wrapToPi(ϕmeasured(k)−ϕunwrap(k−1))(5-7)

拟合完成后再对输出取模还原。该步骤对相位拟合和插值的稳定性十分关键。

5.6 三种方法的演算实例

设已标定得到三组数据:

速度 vvv 幅值 AAA 相位 ϕ\phiϕ
100 mm/s100\ \text{mm/s}100 mm/s 50 30∘30^\circ30∘
150 mm/s150\ \text{mm/s}150 mm/s 80 70∘70^\circ70∘
200 mm/s200\ \text{mm/s}200 mm/s 100 120∘120^\circ120∘

若当前运行速度为 130 mm/s130\ \text{mm/s}130 mm/s,下面分别演示方法 A、B、C 的求解过程。

演算 1:方法 A

线性插值权重为:

α=130−100150−100=0.6 \alpha = \frac{130-100}{150-100}=0.6 α=150−100130−100=0.6

因此幅值与相位分别为:

A(130)=50+0.6×(80−50)=68 A(130)=50+0.6\times(80-50)=68 A(130)=50+0.6×(80−50)=68

ϕ(130)=30∘+0.6×(70∘−30∘)=54∘ \phi(130)=30^\circ+0.6\times(70^\circ-30^\circ)=54^\circ ϕ(130)=30∘+0.6×(70∘−30∘)=54∘

结论是:方法 A 得到 A(130)=68A(130)=68A(130)=68、ϕ(130)=54∘\phi(130)=54^\circϕ(130)=54∘。它最容易实现,但相邻区间拼接时会形成折线。

演算 2:方法 B

为了便于手工计算,设采用一阶全局拟合 y=kv+by = kv + by=kv+b。下面分别对幅值和相位求拟合直线。

第一步,先处理幅值数据 (100,50)(100,50)(100,50)、(150,80)(150,80)(150,80)、(200,100)(200,100)(200,100)。令 n=3n=3n=3,则:

∑vi=100+150+200=450 \sum v_i = 100+150+200 = 450 ∑vi=100+150+200=450

∑vi2=1002+1502+2002=72500 \sum v_i^2 = 100^2+150^2+200^2 = 72500 ∑vi2=1002+1502+2002=72500

∑Ai=50+80+100=230 \sum A_i = 50+80+100 = 230 ∑Ai=50+80+100=230

∑viAi=100×50+150×80+200×100=37000 \sum v_iA_i = 100\times50 + 150\times80 + 200\times100 = 37000 ∑viAi=100×50+150×80+200×100=37000

代入上面的斜率与截距公式,可得:

kA=3×37000−450×2303×72500−4502=111000−103500217500−202500=750015000=0.5 k_A = \frac{3\times37000 - 450\times230}{3\times72500 - 450^2} = \frac{111000 - 103500}{217500 - 202500} = \frac{7500}{15000} = 0.5 kA=3×72500−45023×37000−450×230=217500−202500111000−103500=150007500=0.5

bA=230−0.5×4503=53≈1.67 b_A = \frac{230 - 0.5\times450}{3} = \frac{5}{3} \approx 1.67 bA=3230−0.5×450=35≈1.67

因此幅值拟合直线为:

A(v)≈0.5v+1.67 A(v) \approx 0.5v + 1.67 A(v)≈0.5v+1.67

代入 v=130v=130v=130,得到:

A(130)≈0.5×130+1.67=66.67 A(130) \approx 0.5\times130 + 1.67 = 66.67 A(130)≈0.5×130+1.67=66.67

第二步,再处理相位数据 (100,30∘)(100,30^\circ)(100,30∘)、(150,70∘)(150,70^\circ)(150,70∘)、(200,120∘)(200,120^\circ)(200,120∘)。此时:

∑ϕi=30+70+120=220 \sum \phi_i = 30+70+120 = 220 ∑ϕi=30+70+120=220

∑viϕi=100×30+150×70+200×120=37500 \sum v_i\phi_i = 100\times30 + 150\times70 + 200\times120 = 37500 ∑viϕi=100×30+150×70+200×120=37500

代入同样的公式,有:

kϕ=3×37500−450×22015000=112500−9900015000=0.9 k_{\phi} = \frac{3\times37500 - 450\times220}{15000} = \frac{112500 - 99000}{15000} = 0.9 kϕ=150003×37500−450×220=15000112500−99000=0.9

bϕ=220−0.9×4503=−61.67 b_{\phi} = \frac{220 - 0.9\times450}{3} = -61.67 bϕ=3220−0.9×450=−61.67

因此相位拟合直线为:

ϕ(v)≈0.9v−61.67 \phi(v) \approx 0.9v - 61.67 ϕ(v)≈0.9v−61.67

代入后有:

ϕ(130)≈0.9×130−61.67=55.33∘ \phi(130) \approx 0.9\times130 - 61.67 = 55.33^\circ ϕ(130)≈0.9×130−61.67=55.33∘

方法 B 的特点是结果整体平滑,但它不保证经过全部原始测点,因此更适合曲线总体趋势稳定、且希望降低存储量的场景。

演算 3:方法 C

若采用三次样条插值,则会在区间 100,150100,150100,150 上构造一段三次多项式,并保证与相邻区间在一阶、二阶导数上连续。为了能够手工跟算,这里采用 3 个等距节点、自然边界条件的最简情形。

第一步,定义等距步长:

h=150−100=50 h = 150-100 = 50 h=150−100=50

自然边界条件意味着:

M1=0,M3=0 M_1 = 0, \qquad M_3 = 0 M1=0,M3=0

对 3 个等距节点,内部节点的二阶导数满足:

M1+4M2+M3=6h2(y1−2y2+y3) M_1 + 4M_2 + M_3 = \frac{6}{h^2}(y_1 - 2y_2 + y_3) M1+4M2+M3=h26(y1−2y2+y3)

第二步,先对幅值数据 50,80,10050,80,10050,80,100 求 M2M_2M2。有:

y1−2y2+y3=50−2×80+100=−10 y_1 - 2y_2 + y_3 = 50 - 2\times80 + 100 = -10 y1−2y2+y3=50−2×80+100=−10

4M2=62500(−10)=−0.024 4M_2 = \frac{6}{2500}(-10) = -0.024 4M2=25006(−10)=−0.024

M2=−0.006 M_2 = -0.006 M2=−0.006

第三步,定义目标点在区间 100,150100,150100,150 上的左右权重:

λ=150−13050=0.4,t=130−10050=0.6 \lambda = \frac{150-130}{50} = 0.4, \qquad t = \frac{130-100}{50} = 0.6 λ=50150−130=0.4,t=50130−100=0.6

于是样条函数可写为:

SA(130)=M1h26λ3+M2h26t3+(A1−M1h26)λ+(A2−M2h26)t S_A(130)=M_1\frac{h^2}{6}\lambda^3 + M_2\frac{h^2}{6}t^3 + \left(A_1-M_1\frac{h^2}{6}\right)\lambda + \left(A_2-M_2\frac{h^2}{6}\right)t SA(130)=M16h2λ3+M26h2t3+(A1−M16h2)λ+(A2−M26h2)t

因为 M1=0M_1=0M1=0,且

M2h26=−0.006×25006=−2.5 M_2\frac{h^2}{6} = -0.006\times\frac{2500}{6} = -2.5 M26h2=−0.006×62500=−2.5

所以:

SA(130)=(−2.5)(0.6)3+50(0.4)+(80+2.5)(0.6) S_A(130)=(-2.5)(0.6)^3 + 50(0.4) + (80+2.5)(0.6) SA(130)=(−2.5)(0.6)3+50(0.4)+(80+2.5)(0.6)

SA(130)=−2.5×0.216+20+82.5×0.6=−0.54+20+49.5=68.96 S_A(130)= -2.5\times0.216 + 20 + 82.5\times0.6 = -0.54 + 20 + 49.5 = 68.96 SA(130)=−2.5×0.216+20+82.5×0.6=−0.54+20+49.5=68.96

第四步,对相位数据 30∘,70∘,120∘30^\circ,70^\circ,120^\circ30∘,70∘,120∘ 做同样处理。此时:

y1−2y2+y3=30−2×70+120=10 y_1 - 2y_2 + y_3 = 30 - 2\times70 + 120 = 10 y1−2y2+y3=30−2×70+120=10

4M2ϕ=62500(10)=0.024 4M_2^{\phi} = \frac{6}{2500}(10) = 0.024 4M2ϕ=25006(10)=0.024

M2ϕ=0.006 M_2^{\phi} = 0.006 M2ϕ=0.006

进一步有:

M2ϕh26=0.006×25006=2.5 M_2^{\phi}\frac{h^2}{6} = 0.006\times\frac{2500}{6} = 2.5 M2ϕ6h2=0.006×62500=2.5

所以相位样条值为:

Sϕ(130)=2.5(0.6)3+30(0.4)+(70−2.5)(0.6) S_{\phi}(130)=2.5(0.6)^3 + 30(0.4) + (70-2.5)(0.6) Sϕ(130)=2.5(0.6)3+30(0.4)+(70−2.5)(0.6)

Sϕ(130)=2.5×0.216+12+67.5×0.6=0.54+12+40.5=53.04∘ S_{\phi}(130)= 2.5\times0.216 + 12 + 67.5\times0.6 = 0.54 + 12 + 40.5 = 53.04^\circ Sϕ(130)=2.5×0.216+12+67.5×0.6=0.54+12+40.5=53.04∘

因此,方法 C 的结果为:

A(130)=68.96,ϕ(130)=53.04∘ A(130)=68.96, \qquad \phi(130)=53.04^\circ A(130)=68.96,ϕ(130)=53.04∘

该结果的价值在于,它不仅接近原始测点趋势,而且在速度连续变化时具有更平滑的一阶、二阶导数特性。

三种方法的比较
方法 是否经过全部测点 平滑性 实现难度 适用场景
方法 A:线性插值 是 一般 低 MCU 实时计算、快速验证
方法 B:全局拟合 否 高 中 参数压缩、总体趋势建模
方法 C:三次样条 是 高 中 在线控制、兼顾精度与平滑性

5.7 本章小结

本章说明了为什么必须进行全速域离散标定,并比较了三类常用过渡方法。综合精度、平滑性与实现复杂度,三次样条插值通常是更均衡的工程选择。

6. 工程实现建议

6.1 标定流程建议

为保证标定结果可复现,建议采用以下流程:

  1. 固定传感器安装位置和安装方向。
  2. 按架构选择单电机解耦轨迹。
  3. 对每个速度节点分别进行正向和反向标定。
  4. 每个测试点重复采样多次,并取统计稳定值。
  5. 对异常点进行复测,而不是直接参与插值。

6.2 在线运行流程

在线运行时,控制器可按照以下顺序工作:

该流程适合在主控固件中以查表加轻量插值的方式实现,实时开销较低。

6.3 参数存储与维护

建议将正反向参数、不同电机参数以及不同谐波阶次参数分开存储,避免查询逻辑混乱。若设备经过以下操作,应考虑重新标定:

  1. 更换电机、驱动器或皮带轮。
  2. 调整皮带张力或导轨预紧。
  3. 明显改变平台负载。
  4. 机架结构件拆装后重新组装。

6.4 误差来源与调试建议

工程调试中常见误差来源包括:

  1. 传感器安装不牢,导致高频响应失真。
  2. 采样率不足,引起混叠。
  3. 解耦轨迹选择不当,导致多电机串扰。
  4. 速度节点过稀,导致在线补偿过渡不准。
  5. 相位插值未解卷绕,造成跨界跳变。

因此,调试优先级通常应为:先保证测量链路可信,再优化搜索策略,最后优化插值模型。

6.5 本章小结

本章从落地实施角度给出了标定、存储、在线调用与调试建议。对于多数开环步进平台,可靠的测量与清晰的参数管理往往比复杂算法更重要。

7. 方案评估与结论

7.1 与闭环 FOC 谐波补偿的比较

比较项 本文方法 典型闭环 FOC 补偿
控制对象 STEP 脉冲时序 电流环或转矩环
依赖硬件 低 高
实施位置 运动指令发送端 驱动内部闭环
适用系统 开环步进平台 伺服或高性能闭环系统
全速域覆盖能力 依赖多速度节点标定和插值,可覆盖常用速度范围 依赖闭环反馈,可在连续速度范围内实时调节
实时性 在线查表和调制开销低,但参数更新主要依赖离线模型 在线补偿能力强,但要求控制器和采样链路具备较高实时带宽
在线适应能力 一般 较强

本文方法的优势在于硬件成本低、部署门槛低、可兼容大量现有开源控制平台;不足在于全速域覆盖主要依赖离线速度节点密度,实时更新能力弱于 FOC 类闭环系统。换言之,本文方法更像"先标定、后调用"的前馈方案,而 FOC 更像"边运行、边修正"的在线反馈方案。

7.2 工程局限性

本文方案的主要限制如下:

  1. 补偿参数依赖离线标定,难以完全应对长期漂移。
  2. 全速域标定时间较长,特别是在双向、多电机、多谐波条件下。
  3. 对高加速度瞬态工况,静态速度节点插值无法完全描述真实动态响应。
  4. 若系统已经具备高带宽闭环控制,则本文方法的收益可能下降,甚至与原有控制环冲突。

7.3 结论

本文围绕开环步进系统的谐波噪声问题,构建了一套基于步进脉冲相位调制的前馈降噪方法。通过建立谐波机理模型、设计三轴振动测量与频域评价方法、引入参数辨识算法,并结合全速域标定与插值策略,形成了从理论到工程实现的完整技术链路。

从工程角度看,该方法特别适合硬件预算有限、但希望显著改善高速运行噪声的运动平台。若后续能够结合在线状态估计、自适应更新或更精细的动态模型,其应用范围和稳定性仍有进一步提升空间。

相关推荐
惆怅客1239 天前
UVa11640 Mayor Election
dp·fft·icpc·uva·生成函数的乘法
a35354138218 天前
基于时间抽取FFT(DIT-FFT),矩阵拆分完整推导
fft
jiang_bluetooth20 天前
编码 OFDM 通信系统完整解析:从 16QAM 调制到 Viterbi 译码
ofdm·fft·qam·viterbi译码
蓝悦无人机21 天前
3D 打印技术在无人机设计中的应用案例研究
3d打印·复杂拓扑·镂空轻量化·一体化成型·多射流熔融
3D打印资源库22 天前
库早报|平陆运河通航!3D打印攻克船闸关键部件制造;边防维修用上3D打印;Nexprint上线3款3D生成器
3d打印
小锋学长生活大爆炸25 天前
【教程】如何为创想三维K2系列打印机开启摄像头URL
3d打印·创想三维·拓竹
侯孟禹1 个月前
3D打印材质选择
3d打印
3D打印资源库1 个月前
库早报|半年营收10.65亿元,三绿科技IPO进入问询;“创客中国”增材制造决赛在泸州开赛;巢匠科技完成数亿元融资
3d打印
AI视觉网奇1 个月前
拓竹打印机获取相机图片
yolo·3d打印
AARONIA1 个月前
频谱分析架构演进笔记:扫频、步进 FFT 与实时架构
fft·频谱分析仪·扫频·spectran v6 plus·安诺尼aaronia·实时频谱分析仪·拓力智慧·零中频