【线性系统理论作业:状态空间转为传递函数算法】

一、题目要求

编程作业2:

根据定理2和莱弗勒算法,采用MATLAB编写从状态空间方程转化为传递函数阵的程序

输入为(A,B,C,D),输出为传递函数矩阵或其系数矩阵

要求:

程序的通用性,任意阶次系统均可检验;语言不限;

二、编程解答

本次解答采用matlab语言编写,原创作品,仿冒必究。


%**************************************************************************%
% 编程作业2:根据定理2和莱弗勒算法,采用MATLAB编写从状态空间方程转化为传递函数阵的程序
%           输入为(A,B,C,D),输出为传递函数矩阵或其系数矩阵
% 要求:程序的通用性,任意阶次系统均可检验;                                           
%**************************************************************************%

% 测试样例
% A=[0 1 0;0 0 1;-5 -25 -4.3]
% B=[0;25;-121]
% C=[1 0 0]
% D=[0]

clc
clear
A=input('输入矩阵A:');
B=input('输入矩阵B:');
C=input('输入矩阵C:');
D=input('输入矩阵D:');
clc
disp("输入矩阵为:")
A
B
C
D

% 参数初始化
[m,n]=size(A);  
alpha=zeros(1,m);  
R=eye(m);
I=eye(m);
G=zeros(1,m-1);
P=R*A;
E=zeros(1,m);

% 求解传递函数分母系数alpha
for i=1:m
   if(i==1)
       alpha(1)=-trace(P)/1; %a(1)中存储的是an-1的值
   else
       R=R*A+alpha(i-1)*I;
       P=R*A;
       alpha(i)=-trace(P)/i;
   end
end

% 求解传递函数分子系数E
for i=1:m-1
    if(i==1)
        G(1)=C*A*B;
    else
        T=A^i;
        G(i)=C*T*B;
    end
end  %建立一个C*A^i*B的过渡向量,方便接下来的计算,共有n-1个

for i=1:m
    if(i==1)
        E(1)=C*B;  %e(1)中存储en-1的值
    else
        K=0;
        for j=1:i-2
            K=alpha(j)*G(i-1-j)+K;
        end
        E(i)=G(i-1)+K+alpha(i-1)*C*B;
    end
end
one=[1];
alpha_=[one,alpha];
a=size(alpha_,2);
b=size(E,2);
c=b;
for i=1:b
    if E(i)==0
        c=b-i;  
        break
    end
end
E=[0,E];
G10=alpha_.*D(1);
G1=E+G10;
G2=alpha_;

% 程序运行结果
if c>a
    disp("分子阶次大于分母阶次,系统不稳定")
else
    disp("输出:")
    disp("传递函数分子系数矩阵G1:")
    G1
    disp("传递函数分母系数矩阵G2:")
    G2
    E; %输出的序列依次为E(n),E(n-1),E(n-2),...E(1);
    alpha_; %输出的序列依次为a(n),a(n-1),a(n-2)...a(1);
end

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zjf时空方程

感谢各位的支持,我一定会努力!

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

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

打赏作者

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

抵扣说明:

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

余额充值