电机发声原理和实现

摘要

本文从可公开交流的角度,系统说明电机为什么能够发声、怎样实现电机发声,以及怎样在发声过程中尽量避免明显转动。电机发声的本质,是利用周期变化的电压或电流激励,使电机内部电磁力在可听频段内发生往复变化,并进一步激发定子、转子、机壳和安装结构的振动,从而向空气辐射声波。与以持续输出转矩为目标的常规驱动控制不同,电机发声更关注频率准确、幅值可控、相位连续、边界平滑以及平均转矩尽可能小。本文围绕发声机理、控制过程、dq 轴分量视角下的理解方式、PMSM 与步进电机两类实现思路以及工程调试要点展开说明,并给出流程图与示例公式,可用于方案设计、技术交流和入门学习。

1. 引言与总体方案

1.1 问题定义

传统电机控制的目标,是让电机按照给定速度、位置或转矩稳定运行;而电机发声的目标,则是在尽量不引入明显机械位移的前提下,使电机及其结构件产生稳定、可听的振动。

从工程角度看,这一问题包含四个基本约束:

  1. 目标频率必须稳定,否则音高会漂移。
  2. 激励幅值必须可控,否则可能引起电流过大、结构冲击或明显跑位。
  3. 相邻音符切换应尽量平滑,否则会产生突兀的机械敲击感。
  4. 平均电磁转矩应尽量小,否则电机在发声过程中会逐渐偏离原始位置。

因此,电机发声不是简单地施加一个交流信号,而是在控制系统内部构造一条"可听振动生成链路",同时利用约束机制抑制不希望出现的持续转动。

如果进一步用更直观的方式来理解,可以把它看成"让电机暂时不再主要承担连续旋转执行器的角色,而是转化为一个受控振动源"。这个振动源并不追求输出稳定机械功,而是追求在目标频率附近形成可听、可控、可重复的结构振动。

1.2 总体实现思路

电机发声的一般实现过程可归纳为以下步骤:

  1. 将旋律拆分为"频率 + 持续时间"的音符序列。
  2. 在固定控制周期内,为当前音符生成目标频率对应的周期波形。
  3. 将该周期波形转换为电流参考或电压参考。
  4. 通过电流环、逆变器和 PWM 环节,把参考量变成实际相电流。
  5. 由实际相电流引起电磁力变化,再由电磁力激发结构振动。
  6. 通过闭环保持、对称激励、包络控制和低频限幅,尽量避免明显转动。

如果采用通熟理解,上述过程可以简化成一条连续链路:

"目标音符" → "目标波形" → "目标电流" → "实际电流" → "电磁力变化" → "机械振动" → "声音"。

这条链路说明,电机唱歌并不是直接生成声波,而是先生成合适的电流变化,再由电流变化转化为电磁振动,最后形成声音。

1.3 系统架构与工作流程

从控制系统角度看,电机发声通常由旋律调度、波形生成、激励调制、功率输出、电机振动和反馈约束几个部分组成。其典型结构可表示为:

若从控制周期展开,执行过程可以进一步表示为:

1.4 适用范围与边界

该方法适用于以下场景:

  1. 伺服系统中的提示音、提示旋律和状态提示。
  2. 闭环步进系统中的演示发声、播报和交互提示。
  3. 需要展示电机振动控制能力的教学平台和实验平台。

同时也应明确其边界:

  1. 该方法追求的是可控发声,而非高保真音质。
  2. 最终听感不仅取决于控制策略,也强烈依赖电机本体和安装结构。
  3. 高频范围受采样频率、逆变器带宽和电机参数约束。
  4. 低频范围更容易引起可见位移,需要额外的限幅和保持措施。

1.5 本章小结

本章说明了电机发声的总体目标与技术路线。核心思想是:通过控制系统生成周期性的电流或电压激励,使电机结构产生可听振动;同时利用低平均转矩、闭环保持和幅值约束,尽量避免电机在发声过程中发生明显转动。

2. 电机发声的物理基础

2.1 电磁力、结构振动与声音之间的关系

电机发声的直接原因,是内部电磁力随时间周期变化,进一步激发结构振动并向空气辐射声波。其物理链路可以概括为:

F e m ( t ) → x ( t ) → p ( t ) (2-1) F_{em}(t) \rightarrow x(t) \rightarrow p(t) \tag{2-1} Fem(t)→x(t)→p(t)(2-1)

其中, F e m ( t ) F_{em}(t) Fem(t) 表示周期性电磁力, x ( t ) x(t) x(t) 表示结构振动位移或速度响应, p ( t ) p(t) p(t) 表示最终对外辐射的声压。

这说明电机"唱歌"的直接声源并不是电流本身,而是电流引起的结构振动。

2.2 为什么发声并不一定意味着转动

发声所需要的是交变电磁力,而不是持续单向转矩。只要激励能够让电磁力在两个方向之间往复变化,即使平均转矩很小,结构仍然可以发生振动并发出声音。因此,电机发声的关键条件之一是:

T e ( t ) ‾ ≈ 0 (2-2) \overline{T_e(t)} \approx 0 \tag{2-2} Te(t)≈0(2-2)

与此同时,为了能够发声,还必须满足:

F v i b ( t ) ≠ 0 (2-3) F_{vib}(t) \neq 0 \tag{2-3} Fvib(t)=0(2-3)

其中, T e ( t ) ‾ \overline{T_e(t)} Te(t) 表示平均电磁转矩, F v i b ( t ) F_{vib}(t) Fvib(t) 表示用于激发振动的周期性分量。

因此,"能够发声"与"持续转动"并不是同一件事。只要控制策略把交变振动力保留下来,同时把长期平均转矩压低,就可能实现"有声音但不明显转动"。

2.3 用 dq 轴分量理解发声与转动

在 FOC 或类似坐标变换控制中,使用 dq 轴分量表述最容易理解发声与转动之间的差别。

对于常见 PMSM,可近似写成:

T e ≈ K t i q (2-4) T_e \approx K_t i_q \tag{2-4} Te≈Ktiq(2-4)

这表示 q 轴电流分量与有效转矩关系最直接。换言之,当系统希望输出持续做功的转矩时,核心往往是控制 q 轴分量。

而在发声场景中,目标并不是持续做功,而是构造周期性的电磁拉压作用。因此,控制策略通常更关心两点:

  1. 发声激励必须能够引起周期性电磁力变化;
  2. 与持续转矩直接相关的分量,特别是平均 i q i_q iq,应尽量小。

可以这样理解:

  1. 想让电机持续转动,重点关注 q 轴电流分量;
  2. 想让电机发声但少转动,重点在于保持交变激励,同时避免单方向持续堆积的 q 轴分量。

2.4 驻波激励与旋转磁场的区别

普通驱动控制追求形成旋转磁场,使转子持续跟随;而电机发声更常采用驻波式或往复式激励,使电磁作用更像局部来回拉扯,而不是沿圆周持续推进。在很多低位移发声方案中,常见做法是将激励方向尽量约束在不易形成持续转矩的方向上,并保持电角度与反馈位置相一致,以降低净转动趋势。

两者的目标差别如下:

  1. 旋转磁场的目标是形成持续有效转矩,驱动转子旋转。
  2. 驻波式激励的目标是形成周期振动,激发结构发声。

从控制实现角度看,驻波式激励并不要求持续提高平均 q 轴分量,而更关注对称性、相位连续性和局部振动效果。

2.5 本章小结

本章说明了电机发声的物理本质:电流变化首先引起电磁力变化,电磁力再引起结构振动,结构振动最终形成声音。为了实现"发声但尽量不动",控制上必须同时满足两个条件:一是存在足够的交变振动分量,二是平均转矩尽可能小。

3. 电机发声过程中的低转矩约束与位置稳定机制

3.1 低平均转矩约束的必要性

电机发声控制与普通驱动控制的根本差别,在于二者的控制目标不同。普通驱动希望输出稳定有效的转矩,从而推动转子运动;而发声控制希望构造周期性振动,同时避免转子产生持续位移。因此,发声控制不仅要关心"是否有足够的交变激励",还必须关心"是否存在不希望出现的平均转矩"。

从工程角度看,若平均转矩长期不为零,即使其瞬时值不大,也可能在较长时间内累计成可见跑位。因此,在发声控制设计中,通常把"低平均转矩"看作基本约束条件之一。

3.2 对称交变激励

若激励在正负两个方向上严格对称,则长期平均值更容易接近零。例如理想对称方波可表示为:

u ( t ) = A ⋅ s g n sin ⁡ ( 2 π f t ) (3-1) u(t)=A\cdot \mathrm{sgn}\\sin(2\\pi f t) \tag{3-1} u(t)=A⋅sgnsin(2πft)(3-1)

在正负半周对称的情况下,单方向偏置被抑制,因此比单边激励更不容易引起位置漂移。

该式表示激励在一个周期内一半时间为正、一半时间为负,因此对长期平均效应更有利。

3.3 控制平均 q 轴分量接近零

由于 q 轴电流分量与有效转矩关系最直接,因此为了降低持续转动趋势,通常希望发声引入的 q 轴扰动满足:

Δ i q , s o u n d ‾ ≈ 0 (3-2) \overline{\Delta i_{q,sound}} \approx 0 \tag{3-2} Δiq,sound≈0(3-2)

这并不意味着发声过程中 q 轴分量必须绝对为零,而是要求其长期平均不形成单方向持续驱动。在很多低位移发声方案中,还会进一步令 q 轴输出近似为零,并把主要发声扰动放在 d 轴方向。

若进一步展开理解,可将 q 轴扰动分成两个部分:

  1. 一个是随时间正负往复变化的交变分量;
  2. 另一个是可能由不对称、偏置或控制误差带来的平均分量。

在发声设计中,真正危险的是第二项。因为交变分量主要贡献振动,而平均分量主要贡献持续转矩。因此,工程调试中应重点检查:

  1. 波形是否正负对称;
  2. 电流采样与调节是否存在直流偏置;
  3. 包络切换是否在音符边界引入了单边偏移。

3.4 基于保持控制的 d 轴发声扰动叠加

若系统带有位置保持或速度保持功能,则可将发声激励叠加在原有控制参考之上。对 dq 轴而言,可表示为:

i d ∗ = i d , h o l d ∗ + Δ i d , s o u n d ∗ (3-3) i_d^* = i_{d,hold}^* + \Delta i_{d,sound}^* \tag{3-3} id∗=id,hold∗+Δid,sound∗(3-3)

i q ∗ = i q , h o l d ∗ + Δ i q , s o u n d ∗ (3-4) i_q^* = i_{q,hold}^* + \Delta i_{q,sound}^* \tag{3-4} iq∗=iq,hold∗+Δiq,sound∗(3-4)

其中, i d , h o l d ∗ i_{d,hold}^* id,hold∗ 与 i q , h o l d ∗ i_{q,hold}^* iq,hold∗ 用于位置或速度保持, Δ i d , s o u n d ∗ \Delta i_{d,sound}^* Δid,sound∗ 与 Δ i q , s o u n d ∗ \Delta i_{q,sound}^* Δiq,sound∗ 用于发声。在很多工程方案中,更常见的写法是:保持 q 轴输出近似为零,仅在 d 轴方向注入对称交变分量;在叠加方式下,该分量以附加 d 轴参考的形式参与主控制链路。

如果从控制结构上进一步解释,这一做法的意义在于:

  1. 保持控制负责抵抗外部扰动和发声激励带来的偏移趋势;
  2. 发声扰动只在原有稳定工作点附近做小幅周期变化;
  3. 即使发声激励引入瞬时位移趋势,保持控制也会在后续周期内将其拉回。

因此,在闭环系统中,"发声但尽量不动"并不是单靠发声波形自身实现的,而是依靠"发声扰动 + 保持控制"共同实现的。

3.5 低频幅值约束

低频段更容易引起明显位移,因此通常需要设置与频率相关的幅值缩放:

A ( f ) = A 0 ⋅ s c a l e ( f ) (3-5) A(f)=A_0\cdot scale(f) \tag{3-5} A(f)=A0⋅scale(f)(3-5)

其中, s c a l e ( f ) scale(f) scale(f) 在低频段小于 1,在中高频段逐渐接近 1。其目的不是修正音高,而是降低低频条件下的位移响应、机械摆动以及闭环补偿压力。

低频段更容易带来明显位移,其原因主要在于:

  1. 低频激励变化较慢,转子和机械结构更容易对该激励产生实际跟随,而不仅仅表现为局部高频振动;
  2. 在相同峰值激励下,低频响应更容易表现为可见摆动或往复偏移,因此更容易被观察到"在动";
  3. 闭环保持虽然能够在偏移出现后施加校正作用,但其带宽和可用补偿能力有限;当低频激励幅值过大时,系统可能表现为"能够拉回,但仍存在明显摆动";
  4. 若保持环为了抑制低频大幅值扰动而持续输出较强补偿,还可能进一步带来附加电流、机械拉扯和听感恶化等问题。

因此,在发声设计中,低频限幅通常不是可选项,而是实现稳定发声的重要约束手段。更准确地说,位置闭环负责在扰动出现后抑制累计跑位,而频率相关限幅负责从激励源头减少低频大位移响应;只有两者配合,才能更稳定地实现"有声音但不明显转动"。

3.6 包络函数与边界平滑处理

音符的起始和结束若采用硬切换,容易引入突发电流变化和机械冲击,因此通常还要引入包络函数:

A e f f ( t ) = A ( f ) ⋅ e n v ( t ) (3-6) A_{eff}(t)=A(f)\cdot env(t) \tag{3-6} Aeff(t)=A(f)⋅env(t)(3-6)

其中, e n v ( t ) env(t) env(t) 可以是线性包络、指数包络或其他平滑过渡函数。包络控制的作用,是使起音和止音过程更平滑,减少"咔嗒"声和瞬态跑位。

这里的 e n v ( t ) env(t) env(t) 本质上是一个随时间变化的幅值调节函数,其取值通常位于 0 到 1 之间。它不决定音高,而只决定"当前音符在这一时刻应该有多大幅值"。

当前代码中的包络不是任意形式,而是由"线性攻音包络"和"线性释音包络"取较小值得到,即:

e n v ( t ) = min ⁡ ( e n v a t t a c k ( t ) ,   e n v r e l e a s e ( t ) ) (3-7) env(t)=\min\left(env_{attack}(t),\,env_{release}(t)\right) \tag{3-7} env(t)=min(envattack(t),envrelease(t))(3-7)

其中,

e n v a t t a c k ( t ) = c l a m p ( t T a ,   0 ,   1 ) (3-8) env_{attack}(t)=\mathrm{clamp}\left(\frac{t}{T_a},\,0,\,1\right) \tag{3-8} envattack(t)=clamp(Tat,0,1)(3-8)

e n v r e l e a s e ( t ) = c l a m p ( T − t T r ,   0 ,   1 ) (3-9) env_{release}(t)=\mathrm{clamp}\left(\frac{T-t}{T_r},\,0,\,1\right) \tag{3-9} envrelease(t)=clamp(TrT−t,0,1)(3-9)

其中, T T T 为当前音符总持续时间, T a T_a Ta 为攻音时间, T r T_r Tr 为释音时间。该函数的含义是:

  1. 在音符起始阶段,幅值从 0 逐渐上升;
  2. 在音符中段,幅值保持在 1 附近;
  3. 在音符结束前,幅值逐渐下降到 0。

若举一个具体例子:设音符持续时间 T = 100   ms T=100\,\text{ms} T=100ms,攻音时间 T a = 10   ms T_a=10\,\text{ms} Ta=10ms,释音时间 T r = 20   ms T_r=20\,\text{ms} Tr=20ms,则:

  1. 在 t = 0 t=0 t=0 时, e n v ( 0 ) = 0 env(0)=0 env(0)=0;
  2. 在 t = 5   ms t=5\,\text{ms} t=5ms 时,幅值上升到约 0.5;
  3. 在 t = 10   ms t=10\,\text{ms} t=10ms 到 t = 80   ms t=80\,\text{ms} t=80ms 之间,幅值接近 1;
  4. 在 t = 90   ms t=90\,\text{ms} t=90ms 时,幅值下降到约 0.5;
  5. 在 t = 100   ms t=100\,\text{ms} t=100ms 时,幅值回到 0。

通过这一函数,可以显著改善音符边界的机械冲击。

3.7 相位连续性与换音平滑性

对于连续旋律播放,相邻音符若每次都强制从零相位重新开始,结构振动会在换音点产生额外冲击。因此在工程实现中,通常尽量保持相位连续,使新音符在已有振动状态的基础上平滑过渡。相位连续性的主要作用有两点:

  1. 减少换音瞬间的机械冲击;
  2. 降低由于突发波形重置引起的附加位移。

3.8 音符持续时间对发声控制的作用

音符的持续时间不仅决定"这个音唱多久",还直接参与控制实现。若当前音符持续时间记为 T T T,则它至少影响以下三个方面:

  1. 决定何时切换到下一音符;
  2. 决定包络函数在何时进入释音阶段;
  3. 决定连续旋律中每个音的节奏关系。

在控制实现中,通常会维护一个音符播放时间计数器 t t t。当满足:

t ≥ T (3-10) t \geq T \tag{3-10} t≥T(3-10)

时,控制系统就应结束当前音符并切换到下一音符。

持续时间还会影响包络函数的形状。例如在式(3-7)中,若 T T T 很短,则攻音和释音所占比例会明显增大,此时音符的有效稳定段可能很短;若 T T T 很长,则中间稳定段更长,听感会更平稳。

因此,在旋律设计中,持续时间既是节奏参数,也是控制参数。

3.9 本章小结

本章从更完整的控制角度说明了电机在发声过程中如何同时满足"可听振动"和"低位移风险"两个目标。实现这一目标的关键措施包括:控制平均转矩、保持正负对称、将发声扰动叠加到保持控制上、对低频段限幅、利用包络函数平滑音符边界,并通过持续时间管理实现稳定的节奏和换音过程。

4. 典型实现方法

4.1 音符调度

在软件实现中,一首旋律通常由若干个音符组成,每个音符至少包含目标频率和持续时间。设旋律可表示为:

M = { ( f 1 , T 1 ) , ( f 2 , T 2 ) , ... , ( f n , T n ) } (4-1) \mathcal{M}=\{(f_1,T_1),(f_2,T_2),\ldots,(f_n,T_n)\} \tag{4-1} M={(f1,T1),(f2,T2),...,(fn,Tn)}(4-1)

控制周期内需要不断完成以下任务:

  1. 判断当前音符是否结束;
  2. 若结束,则切换到下一音符;
  3. 将当前音符的频率与幅值送入发声控制链路;
  4. 处理相邻音符之间的包络和相位连续关系。

这里的持续时间 T i T_i Ti 不只是乐谱参数,同时也是控制调度参数。它决定当前音符在控制周期中要持续多少时间,以及何时切换到下一音符。若采样周期为 T s T_s Ts,则一个持续时间为 T i T_i Ti 的音符大约对应:

N i ≈ T i T s (4-2) N_i \approx \frac{T_i}{T_s} \tag{4-2} Ni≈TsTi(4-2)

个控制周期。控制器在这 N i N_i Ni 个周期内保持该音符的频率与基本包络设置,直到计时结束后再切换到下一音符。

在实际控制中,时间推进通常依赖固定控制周期。若系统采样频率为 f s f_s fs,则每个控制周期对应的时间增量可写为:

Δ t = 1000 f s   ms (4-2a) \Delta t = \frac{1000}{f_s}\,\text{ms} \tag{4-2a} Δt=fs1000ms(4-2a)

在每个周期中,控制器都更新当前音符的已播放时长,并据此判断是否切换到下一音符。因此,音符持续时间的实现精度直接受控制周期频率影响。

4.2 频率发生器与 DDS

为了稳定地产生目标频率,嵌入式系统常采用 DDS 直接数字频率合成方法。其相位步进为:

Δ ϕ = f ⋅ 2 N f s (4-3) \Delta\phi = f\cdot \frac{2^N}{f_s} \tag{4-3} Δϕ=f⋅fs2N(4-3)

其中, f f f 为目标音符频率, N N N 为相位累加器位宽, f s f_s fs 为控制采样频率。

控制周期内,相位按如下方式更新:

ϕ k + 1 = ϕ k + Δ ϕ (4-4) \phik+1=\phik+\Delta\phi \tag{4-4} ϕk+1k+Δϕ(4-4)

相位本身还不是电流,它只是生成目标波形的时间基准。

4.3 由相位生成目标波形

相位累加后,可进一步生成目标波形。工程上常见的选择包括对称方波和正弦波。若采用对称方波,其等效表达可写为:

w k = s g n ( sin ⁡ ϕ k ) (4-5) wk=\mathrm{sgn}(\sin \phik) \tag{4-5} wk=sgn(sinϕk)(4-5)

若仅从一般原理出发,也可以使用正弦波:

w k = sin ⁡ ϕ k (4-6) wk=\sin \phik \tag{4-6} wk=sinϕk(4-6)

波形的选择决定了响度、谐波成分和听感特征。方波更容易获得较明显的振动效果和响度,正弦波则更平滑、谐波更少。具体采用哪一种,应根据听感目标、驱动带宽和结构特性综合选择。

这里的 w ( t ) w(t) w(t) 或 w k wk wk 可以理解为"标准化的周期基波函数",其幅值通常位于 -1 到 1 之间。它本身不决定最终电流大小,只负责决定周期变化的形状。

例如:

  1. 若采用方波,则 w ( t ) w(t) w(t) 在一个周期内只取 +1 和 -1 两个值;
  2. 若采用正弦波,则 w ( t ) w(t) w(t) 在一个周期内连续平滑变化。

以 440 Hz 发声为例,若采用方波模型,则可写为:

w ( t ) = s g n sin ⁡ ( 2 π ⋅ 440   t ) (4-7) w(t)=\mathrm{sgn}\\sin(2\\pi\\cdot 440\\, t) \tag{4-7} w(t)=sgnsin(2π⋅440t)(4-7)

若作为一般化说明,正弦模型可写为:

w ( t ) = sin ⁡ ( 2 π ⋅ 440   t ) (4-8) w(t)=\sin(2\pi\cdot 440\, t) \tag{4-8} w(t)=sin(2π⋅440t)(4-8)

这两个函数的频率相同,但波形形状不同,因此听感和谐波成分也不同。

4.4 由目标波形生成 dq 轴参考分量

从控制原理出发,在 dq 框架下可把发声量写成 dq 轴参考分量:

Δ i d ∗ ( t ) = A d ⋅ e n v ( t ) ⋅ w ( t ) (4-9) \Delta i_d^*(t)=A_d\cdot env(t)\cdot w(t) \tag{4-9} Δid∗(t)=Ad⋅env(t)⋅w(t)(4-9)

Δ i q ∗ ( t ) = A q ⋅ e n v ( t ) ⋅ w ( t ) (4-10) \Delta i_q^*(t)=A_q\cdot env(t)\cdot w(t) \tag{4-10} Δiq∗(t)=Aq⋅env(t)⋅w(t)(4-10)

其中, A d A_d Ad 与 A q A_q Aq 为 d 轴和 q 轴发声幅值。若目标是尽量减小持续转动,则通常会让 q 轴发声分量更小,甚至近似为零,而把主要交变激励放在更适合形成局部振动的方向上。

将式(4-9)进一步展开后,可以更清楚地看到三个因素的分工:

  1. A d A_d Ad 或 A q A_q Aq 决定"最大能有多大";
  2. e n v ( t ) env(t) env(t) 决定"当前这一时刻应放大到多少";
  3. w ( t ) w(t) w(t) 决定"当前应为正、为负,还是位于中间值"。

例如,若按一般化说明,设 A d = 0.5   A A_d=0.5\,\text{A} Ad=0.5A,采用 440 Hz 正弦波,且在音符稳定段有 e n v ( t ) = 1 env(t)=1 env(t)=1,则:

Δ i d ∗ ( t ) = 0.5 sin ⁡ ( 2 π ⋅ 440   t ) (4-11) \Delta i_d^*(t)=0.5\sin(2\pi\cdot 440\, t) \tag{4-11} Δid∗(t)=0.5sin(2π⋅440t)(4-11)

这表示 d 轴发声扰动电流在 − 0.5   A -0.5\,\text{A} −0.5A 到 + 0.5   A +0.5\,\text{A} +0.5A 之间连续往复变化。

若采用以 d 轴对称交变为主、q 轴近似为零的低位移发声方案,则更贴近工程实现的表达可写为:

Δ i d , s o u n d ∗ ( t ) = A d ⋅ e n v ( t ) ⋅ s g n sin ⁡ ( 2 π f t ) (4-12) \Delta i_{d,sound}^*(t)=A_d\cdot env(t)\cdot \mathrm{sgn}\\sin(2\\pi f t) \tag{4-12} Δid,sound∗(t)=Ad⋅env(t)⋅sgnsin(2πft)(4-12)

并令 q 轴发声分量为零。

4.5 从参考量到实际声音的传递链路

形成 dq 轴参考量之后,后续过程通常如下:

  1. 电流环比较 i d ∗ i_d^* id∗ 与实际 i d i_d id,以及 i q ∗ i_q^* iq∗ 与实际 i q i_q iq;
  2. 电流环输出所需的 d 轴和 q 轴电压;
  3. 经过反变换和 PWM 调制后,得到逆变器输出电压;
  4. 逆变器驱动相绕组形成实际相电流;
  5. 实际相电流引起气隙磁场与电磁力变化;
  6. 电机结构在目标频率附近产生振动,最终形成声音。

从控制观点看,发声真正起作用的位置并不在"音符表"本身,而是在"参考量被主控制链路跟踪并转化为实际相电流"的这一环节。

若把持续时间也纳入这一传递链路,则可进一步理解为:

  1. 在持续时间 T T T 内,控制器持续输出该音符对应的参考函数;
  2. 当 t < T t<T t<T 时,电流环持续跟踪该音符的参考电流;
  3. 当 t ≥ T t\ge T t≥T 时,控制器停止当前音符参考并切换下一音符;
  4. 若下一音符频率不同,则新的 w ( t ) w(t) w(t)、 e n v ( t ) env(t) env(t) 和参考幅值也随之更新。

因此,持续时间负责决定这一条"参考量 → 实际电流 → 电磁力 → 声音"链路要保持多久。

4.6 常见输出组织方式

从系统集成角度看,电机发声功能通常有两种常见组织方式:

  1. 叠加方式:在原有位置环、速度环或电流环参考之上,附加一个小幅发声扰动;
  2. 接管方式:发声控制暂时直接给出驱动参考,再由功率变换链路输出到电机。

前者更适合需要保持原有闭环控制能力的场景,后者则更适合结构简单、实验验证或提示音类应用。

若以叠加方式为例,可将附加 d 轴发声量近似写为:

i d , c m d = i d , b a s e + Δ i d , s o u n d (4-13) i_{d,cmd}=i_{d,base}+\Delta i_{d,sound} \tag{4-13} id,cmd=id,base+Δid,sound(4-13)

这表示发声量并不是完全替代原有控制量,而是在基准工作点附近叠加一个可控扰动。

4.7 典型工程约束

结合常见工程实现,可进一步归纳出以下约束:

  1. 采样频率应足够高,以保证目标频率生成精度和调制带宽;
  2. 音符频率会被限制在不超过采样频率的 0.45 0.45 0.45 倍;
  3. 为降低净转矩,常采用反馈角度锁定或与当前位置一致的激励方向约束;
  4. 为减小持续转动趋势,常使 q 轴方向的平均输出尽量接近零;
  5. 发声量既可以体现为电压参考,也可以体现为电流参考扰动;
  6. 音符切换时通常保持相位连续,以减小机械冲击;
  7. 连续分段播放时,宜避免片段边界出现明显停顿或突降。

为避免严重混叠,频率限制常可表示为:

f ≤ 0.45 f s (4-14) f \le 0.45 f_s \tag{4-14} f≤0.45fs(4-14)

低频缩放关系可表示为:

s c a l e ( f ) = c l a m p ( f 440 ,   m i n _ s c a l e ,   1 ) (4-15) scale(f)=\mathrm{clamp}\left(\frac{f}{440},\,min\_scale,\,1\right) \tag{4-15} scale(f)=clamp(440f,min_scale,1)(4-15)

其中, m i n _ s c a l e min\_scale min_scale 取值应根据低频位移风险和期望响度综合整定。

此外,典型发声控制还常具有以下状态相关行为:

  1. 新一轮播放开始时可选择重置相位,以建立确定的起始状态;
  2. 连续换音时可保持相位连续,以减小换音瞬态冲击;
  3. 休止符阶段应保持激励输出为零或近零;
  4. 暂停状态下宜避免产生突发电流变化;
  5. 连续分段播放时,可通过边界平滑和状态保持降低断续感。

4.8 实现流程图

一个典型的电机发声执行流程可表示为:

4.9 本章小结

本章说明了从"音符"到"声音"的典型实现链路。周期波形既可以选用方波,也可以选用正弦波;而在低位移发声场景中,更常见的做法是配合反馈角度锁定、低频缩放、线性包络以及相位连续处理,使系统在获得可听振动的同时,尽量减小持续转动趋势。

5. PMSM 电机发声实现示例

5.1 控制思路

PMSM 通常具备电流采样、位置反馈和 FOC 控制框架,因此非常适合采用 dq 轴参考分量叠加的方式实现电机发声。较易理解的思路是:在保持电角度与当前位置一致的基础上,尽量让 q 轴平均输出保持较小,并在 d 轴方向叠加一个小幅、对称、周期性的发声扰动。

5.2 频率设定与相位生成

设目标音符为标准音 A4,对应频率为:

f = 440   Hz (5-1) f=440\,\text{Hz} \tag{5-1} f=440Hz(5-1)

若控制采样频率为 20   kHz 20\,\text{kHz} 20kHz,采用 32 位相位累加器,则相位步进为:

Δ ϕ = 440 ⋅ 2 32 20000 (5-2) \Delta\phi = 440\cdot\frac{2^{32}}{20000} \tag{5-2} Δϕ=440⋅20000232(5-2)

此后,每个控制周期按照式(5-2)更新相位,再据此生成对称方波目标波形 w ( t ) w(t) w(t)。

若该音符持续时间设为:

T = 100   ms (5-3) T=100\,\text{ms} \tag{5-3} T=100ms(5-3)

则在这 100 ms 内,控制器保持 440 Hz 的目标频率不变,只在包络和相位上随时间推进。若控制周期为 50   μ s 50\,\mu\text{s} 50μs,则该音符大约持续:

N = 100 × 10 − 3 50 × 10 − 6 = 2000 (5-4) N=\frac{100\times 10^{-3}}{50\times 10^{-6}}=2000 \tag{5-4} N=50×10−6100×10−3=2000(5-4)

个控制周期。

5.3 发声参考的形成

若发声主要沿 d 轴方向注入,则发声扰动可写为:

Δ i d ∗ ( t ) = I m ⋅ e n v ( t ) ⋅ w ( t ) (5-5) \Delta i_d^*(t)=I_m\cdot env(t)\cdot w(t) \tag{5-5} Δid∗(t)=Im⋅env(t)⋅w(t)(5-5)

其中, I m I_m Im 为发声扰动幅值, e n v ( t ) env(t) env(t) 为音符包络函数, w ( t ) w(t) w(t) 为由相位产生的周期波形。若以减小持续转动为目标,则可令 q 轴发声分量近似为零。

若基础保持参考分别为 i d , b a s e ∗ i_{d,base}^* id,base∗ 与 i q , b a s e ∗ i_{q,base}^* iq,base∗,则总参考为:

i d ∗ ( t ) = i d , b a s e ∗ ( t ) + Δ i d ∗ ( t ) (5-6) i_d^*(t)=i_{d,base}^*(t)+\Delta i_d^*(t) \tag{5-6} id∗(t)=id,base∗(t)+Δid∗(t)(5-6)

i q ∗ ( t ) = i q , b a s e ∗ ( t ) (5-7) i_q^*(t)=i_{q,base}^*(t) \tag{5-7} iq∗(t)=iq,base∗(t)(5-7)

在静止保持场景下,常见情况是基础参考接近零,或者只保留少量保持分量。

若采用方波形式,则该音符的波形函数可写为:

w ( t ) = s g n sin ⁡ ( 2 π ⋅ 440   t ) (5-8) w(t)=\mathrm{sgn}\\sin(2\\pi\\cdot 440\\, t) \tag{5-8} w(t)=sgnsin(2π⋅440t)(5-8)

若采用线性包络,并设攻音时间为 10 ms、释音时间为 20 ms,则包络函数可近似写为分段函数:

e n v ( t ) = { t 10   ms , 0 ≤ t < 10   ms 1 , 10   ms ≤ t ≤ 80   ms 100   ms − t 20   ms , 80   ms < t ≤ 100   ms (5-9) env(t)= \begin{cases} \frac{t}{10\,\text{ms}}, & 0\le t<10\,\text{ms} \\ 1, & 10\,\text{ms}\le t\le 80\,\text{ms} \\ \frac{100\,\text{ms}-t}{20\,\text{ms}}, & 80\,\text{ms}<t\le 100\,\text{ms} \end{cases} \tag{5-9} env(t)=⎩ ⎨ ⎧10mst,1,20ms100ms−t,0≤t<10ms10ms≤t≤80ms80ms<t≤100ms(5-9)

于是该音符在 100 ms 持续时间内的 d 轴发声扰动可进一步写为:

Δ i d , s o u n d ∗ ( t ) = I m ⋅ e n v ( t ) ⋅ s g n sin ⁡ ( 2 π ⋅ 440   t ) (5-10) \Delta i_{d,sound}^*(t)=I_m\cdot env(t)\cdot \mathrm{sgn}\\sin(2\\pi\\cdot 440\\, t) \tag{5-10} Δid,sound∗(t)=Im⋅env(t)⋅sgnsin(2π⋅440t)(5-10)

这一定义清楚地说明:

  1. 频率由方波翻转频率决定;
  2. 音符持续时间由 0 ≤ t ≤ 100   ms 0\le t\le 100\,\text{ms} 0≤t≤100ms 决定;
  3. 音符边界平滑性由 e n v ( t ) env(t) env(t) 决定;
  4. 扰动最大幅值由 I m I_m Im 决定。

5.4 电流环如何把参考变成真实电流

形成总参考之后,电流环开始工作。可写为:

u d ∗ = G d ( s )   i d ∗ ( t ) − i d ( t ) (5-11) u_d^*=G_d(s)\,i_d\^\*(t)-i_d(t) \tag{5-11} ud∗=Gd(s)id∗(t)−id(t)(5-11)

u q ∗ = G q ( s )   i q ∗ ( t ) − i q ( t ) (5-12) u_q^*=G_q(s)\,i_q\^\*(t)-i_q(t) \tag{5-12} uq∗=Gq(s)iq∗(t)−iq(t)(5-12)

其中, G d ( s ) G_d(s) Gd(s) 与 G q ( s ) G_q(s) Gq(s) 表示 d 轴和 q 轴电流调节器。它们的作用,是根据目标电流与实际电流之间的误差,输出所需的 d 轴与 q 轴电压指令。

这些电压指令经过坐标反变换与 PWM 调制后,会作用到逆变器,进一步驱动三相绕组形成实际相电流。于是,完整链路可整理为:

  1. 目标音符给出 440 Hz 频率;
  2. 持续时间参数给出该音符要持续 100 ms;
  3. DDS 根据式(5-2)产生相位;
  4. 相位生成周期波形 w ( t ) w(t) w(t),其形式可由式(5-8)给出;
  5. 包络函数 e n v ( t ) env(t) env(t) 根据式(5-9)在 100 ms 内完成起音、稳定和释音调节;
  6. 波形、包络和幅值共同形成 Δ i d ∗ ( t ) \Delta i_d^*(t) Δid∗(t),如式(5-10)所示;
  7. 发声量可按系统结构选择叠加到原控制参考中,或作为独立驱动参考送入后级;
  8. 若为叠加方式,发声扰动会附加在原有 d 轴参考附近;
  9. 若为接管方式,发声控制可直接给出后续驱动所需参考量;
  10. 在 100 ms 的持续时间内,控制器在每个周期都重复执行上述参考跟踪;
  11. 当 t ≥ 100   ms t\ge 100\,\text{ms} t≥100ms 时,当前音符结束,控制器切换到下一音符;
  12. 若下一音符频率不同,则新的 w ( t ) w(t) w(t)、 e n v ( t ) env(t) env(t) 和参考幅值一并更新;
  13. 逆变器输出对应相电压,绕组中形成真实交变电流;
  14. 真实交变电流引起电磁力变化,机壳和结构件在 440 Hz 附近发生振动;
  15. 最终对外表现为 A4 音。

这一步骤说明,音符并不是直接"作用到声音上",而是先作用到 dq 轴参考分量,再由电流环把参考量转化为真实相电流,最终转化为结构振动。

5.5 低频控制与位移抑制

若在 220 Hz 或更低频率下发现电机容易出现可见位移,可进一步设置频率相关的缩放系数,例如:

s c a l e ( 220 ) = 0.5 (5-13) scale(220)=0.5 \tag{5-13} scale(220)=0.5(5-13)

此时实际发声扰动幅值减半,声音仍保持原频率,但低频位移风险会明显降低。

5.6 本章小结

PMSM 发声最容易理解的实现方式,是在 dq 轴参考分量上叠加一个小幅、对称、周期性的发声扰动,再由电流环将其变成真实电流。若目标是尽量减小位移和持续转动趋势,则通常需要特别注意以下三点:电角度与反馈位置保持一致、q 轴输出尽量小、主要发声量位于 d 轴方向。

6. 闭环步进电机发声实现示例

6.1 控制思路

步进电机,特别是闭环步进电机,本身具有明显的齿槽效应和结构谐振特性,因此较容易做出明显的发声效果。但同时,若激励方向或幅值控制不当,也更容易出现实际步进、位置抖动或跑位。

对闭环步进系统而言,可以把发声过程理解为:在当前位置锁定电流的基础上,再叠加一个小幅、对称、周期性的 d 轴方向扰动,使电机围绕锁定点微振,而不是沿某一方向连续推进。

6.2 频率设定与相位生成

设目标音符为 C5,对应频率为:

f = 523.25   Hz (6-1) f=523.25\,\text{Hz} \tag{6-1} f=523.25Hz(6-1)

若控制采样频率为 10   kHz 10\,\text{kHz} 10kHz,采用 32 位相位累加器,则相位步进为:

Δ ϕ = 523.25 ⋅ 2 32 10000 (6-2) \Delta\phi = 523.25\cdot\frac{2^{32}}{10000} \tag{6-2} Δϕ=523.25⋅10000232(6-2)

与 PMSM 的情形一样,该相位步进首先用于生成目标周期波形,而不是直接等于某个相电流。

若该音符持续时间设为:

T = 80   ms (6-3) T=80\,\text{ms} \tag{6-3} T=80ms(6-3)

则在这 80 ms 内,控制器持续输出该音符对应的扰动参考,直到时间计数满足结束条件再切换到下一音符。

6.3 发声扰动与保持电流的叠加

设闭环步进系统在当前位置的基础保持电流分别为 i d , h o l d ∗ i_{d,hold}^* id,hold∗ 与 i q , h o l d ∗ i_{q,hold}^* iq,hold∗,发声扰动写为:

Δ i d ∗ ( t ) = I s ⋅ e n v ( t ) ⋅ w ( t ) (6-4) \Delta i_d^*(t)=I_s\cdot env(t)\cdot w(t) \tag{6-4} Δid∗(t)=Is⋅env(t)⋅w(t)(6-4)

若以减少持续转动为主要目标,则总参考可写为:

i d ∗ ( t ) = i d , h o l d ∗ ( t ) + Δ i d ∗ ( t ) (6-5) i_d^*(t)=i_{d,hold}^*(t)+\Delta i_d^*(t) \tag{6-5} id∗(t)=id,hold∗(t)+Δid∗(t)(6-5)

i q ∗ ( t ) = i q , h o l d ∗ ( t ) (6-6) i_q^*(t)=i_{q,hold}^*(t) \tag{6-6} iq∗(t)=iq,hold∗(t)(6-6)

如果系统并非严格采用 dq 表达,也可以把上述过程理解为"在原有锁定电流之上叠加一个小幅交变电流"。其本质是一致的:保持量负责稳住位置,扰动量负责产生声音。

若采用方波形式,则该音符的标准化波形函数可写为:

w ( t ) = s g n sin ⁡ ( 2 π ⋅ 523.25   t ) (6-7) w(t)=\mathrm{sgn}\\sin(2\\pi\\cdot 523.25\\, t) \tag{6-7} w(t)=sgnsin(2π⋅523.25t)(6-7)

若设包络为简化线性包络,攻音时间为 8 ms,释音时间为 12 ms,则在 80 ms 音符持续时间内,可近似表示为:

e n v ( t ) = { t 8   ms , 0 ≤ t < 8   ms 1 , 8   ms ≤ t ≤ 68   ms 80   ms − t 12   ms , 68   ms < t ≤ 80   ms (6-8) env(t)= \begin{cases} \frac{t}{8\,\text{ms}}, & 0\le t<8\,\text{ms} \\ 1, & 8\,\text{ms}\le t\le 68\,\text{ms} \\ \frac{80\,\text{ms}-t}{12\,\text{ms}}, & 68\,\text{ms}<t\le 80\,\text{ms} \end{cases} \tag{6-8} env(t)=⎩ ⎨ ⎧8mst,1,12ms80ms−t,0≤t<8ms8ms≤t≤68ms68ms<t≤80ms(6-8)

于是发声扰动可写为:

Δ i d , s o u n d ∗ ( t ) = I s ⋅ e n v ( t ) ⋅ s g n sin ⁡ ( 2 π ⋅ 523.25   t ) (6-9) \Delta i_{d,sound}^*(t)=I_s\cdot env(t)\cdot \mathrm{sgn}\\sin(2\\pi\\cdot 523.25\\, t) \tag{6-9} Δid,sound∗(t)=Is⋅env(t)⋅sgnsin(2π⋅523.25t)(6-9)

6.4 从音符到实际电流的详细过程

对于步进电机,这一传递链路可以按以下步骤展开:

  1. 目标音符 C5 给出 523.25 Hz;
  2. 持续时间参数给出该音符持续 80 ms;
  3. DDS 按照式(6-2)更新相位;
  4. 相位生成周期波形 w ( t ) w(t) w(t),其形式可由式(6-7)表示;
  5. 包络函数 e n v ( t ) env(t) env(t) 根据式(6-8)在 80 ms 内完成起音、稳定和释音调节;
  6. 波形、包络和幅值相乘,形成发声扰动 Δ i d ∗ ( t ) \Delta i_d^*(t) Δid∗(t),如式(6-9)所示;
  7. 发声扰动可以叠加到原有锁定电流参考中,也可以作为独立驱动参考送入后级;
  8. 控制器根据总参考和实际电流误差形成驱动量;
  9. 驱动电压经 PWM 与功率级作用到绕组,形成实际两相或等效 dq 电流;
  10. 在 80 ms 的持续时间内,控制器持续执行上述扰动跟踪;
  11. 当 t ≥ 80   ms t\ge 80\,\text{ms} t≥80ms 时,当前音符结束并切换下一音符;
  12. 实际电流围绕当前位置对应的平衡点往复变化;
  13. 这种往复变化会激发齿槽力、磁拉力以及机壳振动;
  14. 结构振动最终表现为 523.25 Hz 附近的可听声音。

这一过程的关键不在于让步进电机"走步",而在于让其在锁定点附近形成受控微振。

6.5 低频限幅示例

若发现在 200 Hz 以下容易出现明显抖动,则可进一步设置频率相关缩放,例如:

s c a l e ( f ) = c l a m p ( f 400 ,   0.3 ,   1 ) (6-10) scale(f)=\mathrm{clamp}\left(\frac{f}{400},\,0.3,\,1\right) \tag{6-10} scale(f)=clamp(400f,0.3,1)(6-10)

此时在较低频率下,发声扰动幅值将自动减小,从而降低机械摆动和跑位风险。

6.6 本章小结

步进电机发声更容易获得明显响度,但也更容易因为激励不当而产生跑位。较稳妥的实现方式,是在当前位置锁定电流之上叠加小幅、对称、周期性的 d 轴方向扰动,使声音来自锁定点附近的微振,而不是来自实际步进行为。

7. 开环步进电机发声示例

若希望进一步理解"没有电流闭环、没有位置闭环时,电机为什么也能发声",开环步进电机是一个很典型的例子。与闭环控制相比,开环步进发声更接近"直接构造两相交变励磁",其实现重点不在于精确跟踪 dq 电流参考,而在于让两相绕组形成稳定、可听、不过度拉动转子的周期性磁场。

7.1 基本思路

开环步进电机通常有 A、B 两相绕组。若把发声目标理解为"产生周期性电磁拉力",则最直接的做法是在两相上施加周期变化的目标电流或电压。一个常见的理想化表达是:

i A ( t ) = I m cos ⁡ ϕ ( t ) (7-1) i_A(t)=I_m\cos \phi(t) \tag{7-1} iA(t)=Imcosϕ(t)(7-1)

i B ( t ) = I m sin ⁡ ϕ ( t ) (7-2) i_B(t)=I_m\sin \phi(t) \tag{7-2} iB(t)=Imsinϕ(t)(7-2)

其中, I m I_m Im 为激励幅值, ϕ ( t ) \phi(t) ϕ(t) 为用于发声的相位函数。

若目标是发出单一音符频率 f f f,则可令:

ϕ ( t ) = 2 π f t (7-3) \phi(t)=2\pi f t \tag{7-3} ϕ(t)=2πft(7-3)

此时两相电流在数学形式上表现为一组正交正弦量。它们并不一定用来驱动电机持续旋转,也可以只用来在局部形成交变磁拉力,从而激发结构振动。

7.2 单音示例

以 440 Hz 发声为例,若取激励幅值 I m = 0.3   A I_m=0.3\,\text{A} Im=0.3A,则可写为:

i A ( t ) = 0.3 cos ⁡ ( 2 π ⋅ 440   t ) (7-4) i_A(t)=0.3\cos(2\pi\cdot 440\, t) \tag{7-4} iA(t)=0.3cos(2π⋅440t)(7-4)

i B ( t ) = 0.3 sin ⁡ ( 2 π ⋅ 440   t ) (7-5) i_B(t)=0.3\sin(2\pi\cdot 440\, t) \tag{7-5} iB(t)=0.3sin(2π⋅440t)(7-5)

若进一步叠加线性包络,则可写为:

i A ( t ) = I m   e n v ( t ) cos ⁡ ( 2 π f t ) (7-6) i_A(t)=I_m\,env(t)\cos(2\pi f t) \tag{7-6} iA(t)=Imenv(t)cos(2πft)(7-6)

i B ( t ) = I m   e n v ( t ) sin ⁡ ( 2 π f t ) (7-7) i_B(t)=I_m\,env(t)\sin(2\pi f t) \tag{7-7} iB(t)=Imenv(t)sin(2πft)(7-7)

这样做的意义在于:

  1. 音高由 f f f 决定;
  2. 响度和振动强度主要受 I m I_m Im 影响;
  3. 起音与止音平滑性由 e n v ( t ) env(t) env(t) 决定。

7.3 为什么开环也能发声

开环步进发声并不依赖高精度电流闭环,也不依赖位置环实时纠偏。只要绕组中能够形成稳定的交变励磁,电机内部就会出现随时间变化的磁拉力,进而引起机壳和安装结构振动。因此,从"发出声音"的角度看,开环控制仍然可以工作。

但是,开环方式也有明显局限:

  1. 难以像闭环那样主动抑制位移;
  2. 在低频和大幅值条件下,更容易出现明显走步或摆动;
  3. 声音效果对负载、安装刚度和电机参数更敏感;
  4. 当目标频率接近某些机械共振点时,虽然声音可能更响,但失稳风险也更高。

7.4 工程上如何避免"发声变成走步"

在开环步进发声中,最常见的问题不是"不响",而是"边响边走"。为了降低这种风险,通常会采用以下措施:

  1. 把激励幅值限制在较小范围内;
  2. 对低频段进行额外缩放,避免转子跟随能力过强;
  3. 采用包络函数降低起止瞬间冲击;
  4. 优先选择更容易激发结构振动、但不易形成持续推进的波形;
  5. 在需要时,将平均励磁中心保持在当前位置附近,而不是让磁场持续单方向旋转。

例如,若低频段需要自动缩小幅值,则仍可采用如下形式:

I e f f ( f ) = I m ⋅ s c a l e ( f ) (7-8) I_{eff}(f)=I_m\cdot scale(f) \tag{7-8} Ieff(f)=Im⋅scale(f)(7-8)

其中, s c a l e ( f ) scale(f) scale(f) 在低频区域小于 1,在中高频逐渐接近 1。

7.5 与闭环方案的区别

与闭环方案相比,开环步进发声更容易实现,控制链路也更短,但它对"可控不跑位"的保障更弱。可以把两者的差别概括为:

  1. 闭环方案更强调"发声同时保持位置稳定";
  2. 开环方案更强调"快速构造可听振动";
  3. 闭环方案更适合需要重复性和稳定性的场景;
  4. 开环方案更适合演示、实验和低成本提示音场景。

因此,若目标是做教学演示或简单提示音,开环步进是很直观的方案;若目标是"声音稳定且尽量不跑位",则闭环方案通常更合适。

7.6 本章小结

本章给出了一个开环步进电机发声示例。它说明,即使没有复杂闭环控制,只要能够构造稳定的两相交变励磁,电机仍然可以作为振动源发出声音。但与此同时,开环方案在低频、大幅值和负载变化条件下更容易出现走步与不稳定,因此更适合原理演示和简化应用,而不适合对位置稳定性要求较高的场景。

8. 工程建议与常见问题

8.1 为什么有时能发声但容易跑位

常见原因包括:

  1. 激励不对称,导致存在直流偏置。
  2. q 轴扰动平均值过大,形成持续转矩。
  3. 低频幅值过高,引起明显机械摆动。
  4. 位置保持能力不足,无法抑制发声扰动带来的偏移。
  5. 音符切换过于陡峭,造成瞬态冲击。

8.2 为什么不同电机的音色差异很大

最终听感不仅取决于控制算法,还取决于:

  1. 定转子结构;
  2. 机壳与端盖形状;
  3. 安装方式与底板刚度;
  4. 螺钉预紧和结构耦合条件;
  5. 机械共振频率分布。

因此,同样的控制策略在不同电机平台上的声音效果可能差别很大。

8.3 推荐调试顺序

为了获得稳定、可重复的发声效果,建议按以下顺序调试:

  1. 先验证单音频率是否准确;
  2. 再验证电流扰动是否对称;
  3. 再加入包络,观察换音冲击是否减小;
  4. 再加入低频限幅,观察跑位是否收敛;
  5. 最后再进行连续旋律播放调试。

8.4 本章小结

工程调试中最常见的问题并不是"电机不响",而是"电机会响但不够稳"。因此,调试工作应重点围绕频率准确性、对称性、低频限幅、保持能力和换音平滑性展开。

相关推荐
SHARK_pssm3 小时前
【数据结构——双向链表】
数据结构·经验分享·笔记·链表
法雅特吉他3 小时前
吉他面板材质怎么选?西提卡云杉单板深度解析
经验分享·新媒体运营·学习方法·流量运营·材质·内容运营
AIHR数智引擎3 小时前
AI组织进化论:拆解微软、英伟达、Anthropic与Open AI如何重写组织
人工智能·经验分享·microsoft·职场和发展·aihr
LaughingZhu3 小时前
Product Hunt 每日热榜 | 2026-06-08
人工智能·经验分享·深度学习·神经网络·产品运营
AF_INET63 小时前
sensor笔记(一)imx415
c语言·经验分享·音视频·linux驱动·sensor·imx415·datasheet
数据库小学妹3 小时前
MySQL并行复制原理与调优实战:LOGICAL_CLOCK到WRITESET_SESSION全链路优化
数据库·经验分享·mysql·性能优化·dba
Hillain4 小时前
软件设计师设计模式
java·开发语言·经验分享·笔记·算法·设计模式·软考
衫水19 小时前
家庭投资组合方案(2026/6/7版)
经验分享