|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
上面的我的系统模型,M,C, K系统。
我的思路是
先假设系统输入白噪声为x(t),对其进行傅立叶变换为X(w),
然后由M, C,K,得到系统的系统的频域响应函数H(w),
则输出为 Y(w)=H(w)X(w),
然后去Y(w)求逆傅立叶变换得到时域响应y(t).
不知道思路对不对?请论坛大侠们帮助。
出现的问题:
第一,白噪FFT变换后,为何第一个值比其他值都大?结果导至输出响应第一个值都比其他的大。
第二,变换响应点的位置,为何响应信号幅值变化那么大?
激励位置1,响应1
激励1,响应2
激励1,响应3
下面是我的程序:
clear all
clc
close all hidden
% Set parameters
% time domain
fs = 512; % Sample frequency
N_Timesample =5120; % #sample in time domain
T=N_Timesample/fs;
% frequency domain
Wmax = 256; % max. frequency (rad/sec)
N_Sample = 2560; % number of frequency samples
dw = Wmax/N_Sample;
Noise_Factor =0; % noise factor
inp = 1; % input point
out = 3; % response point (Change 'out' vaule to get different point's response)
F=5; % Magnitude of Excitation
% degrees of freedom lineal forced system with viscous damping
m1=0.3;m2=0.3;m3=0.3;
c1=0.01;c2=0.01;c3=0.01;c4=0.01;
k1=1000;k2=1000;k3=1000;k4=1000;
mass = [m1,0,0;0,m2,0;0,0,m3]; % mass matrix
damp = [c1+c2,-c2,0;-c2,c2+c3,-c3;0,-c3,c3+c4]; % damp matrix
stiff = [k1+k2,-k2,0;-k2,k2+k3,-k3;0,-k3,k3+k4]; % stiff matrix
W=linspace(0,Wmax,N_Sample);
for ii=1:N_Sample
w=W(ii);
Kd=-w*w*mass+sqrt(-1)*w*damp+stiff;
Kinv=inv(Kd);
H(ii)=Kinv(out,inp)*F;
end
figure(1)
plot(W,real(H)),
xlabel('Frequency (rad/sec)'),ylabel('Real(H)')
% Generate random excitation
t=linspace(0,T,N_Timesample);
rand('state',0)
x=rand(1,N_Timesample);
X=fft(x,N_Timesample/2);
figure(2)
subplot(211)
plot(t,x),xlabel('time(sec)'),ylabel('Amp. x'),
subplot(212),plot(W,real(X))
xlabel('Frequency (rad/sec)'),ylabel('Real(X)'),
% Get the response
Y=X.^H;
y=ifft(Y,N_Timesample);
figure(3)
subplot(211)
plot(W,real(Y))
xlabel('Frequency (rad/sec)'),ylabel('Real(Y)')
subplot(212)
plot(t,real(y))
xlabel('time(sec)'),ylabel('Amp. y'),
%end of program
希望有朋友可以帮忙解决一下。
|
|