MATLAB Answers

Fractional order transfer function

24 views (last 30 days)
Abdelkarim Jabrane
Abdelkarim Jabrane on 13 Dec 2019
Commented: Walter Roberson on 3 Jan 2020
I tried to write a matlab script for the computation of this transfer function but I keep receving an error message saying that the exponent must a scalar integer.
How can I overcome this issue?
Thank you in advance.
  4 Comments
Abdelkarim Jabrane
Abdelkarim Jabrane on 13 Dec 2019
Sorry I missed to paste the definition of s as Laplace transform operator. C(s) is a transfer function in continuos time domain.
Thank you very much for the correction, I appreciate it.
s=tf('s');
v=20;
a=5;
denom=0;
for k=1:v
denom=denom+((s/a)^((k-1)/v));
end
C=1/denom;
In this way it will show an error message.

Sign in to comment.

Answers (1)

Jyothis Gireesh
Jyothis Gireesh on 2 Jan 2020
A possible workaround to this scenario may to be define the transfer function using symbolic variables. You may use the following code to implement the same.
syms s k;
v = 20;
a = 5;
C = 1/symsum((s/a)^((k-1)/v),k,1,v);
The above symbolic function can be provided as input to “ilaplace ()” to get the time-domain representation of the same. However do note that due to the presence of fractional order terms in the denominator, the final result may be a piecewise approximation of the function.
  1 Comment
Walter Roberson
Walter Roberson on 3 Jan 2020
The piecewise() approximation is more to avoid a singularity than because of fractional order terms.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!