File Exchange

## FOTF Toolbox

version 1.3 (2.31 MB) by Dingyu Xue

### Dingyu Xue (view profile)

A collection of MATLAB files for fractional calculus and fractional-order control

Updated 25 Jul 2017

A companion with the book. Dingyu Xue. Fractional-order Control Systems - Fundamentals and Numerical Implementations. Berlin: de Gruyter, 2017.
Also a standard toolbox for fractional calculus and fractional-order control.
(1) High precision algorithms are provided for fractional derivatives and fractional differential equations;
(2) Two classes, FOTF and FOSS, are provided to fully support the modelling, analysis and design of multivariable fractional-order systems;
(3) A Simulink blockset, fotflib, is provided. Together with the modelling schemes proposed, fractional-order systems of any complexity can be modeled and simulated.

### Cite As

Dingyu Xue (2019). FOTF Toolbox (https://www.mathworks.com/matlabcentral/fileexchange/60874-fotf-toolbox), MATLAB Central File Exchange. Retrieved .

YangQuan Chen

excellent!

Bingkuan Yin

### Bingkuan Yin (view profile)

Ciro Bermudez Marquez

Bo

### Bo (view profile)

The 'optimfopid.fig' issue is solved by reinstalling the FOTF toolbox.

Hello . I want to solve a fractional differential equation with FOTF so that its input is exponential. Please guide me! Thanks

Hello . I want to solve a fractional differential equation with Fouf so that its input is exponential. Please guide me! Thanks

Haiyong Qin

### Haiyong Qin (view profile)

Great work! Thanks very much, Prof. Xue

shuai lyu

King Thang

shilpam malik

salwan yousif

### salwan yousif (view profile)

i have problem when i use the following command
sys=fotf([2012.4087 107.2882 1.0305],[1.8063 0.93529 0],,);
opt = stepDataOptions('InputOffset',-1.5,'StepAmplitude',-2);

figure(2)
step(sys,opt);

the error are Undefined operator '/' for input arguments of type 'ltioptions.step'.

Error in fotf/step (line 12)
if nargin==1, t=[0:0.2:10]'; elseif length(t)==1, t=0:t/100:t; end

Error in test (line 5)
step(sys,opt);

Wei Gao

wenchao wang

cheballah fatima

### cheballah fatima (view profile)

I can not download FOTF toolbox. You can send it to me?

hua chen

Bilal

### Bilal (view profile)

Thanks for the toolbox. I'm having a problem when computing the unit feedback of a FOTF transfer function with time delay. The error message is

Error using fotf/feedback (line 19)
delay in incompatible

How can i obtain the closed loop transfer function of a FOTF with time delay ?

ce zhao

### ce zhao (view profile)

thanks very much!They are very useful for my study.

Ti Mi

Thank you!!! :)

Dingyu Xue

### Dingyu Xue (view profile)

Sorry mohammed for the late response. e-22 like values cannot be handled under the double precision framework.

jingyu

### jingyu (view profile)

when I use FOTF TOOL G=fotf([1.1 1.9 0.4],[1.8 0.5 0],[0.8 2],[1.2 0]), I keep getting the error:Cannot redefine class 'fotf' without a call to 'clear classes'.
classdef fotf
properties
num, nn, den, nd, ioDelay
end
methods
function G=fotf(a,na,b,nb,T)
if isa(a,'fotf'), G=a;
elseif isa(a,'foss'), G=foss2fotf(a);
elseif nargin==1 & (isa(a,'tf')|isa(a,'ss')|isa(a,'double')),
a=tf(a); [n1,m1]=size(a); G=[]; D=a.ioDelay;
for i=1:n1, g=[]; for j=1:m1,%D(i,j)=a(i,j).ioDelay;
[n,d]=tfdata(tf(a(i,j)),'v'); nn=length(n)-1:-1:0;
nd=length(d)-1:-1:0; g=[g fotf(d,nd,n,nn,D(i,j))];
end, G=[G; g]; end
elseif nargin==1 & a=='s', G=fotf(1,0,1,1,0);
else, ii=find(abs(a)<eps); a(ii)=[]; na(ii)=[];
ii=find(abs(b)<eps); b(ii)=[]; nb(ii)=[];
if length(b)==0, b=0; nb=0; end
if nargin==4, T=0; end
G.num=b; G.den=a; G.nn=nb; G.nd=na; G.ioDelay=T;
end, end, end, end

Volodymyr Moroz

mohammed

mohammed

mohammed

### mohammed (view profile)

Thank you very much for this valuable tool,
however, when I using tiny numbers (let say e-22) in a matrix "a" of "fotf(a,na,b,nb)" it just ignores this value, is that something can be sorted?

cui zhanbiao

Bo

### Bo (view profile)

Thank you very much for this useful toolbox

cui zhanbiao

### mohammad amin rostami (view profile)

I have fractional PD controller like this form

Gc(s)=kp[1+kds]^y (y=gamma .it is not alfa or lamda).
how i can simulate it?

How can we calculate the Lyapunov Exponents of a system of fractional differential equations?

Chuang Li

abdullah ates

### abdullah ates (view profile)

Thank you very much for this really useful toolbox.

cbzeng

x x

x x

Genchen Li

### Genchen Li (view profile)

Thanks a lot,Prof Xue!My undergraduate design is about fractional-order linear sysytems and your book helps me remarkably.

Dingyu Xue

### Dingyu Xue (view profile)

Dear Jesus Navarro
Thanks for pointing out the bug. In the original code, u supposes to be a column-based matrix for each input signal. The command lsim(G,u',t) should be used.
Therefore, it is not convinient in this way. To remove the bug, the first three lines of the code can be rewritten as follows, such that the command lsim(G,u,t) can also be used

[n,m]=size(G); t0=t(1); t1=t(end); [nu,mu]=size(u);
if nu==m & mu==length(t), u=u.'; end
if nargout==0, lsim(tf(zeros(n,m)),'w',zeros(size(u)),t); end

Jesus Navarro

### Jesus Navarro (view profile)

So far I like what you have contributed. I am having one issue. Whenever I create a fotf with t=1:0.001:10; and u=sin(t.^2); and run lsim(G,u,t), I keep getting the error:

"Index exceeds matrix dimensions."

and it displays:

Error in fode_sol9 (line 10)
y1(i)=(u(i)-sum(A.*a./[h.^na]))/D;

Error in fotf/lsim (line 6) y2=fode_sol9(g.den,g.nd,g.num,g.nn,uu,t,5);

I wanted to make sure if the code you have submitted is correct or maybe there is something that needs to be changed slightly. Thank you!

YongGe Yang

### YongGe Yang (view profile)

 25 Jul 2017 1.3 Some bugs are fixed; Suggestions from Professor Igor Podlubny are acccepted, and a set of benchmark problems for FODEs is updated and a paper is modified, with Simulink modelling schemes. 2 Jun 2017 1.2.0.0 Updated for the book "Dingyu Xue. Fractional-order Control Systems - Fundamentals and Numerical Implementations. Berlin: de Gruyter", scheduled for printing TODAY (2 June, 2017). Some of the files are updated and all the files are now with comments. 3 Jan 2017 1.1.0.0 The comments on syntax to all the functions are added. The compatibility to earlier versions of MATLAB are supported.
##### MATLAB Release Compatibility
Created with R2016b
Compatible with any release
##### Platform Compatibility
Windows macOS Linux