Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Ölümbıçağının bitirme tezi ( Turboşarj MATLAB Simu.)


Deathblade

Öne çıkan mesajlar

Merhaba arkadaşlar,
Bitirme tezim başlıkta yazdığım gibi dizel egzoz aşırı doldurma sisteminin matlab üzerinde simulasyonu üzerine.

Daha sonra da ihtiyaç duyarım diye başlık açayım dedim, takıldıkça yazarım.

Sorularıma geçeyim (ilk soru direk en önemlis gidişatı değiştirebilir):

1-Kodları matlab üzerinden yazmamızı istedi hoca. Ees kullansam çok kolay olcaktı işim. Mesala ees üzerinde cp[1]=Cp(CO2;T=T[1]) yazınca t1 sıcaklığında C02 cp'sini veriyor program. Matlab'de böyle bir termodinamik kütüphane tarzında bir şey bulabilir miyim ?

2-Hadi diyelim 1 olmadı. Gerekli kodları ben gömülü olarak yazacağım. İlk olarak başlangıçta egzoz gazının k=cp/cv ısıl kapasite oranı sıcaklığa bağlı olarak lazım. Bunu ees'ten az önce elde ettim grafik olarak, plotdigitizer diye bir program kullanarakta numerik olarak döktüm. Bu numerik değerler elimdeyken nasıl eğri uydurabilirim ve sonradan kullanabilirim ?

Grafik

http://i.imgur.com/8ryn0.png



Numerik Değerler

2.22256 27.0165 53.2639 79.5028 102.819 137.783 177.116 241.193 305.259 372.224 447.916 529.423 628.387 728.802 824.845 912.153 1000.91 1104.22 1206.08 1284.65 1358.86 1440.34 1440.34

1.30116 1.28870 1.27653 1.26610 1.25828 1.24872 1.23830 1.22584 1.21542 1.20732 1.19951 1.19286 1.18650 1.18101 1.17697 1.17409 1.17150 1.16891 1.16661 1.16518 1.16403 1.16289 1.16203

Link to comment
Sosyal ağlarda paylaş

  • 1 ay sonra ...
Help !

http://i.imgur.com/f7OyG.png

Şimdi şöyle, tez için yukarıdaki P-V diagramını çizmem gerekiyor.

Yukarıdaki 6 noktanın hepsi için P ve V değerleri elimde. Logaritmik gibi görünen örneğin 4-5 noktası arası için ise sabit bir formul var. Yukarıya da yazdım,

P_4*V_4^k=P_5*V_5^k

arada bir değer bulunmak isterse de P_4*V_4^k=c dedikten sonra istenilen noktanın hacmi girilerek basınç ya da tersi bulunabilir. 2-3, 3-4, is-1 noktaları arasını plot kullanarak çizdim fakat bu denklemli ilerleyen bölgelere yetemedim.

Aklımda şöyle bir şey var aradan 5-10 tane nokta belirleyip buradan spline geçirmek, ona da sonsuz girdi falan derken ne kadar doğru olacak bilemedim. Bu matlab toollarından işeme yarayabilecek ya da başka bir komutla çok daha hızlı halledebilecek bir durumum var mı ?

Hepinizi seviyorum.
Link to comment
Sosyal ağlarda paylaş

  • 3 hafta sonra ...
Üsteki olayı çözdüm fakat şimdi de şöyle bir şey var.

Cftool da eğri ürettiğim 6-7 farklı grafik var.


function [fitresult, gof] = createFits(x_plot01, y_plot01, x_plot12, y_plot12, y_plot23, x_plot34, y_plot34, x_plot45, y_plot45, x_plot56, y_plot56)
%CREATEFITS1(X_PLOT01,Y_PLOT01,X_PLOT12,Y_PLOT12,Y_PLOT23,X_PLOT34,Y_PLOT34,X_PLOT45,Y_PLOT45,X_PLOT56,Y_PLOT56)
% Create fits.
%
% Data for 'PVDiyagrami' fit:
% X Input : x_plot01
% Y Output: y_plot01
% Data for 'PVDiyagrami2' fit:
% X Input : x_plot12
% Y Output: y_plot12
% Data for 'PVDiyagrami3' fit:
% X Input : y_plot23
% Y Output: y_plot23
% Data for 'PVDiyagrami4' fit:
% X Input : x_plot34
% Y Output: y_plot34
% Data for 'PVDiyagrami5' fit:
% X Input : x_plot45
% Y Output: y_plot45
% Data for 'PVDiyagrami6' fit:
% X Input : x_plot56
% Y Output: y_plot56
% Output:
% fitresult : a cell-array of fit objects representing the fits.
% gof : structure array with goodness-of fit info.
%
% See also FIT, CFIT, SFIT.

% Auto-generated by MATLAB on 24-May-2012 23:38:53

%% Initialization.

% Initialize arrays to store fits and goodness-of-fit.
fitresult = cell( 6, 1 );
gof = struct( 'sse', cell( 6, 1 ), ...
'rsquare', [], 'dfe', [], 'adjrsquare', [], 'rmse', [] );

%% Fit: 'PVDiyagrami'.
[xData, yData] = prepareCurveData( x_plot01, y_plot01 );

% Set up fittype and options.
ft = fittype( 'gauss4' );
opts = fitoptions( ft );
opts.Display = 'Off';
opts.Lower = [-Inf -Inf 0 -Inf -Inf 0 -Inf -Inf 0 -Inf -Inf 0];
opts.StartPoint = [2.2 -1.23978259526207 0.253410720765794 1.8283132509419 -0.739166050010213 0.256281798371332 1.54376527141146 -0.061745298625778 0.311930558967262 1.2921830061264 0.545043545342439 0.293804898609032];
opts.Upper = [Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf];
opts.Normalize = 'on';

% Fit model to data.
[fitresult{1}, gof(1)] = fit( xData, yData, ft, opts );

% Plot fit with data.
figure( 'Name', 'PVDiyagrami' );
h = plot( fitresult{1}, xData, yData );
legend( h, 'y_plot01 vs. x_plot01', 'PVDiyagrami', 'Location', 'NorthEast' );
% Label axes
xlabel( 'x_plot01' );
ylabel( 'y_plot01' );
grid on

%% Fit: 'PVDiyagrami2'.
[xData2, yData2] = prepareCurveData( x_plot12, y_plot12 );

% Set up fittype and options.
ft = fittype( 'gauss3' );
opts = fitoptions( ft );
opts.Display = 'Off';
opts.Lower = [-Inf -Inf 0 -Inf -Inf 0 -Inf -Inf 0];
opts.StartPoint = [71.2967759487512 -0.567745858055583 0.0749689480850106 39.9854352109671 -0.450528239982349 0.109485279563862 25.8999781621985 -0.250629672493714 0.163044148616659];
opts.Upper = [Inf Inf Inf Inf Inf Inf Inf Inf Inf];
opts.Normalize = 'on';

% Fit model to data.
[fitresult{2}, gof(2)] = fit( xData2, yData2, ft, opts );

% Plot fit with data.
figure( 'Name', 'PVDiyagrami2' );
h = plot( fitresult{2}, xData2, yData2 );
% legend( h, 'y_plot12 vs. x_plot12', 'PVDiyagrami2', 'Location', 'NorthEast' );
% Label axes
xlabel( 'x_plot12' );
ylabel( 'y_plot12' );
grid on

%% Fit: 'PVDiyagrami3'.
[xData, yData] = prepareCurveData( y_plot23, y_plot23 );

% Set up fittype and options.
ft = fittype( 'poly1' );
opts = fitoptions( ft );
opts.Lower = [-Inf -Inf];
opts.Upper = [Inf Inf];

% Fit model to data.
[fitresult{3}, gof(3)] = fit( xData, yData, ft, opts );

% Plot fit with data.
figure( 'Name', 'PVDiyagrami3' );
h = plot( fitresult{3}, xData, yData );
legend( h, 'y_plot23 vs. y_plot23', 'PVDiyagrami3', 'Location', 'NorthEast' );
% Label axes
xlabel( 'y_plot23' );
ylabel( 'y_plot23' );
grid on

%% Fit: 'PVDiyagrami4'.
[xData, yData] = prepareCurveData( x_plot34, y_plot34 );

% Set up fittype and options.
ft = fittype( 'poly1' );
opts = fitoptions( ft );
opts.Lower = [-Inf -Inf];
opts.Upper = [Inf Inf];

% Fit model to data.
[fitresult{4}, gof(4)] = fit( xData, yData, ft, opts );

% Plot fit with data.
figure( 'Name', 'PVDiyagrami4' );
h = plot( fitresult{4}, xData, yData );
legend( h, 'y_plot34 vs. x_plot34', 'PVDiyagrami4', 'Location', 'NorthEast' );
% Label axes
xlabel( 'x_plot34' );
ylabel( 'y_plot34' );
grid on

%% Fit: 'PVDiyagrami5'.
[xData, yData] = prepareCurveData( x_plot45, y_plot45 );

% Set up fittype and options.
ft = fittype( 'gauss4' );
opts = fitoptions( ft );
opts.Display = 'Off';
opts.Lower = [-Inf -Inf 0 -Inf -Inf 0 -Inf -Inf 0 -Inf -Inf 0];
opts.StartPoint = [122.202740374761 0.0268032810602805 0.0044103731246938 82.4755007334386 0.0339131995091891 0.00549837983417437 60.6967167225884 0.0472704630020747 0.00793937879869857 40.2549151110612 0.0659416744929432 0.00967472505213017];
opts.Upper = [Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf Inf];

% Fit model to data.
[fitresult{5}, gof(5)] = fit( xData, yData, ft, opts );

% Plot fit with data.
figure( 'Name', 'PVDiyagrami5' );
h = plot( fitresult{5}, xData, yData );
legend( h, 'y_plot45 vs. x_plot45', 'PVDiyagrami5', 'Location', 'NorthEast' );
% Label axes
xlabel( 'x_plot45' );
ylabel( 'y_plot45' );
grid on

%% Fit: 'PVDiyagrami6'.
[xData, yData] = prepareCurveData( x_plot56, y_plot56 );

% Set up fittype and options.
ft = fittype( 'power2' );
opts = fitoptions( ft );
opts.Display = 'Off';
opts.Lower = [-Inf -Inf -Inf];
opts.StartPoint = [1.35553983501774 -1.26588600909486 1.20274161001059e-015];
opts.Upper = [Inf Inf Inf];

% Fit model to data.
[fitresult{6}, gof(6)] = fit( xData, yData, ft, opts );

% Plot fit with data.
figure( 'Name', 'PVDiyagrami6' );
h = plot( fitresult{6}, xData, yData );
legend( h, 'y_plot56 vs. x_plot56', 'PVDiyagrami6', 'Location', 'NorthEast' );
% Label axes
xlabel( 'x_plot56' );
ylabel( 'y_plot56' );
grid on



bunları tek bir grafikte göstermek istiyorum farklı 6 farklı plot çiziyor yetemedim. Help !
Link to comment
Sosyal ağlarda paylaş

Hold on'dan sonraki bütün plotları grafiğe atıyor kendi diye biliyorum. Ulan ben de bişeyler biliyorum ama emin olamıyorum sfdgsfd


Dediğin gibi eksenleri autoscale yapması gerekebilir. Bi grafik diğerinden çok farklıysa mesela biri diğerinin yanında yatay eksene yapışık bi çizgi gibi kalabiliyor diğer grafik çok büyük olduğu için.
Link to comment
Sosyal ağlarda paylaş

Birden fazla çizim olacağı için değerler her grafikte farklı çıkabiliyor arada. Acayip şekiller çıkabilir. (tu) O yüzden eksenleri iyi ayarlamalı bence de. Bir de GnuPlot diye bir program var benim kullandığım, opensource o. Tavsiye ederim, kodları bayağı benzer MATLAB'la, kaynak da istemediğin kadar.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...