Fractional order transfer function
26 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
Jakob B. Nielsen
2019 年 12 月 13 日
編集済み: Jakob B. Nielsen
2019 年 12 月 13 日
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;
回答 (1 件)
Jyothis Gireesh
2020 年 1 月 2 日
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 件のコメント
Walter Roberson
2020 年 1 月 3 日
The piecewise() approximation is more to avoid a singularity than because of fractional order terms.
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!