Creating FRF with Multi Degree of Freedom System
    조회 수: 12 (최근 30일)
  
       이전 댓글 표시
    
Hi,
I have 50*8 Amplitude vs Rotor Speed Data and also 50*8 Frequency vs Rotor Speed Data. 50 means the rotor speed limit.
8 means that degree of freedom is eight.
I don't know how can I create FRF for my case. Can you give me some suggestions.
댓글 수: 0
답변 (1개)
  SOUMNATH PAUL
      
 2024년 1월 17일
        Hi, 
As per my understanding you have two sets of data matrices, each matrix is 50*8 which means you have data for 50 different rotor speeds and for each rotor speed there are 8 different degrees of freedom.  
Since you have 8 degrees of freedom, we need to create 8 FRFs. 
 Firstly, we need to load the csv data set in the MATLAB workspace. You can go through this page to understand how to load csv data in the workspace:  https://in.mathworks.com/help/matlab/ref/readmatrix.html 
 After the data is loaded, we need to create a script which loops through each degree of freedom and for each one plot the amplitude vs frequency data.  
% Assuming your data is loaded into two variables: amplitudeData and frequencyData 
% Each of these variables is a 50x8 matrix. 
% Predefine the figure window size 
figure('Units', 'normalized', 'Position', [0.1, 0.1, 0.8, 0.8]); 
% Loop through each degree of freedom 
for dof = 1:8 
    % Extract the data for the current degree of freedom 
    amplitude = amplitudeData(:, dof); 
    frequency = frequencyData(:, dof); 
    % Create a subplot for each degree of freedom 
    subplot(2, 4, dof); 
    % Plot the FRF for the current degree of freedom 
    plot(frequency, amplitude, 'LineWidth', 1.5); 
    % Label the axes 
    xlabel('Frequency (Hz)'); 
    ylabel('Amplitude'); 
    % Add a title to the plot 
    title(['FRF - DOF ' num2str(dof)]); 
    % Optionally, add grid and set axis limits 
    grid on; 
    xlim([min(frequency), max(frequency)]); 
    % Automatic y-axis limits can be set with 'ylim auto' 
    % If you prefer manual limits, replace 'auto' with [ymin ymax] 
    ylim('auto'); 
end 
% Adjust subplot spacing 
subplot_adjustment = 0.04; 
subplots = get(gcf, 'Children'); 
set(subplots, 'Position', get(subplots, 'Position') + [-subplot_adjustment, -subplot_adjustment, subplot_adjustment*2, subplot_adjustment*2]); 
% Add a super title to the entire figure 
sgtitle('Frequency Response Functions for 8 Degrees of Freedom'); 
Hope it helps!
Regards,
Soumnath
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

