控制建模matlab练习13:线性状态反馈控制器-②系统的能控性

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

一、判断系统能控性

  • 状态能控定义:对于系统而言,如果存在着输入u(t),可以在有限的时间区间t~0~,t~1~内,将系统的状态变量从初始状态z(t0)转移到终端状态z(t1),那么就称状态z(t0)是能控的状态。如果在任意的初始时间t0下的初始状态z(t0)都能控,就称系统的状态是能控的。
  • 需要指出,如果系统的状态z(t)能控,系统的输出y(t)也一定能控。
  • 在设计状态反馈控制器,之前需要先判断,系统是否是能控的;判断系统是否能控,就需要判断能控矩阵Co,其矩阵形式如下;
  • 对于n维线性时不变系统而言,它的状态能控的充分必要条件是能控矩阵的秩为n。
  • 判断此时矩阵Co的秩是否为n,秩为n,则系统可控;
  • 以其中第三个例子,在MATLAB算出:
matlab 复制代码
clc;clear;close all;
%% 定义矩阵A,B
A =[[ 0 1 0 0 ];
    [ -100 0 100 0];
    [0 0 0 1];
    [100 0 -10 0]
    ];
B=[0;1;0;0];
Co=ctrb(A,B);  % ctrb,可以直接求出能控矩阵Co
R = rank(Co) ;  % rank,求秩
  • 运行结果:
  • 在命令行窗口,分别输入Co和R;
  • 可以看出,秩为R=4,所以说明系统是可控系统;
  • 此例子三数学模型,对应的系统如下图;
  • 两个小车通过弹环连接,右边有一外力;
  • 因为上面分析这是可控的,所以可以通过控制外力,来控制里面每一个状态变量的值。

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

相关推荐
通信仿真爱好者2 分钟前
第【122】期--卷积编码与维特比译码在 M‑QAM 系统中的性能仿真研究--matlab完整代码
matlab·qam调制·维特比译码·卷积码·信道编码
大牧师29 分钟前
Nest.js 微服务入门教程
开发语言·javascript·后端·微服务·node.js·nest.js·nest
格林威32 分钟前
C# 图像异步落盘存储:基于Channel 配合 ArrayPool 实现异步落盘
开发语言·人工智能·数码相机·机器学习·计算机视觉·c#·视觉检测
软件黑马王子33 分钟前
11.缓存池优化:窗口布局
开发语言·前端框架·c#
深圳市益普科技有限公司37 分钟前
半导体MES的数字孪生:虚拟调试如何把上线风险提前清零
java·开发语言
低代码布道师44 分钟前
外包项目管理平台全栈实战课02搭建数据底座:Next.js + PostgreSQL + Prisma 7
开发语言·javascript·postgresql·全栈开发
格林威1 小时前
C# 图像使用AVX2指令集:使用OpenCvSharp实现字节图像解压缩速度和map_image算子速度提升
开发语言·图像处理·人工智能·计算机视觉·c#·视觉检测·工业相机
(Charon)1 小时前
【C++】网络缓冲区设计(四):epoll + Reactor中Buffer的完整读写流程
开发语言·c++
西西弗Sisyphus1 小时前
Qt 实现一个 Windows 启动项查看器
开发语言·windows·qt