xiaomixifan89 2013-10-28 15:32
浏览 1379

基于模糊鲁棒控制的车辆半主动悬架分析程序求助

以下是基于模糊鲁棒控制的车辆半主动悬架分析,求各路大神帮忙解释一下程序是啥意思。实现什么功能。非常感谢~

function [] = SGA__suspension_flc_replot()
% /*M-FILE Script SGA__suspension_flc_replot MMM SGALAB /
% /
==================================================================================================
% Simple Genetic Algorithm Laboratory Toolbox for Matlab 7.x
%
% Copyright 2007 The SxLAB Family - Yi Chen - leo.chen.yi@gmail.com
% ====================================================================================================
%File description:
% To replot the data in workspace, which from
% SGA__suspension_flc_quarter.mdl
%
%===================================================================================================
% See Also: SGA__suspension_skyhook_replot
% SGA__suspension_flc_replot
%===================================================================================================
%
%===================================================================================================
%Revision -
%Date Name Description of Change email Location
%10-Jan-2007 Yi Chen Initial version leo.chen.yi@gmail.com Glasgow
%HISTORY$
%==================================================================================================*/

% SGA__suspension_flc_replot Begin

%clear
home
close('all');

%set parameters
Fs = 1000; % Sampling frequency
% t = (0:Fs)/Fs; % One second worth of samples
nfft= 512;
window = hanning(nfft);
noverlap=256;
dflag='none';

%load data from mat file
load('SGA__suspension_flc_quarter.mat');

%set variables according to the order in SGA__suspension_flc_quarter.mdl
% mat file always have simulation time as the first line
time = SGA__suspension_flc_quarter(1,:);

semi_acc = SGA__suspension_flc_quarter(2,:);
passive_acc = SGA__suspension_flc_quarter(3,:);

semi_tyre_load = SGA__suspension_flc_quarter(4,:);
passive_tyre_load = SGA__suspension_flc_quarter(5,:);

semi_suspension_distorsion = SGA__suspension_flc_quarter(6,:);
passive_suspension_distorsion = SGA__suspension_flc_quarter(7,:);

road_displacement = SGA__suspension_flc_quarter(8,:);
% pre data handling
% array_size =size( semi_acc , 2 );
%
% for idx = 1 : 1 : array_size
%

% semi_acc_std(idx) = std(semi_acc(1:1:idx));
% passive_acc_std(idx) = std(passive_acc(1:1:idx));
%

% end

% plot time domain data
% body acc
figure
hold on
% grid on
plot(time,semi_acc,'b',time,passive_acc,'k:');
xlabel('time ( sec.)');
ylabel('body acceleration ( m/sec^2)');
title('1/4 vehicle suspension system body acceleration');
legend('semi-active','passive');

[ acc_reduce_percentage , acc_ave_reduce_percentage ] = average_reduce_data( semi_acc, passive_acc);

figure
hold on
% grid on
plot(time,acc_reduce_percentage,'b',time,acc_ave_reduce_percentage,'k:');
xlabel('time ( sec.)');
ylabel('reduce % ');
title('1/4 vehicle suspension system percentage of body acceleration reduce');
legend('percentage','average percentage');

% tyre loads
figure
hold on
% grid on
plot(time,semi_tyre_load,'b',time,passive_tyre_load,'k:');
xlabel('time ( sec.)');
ylabel('tyre loads( N)');
title('1/4 vehicle suspension system tyre loads');
legend('semi-active','passive');

[ tyre_load_reduce_percentage , tyre_load_ave_reduce_percentage ] = average_reduce_data( semi_tyre_load, passive_tyre_load);

figure
hold on
% grid on
plot(time,tyre_load_reduce_percentage,'b',time,tyre_load_ave_reduce_percentage,'k:');
xlabel('time ( sec.)');
ylabel('reduce % ');
title('1/4 vehicle suspension system percentage of tyre loads reduce');
legend('percentage','average percentage');

%suspension distorsion
figure
hold on
% grid on
plot(time,semi_suspension_distorsion,'b',time,passive_suspension_distorsion,'k:');
xlabel('time ( sec.)');
ylabel('suspension distorsion(m)');
title('1/4 vehicle suspension system suspension distorsion');
legend('semi-active','passive');

[ distorsion_reduce_percentage , distorsion_ave_reduce_percentage ] = average_reduce_data( semi_suspension_distorsion, passive_suspension_distorsion);

figure
hold on
% grid on
plot(time,distorsion_reduce_percentage,'b',time,distorsion_ave_reduce_percentage,'k:');
xlabel('time ( sec.)');
ylabel('reduce % ');
title('1/4 vehicle suspension system percentage of suspension distorsion reduce');
legend('percentage','average percentage');

% plot frequency domain graphs
% figure
% hold on
% grid on
%
% singles=ones(array_size,1);
%
% [FFT_acc_semi,ft]=tfe(singles,semi_acc,nfft,Fs,window,noverlap,dflag);
% [FFT_acc_passive,ft]=tfe(singles,passive_acc,nfft,Fs,window,noverlap,dflag);
% loglog(ft,abs(FFT_acc_passive),':r',ft,abs(FFT_acc_semi),'b');
% xlabel('Frequency(Hz.)');
% ylabel('Amplitude(dB.) ');
% legend('passive std','semi std');
%
%Body Acceleration
figure
% [H_acc_pass,ft]=tfe(road_displacement,passive_acc_std,nfft,Fs,window,noverlap,dflag);
% [H_acc_semi,ft]=tfe(road_displacement,semi_acc_std,nfft,Fs,window,noverlap,dflag);
[H_acc_pass,ft]=tfe(road_displacement,passive_acc,nfft,Fs,window,noverlap,dflag);
[H_acc_semi,ft]=tfe(road_displacement,semi_acc,nfft,Fs,window,noverlap,dflag);
loglog(ft,abs(H_acc_pass),':r' ,ft,abs(H_acc_semi),'b');
% grid on
xlabel('frequency(Hz.)');
ylabel('|acceleration/road displacemen|(dB.)');
title('Transformation function of ''body acceleration / road displacement''');
legend('passive acc','semi acc');

%
% figure(3)
% loglog(ft,ANGLE(FFT_acc_passive),':r',ft,ANGLE(FFT_acc_semi),'b');
% xlabel('Frequency(Hz.)');
% ylabel('Angle(rad)');
% legend('passive','semi');
% title('Agnel of BodyAcc');
%
% figure(4)
% loglog(ft,real(FFT_acc_passive),':r',ft,real(FFT_acc_semi),'b');
% xlabel('Frequency(Hz.)');
% ylabel('Re');
% legend('passive','semi');
% title('Re BodyAcc');
%
% figure(5)
% loglog(ft,imag(FFT_acc_passive),':r',ft,imag(FFT_acc_semi),'b');
% xlabel('Frequency(Hz.)');
% ylabel('Im');
% legend('passive','semi');
% title('Im BodyAcc');

%Tyre load
figure
% [H_acc_pass,ft]=tfe(road_displacement,passive_acc_std,nfft,Fs,window,noverlap,dflag);
% [H_acc_semi,ft]=tfe(road_displacement,semi_acc_std,nfft,Fs,window,noverlap,dflag);
[H_tyreload_pass,ft]=tfe(road_displacement,passive_tyre_load,nfft,Fs,window,noverlap,dflag);
[H_tyreload_semi,ft]=tfe(road_displacement,semi_tyre_load,nfft,Fs,window,noverlap,dflag);
loglog(ft,abs(H_tyreload_pass),':r' ,ft,abs(H_tyreload_semi),'b');
% grid on
xlabel('frequency(Hz.)');
ylabel('|tyre load / road displacemen|(dB.)');
title('Transformation function of ''tyre load / road displacement''');
legend('passive tyre load','semi tyre load');

semi_suspension_distorsion = SGA__suspension_flc_quarter(6,:);
passive_suspension_distorsion = SGA__suspension_flc_quarter(7,:);
%suspension distorsion
figure
% [H_acc_pass,ft]=tfe(road_displacement,passive_acc_std,nfft,Fs,window,noverlap,dflag);
% [H_acc_semi,ft]=tfe(road_displacement,semi_acc_std,nfft,Fs,window,noverlap,dflag);
[H_suspension_distorsion_pass,ft]=tfe(road_displacement,passive_suspension_distorsion,nfft,Fs,window,noverlap,dflag);
[H_suspension_distorsion_semi,ft]=tfe(road_displacement,semi_suspension_distorsion,nfft,Fs,window,noverlap,dflag);
loglog(ft,abs(H_suspension_distorsion_pass),':r' ,ft,abs(H_suspension_distorsion_semi),'b');
% grid on
xlabel('frequency(Hz.)');
ylabel('|suspension distorsion/road displacemen|(dB.)');
title('Transformation function of ''suspension distorsion / road displacement''');
legend('passive suspension distorsion','semi suspension distorsion');

home
clear

% SGA__suspension_flc_replot End

function [ reduce_percentage , ave_reduce_percentage ] = average_reduce_data( semi, passive)

MM = size( semi,2);

for idx = 1 : 1 : MM

reduce_percentage(idx)        = (semi(idx)-passive(idx))/passive(idx);

if( isnan(reduce_percentage(idx)) == 1 )

    reduce_percentage(idx) = 0.0;

end

end

ave_reduce_percentage = mean(reduce_percentage);

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥30 这是哪个作者做的宝宝起名网站
    • ¥60 版本过低apk如何修改可以兼容新的安卓系统
    • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题
    • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
    • ¥15 YoloV5 第三方库的版本对照问题
    • ¥15 请完成下列相关问题!