我想对单摆运动在matlab中先用四阶龙格库塔法进行数值模拟,然后再对其结果进行频谱分析,但是我查网上频谱分析的程序里面有好像不太懂,
先是我用四阶龙格库塔法弄的数值模拟
mu=2; % 阻尼系数
m=1;% 质量
g=9.8;% 重力加速度
l=1;% 摆长
% 初始条件
xita0=10*pi/180;
dxita0=0;
% 求解时间
t=0:0.01:10-0.01;
% 步长
h=t(2)-t(1);
xitas=xita0;
dxitas=dxita0;
% 循环求解
for i=1:length(t)
t(i+1)=t(i)+h;
xita=xitas(i);
dxita=dxitas(i);
K11 =dxita;
K21=-mu/m*dxita-g*sin(xita)/l;
K12= dxita+h/2*K21;
K22=-mu/m*(dxita+h/2*K21)-g*sin(xita+h/2*K11)/l;
K13 =dxita+h/2*K22;
K23=-mu/m*(dxita+h/2*K22)-g*sin(xita+h/2*K12)/l;
K14 =dxita+h*K23;
K24=-mu/m*(dxita+h*K23)-g*sin(xita+h*K13)/l;
xitas(i+1)=xita+(K11+2*K12+2*K13+K14)*h/6;
dxitas(i+1)=dxita+(K21+2*K22+2*K23+K24)*h/6;
end
figure; plot(t,xitas*180/pi),xlabel('时间(s)'),ylabel('摆角(deg)')
然后用网上的频谱分析的话代码是
N=length(xitas);%数据长度
fs=100;%设定采样频率?
i=0:N-1;
t=i/fs;
%f=100;%设定正弦信号频率?%生成正弦信号?
y=fft(xitas,N);%进行fft变换
mag=abs(y);%求幅值
f=(0:N-1)*fs/N;%横坐标频率的表达式为f=(0:M-1)*Fs/M;
power=mag.^2;
figure
semilogx(f,power);
想知道想知道这个采样频率应该选择什么吗
想知道这个网上的频谱分析代码适合这个单摆运动的分析吗,这个采样频率应该选取多少吗,这个采样频率选取和什么有关吗,这个采样频率好像不太懂