⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hartley.m

📁 国外人编写的一个分数阶系统的控制工具箱
💻 M
字号:
function G = hartley (w, gain, phase, Q, n, type)

% G = hartley (w, gain, phase, n, ordmax, type)
% This function returns a model for a plant
% with a known frequency behaviour.
% The model is either
% G(1)*s^(n*Q) + G(2)*s^((n-1)Q) + ... + G(end-2)*s^(2*Q) + G(end-1)*s^Q + G(end)
% or else the inverse of the above.
% The function receives the gain in dB and the phase in degrees
% for frequencies, in rad/s, specified in w.
% Parameter Q must be supplid;
% if n (the desired number of zeros and poles of the model)
% is not supplied, length(w)-1 is assumed instead;
% type may be 'num' or 'den' for the two types of models stated above:
% it may be ommited, the default being 'den'.
% Duarte Val閞io 2003

if nargin < 5
    n = length(w) - 1;
end
if nargin < 6
    type = 'den';
end
if size(w, 1) < size(w, 2)
    w = w'; % now w is a column vector for sure
end
if size(gain, 1) < size(gain, 2)
    gain = gain'; % now w is a column vector for sure
end
if size(phase, 1) < size(phase, 2)
    phase = phase'; % now w is a column vector for sure
end

if strcmp(type, 'num')
    g = 10.^(gain/20) .* exp(j * deg2rad(phase));
else
    g = 1 ./ (10.^(gain/20) .* exp(j * deg2rad(phase)));
end
W = [];
for i = 0:n
    W = [W, (j*w).^(i*Q)];
end
if n==length(w)
    k = W\g;
else
    k = pinv(W)*g;
end
G = k(end:-1:1);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -