📄 huangkun2.m
字号:
clc;
clear all;
close all;
input('输入微分方程左侧y前的系数(传递函数分母s前的系数),从y的0阶导(从s的0次方)开始依次输入');
input('(最高阶的导数系数(s最高次幂系数)为1,不要输入),构成行数为1的矩阵。回车开始输入。');
y1=input('y1=');
input('输入微分方程右侧u前的系数(传递函数分子s前的系数),从u的0阶导(从s的0次方)开始依次输入');
input(',构成行数为1的矩阵。回车开始输入。');
u1=input('u1=');
[m1,n1]=size(y1);
[m1 n2]=size(u1);
for i=1:n1
a1(i)=y1(n1-i+1);
end
for i=1:n2
b1(i)=u1(n2-i+1);
end
G=tf(b1,a1)
u=zeros(1,n1-1);
for i=1:n2
u(i)=u1(i);
end
u=u/y1(n1);
y1=y1/y1(n1);
y=zeros(1,n1-1);
for i=1:(n1-1)
y(i)=y1(i);
end
n1=n1-1;
A=zeros(n1,n1);
C=zeros(n1,n1-1);
input('输入y的初始条件,从y的0阶导数值开始输入,构成一个列数为1的矩阵。回车开始输入。');
Y=input('Y=');
input('输入u的初始条件,从u的0阶导数值开始输入,构成一个列数为1的矩阵。回车开始输入。');
U=input('U=');
for i=1:n1
A(i,n1+1-i)=1;
end
for i=1:(n1-1)
k=i;
for j=1:(n1-i)
k=k+1;
A(i,j)=y(k);
end
end
for i=1:(n1-1)
k=i;
for j=1:(n1-i)
k=k+1;
C(i,j)=0-u(k);
end
end
input('状态初值为:');
x=A*Y+C*U
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -