Assalamu’alaikum wR wB
Salam sejahtera buat kita semua, semoga kita semua selamat di perjalanan sampai ke tujuan.
Berikut ini ane sampaikan listing program untuk menghitung torsi, akselerasi, topspeed dan waktu tempuh dalam matlab. Program inilah yang ane pakai dalam menghitung akselerasi nvl,cb150, ninja250, perbandingan performa 5-speed dan 6 speed serta perbedaan karakter antara nvl dan cb150 saat drag di jalan lurus.
Program ini terbagi dalam dua file, yang satu file data (lain motor lain datanya, harus di-inputkan dalam file ini), satunya lagi file perhitungan. Silahkan di-copy bebas dan bisa langsung di-run dalam matlab. Jika ingin menerjemahkan dalam bahasa lain juga silahkan. Karena program ini buatan ane, manusia biasa tentunya akan dijumpai kesalahan2, oleh karena itu mohon koreksi dan masukannya, sehingga programnya semakin baik dan semakin benar.File pertama, data untuk cb150r
function [prim_red,ukuran_ban,final_red,red_gir,rpm,Torsi,Power]=dataCB150R
prim_red=75/23;
ukuran_ban=[100 80 17];
%ukuran_ban=[120 70 17];
gir_depan=15;
gir_belakang=45;
sproket_red=gir_belakang/gir_depan;
final_red=[gir_depan gir_belakang sproket_red];
red_gir=[3.083 %37/12
1.941 %33/17
1.5 %30/20
1.227 %27/22
1.041 %25/24
0.923]; %24/26
%dynojet otomotifnet.com
rpm= [3250 3500 3750 4000 4250 4500 4750 5000 5250 5500 5750 6000 6250 6500 6750 7000 7250 7500 7750 8000 8250 8500 8750 9000 9250 9500 9750 10000 10250 10500 10750 11000 11250 11500];
Torsi=[9 9 9 9 9 8.9 8.8 9 9.25 9.6 10 10.2 10.1 10.25 10.3 10.6 10.8 10.7 10.8 10.8 10.7 10.5 10.4 10.1 10 9.9 9.7 9.5 9.3 9.1 8.8 8.4 8.25 7.2 ];
Power=[4.2 4.5 4.8 5.2 5.4 5.7 5.9 6.4 7 7.5 8.1 8.5 8.9 9.4 9.8 10.4 11 11.4 11.9 12.2 12.4 12.5 12.75 12.75 12.9 13.2 13.25 13.2 13.5 13.4 13.1 13 13 11.5];
%dynojet mplus
% rpm= [3600:200:11400 11500];
% Torsi=[9.8 9.8 9.8 9.6 9.5 9.4 9.5 9.6 9.75 10.2 10.4 10.6 10.7 10.75 10.8 10.9 11.1 11.25 11.5 11.7 11.75 11.76 11.7 11.75 11.5 11.4 11.3 11 10.9 10.7 10.4 10.3 10.1 9.9 9.9 9.7 9.4 9.2 8.8 8.5 8];
% Power=[5 5.4 5.6 5.8 5.9 6.1 6.4 6.7 7 7.6 8.2 8.7 9 9.4 9.7 10.2 10.5 11 11.6 12.1 12.5 12.9 13.1 13.5 13.6 13.7 13.9 14 14 14 14.1 14.2 14.25 14.4 14.43 14.3 14.2 14.3 13.8 13.8 13];
file kedua, komputasi
clc
clear
close all
[prim_red,ukuran_ban,final_red,red_gir,rpm,Torsi,Power]=dataCB150R;
% [prim_red,ukuran_ban,final_red,red_gir,rpm,Torsi,Power]=dataNVL;
%Primary reduction Drive Driven Reduksi
prim_red=[23 75 prim_red];
%Gigi transmisi
gigi=length(red_gir);
gigi_rasio=red_gir
%Secondary reduction
scnd_red=final_red;
Ukuran_ban=ukuran_ban
diameter_ban=ukuran_ban(3)*25.4+2*ukuran_ban(1)*ukuran_ban(2)/1000
jari_jari_ban=diameter_ban/2
Keliling_ban=pi*diameter_ban
diameter_gir_belakang=(4/8)*25.4*scnd_red(2)/pi/2
reduksi_ban=diameter_ban/diameter_gir_belakang
berat=200 %kg
rpm=rpm;
Torsi=Torsi;
Power=Power;
rpmx=rpm(1):10:rpm(length(rpm));
torsix=spline(rpm,Torsi,rpmx);
powerx=spline(rpm,Power,rpmx);
rpm=rpmx;
Torsi=torsix;
Power=powerx;
speed=[ ];
torsi_per_speed=[ ];
akselerasi=[ ];
for i=1:length(rpm)
for j=1:gigi
speed(i,j)=Keliling_ban*rpm(i)*60/(gigi_rasio(j)*prim_red(3)*scnd_red(3))/1000000;
torsi_per_speed(i,j)=Torsi(i)*gigi_rasio(j);
% torsi_per_speed(i,j)=Torsi(i)*gigi_rasio(j)/reduksi_ban;
akselerasi(i,j)=torsi_per_speed(i,j)*prim_red(3)*scnd_red(3)/(diameter_ban/2/1000)/berat;%m/det
end
end
% num2str(akselerasi*berat)
%num2str(speed)
x_max=max(max(speed));
figure, plot(speed,rpm);hold on
plot(max(rpm)*ones(1,x_max*1.1),’y’);hold on
plot(max(rpm)*1.1*ones(1,x_max*1.1),’r’);hold off;
% legend(‘gigi-1′,’gigi-2′,’gigi-3′,’gigi-4′,’gigi-5’);
legend(‘gigi-1′,’gigi-2′,’gigi-3′,’gigi-4′,’gigi-5′,’gigi-6’);
title(‘Perubahan Kecepatan Setiap Gigi vs RPM’);
xlabel(‘Kecepatan (km/jam)’);
ylabel (‘rpm’);
grid on;
figure, plot(rpm,Torsi,’r-‘,rpm,Power,’g-‘);
legend(‘Torsi (N.m)’,’Power (HP)’);
title(‘Torsi dan Power’);
ylabel(‘Torsi (N.m) Power (HP)’);
xlabel (‘rpm’);
grid on;
figure,plot(speed,torsi_per_speed);
legend(‘gigi-1′,’gigi-2′,’gigi-3′,’gigi-4′,’gigi-5′,’gigi-6’);
title(‘Perubahan Torsi Per gigi vd Kecepatan’);
ylabel(‘Torsi (N.m)’);
xlabel (‘Kecepatan (km/jam)’);
grid on;
figure,plot(speed,akselerasi);
legend(‘gigi-1′,’gigi-2′,’gigi-3′,’gigi-4′,’gigi-5′,’gigi-6’);
title(‘Perubahan Akselerasi Per gigi vd Kecepatan’);
ylabel(‘Akselerasi (m/s2)’);
xlabel (‘Kecepatan (km/jam)’);
grid on;
grid minor;
% shift gear 1 2 3 4 5
%shift_speed=input (‘Masukkan posisi kecepatan dalam kurung […] = ‘);
%shift_speed=[42.5 64 85 103 118];% km/jam R15
% shift_speed=[42.5 63 83 103]; %NVL std high shift
% shift_speed=[42.5 64 84 105]; %NVL std over shift
% shift_speed=[42.5 55 77 90]; %NVL std low shift
shift_speed=[42.5 67 86 102 117.5];%cb150r
%num2str(speed)
rounding=1000;
shift_rpm=[ ];
for i=1:length(shift_speed)
for j=1:size(speed,1)
round_speed(j,i)=abs(round(speed(j,i)*rounding/shift_speed(i))-rounding);
if round_speed(j,i)==0
shift_rpm=[shift_rpm rpm(j)];
break
end
end
end
% num2str(round_speed)
% shift_rpm
shift_gear=shift_rpm’
redline=11500;
shift1=rpm(1);
shift2=[];
for i=1:length(shift_gear)
rpm_down=shift_gear(i)*gigi_rasio(i+1)/gigi_rasio(i);
rpm_down2=round(rpm_down/10);
rpm_down2=rpm_down2*10;
shift1=[shift1;rpm_down2];
end
shift2=[shift_gear’ redline];
acc_all=[ ];
vel_all=[ ];
for j=1:gigi
n=find(rpm==shift1(j));
m=find(rpm==shift2(j));
acc=akselerasi(n:m,j);
vel=speed(n:m,j);
acc_all=[acc_all
acc];
vel_all=[vel_all;vel];
end
data=[acc_all vel_all];
figure, plot(vel_all,acc_all);
title(‘Akselerasi vs Kecepatan’);
xlabel(‘Kecepatan (km/jam)’);
ylabel (‘Akselerasi (m/det2)’);grid on
grid minor
vel0=0;
s_tot=0;
t_tot=0;
perf_all=[ ];
vel_all=vel_all*1000/3600;
x_vel=1:length(vel_all);
smoothing=1:0.1:length(vel_all);
vel_all=spline(x_vel,vel_all,smoothing);
acc_all=spline(x_vel,acc_all,smoothing);
max_speed=speed(size(speed,1),size(speed,2))
max_speed=max_speed*1000/3600;
finish=800;
for i=1:length(vel_all)
%
t=(vel_all(i)-vel0)/acc_all(i);
s=s_tot+vel0*t+0.5*acc_all(i)*t^2;
t_tot=t_tot+t;
s_tot=s;
vel0=vel_all(i);
perf_all=[perf_all;
t_tot s vel_all(i)*3600/1000 acc_all(i)];
if s_tot>=finish
break
end
end
perf_all;
t_tot;
s_tot;
t=0;
% p=size(1,perf_all)
velnol=perf_all(size(perf_all,1),3);
vel0=velnol*1000/3600;
acc0=perf_all(size(perf_all,1),4);
s_tot=s_tot;
t_tot=t_tot;
det_t=0.01;
perf_all2=[];
while s_tot<finish
s=s_tot+vel0*det_t+0.5*acc0*det_t^2;
t=t+det_t;
t_tot=t_tot+det_t;
if vel0<max_speed
vel0=vel0+acc0*det_t;
else
vel0=max_speed;
end
s_tot=s;
perf_all2=[perf_all2;
t_tot s_tot vel0*3600/1000 acc0];
end
t_tot2=t_tot;
s_tot2=s_tot;
velend=vel0*3600/1000;
perf=[perf_all;perf_all2];
%num2str(perf)
figure, plot(perf(:,1),perf(:,4));
title([‘Akselerasi sampai Jarak ‘ num2str(finish) ‘ m dan Waktu yang dibutuhkan’]);
xlabel(‘Waktu (detik)’);
ylabel (‘Akselerasi (m/det2)’);grid on
text(0.5*max(perf(:,1)),0.9*max(perf(:,1)),[‘Akselerasi =’ num2str(perf(size(perf,1),4)) ‘ m/det2’]);
text(0.5*max(perf(:,1)),0.85*max(perf(:,1)),[‘Waktu =’ num2str(perf(size(perf,1),1)) ‘ detik’]);
figure, plot(perf(:,1),perf(:,3));
title([‘Kecepatan puncak sampai Jarak ‘ num2str(finish) ‘ m dan Waktu yang dibutuhkan’]);
xlabel(‘Waktu (detik)’);
ylabel (‘Kecepatan (km/jam)’);grid on
text(4.5,x_max*0.75,[‘Kecepatan =’ num2str(perf(size(perf,1),3)) ‘ km/jam’]);
text(4.5,x_max*0.7,[‘Waktu =’ num2str(perf(size(perf,1),1)) ‘ detik’]);
figure, plot(perf(:,1),perf(:,2));
title([‘Jarak ‘ num2str(finish) ‘ m dan Waktu yang dibutuhkan’]);
xlabel(‘Waktu (detik)’);
ylabel (‘Jarak Tempuh (m)’);grid on
text(0.5*max(perf(:,1)),0.9*max(perf(:,2)),[‘Jarak =’ num2str(perf(size(perf,1),2)) ‘ m’]);
text(0.5*max(perf(:,1)),0.85*max(perf(:,2)),[‘Waktu =’ num2str(perf(size(perf,1),1)) ‘ detik’]);
Jangan lupa, belajar matlab dulu, bagi yang belum faham. Semoga bermanfaat, wassalamu’alaikum wR wB.
mantab bro
ane gak punya matlab 🙁
Agk susah dpt prog matlab pak brow…
Formula untuk excel ad ga pak bro?suwun 😉
biasanya mhs teknik punya
versi excell nggak ada
Sangat njlimet dan sangat berguna kalau mau telaten mantab mas terima kasih sehat selalu
amiin
Nganggo hp, ga mudeng
coding,.
sik asik, sik asik,.
sambil ndngerin backsound si ayu ting ting
😀
No comment
Gearing commander samakah ?
lain bro, kalo gearing commander cuma menghitung speed untuk tiap gigi dan rpm
harusnya pada kalimat terahir “jangan lupa belajar matlab dulu, bagi yang belum faham” itu tanpa koma…
mumet tenan dengkule
😀 hehehehe
gak ngerti blass!!
seandainya mesin scorpio diwariskan ke adiknya si byson…
alangkah gagahnya tu si kebo…….
wah matlab…
pake pascal om…
pak klo file pertama diisi mtor lain terus perhitungn file kedua gmna?
file pertama : ganti data -> save
file kedua : langsung pencet f5, atau ganti dulu posisi kecepatan ketika shifting gear
Yang suka ngeBC pada pening liat listing diatas.
et dah ruwet banget pak :O
http://sijidewe.com/2014/02/04/primadona-touring-puncak-pass-si-nyonya-tua-tapi-bertenaga
nambah ilmu baru nih, makasih
sama2 bro
real test aja lah, variabel tak terduganya lebih terexplor.
bahasa program matlab pakai apa om ? pascal, java atau c++ ?
pake matlab bro abay
Oh. Tp bahasa basis programming kayak delphi pake pascal nah matlab pake bahasa programming apa om? Hehe tanya balik lagi
basis bahasanya C++
tapi matlab cuma buat analisis, bukan untuk dikompilasi menjadi XXX.exe
Oh c++, thank you om admin
kalo visual basic beda ya pak?
harusnya beda, karena vb kan bisa di-compile jadi exe