?? 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 + -