主要内容

双弹簧-质量系统

R2026b

此示例说明如何对一个具有周期性变化的外力函数的双弹簧-质量机械系统建模。一根弹簧连接两个质点,力施加在左侧质点上。该力导致两个质点移动并通过弹簧交互。

Two rectangular masses connected by a spring. The left mass, labeled mass₁, is pushed to the right by an input force u(t), represented by a blue arrow. The spring between the masses is labeled kₐ. The right mass is labeled mass₂

Simulink® 模型表示一个双质量-弹簧机械系统,使用具有线性二次调节器 (LQR) 控制器和状态估计器的状态反馈控制该系统。

Plant 模块

名为 Plant 的 State-Space 模块实现双弹簧-质量机械系统,由以下状态空间方程表示:

x˙=Ax+Buy=Cx+Du

状态向量定义为:

x=[x1x˙1x2x˙2] 和 y=[x1x2]

矩阵 A、B、C 和 D 包含定义机械系统运动方程中各项的系数。

A=[0100-kam10kam100001kam20-kam20]B=[01m100]C=[10000010]D=[00]

其中:

  • x1,x˙1 - 分别是质点 1 的位置和速度

  • x2,x˙2 - 分别是质点 2 的位置和速度

  • u(t) - 周期性外力函数

  • ka - 弹簧常数

被控对象输出提供测量的位置,模型将其用于可视化和状态估计。

Estimator 模块

该模型使用 LQR 控制器和状态估计器实现状态反馈。名为 Estimator 的 State-Space 模块实现状态估计器。该模块使用被控对象输入和测量输出来估计全状态向量。估计器持续将预测输出与测量输出进行比较,并根据差异校正状态估计。有关 LQR 控制的详细信息,请参阅lqr (Control System Toolbox)。

模型仿真

打开并仿真模型。为了在仿真期间以动画方式显示质量系统,模型使用 Level-2 MATLAB S-Function 模块。

open_system('sldemo_dblcart1');

Figure dblcart1 Animation contains an axes object and other objects of type uicontrol. The hidden axes object contains 32 objects of type line.

sim('sldemo_dblcart1');
close(findall(0,'Type','figure'))

另请参阅

| | (Control System Toolbox)

主题

教学资源