Fractional order transfer function

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 comentarios

Jakob B. Nielsen
Jakob B. Nielsen el 13 de Dic. de 2019
Post your code, otherwise we have no chance of helping you save for guesswork :)
v=20;
a=5;
C=1;
for k=2:v
C=C+1/((s/a)^((k-1)/v));
end
Above is the reported the section of the code in question
Jakob B. Nielsen
Jakob B. Nielsen el 13 de Dic. de 2019
Editada: Jakob B. Nielsen el 13 de Dic. de 2019
That is odd. It runs just fine for me, and looking at it it shouldnt give an error...
However, you do make a mistake in the evaluation so lets take that; the transfer function is one divided by your sum. Your function is the sum of one divided by each individual component. I think you are looking for this;
v=20;
a=5;
s=2;
clear denom
denom=0;
for k=1:v
denom=denom+((s/a)^((k-1)/v));
end
C=1/denom;
Abdelkarim Jabrane
Abdelkarim Jabrane el 13 de Dic. de 2019
Editada: Abdelkarim Jabrane el 13 de Dic. de 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.

Iniciar sesión para comentar.

Respuestas (1)

Jyothis Gireesh
Jyothis Gireesh el 2 de En. de 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 comentario

Walter Roberson
Walter Roberson el 3 de En. de 2020
The piecewise() approximation is more to avoid a singularity than because of fractional order terms.

Iniciar sesión para comentar.

Productos

Versión

R2019b

Preguntada:

el 13 de Dic. de 2019

Comentada:

el 3 de En. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by