📄 pid1_dfl.m
字号:
function pid1_dfl;
%Massimo Davini 08/11/99
global stack;
for canale=1:stack.temp.canali
%inizio for
Num=stack.temp.Num(canale,:);
Den=stack.temp.Den;
[a,b,c,d]=tf2ss(Num,Den);
tol=sqrt(eps)*10;p=[];
while isempty(p)
tol=tol/10;
[amin,bmin,cmin,dmin]=minreal(a,b,c,d,tol);
[z,p,k]=ss2zp(amin,bmin,cmin,dmin);
end;
sys=ss(amin,bmin,cmin,dmin);
if ~isempty(find(real(p)>0))|...
~isempty(find(real(p)==0 & imag(p)==0))
%canale instabile
stabile=0;
else stabile=1;
end;
stack.temp.stabili(canale)=stabile;
if stabile
dc=dcgain(sys);
parametritipo=0;
%canale stabile di ordine 1,senza zeri,con abs(dc)>10e-3
if length(p)==1 & isempty(z) & isfinite(dc) & abs(dc)>1e-4
parametritipo=1;
T=-1/p; t0=T/100;
%canale stabile con abs(dc)>10e-3 di ordine qualunque
elseif length(p)>1 & isfinite(dc) & abs(dc)>1e-4
%-------------------
%stima del Rise Time
%-------------------
[y,t]=step(sys);
%trova y / 10%dc <= y <= 90%dc , tra questi considera quelli
%relativi alla prima salita ( se c'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -