四、连续系统建模:积分模块、传递函数、状态空间、微分方程建模与仿真案例

连续系统是Simulink仿真的核心领域,其本质是使用微分方程或传递函数描述物理系统的动态行为。本章将围绕连续系统建模的四种核心手段——积分模块、传递函数、状态空间和微分方程——展开系统讲解。我们将从数学原理出发,结合Simulink模块的具体操作,通过一个完整的机械振动案例贯穿全章,帮助您建立从物理模型到仿真模型的完整映射能力。

连续系统建模方法关系与选择路径 物理系统 (质量-弹簧-阻尼) 微分方程 m·x'' + c·x' + k·x = F 传递函数 G(s) 1/(m·s² + c·s + k) 状态空间 (A,B,C,D) x' = Ax + Bu, y = Cx + Du 积分模块 (1/s) Simulink基础构建块 仿真验证 Scope/To Workspace 直接积分法 频域法 时域法 数学推导 选择建议: • 已知物理方程 → 直接使用积分模块或状态空间 • 已知频域特性 → 使用传递函数模块 • 需要多输入多输出/非线性 → 状态空间或积分模块

上图展示了连续系统建模的四种方法及其内在联系。物理系统首先被抽象为微分方程,然后可以转化为传递函数或状态空间表示,而积分模块则是Simulink中实现这些数学运算的基本单元。下面我们将逐一深入探讨每种方法的具体实现。

4.1 核心原理:连续系统建模的数学基础

连续系统建模的数学基础是常微分方程(ODE)。一个典型的单输入单输出(SISO)连续系统可以用n阶常系数线性微分方程描述:

a_n · y^(n) + a_(n-1) · y^(n-1) + ... + a_1 · y' + a_0 · y = b_m · u^(m) + ... + b_0 · u

其中,y是系统输出,u是系统输入,a_i和b_i是常系数。在Simulink中,我们通常不直接输入这个方程,而是通过以下三种等价形式之一进行建模:

  • 积分模块法:将最高阶导数单独解出,通过串联积分器逐步得到各阶导数,最终得到输出。这种方法最直观,适合手算推导和教学演示。
  • 传递函数法:对微分方程做拉普拉斯变换,得到输出与输入的比值G(s) = Y(s)/U(s)。传递函数以s的多项式比值形式呈现,适合频域分析和系统互联。
  • 状态空间法:将n阶微分方程转化为一阶微分方程组,用矩阵形式表示。状态空间法适合多输入多输出(MIMO)系统、非线性系统以及现代控制理论分析。

这三种方法在数学上是完全等价的,但在Simulink中的实现方式、数值求解效率和可扩展性上存在差异。理解它们的等价性是灵活建模的关键。

4.2 积分模块建模:从微分方程到框图

积分模块(Integrator)是Simulink中最基础的连续时间动态元件。其数学功能是实现对输入信号的积分:y(t) = ∫u(t)dt + y(0)。在建模中,我们利用积分模块的串联来“还原”微分方程中的各阶导数。

4.2.1 操作流程:以二阶系统为例

假设我们要建模一个标准的二阶系统:

x'' + 2ζω_n · x' + ω_n² · x = ω_n² · u

其中,ζ为阻尼比,ω_n为自然频率。建模步骤如下:

  1. 解出最高阶导数:x'' = ω_n² · u - 2ζω_n · x' - ω_n² · x
  2. 搭建积分链:从右向左,第一个积分器输出x',第二个积分器输出x。
  3. 反馈连接:将x'和x分别乘以系数-2ζω_n和-ω_n²,与输入ω_n²·u相加,作为第一个积分器的输入。
  4. 设置初始条件:双击积分器,在“Initial condition”中设置x'(0)和x(0)。

这种方法的优势在于:每个积分器的输出都有明确的物理意义(位移、速度、加速度),便于观察中间变量。同时,它允许在积分器前直接插入非线性函数,非常适合非线性系统建模。

经验提醒:当系统阶数较高(n≥3)时,积分模块法会变得繁琐。此时建议优先考虑状态空间法,它可以用矩阵运算统一处理,且Simulink的状态空间模块内部已经优化了数值求解过程。

4.3 传递函数与状态空间模块

Simulink的Transfer Fcn模块和State-Space模块提供了更简洁的建模入口,尤其适合线性时不变(LTI)系统。

4.3.1 传递函数模块的参数设置

双击Transfer Fcn模块,需要填写两个向量:

  • Numerator coefficients:分子多项式系数,按s的降幂排列。例如,对于G(s) = (s+2)/(s²+3s+5),应输入[1 2]。
  • Denominator coefficients:分母多项式系数,同样按降幂排列,输入[1 3 5]。

注意:分母阶次必须大于等于分子阶次(即系统必须因果)。如果分子阶次过高,需要先进行多项式除法拆分。

4.3.2 状态空间模块的矩阵定义

State-Space模块要求输入四个矩阵A、B、C、D,对应状态方程:

ẋ = Ax + Bu
y = Cx + Du

对于前述二阶系统,若选择状态变量x₁=x,x₂=x',则:

A = [0 1; -ω_n² -2ζω_n], B = [0; ω_n²], C = [1 0], D = 0

在模块参数对话框中,以矩阵形式输入即可。状态空间法的最大优势是:当系统阶数高、输入输出多时,代码量不增加,且便于与现代控制理论(如LQR、卡尔曼滤波)衔接。

建模方法适用场景优点缺点
积分模块教学演示、非线性系统、需要观察中间变量物理意义清晰,可插入非线性环节高阶系统连线复杂
传递函数频域设计、系统互联、经典控制参数直观,适合频域分析仅适用于线性系统,无法直接观察内部状态
状态空间MIMO系统、现代控制、数值优化矩阵统一表达,适合计算机求解矩阵推导对初学者有门槛

4.4 连续系统仿真案例:汽车悬挂系统建模与响应分析

下面我们通过一个完整的案例,将上述三种方法串联起来。考虑一个简化的1/4汽车悬挂模型,其物理方程为:

m·ÿ + c·(ẏ - ż) + k·(y - z) = 0

其中,m=300kg为簧载质量,c=1000N·s/m为阻尼系数,k=20000N/m为弹簧刚度,y为车身位移,z为路面输入位移。我们关心车身位移y对路面凸起z的响应。

4.4.1 建模与仿真步骤

  1. 建立微分方程:将方程改写为ÿ = (c·ż + k·z - c·ẏ - k·y)/m。这里路面输入z是已知信号,我们将其设为阶跃信号(模拟减速带)。
  2. 方法一(积分模块):搭建两个积分器,第一个输出ẏ,第二个输出y。输入为(c·ż + k·z - c·ẏ - k·y)/m。需要额外对ż求导,可使用Derivative模块,但注意该模块对噪声敏感,建议改用滤波器或直接使用传递函数法。
  3. 方法二(传递函数):对路面输入z,系统的传递函数为Y(s)/Z(s) = (c·s + k)/(m·s² + c·s + k)。在Simulink中,用Step模块作为z,连接到Transfer Fcn模块,参数设置为分子[1000 20000],分母[300 1000 20000]。
  4. 方法三(状态空间):选择状态变量x₁=y,x₂=ẏ,则A=[0 1; -k/m -c/m],B=[0; k/m],C=[1 0],D=0。注意这里将z视为输入u。

4.4.2 仿真结果与对比

设置仿真时间5秒,求解器选择ode45(默认)。将三种方法的输出同时接入Scope模块,可以看到三条曲线完全重合,验证了三种建模方式的等价性。进一步分析:

  • 系统超调量约为15%,峰值时间约0.35秒,稳态误差为0(因为系统是0型系统,对阶跃输入无稳态误差)。
  • 若将阻尼c减小到200N·s/m,系统将出现明显振荡,超调量增大至40%以上,说明阻尼对悬挂舒适性的关键作用。
  • 若将路面输入改为正弦波(模拟起伏路面),使用Sine Wave模块,可以观察不同频率下的幅值衰减特性,这对应了频域分析中的幅频特性。
案例复盘:本案例中,传递函数法最为简洁,但无法直接观察车身速度ẏ;积分模块法物理意义最清晰,但需要额外处理导数项;状态空间法在扩展为多输入(如同时考虑路面和制动力)时优势明显。实际工程中,建议根据后续分析需求选择建模方法——如果只需要输出响应,用传递函数;如果需要设计状态观测器,则必须用状态空间。

4.5 常见误区与总结复盘

在连续系统建模中,初学者常犯以下错误,需要特别注意:

  • 误区一:忽略初始条件。积分模块和状态空间模块的初始条件默认均为0,但实际系统往往有非零初始状态。务必在模块参数中显式设置,否则仿真结果可能完全错误。
  • 误区二:代数环问题。当模型中存在直接馈通(如D矩阵非零)且构成闭环时,Simulink会报代数环错误。解决方法是在回路中插入一个Memory模块或小延迟,但更推荐重新设计模型结构。
  • 误区三:求解器选择不当。对于刚性系统(如含有快速和慢速动态),ode45可能计算缓慢或精度不足,应改用ode15s或ode23t。判断方法:如果仿真步长极小但误差仍大,或仿真时间异常长,应考虑刚性求解器。
  • 误区四:传递函数分子分母阶次错误。Simulink要求分母阶次≥分子阶次,否则会报错。如果出现这种情况,需要先进行多项式除法,将非因果部分分离。

总结本章,连续系统建模的核心是理解微分方程、传递函数、状态空间三种数学描述的等价性,并根据实际需求选择最合适的Simulink实现方式。积分模块适合教学和非线性系统,传递函数适合频域分析和简单线性系统,状态空间适合复杂系统和现代控制设计。通过本章的悬挂系统案例,您应该能够独立完成从物理方程到仿真模型的完整转换,并具备基本的仿真结果分析能力。

风险提示:在工程实践中,切勿盲目信任仿真结果。务必先通过理论计算或实验数据验证模型在至少一个工况下的准确性,再进行扩展应用。特别是当模型包含非线性环节(如饱和、死区)时,仿真结果可能对求解器参数和步长非常敏感,建议进行收敛性检查。