📄 wengccc.m
字号:
%用龙格库塔法计算开环传递函数在阶跃输入下的响应
clear;clc;
disp('*******************************************')
disp('** 用龙格库塔法计算开环或闭环传递 **')
disp('** 函数在阶跃输入下的响应 **')
disp('*********************************************')
disp(' ')
disp('1.开环传递函数');
disp('2.闭环传递函数');
Loop_style=input('请选择传递函数的种类1或2:');
value_n=input('请输入输出y的最高阶导数n的值:');
value_m=input('请输入输入u的最高阶导数m的值:');
N=input('请以矩阵形式输入输出y的各阶导数的系数由高到低\n') %Y的系数值
M=input('请以矩阵形式输入输入u的的各阶导数的系数由高到低\n') %U的系数值
if N(1)~=1
M=M/N(1);
N=N/N(1);
end
N=N(2:end);
q=1;
[A,B,C,D]=weng1(N,M,q,value_n,value_m);
if Loop_style==1
V=input('输入反馈系数\n');
A=A-B*V*C;
end
U=input('输入阶跃输入系数\n');
disp(' ');
disp('1.欧拉算法');
disp('2.二阶龙格库塔算法');
disp('3.三阶龙格库塔算法');
disp('4.四阶龙格库塔算法');
Q=input('输入数值计算方法:1-4::');
disp(' ');
h=input('请输入步长:');
n=input('请输入积分时间系数(数值计算循环次数):')
if D==0
disp('Success');
else
disp('Wrong with the non_zero D')
end
N=value_n;
if Q==4
y=RKfour(h,A,B,C,U,N,n)
disp('success of 4-RK!')
elseif Q==3
y=RKthree(h,A,B,C,U,N,n)
disp('success of 3-RK!');
elseif Q==2
y=RKtwo(h,A,B,C,U,N,n)
disp('success of 2-RK!');
elseif Q==1
y=RKone(h,A,B,C,U,N,n)
disp('success of 1-RK!');
else
disp('The wrong numerical calculation method!');
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -