第2章:信号与系统基础

各位同学,咱们今天聊聊信号与系统。说实话,这章内容看起来有点理论,但你要是搞控制系统,这玩意儿就是地基。我当年刚入行时,觉得这些数学推导太枯燥,结果第一次做数字滤波器就栽了跟头——采样率没选对,信号全混叠了。从那以后,我老老实实把基础补了一遍。

2.1 连续信号与离散信号

先说说信号。信号分两种:连续的和离散的。连续信号,比如你拿示波器看一个正弦波,时间上是连续的,每个时刻都有值。离散信号呢,就是每隔一段时间采一个点,比如ADC采回来的数据。

我个人习惯把连续信号想象成「模拟世界」,离散信号就是「数字世界」。你想想看,单片机只能处理离散信号,所以咱们得把连续信号转成离散的。这个过程叫采样。

采样定理(奈奎斯特定理):采样频率必须大于信号最高频率的两倍。否则会出现混叠,信号就失真了。

我在项目中遇到过一件事:有个同事做电机电流采样,采样率设得不够高,结果电流波形看起来像锯齿波。他调了半天PID都没用,最后发现是采样频率太低,信号已经混叠了。嗯,这就是典型的「基础不牢,地动山摇」。

2.2 线性时不变系统(LTI)

线性时不变系统,简称LTI。这名字听着吓人,其实就两个条件:

  • 线性:输入放大多少倍,输出也放大多少倍。两个输入叠加,输出也叠加。
  • 时不变:今天输入一个信号,明天输入同样的信号,输出应该一样。系统不会因为时间变化而改变特性。

说白了,LTI系统就是「老实人」——你给它什么,它按规矩给你什么,不耍花样。大部分控制系统,比如PID控制器、滤波器,都是LTI系统。但要注意,实际系统中总有非线性,比如饱和、死区。我刚开始做控制时,总把系统当LTI处理,结果一跑仿真就发现不对。后来才明白,LTI只是理想模型,实际工程中要留余量。

2.3 冲激响应与卷积

冲激响应,就是给系统一个极短的脉冲,看它怎么反应。这个反应曲线,就包含了系统的全部信息。

为什么这么说?因为对于LTI系统,只要知道冲激响应,就能算出任何输入下的输出。怎么算?用卷积。

卷积公式长这样:

y(t) = ∫ x(τ) h(t-τ) dτ

看着复杂,其实意思很简单:把输入信号拆成无数个小脉冲,每个脉冲都产生一个冲激响应,然后把所有响应叠加起来。说白了,就是「输入信号 × 系统记忆」的叠加。

我的经验:做数字滤波器时,卷积就是乘累加运算。在DSP上实现时,要注意计算量。比如一个256阶的FIR滤波器,每个输出点要做256次乘法和加法。如果采样率是48kHz,那每秒要算1200万次乘累加。选芯片时一定要算清楚。

2.4 传递函数与零极点

传递函数,是LTI系统在复频域(s域或z域)的描述。它把微分方程变成了代数方程,分析起来方便多了。

传递函数的一般形式:

G(s) = (b_m s^m + b_{m-1} s^{m-1} + ... + b_0) / (a_n s^n + a_{n-1} s^{n-1} + ... + a_0)

分子等于0的点叫零点,分母等于0的点叫极点。零极点决定了系统的稳定性、响应速度、振荡特性。

极点位置系统行为
左半平面(实部<0)稳定,响应衰减
右半平面(实部>0)不稳定,响应发散
虚轴上临界稳定,等幅振荡

我曾经调试一个伺服驱动器,系统总是低频振荡。我画了零极点图一看,发现有一对共轭极点离虚轴太近,阻尼比太小。后来加了零点补偿,把极点往左拉,问题就解决了。你看,零极点分析在工程中非常实用。

避坑指南:我曾经在离散化传递函数时,直接用双线性变换,结果高频段相位滞后严重。后来改用预畸变双线性变换,才把问题解决。记住,离散化方法不是随便选的,要根据你的应用场景来定。

2.5 从理论到实践的桥梁

讲到这里,你可能觉得这些概念有点抽象。但我想说,信号与系统是控制工程的「语法」。不懂语法,你写不出好文章;不懂信号与系统,你也做不出好控制。

我建议你:

  • 用MATLAB或Python画几个信号的波形,感受一下连续和离散的区别
  • 自己写一个卷积函数,验证一下冲激响应的叠加效果
  • 用零极点图分析一个简单的RC滤波器,看看极点位置和频率响应的关系

这些练习花不了多少时间,但能帮你把理论和实践串起来。记住,做控制不是背公式,而是理解系统怎么「思考」。

下一章,咱们聊聊时域分析——系统对阶跃信号怎么响应,超调量、调节时间这些指标怎么算。到时候你会发现,今天学的这些基础,全都能用上。