as I said lately about piecewise function , i have problem ?

2 ビュー (過去 30 日間)
ebi
ebi 2013 年 10 月 13 日
コメント済み: ebi 2013 年 10 月 14 日
i want to model part 2 of a paper i attach it as I said before ( i want define a piecewise function like as picture below that t is variable and we have f(t)= piecewise function and i want to plot it and do fourier illustration of this function and use fft function on it ant plot them) i do it with the help of some of mathworks member to stage of formation of piecwise and plot it on matlab
and after that i couldn't continue the procedure of my program . and had error.
please give me some information ... thanks
L=input(' define L (lenght of wagon -m) : ');
V=input(' define V (speed of train -km/h) : ');
X1=input(' define X1(distance betwean 2 wagon -m) : ');
X2=input(' define X2(distance betwean 2 middle wheels -m): ');
X=input(' define X (distance betwean 2 near wheels -m) : ');
W=input(' define W (total weight of wagon and passenger -ton) : ');
V=V*1000/3600;disp([' *** V : (speed of train)= ',num2str(V),' m/s'])
disp([' *** L : (lenght of wagon) = ',num2str(L),' m'])
disp([' *** X1: (distance betwean 2 wagon) = ',num2str(X1),' m'])
disp([' *** X2: (distance betwean 2 middle wheels) = ',num2str(X2),' m'])
disp([' *** X : (distance betwean 2 near wheels) = ',num2str(X),' m'])
disp([' *** W : (total weight of wagon) = ',num2str(W),' ton'])
F1=W*9.81/8;
disp([' *** F1: (force of 1 wheel) = ',num2str(F1),' kN'])
t1=X/V;t2=(X+X2)/V;t3=(2*X+X2)/V;t4=(2*X+X2+(L-X2-2*X)+X1)/V;
disp([' *** F1 = ',num2str(F1),' kN'])
disp([' * t1 = ',num2str(t1),' s'])
disp([' * t2 = ',num2str(t2),' s'])
disp([' * t3 = ',num2str(t3),' s'])
disp([' * t4 = ',num2str(t4),' s'])
t1 =0.0001*round(10000*t1);
t2 =0.0001*round(10000*t2);
t3 =0.0001*round(10000*t3);
t4 =0.0001*round(10000*t4);
F1 =0.0001*round(10000*F1);
t = 0:.001:t4;
F = zeros(size(t));
F((t>=0&t<=t1)) = F1;
F((t>t1&t<t2)) = 0;
F((t>=t2&t<=t3)) = F1;
F((t>=t3&t<=t4)) = 0;
plot(t,F)
figure
k=fourier(F);
plot(t,F)
figure
g=fft(F);
plot(abs(g),[0,100000])
----------------------------------- run
define L (lenght of wagon -m) : 24.5
define V (speed of train -km/h) : 270
define X1(distance betwean 2 wagon -m) : 0.6
define X2(distance betwean 2 middle wheels -m): 20
define X (distance betwean 2 near wheels -m) : 1.5
define W (total weight of wagon and passenger -ton) : 100
*** V : (speed of train)= 75 m/s
*** L : (lenght of wagon) = 24.5 m
*** X1: (distance betwean 2 wagon) = 0.6 m
*** X2: (distance betwean 2 middle wheels) = 20 m
*** X : (distance betwean 2 near wheels) = 1.5 m
*** W : (total weight of wagon) = 100 ton
*** F1: (force of 1 wheel) = 122.625 kN
*** F1 = 122.625 kN
* t1 = 0.02 s
* t2 = 0.28667 s
* t3 = 0.30667 s
* t4 = 0.33467 s
Undefined function 'fourier' for input arguments of type 'double'.
Error in Untitled (line 47)
k=fourier(F);

回答 (1 件)

Walter Roberson
Walter Roberson 2013 年 10 月 14 日
編集済み: Walter Roberson 2013 年 10 月 14 日
Your F is a numeric vector. You can apply a Fast Fourier Transform (fft) or short time fft or the like to a numeric vector, but you cannot apply a full Fourier transform to a numeric vector. A full Fourier transform is something that can only be applied to symbolic expressions.
  3 件のコメント
Walter Roberson
Walter Roberson 2013 年 10 月 14 日
You would look back to your previous Question where I showed the symbolic form http://www.mathworks.co.uk/matlabcentral/answers/90014-how-we-can-define-piecewise-function-in-matlab#comment_173844
You can fourier() the result of the subs() that I show there. Be sure to provide the two additional parameters that the symbolic fourier routine calls for.
ebi
ebi 2013 年 10 月 14 日
thanks a lot Mr Walter Roberson for your information.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSmoothing and Denoising についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by