控制建模matlab练习14:线性状态反馈控制器-③极点配置

此练习,主要是使用状态空间方程来设计控制器的方法和思路:
①系统建模;
②系统的能控性;
③极点配置;
④最优化控制LQR;
⑤轨迹追踪;
以下是,第③部分:极点配置;

一、系统模型

还是以前面的①系统建模;里面的这个模型为基础进行分析。

  • 先介绍一下这个极点配置:(引用书中的介绍)
  • 本质上说,这依然是比例控制,但相较于传统方法(只反馈位移信息),所有的状态信息(包括位移和速度)都被用作反馈,因此有两个比例增益 k1 k2
  • 并且,状态矩阵的特征值对应于传递函数的极点。
  • 所以,这种设计思路就被称为极点配置

二、分析与控制器设计

  • 书中分析这个系统,是一个不稳定的系统。若想要改变平衡点的性质,则需要设计合适的输入 u(t) ,并且在设计之前,也要先判断系统的能控性。
  • 通过分析,说明只依靠输出的比例反馈控制 不能满足设计要求,所以需要考虑设计全状态反馈控制器 ,可以令 u(t) = -Kz(t) ,其中 K=[k1 k2] 。全状态的反馈,将 z(t) 完全反馈到系统当中。
  • 此时的输入 u(t) 就与所有状态变量 z(t) 有关。
  • 得到闭环系统 (A - BK)z(t) = Aclz(t)
  • 再通过求闭环控制系统的状态矩阵 Acl特征值 ,希望两个特征值均为-1<0(此时平衡点将变成稳定节点),因此可解出 k1 k2
  • 在MATLAB中的代码如下:
matlab 复制代码
clc;clear;close all;
%% 定义参数
  g=10;
  d=1;
%% 定义矩阵
 A=[0 1;g/d 0];
 B=[0;1];
 C = [1, 0];
 D = 0;
%% 建立状态空间方程表达式
sys = ss(A,B,C,D);
%% 定义初始状态
z0=[pi/20;0];
%% 定义系统控制
K = [1+g/d 2];

%% 此时设计好之后,再定义的闭环系统
%% 此时没有B矩阵了,B矩阵为0
sys_cl=ss(A-B*K,[0; 0],C,D);
%% 对初始条件的响应
t=0:0.01:10; %% 时间间隔
[y,t,z]=initial(sys_cl,z0,t);
%% 绘图
%% z1
subplot (2,1,1);
plot(t,z(:,1));
legend('角度:z1(t)');
grid on
%% z1
subplot (2,1,2);
plot(t,z(:,2));
legend('角速度:z2(t)');
grid on

三、运行结果

  • 图中看出,角度 z1(t) ,从初始位置 π/20 开始,逐渐变成0;
  • 而角速度 z2(t) ,因为初始状态就是0,所以先是向下变化,再变为0。(因为看前面模型图,角速度是要向回走,往反方向,所以是负的)
  • 这里 k1 k2 的选择,将会决定系统的收敛速度 和决定系统输入的值 ,而此练习的 k1 k2 是随机选择的。
  • 如果考虑更多的条件,则需要再用到最优化控制 ;在下一个练习,则看如何使用最优化的思路来设计 k1 k2

学习来源:《控制之美》卷1,王天威

相关推荐
Promise微笑13 小时前
回路电阻测试仪采购:多维度技术评估与深度避坑指南
开发语言·matlab·语音识别
程高兴1 天前
PMSM基于在线转动惯量辩识的滑模负载转矩观测器MATLAB-SIMULINK仿真模型
开发语言·matlab
2zcode2 天前
项目文档:基于MATLAB低采样率ISAR成像的快速稀疏重建算法研究
开发语言·算法·matlab
matlab代码3 天前
Matlab基于主成分分析PCA人脸识别系统(GUI界面)【源码44期】
开发语言·matlab·人脸识别
茗创科技3 天前
CGE连接组:用基因表达解码脑疾病的异质性(附高分文献下载)
python·matlab·脑网络
EW Frontier5 天前
GRAIL-SCML:一种几何正则化自适应集成似然的波达方向估计算法【附MATLAB代码】
matlab·自适应·宽带·doa估计·波达方向估计·几何正则化·窄带
程高兴5 天前
三相维也纳整流器仿真Simulink(解决过零畸变问题)
matlab
通信仿真爱好者5 天前
第【70】期--noma与ofdma在无线网络中的性能对比分析--MATLAB完整代码
matlab·非正交多址接入·noma·ofdma
爱吃提升5 天前
MATLAB impulse函数脉冲响应完整实操教程
开发语言·matlab
我爱C编程5 天前
基于K层下行异构蜂窝网络的网络覆盖率和速率计算matlab仿真
网络·matlab·异构蜂窝网络·k层下行·网络覆盖率