问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

倒立摆系统的建模、分析与设计

创作时间:
作者:
@小白创作中心

倒立摆系统的建模、分析与设计

引用
CSDN
1.
https://blog.csdn.net/m0_58209778/article/details/139448174

倒立摆系统是一种典型的非线性、不稳定系统,广泛应用于控制理论的教学和研究中。本文将详细介绍倒立摆系统的建模、分析与设计过程,包括系统稳定性分析、状态反馈控制器设计以及降维状态观测器的实现。通过Matlab和Simulink工具,我们将对系统进行详细的仿真和验证。

一、案例背景

倒立摆系统是一种经典的控制理论研究对象,其主要特点是非线性、不稳定。本文将基于倒立摆系统的线性状态空间表达式,进行系统建模、分析与设计。

二、建模分析

由PDF知,倒立摆系统的线性状态空间表达式为:

则有:

3.1 在Matlab 环境下,分析系统的稳定性、能控性及能观性。

代码如下:

%{
1.在Matlab 环境下,分析系统的稳定性、能控性及能观性。
%}
A = [0 1 0 0;20.601 0 0 0; 0 0 0 1;-0.4905 0 0 0];
B = [0;-1;0;0.5];
C = [1 0 0 0;0 0 1 0];
n = size(A, 1)
% 系统的状态空间表示
sys = ss(A, B, C, 0);
% 稳定性分析
%计算特征值
eigenvalues = eig(A)
if all(real(eigenvalues) < 0)
    disp('系统是稳定的.');
else
    disp('系统是不稳定的.');
end
% 能控性分析
Uc = [B, A*B, A^2*B,A^3*B];
rank_Uc = rank(Uc)
if rank_Uc == n
    disp('系统是能控的.');
else
    disp('系统是不能控的.');
end
% 能观性分析
Uo = [C; C*A; C*A^2;C*A^3];
rank_Uo = rank(Uo)
if rank_Uo == n
    disp('系统是能观的.');
else
    disp('系统是不能观的.');
end

结果显示,该系统不稳定,但是能控能观。

3.2 在 SIMULINK环境下,进行系统开环仿真,验证系统的稳定性。

步骤如下:

  1. 连接这些块:
  • 连接State-Space块的输出到Scope块的输入。
  • 连接Step块的输出到State-Space块的输入。
  1. 配置这些块的参数:
  • 双击State-Space块,设置系统的状态空间矩阵(A、B、C、D)。
  • 双击Step块,可以设置阶跃信号的起始时间、结束时间、幅值等参数。
  • 双击Scope块,调整作用域的显示参数,如选择显示的信号。
  1. 运行仿真:
  • 点击模型窗口的 "Run" 按钮来运行仿真。
  1. 查看仿真结果:
  • 打开Scope块的窗口来查看系统的响应。

通过这些步骤,可以在SIMULINK中建立一个简单的系统,并使用State-Space块描述系统的动态行为,Step块产生一个阶跃信号作为输入,Scope块用于查看系统的输出响应。结果显示,系统是不稳定的。

由倒立摆系统的线性状态空间表达式可得系统的状态方程和输出方程:

画出系统的模拟结构图:

计算反馈增益阵:

%{
![](https://wy-static.wenxiaobai.com/chat-rag-image/543902043865540000)
在SIMULINK环境下,给定系统期望的极点,设计状态反馈控制器,
并通过仿真验证其性能
%}
% 定义系统矩阵
A = [0 1 0 0; 20.601 0 0 0; 0 0 0 1; -0.4905 0 0 0];
B = [0; -1; 0; 0.5];
C = [1 0 0 0; 0 0 1 0];
D = [0; 0];
% 计算可控性矩阵
Co = ctrb(A, B);
% 检查可控性
rank_Co = rank(Co);
if rank_Co == size(A, 1)
    disp('系统是可控的。');
else
    error('系统不可控,请重新设计系统或控制器。');
end
% 给定的期望闭环极点
desired_poles = [-2, -3, -4, -5];
% 计算状态反馈增益矩阵 K
K = place(A, B, desired_poles)

建立simulink模型

运行仿真,观察四个状态的变化

实验结果表明,倒立摆很短时间内收敛到0,控制效果很好。

设计降维状态观测器

将观测值代入状态反馈建立simulink模型(降维状态观测器)

为了简化框图,将原系统模型替换成了直接State space表示的形式,具体设置为:这里给定倒立摆角度的初值1,其他全部设为0

运行仿真,观察四个状态的变化

将未加入观测器时的状态与加入状态观测器的状态作差,发现比较观测器观测值与实际状态的误差的时候,发现观测器已经能够很好地跟踪未知状态了。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号