%---分数阶微分传递函数近似最终正确版程序---%
%------------------------------------------%
%代码实现的主要参考文献:Frequency-Band Complex Noninteger Differentiator:Characterization and Synthesis
%辅助参考:Some approximations of fractional order operators used in control theory
%最开始的时候程序出现了错误,在最后的传递函数前面的系数没有更新
%0.5阶微分的参数
% gamma=0.5;
% alpha=2.5119;
% eta=2.5119;
%
%0.3阶微分的参数
% gamma=0.3;
% alpha = power(100,3/25);
% eta = power(10000,1/5)/alpha;
%0.7阶微分的参数
% gamma=0.7;
% alpha=power(100,7/25);
% eta=power(10000,1/5)/alpha;
%对所有阶的近似结果进行了仿真,根据bode图可知近似结果准确合理
%wh一般为wB的十倍以上,wb为wA的十倍一下
wh=100;
wb=0.01;
wu=1;
%N越大近似进度越高
N=5;
for i=1:9
gamma=i*0.1;
alpha=power(wh/wb,gamma/N);
eta=power(wh/wb,(1-gamma)/N);
wu=1;
w0_=power(alpha,-1/2)*wu;
w0=power(alpha,1/2)*wu;
w1_=w0*eta;
w1=w1_*alpha;
w2_=w1*eta;
w2=w2_*alpha;
w_1=w0_/eta;
w_1_=w_1/alpha;
w_2=w_1_/eta;
w_2_=w_2/alpha;
num1=[1/w_2_ 1];
den1=[1/w_2 1];
sys1=tf(num1,den1);
num2=[1/w_1_ 1];
den2=[1/w_1 1];
sys2=tf(num2,den2);
num3=[1/w0_ 1];
den3=[1/w0 1];
sys3=tf(num3,den3);
num4=[1/w1_ 1];
den4=[1/w1 1];
sys4=tf(num4,den4);
num5=[1/w2_ 1];
den5=[1/w2 1];
sys5=tf(num5,den5);
sys=sys1*sys2*sys3*sys4*sys5*power((wu/wh),gamma);
num=sys.num{1};
den=sys.den{1};
save(['fractional_den_num' num2str(i*0.1) '.mat'],'num','den');
bode(sys);
grid on
hold on
end
- 1
- 2
前往页