matlab求取状态方程的传递函数并实现系统解耦

matlab对于求取传递函数有现成的函数可调用,但是要注意单输入和多输入的差别。系统解耦没有响应的函数,需要我们根据系统解耦的原理自行编程。
要解耦,首先需要判断系统是否满足解耦的条件。对于状态方程形式,可以通过判断ciAuiB≠0c_iA^{u_i}B\neq0 ci​Aui​B​=0时,uiu_iui​的值。Ei=ciAuBE_i=c_iA^uB Ei​=ci​AuB
E=[E1E2⋮]E=\begin{bmatrix} E_1 \\ E_2 \\ \vdots \\ \end{bmatrix}E=⎣⎢⎡​E1​E2​⋮​⎦⎥⎤​
若E非奇异,则系统可解耦。
F=[F1F2⋮]=[c1Au1+1c2Au2+1⋮]F=\begin{bmatrix} F_1 \\ F_2 \\ \vdots \\ \end{bmatrix}=\begin{bmatrix} c_1A^{u_1+1} \\ c_2A^{u_2+1} \\ \vdots \\ \end{bmatrix} F=⎣⎢⎡​F1​F2​⋮​⎦⎥⎤​=⎣⎢⎡​c1​Au1​+1c2​Au2​+1⋮​⎦⎥⎤​
K=E−1F,L=E−1K=E^{-1}F, L=E^{-1}K=E−1F,L=E−1
得到控制率U=Lv−KxU=Lv-KxU=Lv−Kx代入原方程得到新的状态方程
x˙=(A−BLF)x+BLUy=Cx\dot{x}=(A-BLF)x+BLU\\y=Cxx˙=(A−BLF)x+BLUy=Cx
最后根据要求再进行相应的极点配置。

matlab程序

以三阶为例
A=[000001−1−1−3]B=[100001]A=\begin{bmatrix} 0&0&0 \\ 0&0&1 \\ -1&-1&-3 \\ \end{bmatrix} B=\begin{bmatrix} 1&0 \\ 0&0 \\ 0&1\\ \end{bmatrix}A=⎣⎡​00−1​00−1​01−3​⎦⎤​B=⎣⎡​100​001​⎦⎤​
C=[110001]C=\begin{bmatrix} 1&1&0 \\ 0&0&1 \\ \end{bmatrix}C=[10​10​01​]

// An highlighted block
A=[0 0 0;0 0 1;-1 -1 -3];
B=[1 0;0 0;0 1];
C=[1 1 0;0 0 1];
D=zeros(2,2);                      %状态矩阵
[num1,den1]=ss2tf(A,B,C,D,1)           %传递函数
[num2,den2]=ss2tf(A,B,C,D,2)
%系统解耦-------------------
[m,n]=size(C);
E=zeros(m,m);
F=zeros(m,n);
for i=1:mu=1;E(i,:)=C(i,:)*A*B; while(rank(E)==0)u=u+1;E(i,:)=C(i,:)*A^u*B;   endF(i,:)=C(i,:)*A^(u+1);
end
L=inv(E);
K=L*F;
A0=A-B*L*F;                        %解耦后的状态矩阵
B0=B*L;
C0=C;
%极点配置-----------
J=[-2 -3 0];                       %期望极点
K1=place(A0,B0,J)

matlab求取状态方程的传递函数并实现系统解耦相关推荐

  1. matlab寻找闭合,MatLab求取多个闭合区域的轮廓、面积和bbox

    问题描述 要对如下所示的二值标签图做如下处理: 获取每一个闭合小区域的轮廓曲线坐标 获取每一个闭合小区域的面积 获取每一个闭合小区域的 bounding box 处理方法 问题一: 获取每一个闭合小区 ...

  2. matlab 求取矩阵中值,matlab中取矩阵中指定列的值组成新矩阵

    matlab 矩阵中怎么加入冒号,比如我想矩阵A的第一列都为"1:" A(:,1)='1:';再问:不行的再答:用结构矩阵或者单元矩阵试试吧. 诚教:matlab中取矩阵的其中几行 ...

  3. 快速入门Matlab——求取一元函数最小值和零点

    Matlab程序推荐:智能微电网PSO优化算法 利用白噪声特性和ARMR模型,通过求解模型参数生成随机风速 粒子群综合能源系统优化的matlab实现 学习目标:求一元函数最小值和零点 %%  函数的极 ...

  4. 用matlab求其零极点,用CZT求解系统函数的零极点:算法说明及MATLAB程序演示

    求解z 变换)(z X 的零.极点 设)(n x 是实序列,其z 变换)(z X 一般是z 或1-z 的实系数有理分式.当)(z X 的分子多项式和分母多项式的阶数很高时,分解因式求)(z X 的零. ...

  5. matlab将空间描述转变为约当阵,matlab求约当标准型

    -- 矩阵的转置 jordan -- 约当标准型 simple -- 符号矩阵简化 solve(f) -- 求一个方程的解 经济数学实验班 1101 班 数学软件应用 MATLAB 复习资料 .... ...

  6. java 获取每月每一天_java 求取某一段时间内的每一天、每一月、每一年

    1.求取某一段时间内的每一天 Date date0 = new SimpleDateFormat("yyyy-MM-dd").parse("2014-01-01" ...

  7. MATLAB点云处理:读取、展示、最近邻、ICP算法求取转移矩阵、旋转

    MATLAB中关于点云的几个函数的简单应用.作者使用的是MATLAB R2015b,这几个函数应该是在Computer Vison包里. 全文都是作者自己结合MATLAB文档的理解,欢迎指教. 1. ...

  8. 怎么用matlab分析孔隙度,基于MATLAB软件的声波测井孔隙度求取

    ·99·2016年 第 24 期 基于MATLAB软件的声波测井孔隙度求取 向旻 (新疆工程学院,新疆 乌鲁木齐 830091) 摘要 :目前,声波测井是一种重要的孔隙度测井方法,被各大油田广泛的使用 ...

  9. 使用Matlab对频繁2项集和频繁3项集的求取

    使用Matlab对频繁2项集和频繁3项集的求取 一.问题描述 二.实验目的 三.实验内容 程序实现(详细代码) 运行结果截图 分析 四.总结 本文作者原创,如需转载,请注明原作者和地址,谢谢合作! 一 ...

  10. matlab 向量取倒数,Matlab 求倒数命令及控制方法

    建立符号变量命令sym和syms调用格式: x=sym('x'), 建立符号变量x: syms x y z , 建立多个符号变量x,y,z: matlab求导命令diff调用格式: diff(函数) ...

最新文章

  1. linux系统管理必备知识之关机命令
  2. fragment的基本使用
  3. Linux shell ==运算符
  4. 【BJOI2017】树的难题【点分治】【线段树】
  5. 一分钟了解微服务的好处和陷阱
  6. 好的身体是革命的本钱
  7. Java实现贪吃蛇游戏【代码】
  8. matlab 时钟日历教程,Flash制作电子日历时钟教程
  9. 区块链底层架构概览:第一原则框架
  10. java 鸡尾酒排序_十大经典排序【Java实现,手工作坊式】
  11. matlab centralize,智课雅思词汇---二十三、动词性后缀-ate-fy-ish-ize
  12. excel中roundup使用指南
  13. 从裁员到扩招/从自研到生态,汽车行业新年新气象
  14. PS新手淘宝美工常见问题-主图和详情尺寸(一)
  15. opc ua 用哪种语言编写_什么是OPC UA?
  16. 内嵌资源html,go 1.16 embed 实现资源文件(html, css, js等)内嵌
  17. java apache 日志_了解Apache的访问日志
  18. jsoncpp在vs2012下的环境搭建(C++)
  19. C语言高一,高一数学上学期的所有知识点
  20. select查询之联合查询

热门文章

  1. 深入浅出的讲解傅里叶变换(原文作者 韩昊)
  2. 声音存储空间计算公式_音频数据存储空间计算 音频存储空间计算公式
  3. 基因组变异类型详解及区分
  4. vue---图像上传/裁剪/预览/删除/查询
  5. Angular 1 实现多标签页效果
  6. 微信:一个必须研究的产品
  7. 信号降噪方法——基于自适应神经模糊推理系统(ANFIS)的降噪处理
  8. 马斯克 的 2500 吨 推力 的 大火箭 没什么 了不起
  9. 谷歌地图、百度地图、搜搜地图之浅比较
  10. python音频频谱_用python绘制音频频谱图