亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? nid.m

?? 國外人編寫的一個分數階系統的控制工具箱
?? M
字號:
function C = nid(k, v, bandwidth, n, formula, expansion, decomposition)

% function C = nid(k, v, bandwidth, n, formula, expansion, decomposition)
% This function provides integer approximations of k*s^v.
% The approximating formula is chosen by variable formula.
% The following continuous approximations are available:
% * 'crone' - first generation Crone approximation with n zeros and n
% poles, valid in frequency range [bandwidth(1); bandwidth(2)] rad/s
% * 'carlson' - Carlson approximation with at least n zeros and n poles,
% valid around frequency bandwidth rad/s or sqrt(bandwidth(1)*bandwidth(2)) rad/s
% * 'matsuda' - Matsuda approximation with n zeros and poles,
% valid in frequency range [bandwidth(1); bandwidth(2)] rad/s
% * 'cfehigh' - approximation based upon the continued fraction expansion of
% (1+s)^v with about n zeros and n poles, valid from bandwidth rad/s up
% * 'cfelow' - approximation based upon the continued fraction expansion of
% (1+1/s)^(-v) with about n zeros and n poles, valid until bandwidth rad/s
% The following digital approximations are available:
% * 'tustin' - Tustin approximation
% * 'simpson' - Simpson approximation
% * '1ofd' - first order backwards finite difference approximation
% * '2ofd' - second order backwards finite difference approximation
% * '3ofd' - third order backwards finite difference approximation
% * 'delta' - delta transform approximation
% * 'impulse' - impulse response approximation
% * 'step' - step response approximation
% In all these cases the approximation has up to n delays, and variable
% expansion (which may be ommited and is neglected for continous
% approximations) may be one of the following:
% 'mcltime' (default), 'mcltimeINV', 'cfe', 'cfeINV'
% For all digital approximations, bandwidth is the sampling time in seconds.
% Variable decomposition may be ommited and its values may be:
% * 'frac' - (default) order v - floor(v) is approximated and added to the
% integer part floor(v)
% * 'all' - order v is approximated; this is not recommended
% Duarte Val閞io 2004

if nargin < 7 % defaults are set
    decomposition = 'frac';
end
if nargin < 6
    expansion = 'mcltime';
end
if isempty(expansion)
    expansion = 'mcltime';
end
if strcmp(formula, 'crone') | strcmp(formula, 'matsuda')
    if length(bandwidth) < 2
        error('Variable bandwidth should consist of two frequencies.')
    end
    wl = bandwidth(1);
    wh = bandwidth(2);
elseif strcmp(formula, 'carlson') & ~strcmp(decomposition, 'frac') & abs(v) > 1
    error('Carlson method with |v|>1 demands that decomposition be ''frac''.')
elseif strcmp(formula, 'cfehigh')
    bandwidth = bandwidth(1);
elseif strcmp(formula, 'cfelow')
    bandwidth = bandwidth(end);
else % all digital approximations
    Ts = bandwidth(1); % this is a sampling time, NOT a frequency
end

if strcmp(decomposition, 'frac') % only the fractional part is expanded
    C = nid(k, v-floor(v), bandwidth, n, formula, expansion, 'all');
    switch formula
        case {'crone', 'matsuda', 'carlson', 'cfehigh', 'cfelow'}
        % continuous cases
            C = C * (tf('s'))^(floor(v));
        case '1ofd'
            C = C * (tf([1 -1],Ts,Ts,'Variable','z^-1'))^(floor(v));
        case '2ofd'
            C = C * (tf([3 -4 1],2*Ts,Ts,'Variable','z^-1'))^(floor(v));
        case '3ofd'
            C = C * (tf([11 -18 9 -2],6*Ts,Ts,'Variable','z^-1'))^(floor(v));
        case {'tustin', 'delta', 'impulse', 'step'}
            C = C * (tf(2*[1 -1],Ts*[1 1],Ts,'Variable','z^-1'))^(floor(v));
        case 'simpson'
            C = C * (tf(3*[1 0 -1],Ts*[1 4 1],Ts,'Variable','z^-1'))^(floor(v));
    end
elseif strcmp(decomposition, 'all') % everything is expanded
    switch formula
        case 'crone'
            C = crone1(k, v, wl, wh, n);
        case 'carlson'
            C = newton(k, v, bandwidth, n, tf('s'), 'zp');
        case 'matsuda'
            C = matsuda(k, v, wl, wh, n);
        case 'cfehigh'
            C = cfehigh(k, v, bandwidth, n);
        case 'cfelow'
            C = cfelow(k, v, bandwidth, n);
        otherwise % digital approximations or errors
            C = digital(k, v, Ts, n, formula, expansion);
    end
else
    error('The decomposition has an invalid format.')
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 
% function C = crone1(k, v, wl, wh, n)
% 
% % function C = crone1(k, v, wl, wh, n)
% % This function returns a first generation CRONE controller,
% % that is to say, a frequency domain approximation of a controller
% % with the transfer function k*s^v.
% % The approximation is valid in [wl; wh] rad/s and has n zeros and n poles.
% % Duarte Val閞io 2003
% 
% alphaXeta = (wh / wl) ^ (1/n);
% alpha = alphaXeta ^ abs(v);
% eta = alphaXeta / alpha;
% if v>0
%    zeros = wl * sqrt(eta);
%    poles = zeros * alpha;
%    for i = 2:n
%       zeros = [zeros poles(end)*eta];
%       poles = [poles zeros(end)*alpha];
%    end
% else
%    poles = wl * sqrt(eta);
%    zeros = poles * alpha;
%    for i = 2:n
%       poles = [poles zeros(end)*eta];
%       zeros = [zeros poles(end)*alpha];
%    end
% end
% C = tf(zpk(-zeros, -poles, 1));
% C = k * C / bode(C, 1);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function C = matsuda(k, v, wl, wh, n)

% function C = matsuda(k, v, wl, wh, n)
% This function returns a frequency domain approximation of a controller
% with the transfer function k*s^v, using Matsuda method
% as seen in function matsudaCFE.
% The approximation is valid in [wl; wh] rad/s.
% n is the number of zeros PLUS the number of poles.
% If it is odd, the number of zeros is 1 more than the one of poles.
% Duarte Val閞io 2004

% function to interpolate
w = logspace(log10(wl), log10(wh), n+1);
gain = 20 * log10(abs(w.^v));
% function matsudaCFE handles the rest
C = k * matsudaCFE(w, gain);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function C = cfehigh(k, v, bandwidth, n)

% function C = cfehigh(k, v, bandwidth, n)
% This function returns a frequency domain approximation of a controller
% with the transfer function k*s^v, approximated by
% k*bandwidth^v times a continued fraction expansion of
% (1+s/bandwidth/s)^v
% Duarte Val閞io 2005

q = tf('s')/bandwidth;
a = [0 ones(1, 2*n)];
b = [ 0 1 -v*q ];
for i = 1 : n
    b = [ b , i*(i+v)*q/(2*i*(2*i-1)) , i*(i-v)*q/(2*i*(2*i+1)) ];
end
C = k * bandwidth^v * contfraceval(a, b, 2*n);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function C = cfelow(k, v, bandwidth, n)

% function C = cfelow(k, v, bandwidth, n)
% This function returns a frequency domain approximation of a controller
% with the transfer function k*s^v, approximated by
% k*bandwidth^v times a continued fraction expansion of
% (1+bandwidth/s)^(-v)
% Duarte Val閞io 2005

q = tf('s')/bandwidth;
a = [0 ones(1, 2*n)];
b = [ 0 1 v/q ];
for i = 1 : n
    b = [ b , i*(i-v)/(q*2*i*(2*i-1)) , i*(i+v)/(q*2*i*(2*i+1)) ];
end
C = k * bandwidth^v * tf(ss(contfraceval(a, b, 2*n)));
% this is bacuse s, showing up in the numerator,
% makes unnecessarily high powers to appear in the final result

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function C = digital(k, v, Ts, n, formula, expansion)

% function C = digital(k, v, Ts, n, formula, expansion)
% This function returns a discrete time domain approximation of a controller
% with the transfer function k*s^v, using one out of thirty-two methods.
% The sampling time is Ts seconds. The approximation has up to n delays.
% Variable method may be one of the following:
% 'tustin', 'simpson', '1ofd', '2ofd', '3ofd', 'delta', 'impulse' or 'step'.
% Variable expansion may be one of the following:
% 'mcltime', 'mcltimeINV', 'cfe' or 'cfeINV'.
% Duarte Val閞io 2004

switch expansion
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'mcltime'
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    switch formula
        
    case '1ofd'
        % matched poles and zeros (or finite differences, or Gr╱nwald-Letnikoff) formula
        dc = [];
        if isinteger(v) & v < 0
            for i = 0:n
                dc(i+1) = gamma(i-v) / (gamma(-v) * gamma(i+1));
            end
        else
            for i = 0:n
                dc(i+1) = (-1)^i * gamma(v+1) / (gamma(i+1) * gamma(v-i+1));
            end
        end
        dc = dc * (1/Ts)^v;
        
    case '2ofd'
        % second order finite differences formula
        dc = zeros(1,n+1);
        for i = 0:n
            for j = 0:i
                dc(i+1) = dc(i+1) + (-1)^i / (gamma(v-j+1) * 3^j *...
                    gamma(j+1) * gamma(i-j+1) * gamma(v-i+j+1));
            end
        end
        dc = dc * 3^v * (gamma(v+1))^2 / (2 * Ts)^v;
        
    case '3ofd'
        % third order finite differences formula
        dc = zeros(1,n+1);
        i = sqrt(-1);
        for r = 0:n
            for q = 0:r
                for p = 0:q
                    dc(r+1) = dc(r+1) + (-1)^p *...
                        (-7/4-i*sqrt(39)/4)^(v-q+p) *...
                        (-7/4+i*sqrt(39)/4)^(v-r+q) /...
                        (gamma(p+1) * gamma(v-p+1) * gamma(q-p+1) *...
                        gamma(v-q+p+1) * gamma(r-q+1) * gamma(v-r+q+1));
                end
            end
        end
        dc = real(dc) * 2^v * (gamma(v+1))^3 / (6*Ts)^v;
        % the imaginary part ought to be 0, but isn't due to round-off errors
        
    case 'tustin'
        % Tustin formula
        dc = zeros(1,n+1);
        for i = 0:n
            for j = 0:i
                dc(i+1) = dc(i+1) + (-1)^j * gamma(v+1) * gamma(-v+1) /...
                    (gamma(v-j+1) * gamma(j+1) * gamma(i-j+1) * gamma(-v+j-i+1));
            end
        end
        dc = dc * (2/Ts)^v;
        
    case 'simpson'
        % Simpson formula
        dc = zeros(1,n+1);
        for j = 0:n
            for m = 0:floor(j/2)
                for i = 2*m:j
                    dc(j+1) = dc(j+1) + (-1)^m * (2-sqrt(3))^(-v-i+2*m) *...
                        (2+sqrt(3))^(-v-j+i) / (gamma(m+1) * gamma(v-m+1) *...
                        gamma(i-2*m+1) * gamma(-v-i+2*m+1) * gamma(j-i+1) *...
                        gamma(-v-j+i+1));
                end
            end
        end
        dc = dc * gamma(v+1) * (gamma(-v+1))^2 * (3/Ts)^v;
        
    case 'delta'
        % delta formula
        v = -v; % cancelled at the end when coefficients order is inverted
        % auxiliary matrix F
        F = [ones(n,1) zeros(n,n-1)];
        for j = 2:n
            for i = j:n
                F(i,j) = F(i-1,j) + (i-1) * F(i-1,j-1);
            end
        end
        % delta formula -- coefficients in powers of (gamma*T - 1)
        dc = [(log(2))^v zeros(1,n)];
        for i = 1:n
            for j = 1:i
                dc(i+1) = dc(i+1) + (-1)^(j+1) * (log(2))^(v-i+j-1) * F(i,j) * gamma(v+1) /...
                    (gamma(v-i+j) * gamma(i+1) * 2^i);
            end
        end
        dc = dc * (1/Ts)^v;
        % turned into a causal z^-1 TF...
        temp = tf(0,'Variable','z');
        for i = 1:n+1
            temp = temp + tf([1 -2],1,Ts,'Variable','z')^(i-1) * dc(i);
        end
        dc = temp.num{1}(n+1:-1:1) / Ts; % inverting the order of the coefficients cancels the -v above
        
    case 'impulse'
        % exact impulse response formula
        dc = (Ts*(1:n)) .^ (-v-1) / gamma(-v);
        dc = [Ts^(-v)/gamma(-v+1)-Ts^(-v-1)/gamma(-v), dc];
        
    case 'step'
        % exact step response formula
        dc = Ts^(-v)/gamma(-v+1)-Ts^(-v-1)/gamma(-v);
        for i = 1:n
            dc = [dc, (i*Ts) .^ (-v) / gamma(-v+1) - sum(dc)];
        end
        
    otherwise
        error ('The formula has an invalid format.');
    end
    
    % a tf object is built from vector of coefficients dc
    C = tf(k*dc, 1, Ts, 'Variable', 'z^-1');
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'cfe'
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    switch formula
        
    case '1ofd'
        % first-order backward finite difference formula
        a = [0 ones(1, n+1)];
        b = [0 1 tf([0, v], 1, -1, 'Variable', 'z^-1')];
        for i = 3:n+1
            b = [b, tf([0, -ceil((i-2)/2) * (ceil((i-2)/2) - (-1)^i * v) / ((i-1) * (i-2))], 1, -1,...
                    'Variable','z^-1')];
        end
        dc = contfraceval (a, b, n+1);
        dc.Ts = Ts;
        C = k * dc / Ts^v;
        
    case 'tustin'
        % Tustin formula
        a = [1 tf([-1, -v], [0, 1], -1, 'Variable', 'z^-1')];
        b = [0 tf(2*v)];
        for i = 1:ceil(n/2)
            a = [a, tf(2*i+1, [0, -1], -1, 'Variable', 'z^-1')];
            b = [b, v^2-i^2];
        end
        dc = contfraceval (a, b, ceil(n/2));
        dc.Ts = Ts;
        C = k * (2/Ts)^v * dc;
        
    case {'simpson', '2ofd', '3ofd', 'delta', 'impulse', 'step'}
        % Simpson formula
        % second order finite differences formula
        % third order finite differences formula
        % delta formula
        temp = digital (k, v, Ts, n+2, formula,'mcltime');
        c = temp.num{1};
        c = [1, zeros(1,length(c)-1); c];
        [a, temp] = contfracf (c, n+1);
        b = [temp(1), tf(temp(2))];
        for i = 3:n+2
            b = [b tf([0 temp(i)], 1, -1, 'Variable', 'z^-1')];
        end
        C = contfraceval (a, b, n+1);
        C.Ts = Ts;
        
    otherwise
        error ('The formula has an invalid format.');
    end
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'mcltimeINV'
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    temp = digital(1, -v, Ts, n, formula, 'mcltime');
    C = k * tf(temp.den{1}, temp.num{1}, Ts, 'Variable', 'z^-1');
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
case 'cfeINV'
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    temp = digital(1, -v, Ts, n, formula, 'cfe');
    C = k * tf(temp.den{1}, temp.num{1}, Ts, 'Variable', 'z^-1');
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
otherwise
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    error ('The expansion has an invalid format.');
end

% last of all, the transfer function is normalised so that
% the independent coefficient of the denominator is 1
norm = C.den{1}(1);
C.num{1} = C.num{1}/norm;
C.den{1} = C.den{1}/norm;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品久久久久久久久| 视频在线观看国产精品| 91.com在线观看| 成人免费视频一区二区| 日韩中文字幕区一区有砖一区| www欧美成人18+| 欧美色网站导航| av不卡一区二区三区| 国产在线精品一区在线观看麻豆| 亚洲国产精品综合小说图片区| 日本一区二区三区免费乱视频| 91精品在线观看入口| 在线亚洲欧美专区二区| 国产白丝精品91爽爽久久| 麻豆成人91精品二区三区| 亚洲一区二区三区视频在线| 国产精品人妖ts系列视频| 久久亚洲捆绑美女| 日韩欧美另类在线| 欧美一区二区三区精品| 在线观看亚洲专区| 99国产欧美另类久久久精品| 国产一区91精品张津瑜| 日本少妇一区二区| 日日夜夜一区二区| 天堂va蜜桃一区二区三区漫画版| 亚洲欧美偷拍卡通变态| 国产精品视频一区二区三区不卡| 精品国产乱码久久久久久免费 | 香蕉影视欧美成人| 亚洲黄色av一区| 亚洲日本成人在线观看| 国产精品毛片大码女人| 国产午夜精品久久久久久免费视| 精品国产区一区| 精品国产一二三| 欧美电影免费观看高清完整版在| 91精品婷婷国产综合久久性色| 欧美理论片在线| 欧美丝袜丝交足nylons图片| 欧美伊人久久久久久久久影院| 日本丶国产丶欧美色综合| 欧美自拍偷拍午夜视频| 欧美日韩一区三区| 欧美日韩一级片在线观看| 欧美日韩成人综合在线一区二区| 欧美喷潮久久久xxxxx| 欧美人动与zoxxxx乱| 欧美日本不卡视频| 91精选在线观看| 精品少妇一区二区| 2021中文字幕一区亚洲| 国产午夜亚洲精品理论片色戒| 国产无遮挡一区二区三区毛片日本| 久久亚洲一区二区三区四区| 中文幕一区二区三区久久蜜桃| 欧美国产精品一区| 亚洲三级视频在线观看| 亚洲成人av在线电影| 日韩在线卡一卡二| 国产一区二区三区黄视频 | av午夜精品一区二区三区| 99精品视频在线观看| 欧美日韩中文字幕精品| 欧美一区中文字幕| 久久精品亚洲乱码伦伦中文 | 欧美精品v国产精品v日韩精品 | 欧美电视剧在线观看完整版| 国产免费观看久久| 亚洲在线免费播放| 久久精品99国产国产精| 成人免费毛片片v| 精品视频在线看| 精品久久久网站| 亚洲欧洲国产日本综合| 亚洲一区二区三区自拍| 久久精品国产在热久久| 成人小视频免费在线观看| 在线免费一区三区| 日韩免费观看高清完整版在线观看| 久久久精品综合| 一区二区三区四区在线| 国产在线一区观看| 欧美三级日韩三级国产三级| 国产亚洲精品福利| 性做久久久久久免费观看| 国产激情一区二区三区桃花岛亚洲| 色综合中文综合网| 久久99精品国产麻豆婷婷| 成人va在线观看| 欧美日本精品一区二区三区| 久久精品免视看| 亚洲aaa精品| 99久久99久久久精品齐齐| 欧美mv日韩mv国产网站app| 亚洲视频免费看| 韩国毛片一区二区三区| 欧美中文字幕久久| 国产精品国产自产拍高清av王其 | 亚洲一区精品在线| 国产盗摄一区二区| 欧美丰满一区二区免费视频| 亚洲色图在线播放| 国产精品18久久久久久久久 | 日本欧美久久久久免费播放网| 本田岬高潮一区二区三区| 日韩视频免费观看高清完整版| 亚洲视频免费在线| 国产91精品免费| 日韩欧美亚洲国产另类| 亚洲一区二区视频| 91日韩精品一区| 国产清纯在线一区二区www| 男女性色大片免费观看一区二区 | 国产中文字幕一区| 日韩限制级电影在线观看| 一区二区三区日韩精品视频| 成人激情文学综合网| 精品国产123| 美女精品自拍一二三四| 欧美剧在线免费观看网站 | 欧美不卡一区二区三区四区| 偷拍一区二区三区| 在线观看亚洲一区| 一区二区免费看| 91美女精品福利| 亚洲欧洲色图综合| 成人精品一区二区三区四区 | 国产91精品久久久久久久网曝门| 欧美岛国在线观看| 麻豆91精品视频| 日韩欧美综合在线| 男男成人高潮片免费网站| 精品污污网站免费看| 亚洲国产精品一区二区尤物区| 欧美专区在线观看一区| 亚洲一区二区精品3399| 欧美日韩午夜精品| 亚洲一二三四久久| 欧美三电影在线| 日本视频中文字幕一区二区三区| 欧美一区二区三区不卡| 毛片基地黄久久久久久天堂| 日韩视频国产视频| 激情综合色播五月| 久久久久久久电影| www.一区二区| 亚洲精品乱码久久久久| 欧美日韩国产综合草草| 天使萌一区二区三区免费观看| 欧美一卡二卡三卡| 国产寡妇亲子伦一区二区| 日本一区二区三区久久久久久久久不 | 欧美sm美女调教| 国产成人在线视频免费播放| 国产精品久久久久影院| 91在线小视频| 亚洲国产成人tv| 日韩三级高清在线| 粉嫩aⅴ一区二区三区四区| 日韩理论电影院| 欧美日韩一区久久| 精品一区二区三区香蕉蜜桃| 久久精品欧美一区二区三区麻豆| 不卡的电视剧免费网站有什么| 中文字幕色av一区二区三区| 欧美视频在线观看一区| 麻豆一区二区99久久久久| 国产亚洲福利社区一区| 色噜噜狠狠成人网p站| 日韩成人dvd| 国产欧美日韩另类视频免费观看| 色屁屁一区二区| 天堂一区二区在线| 国产欧美日韩另类视频免费观看| 欧美伊人久久久久久久久影院| 久久精品国产免费看久久精品| 国产精品少妇自拍| 欧美视频你懂的| 国产99精品在线观看| 夜夜嗨av一区二区三区中文字幕 | 日韩小视频在线观看专区| 成人av资源在线观看| 亚洲成人av资源| 日本一区二区在线不卡| 欧美日韩精品高清| 成人在线综合网站| 青青青爽久久午夜综合久久午夜| 国产精品狼人久久影院观看方式| 欧美日韩精品二区第二页| 国产成人综合精品三级| 丝袜美腿成人在线| 成人免费在线播放视频| 欧美mv和日韩mv的网站| 在线视频一区二区三| 国产不卡在线视频| 免费人成精品欧美精品| 国产精品欧美一级免费| 欧美一区二区三区播放老司机| av一区二区久久|