📄 djixian.m
字号:
function [lim,jienci]=djixian(knum,kden,nn,dhT)
%jixian函数程序,求Kp、Kv、Ka,n=0,单位位置输入,n=1:单位速度输入,nn=2:单位加速度输入,
%lim:Kp、Kv、Ka,jienn:系统类型
[dz,dp,dk]=tf2zp(knum,kden);
ddp=dp-1;ddp=abs(ddp);ddp=sort(ddp);
jien=length(ddp);jienn=0; %jien:系统分母多项式的长度
for i=1:jien
if ddp(i)<=0.00001 %首先从多项式常数项开始判断,若为0,则系统类型值
jienn=1+jienn; %jienn+1 jienn;然后依s升幂次序判断各项的系数
else
break %若系数不为0,则退出循环,得到系统类型值
end
end
if jien==jienn
dp=1;jien=1;kden=kden(jien);
else
if jienn~=0
for i=1:jien
if dp(i)<=1.00001&dp(i)>=-1.00001
if i==jien
dp=dp(1:jien-1);
else
for j=i:jien-1
dp(j)=dp(j+1);
end
end
end
end
end
dp=dp(1:jien-jienn);[knum,kden]=zp2tf(dz,dp,dk);jien=length(kden);
end
jiemn=length(knum);jiemd=length(kden);knumk=knum(jiemn);jienci=jienn; %knumk:分子的常数项
if nn==0&jienn==0 %单位位置输入,0型系统
limnum=0;limden=0;
for j=1:jiemn
limnum=knum(j)+limnum;
end
for j=1:jiemd
limden=kden(j)+limden ; %kden(jien):分母的常数项
end
lim=limnum/limden;
else if nn==0
lim='inf'; %单位位置输入,1、2型系统
end
end
if nn==1&jienn==0 %单位速度输入,0型系统
lim=0;
else if nn==1&jienn==1 %单位速度输入,1型系统
limnum=0;limden=0;
for j=1:jiemn
limnum=knum(j)+limnum;
end
for j=1:jiemd
limden=kden(j)+limden ; %kden(jien):分母的常数项
end
lim=limnum/(limden*dhT);
else if nn==1 %单位速度输入,2型以上系统
lim='inf';
end
end
end
if nn==2&jienn<2 %单位加速度输入,0,1型系统
lim=0;lim=0;
else if nn==2&jienn==2 %单位加速度输入,2型系统
limnum=0;limden=0;
for j=1:jiemn
limnum=knum(j)+limnum;
end
for j=1:jiemd
limden=kden(j)+limden ; %kden(jien):分母的常数项
end
lim=limnum/(limden*dhT^2)
else if nn==2 %单位加速度输入,3型系统以上
lim='inf';
end
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -