判断单输入系统是否稳定

一例子 :

判断系统是否稳定

rank(S)=2,系统不完全可控

 

结论:不可控部分的特征值为负值-1所以系统稳定

二、使用matlab程序

   2.1程序代码如下:

format rat
close all; clear all; clc
axis off
cla
A=input('输入A矩阵\n')
B=input('输入B矩阵\n')
q=[B,A*B,A*A*B];
str=["Пара матриц ","He ","имеет невырожденность.То есть rank="];
rank_q=rank(q);%判断矩阵是否为退化矩阵
if (length(q)==2)&(rank_q == 2)
    text('String',"结论:"+str(1:1)+str(3:3)+rank_q,'Position',[0 0.5],'FontSize',15)
end
if (length(q)==3)&(rank_q == 3)
    k=['$','\left \{ B,AB,A^2B \right \}=\left ( \begin{array}{clcr} ',num2str(q(1,1)),'&',num2str(q(1,2)),'&',num2str(q(1,3)),' \\ ',num2str(q(2,1)),'&',num2str(q(2,2)),'&',num2str(q(2,3)),' \\ ',num2str(q(3,1)),'&',num2str(q(3,2)),'&',num2str(q(3,3)),' \end{array} \right )','$'];
    text('Interpreter','latex','String',k,'Position',[0 0.5],'FontSize',18)
    text('String',"结论:"+str(1:1)+str(3:3)+rank_q ,'Position',[0 0.3],'FontSize',15)
    end
if (length(q)==3)&(rank_q == 2)
    disp(""+str(1:1)+str(2:2)+str(3:3)+rank_q) 
    [T,a]=jordan(A);
    b=T^-1*B;
    ind = find(b==0);
    if length(ind) ~= 1
        disp("程序不支持A矩阵")
        pass
    end
    if norm(a(ind,ind)) ~= a(ind,ind)
        k=['$','\left \{ B,AB,A^2B \right \}=\left ( \begin{array}{clcr} ',num2str(q(1,1)),'&',num2str(q(1,2)),'&',num2str(q(1,3)),' \\ ',num2str(q(2,1)),'&',num2str(q(2,2)),'&',num2str(q(2,3)),' \\ ',num2str(q(3,1)),'&',num2str(q(3,2)),'&',num2str(q(3,3)),' \end{array} \right )','$'];
        text('Interpreter','latex','String',k,'Position',[0 1],'FontSize',10)
        text('String',""+str(1:1)+str(3:3)+rank_q ,'Position',[0 0.9],'FontSize',10)
        %T
        k=['$','T=\left ( \begin{array}{clcr} ',num2str(T(1,1)),'&',num2str(T(1,2)),'&',num2str(T(1,3)),' \\ ',num2str(q(2,1)),'&',num2str(T(2,2)),'&',num2str(T(2,3)),' \\ ',num2str(T(3,1)),'&',num2str(T(3,2)),'&',num2str(T(3,3)),' \end{array} \right )','$'];
        text('Interpreter','latex','String',k,'Position',[0 0.8],'FontSize',10)
        %T^-1
        k=['$','T^{-1} A T=\left ( \begin{array}{clcr} ',num2str(a(1,1)),'&',num2str(a(1,2)),'&',num2str(a(1,3)),' \\ ',num2str(a(2,1)),'&',num2str(a(2,2)),'&',num2str(a(2,3)),' \\ ',num2str(a(3,1)),'&',num2str(a(3,2)),'&',num2str(a(3,3)),' \end{array} \right )','$'];
        text('Interpreter','latex','String',k,'Position',[0 0.62],'FontSize',10)
        %b
        disp(b)
        k=['$','T^{-1} B = \left ( \begin{array}{clcr} ',num2str(b(1)),'\\',num2str(b(2)),'\\',num2str(b(3)),' \end{array} \right )','$'];
        text('Interpreter','latex','String',k,'Position',[0.5 0.62],'FontSize',10)
        %all
        k=['$','\stackrel{\rm *}{\stackrel{\rm -}{X}}=','\left ( \begin{array}{clcr} ',num2str(a(1,1)),'&',num2str(a(1,2)),'&',num2str(a(1,3)),' \\ ',num2str(a(2,1)),'&',num2str(a(2,2)),'&',num2str(a(2,3)),' \\ ',num2str(a(3,1)),'&',num2str(a(3,2)),'&',num2str(a(3,3)),' \end{array} \right )','\stackrel{\rm -}{X}+','\left ( \begin{array}{clcr} ',num2str(b(1)),'\\',num2str(b(2)),'\\',num2str(b(3)),' \end{array} \right )u','$'];
        text('Interpreter','latex','String',k,'Position',[0 0.44],'FontSize',10)
        %s
        text('String','Неуправляемая  часть   системы  ','Position',[0,0.3],'FontSize',10)
        k=['$','\stackrel{\rm *}{\stackrel{\rm -}{X_3}}=',num2str(a(3,3)),'\stackrel{\rm -}{X_3}','$'];
        text('Interpreter','latex','String',k,'Position',[0 0.2],'FontSize',10)
        text('String','асимптотически устойчива. Система стабилизируема','Position',[0,0.1],'FontSize',10)
    else
        k=['$','\left \{ B,AB,A^2B \right \}=\left ( \begin{array}{clcr} ',num2str(q(1,1)),'&',num2str(q(1,2)),'&',num2str(q(1,3)),' \\ ',num2str(q(2,1)),'&',num2str(q(2,2)),'&',num2str(q(2,3)),' \\ ',num2str(q(3,1)),'&',num2str(q(3,2)),'&',num2str(q(3,3)),' \end{array} \right )','$'];
        text('Interpreter','latex','String',k,'Position',[0 1],'FontSize',10)
        text('String',""+str(1:1)+str(3:3)+rank_q ,'Position',[0 0.9],'FontSize',10)
        %T
        k=['$','T=\left ( \begin{array}{clcr} ',num2str(T(1,1)),'&',num2str(T(1,2)),'&',num2str(T(1,3)),' \\ ',num2str(q(2,1)),'&',num2str(T(2,2)),'&',num2str(T(2,3)),' \\ ',num2str(T(3,1)),'&',num2str(T(3,2)),'&',num2str(T(3,3)),' \end{array} \right )','$'];
        text('Interpreter','latex','String',k,'Position',[0 0.8],'FontSize',10)
        %T^-1
        k=['$','T^{-1} A T=\left ( \begin{array}{clcr} ',num2str(a(1,1)),'&',num2str(a(1,2)),'&',num2str(a(1,3)),' \\ ',num2str(a(2,1)),'&',num2str(a(2,2)),'&',num2str(a(2,3)),' \\ ',num2str(a(3,1)),'&',num2str(a(3,2)),'&',num2str(a(3,3)),' \end{array} \right )','$'];
        text('Interpreter','latex','String',k,'Position',[0 0.62],'FontSize',10)
        %b
        k=['$','T^{-1} B = \left ( \begin{array}{clcr} ',num2str(b(1)),'\\',num2str(b(2)),'\\',num2str(b(3)),' \end{array} \right )','$'];
        text('Interpreter','latex','String',k,'Position',[0.5 0.62],'FontSize',10)
        %all
        k=['$','\stackrel{\rm *}{\stackrel{\rm -}{X}}=','\left ( \begin{array}{clcr} ',num2str(a(1,1)),'&',num2str(a(1,2)),'&',num2str(a(1,3)),' \\ ',num2str(a(2,1)),'&',num2str(a(2,2)),'&',num2str(a(2,3)),' \\ ',num2str(a(3,1)),'&',num2str(a(3,2)),'&',num2str(a(3,3)),' \end{array} \right )','\stackrel{\rm -}{X}+','\left ( \begin{array}{clcr} ',num2str(b(1)),'\\',num2str(b(2)),'\\',num2str(b(3)),' \end{array} \right )u','$'];
        text('Interpreter','latex','String',k,'Position',[0 0.44],'FontSize',10)
        %s
        text('String','Неуправляемая  часть   системы  ','Position',[0,0.3],'FontSize',10)
        k=['$','\stackrel{\rm *}{\stackrel{\rm -}{X_3}}=',num2str(a(3,3)),'\stackrel{\rm -}{X_3}','$'];
        text('Interpreter','latex','String',k,'Position',[0 0.2],'FontSize',10)
        text('String','асимптотически устойчива. Система не стабилизируема','Position',[0,0.1],'FontSize',10)
    end
end

     2.2使用方法

在命令行中依次输入A,B矩阵即可的到结果

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

фора 快跑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值