探索 lqr 二级倒立摆系统的稳定控制与仿真:极点配置与 PID 控制之道
极点配置;PID控制;lqr二级倒立摆系统的稳定控制与仿真 根据牛顿运动定律或者拉格朗日方程,建立直线型二级倒立摆系统的非线性运动模型,给出系统运动的状态方程; 对非线性运动模型进行线性化,针对线性化模型分别采用极点配置;PID控制;lqr的方法,设计直线型二级倒立摆的详细控制方案,给出控制律设计方法; 分别针对有扰动和无扰动两种情况,采用Matlab软件进行仿真验证,结合设计的控制律,用Simulink搭建仿真框图,给出仿真结果,并进行系统分析。
在控制领域,二级倒立摆系统一直是个极具挑战性但又非常经典的研究对象。它的稳定控制对于理解复杂系统的控制原理至关重要,今天咱们就来聊聊基于极点配置、PID 控制以及 lqr 方法的二级倒立摆系统稳定控制与仿真。
一、建立直线型二级倒立摆系统的非线性运动模型
要实现对二级倒立摆的有效控制,第一步就是建立它的运动模型。通常我们可以依据牛顿运动定律或者拉格朗日方程来完成这一任务。这里以基于牛顿运动定律为例,通过对摆杆和小车的受力分析,可以推导出系统运动的状态方程。虽然具体的推导过程比较复杂,但最终得到的状态方程会包含系统的状态变量,比如小车位置、速度,摆杆的角度和角速度等。
二、非线性模型的线性化
实际中,非线性系统的控制难度较大,所以往往会对非线性运动模型进行线性化处理。一般是在平衡点附近进行泰勒展开,忽略高阶项,从而得到线性化模型。这个线性化模型在后续控制方案的设计中起着关键作用。
三、控制方案设计
1. 极点配置
极点配置方法的核心思路是通过选择合适的反馈增益矩阵,使得闭环系统的极点处于期望的位置,从而获得满意的系统性能。比如,在 Matlab 中,我们可以借助 acker 函数来实现极点配置。
% 假设已经得到线性化模型的 A、B 矩阵
A = [0 1 0 0 0 0;
0 0 -1000 0 1000 0;
0 0 0 1 0 0;
0 0 -2000 0 2000 0;
0 0 1000 0 -1000 0;
0 0 0 0 0 1];
B = [0; 100; 0; 200; -100; 0];
% 期望的极点位置
p = [-1 -2 -3 -4 -5 -6];
% 计算反馈增益矩阵 K
K = acker(A,B,p);
在这段代码里,首先定义了线性化模型的系统矩阵 A 和输入矩阵 B,然后设定了期望的极点位置 p,最后通过 acker 函数计算出反馈增益矩阵 K。有了这个 K,就可以根据状态反馈 u = -K*x 来设计控制律,其中 u 是控制输入,x 是系统状态向量。
2. PID 控制
PID 控制作为一种经典的控制策略,它通过比例(P)、积分(I)、微分(D)三个环节的线性组合来产生控制作用。在二级倒立摆系统中,PID 控制器的输入通常是系统的误差信号(设定值与实际输出的差值)。
% 定义 PID 参数
Kp = 10;
Ki = 1;
Kd = 0.1;
% 假设系统的输出 y 和设定值 r
y = [0.1 0.2 0.3 0.4 0.5];
r = 0.5;
% PID 控制算法
error = r - y;
P_term = Kp * error;
I_term = Ki * cumsum(error);
D_term = Kd * diff([0 error]);
u = P_term + I_term + D_term;
这里先设定了比例系数 Kp、积分系数 Ki 和微分系数 Kd,然后根据系统输出 y 和设定值 r 计算误差 error。接着分别计算比例项 Pterm、积分项 Iterm 和微分项 D_term,最终得到控制输入 u。
3. LQR(线性二次型调节器)
LQR 是一种最优控制方法,它通过最小化一个二次型性能指标来确定控制律。在 Matlab 中,可以使用 lqr 函数来计算反馈增益矩阵。
% 假设已经得到线性化模型的 A、B 矩阵
A = [0 1 0 0 0 0;
0 0 -1000 0 1000 0;
0 0 0 1 0 0;
0 0 -2000 0 2000 0;
0 0 1000 0 -1000 0;
0 0 0 0 0 1];
B = [0; 100; 0; 200; -100; 0];
% 定义权重矩阵 Q 和 R
Q = eye(6);
R = 1;
% 计算反馈增益矩阵 K
[K, S, E] = lqr(A,B,Q,R);
在这个代码段中,先定义了线性化模型的 A 和 B 矩阵,然后设定权重矩阵 Q 和 R。Q 用于对状态变量的加权,R 用于对控制输入的加权。通过 lqr 函数计算出反馈增益矩阵 K,进而设计控制律 u = -K*x。
四、仿真验证
在完成控制方案设计后,需要对系统进行仿真验证。这里采用 Matlab 的 Simulink 工具,分别针对有扰动和无扰动两种情况进行仿真。
无扰动情况
在 Simulink 中搭建基于极点配置、PID 控制和 LQR 的仿真框图。以极点配置为例,将计算得到的反馈增益矩阵 K 引入到反馈回路中,连接系统模型和输入输出端口。运行仿真后,可以得到小车位置、摆杆角度等状态变量随时间的变化曲线。从这些曲线可以分析系统的稳定性、响应速度等性能指标。比如,如果小车位置能快速稳定在设定值附近,摆杆角度也能保持在较小范围内,就说明控制方案有效。
有扰动情况
为了更贴近实际应用,在系统中加入扰动信号,比如在小车运动方向上施加一个随机力。再次运行仿真,观察状态变量的变化。此时,一个好的控制方案应该能够使系统在扰动作用下依然保持相对稳定,或者在短时间内恢复到稳定状态。通过对比不同控制方案在有扰动情况下的仿真结果,可以评估它们的抗干扰能力。

极点配置;PID控制;lqr二级倒立摆系统的稳定控制与仿真 根据牛顿运动定律或者拉格朗日方程,建立直线型二级倒立摆系统的非线性运动模型,给出系统运动的状态方程; 对非线性运动模型进行线性化,针对线性化模型分别采用极点配置;PID控制;lqr的方法,设计直线型二级倒立摆的详细控制方案,给出控制律设计方法; 分别针对有扰动和无扰动两种情况,采用Matlab软件进行仿真验证,结合设计的控制律,用Simulink搭建仿真框图,给出仿真结果,并进行系统分析。
通过以上对二级倒立摆系统基于极点配置、PID 控制和 LQR 的稳定控制与仿真研究,我们不仅深入理解了这几种控制方法的原理和应用,也掌握了如何通过建模仿真来验证控制方案的有效性,为实际工程中的复杂系统控制提供了有益的参考。

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)