آموزش متلب

جاذب لورنز lorenz attractor

جاذب لورنز lorenz attractor

در این بخش برنامه جاذب لورنز را با استفاده از دو روش رانگ کوتای مرتبه4 و ode45 با توجه به توضیحات داده شده مینویسم. جاذب لورنز یک سیستم آشوبناک است که برای نختسن بار توسط ادوارد لورنز از انستیتو تکنولوژی ماساچوست معرفی شد.

سیستم معادلات لورنز عبارتند از

 

نمی خواهم در مورد نحوه استخراج این معادلات بحث کنم و تنها به این بسنده می­کنم که اساس آنها مباحث فیزیکی در ارتباط با جابجایی اتمسفراست. متغیرهای x، y و z نشان دهنده کمیت ها فیزیکی همچون دما و سرعت سیال هستند و پارامترها معرفی شده مربوط به ویژگیهای جو می باشند که با داده های زیر معین می شوند،

در ابتدا این معادلات را با استفاده از روش رانگ کوتا حل می کنیم. تابع Lorenz_rk اینکار را انجام می دهد. حاصل کار بصورت یک انیمیشن نمایش داده می­شود.

function lorenz_rk

%—————–

N=5000;

sigma = 10;

rho = 25;

beta = 8/3.;

t=linspace(0,50,N); % time between 0-5s

h=t(2)-t(1);   % time step

f=@(x,y) sigma*(y-x);

g=@(x,y,z) x*(rho-z)-y;

u=@(x,y,z) x*y-beta*z;

x(1)=1;

y(1)=0;

z(1)=0;

for i=1:length(t)-1

kx1=f(x(i),y(i));

ky1=g(x(i),y(i),z(i));

kz1=u(x(i),y(i),z(i));

%————————

kx2=f(x(i)+h/2*kx1,y(i)+h/2*ky1);

ky2=g(x(i)+h/2*kx1,y(i)+h/2*ky1,z(i)+h/2*kz1);

kz2=u(x(i)+h/2*kx1,y(i)+h/2*ky1,z(i)+h/2*kz1);

%————————

kx3=f(x(i)+h/2*kx2,y(i)+h/2*ky2);

ky3=g(x(i)+h/2*kx2,y(i)+h/2*ky2,z(i)+h/2*kz2);

kz3=u(x(i)+h/2*kx2,y(i)+h/2*ky2,z(i)+h/2*kz2);

%————————

kx4=f(x(i)+h*kx3,y(i)+h*ky3);

ky4=g(x(i)+h*kx3,y(i)+h*ky3,z(i)+h*kz3);

kz4=u(x(i)+h*kx3,y(i)+h*ky3,z(i)+h*kz3);

%————————

x(i+1)=x(i)+h/6*(kx1+2*kx2+2*kx3+kx4);

y(i+1)=y(i)+h/6*(ky1+2*ky2+2*ky3+ky4);

z(i+1)=z(i)+h/6*(kz1+2*kz2+2*kz3+kz4);

end

body = line( …

‘color’,’b’, …

‘LineStyle’,’none’, …

‘Marker’,’.’, …

‘erase’,’none’, …

‘xdata’,[],’ydata’,[],’zdata’,[]);

axis([ min(y)-eps max(y)+eps…

min(z)-eps max(z)+eps])

for j=2:N

set(body,’XData’,y(j),’YData’,z(j))

drawnow

end

plot(y,z,’.’)

xlabel(‘y’)

ylabel(‘z’)

با استفاده از تابع ode45 این سیستم را میتوانیم بشکل زیر حل کنیم که با نام Lorenz_ode مشخص شده است.

function Lorenz_ode

close all

x0=1;

y0=0;

z0=0;

N=10000;

[t,Y] = ode45(@lorenz_at,linspace(0,50,N),[x0 y0 z0]);

body = line( …

‘color’,’b’, …

‘LineStyle’,’none’, …

‘Marker’,’.’, …

‘erase’,’none’, …

‘xdata’,[],’ydata’,[],’zdata’,[]);

axis([ min(Y(:,2))-eps max(Y(:,2))+eps…

min(Y(:,3))-eps max(Y(:,3))+eps])

for j=2:N

set(body,’XData’,Y(j,2),’YData’,Y(j,3))

drawnow

end

plot(Y(:,2),Y(:,3),’.’)

xlabel(‘y’)

ylabel(‘z’)

function dy=lorenz_at(t,y)

dy=zeros(3,1);

SIGMA = 10;

RHO = 25;

BETA = 8/3.;

dy(1)=SIGMA*(y(2)-y(1));

dy(2)=y(1)*(RHO-y(3))-y(2);

dy(3)=y(1)*y(2)-BETA*y(3);

مقاله متلب,مطلب,متلب,مقاله برق,مقاله قدرت,مقاله مطلب,مقاله سیمولینک,دانلود متلب,دانلود مقاله متلب,مقالهmatlab ,آموزش متلب,مطلب,متلب,آموزش برق,آموزش قدرت,آموزش مطلب,آموزش سیمولینک,دانلود متلب,دانلود آموزش متلب,آموزشmatlab ,پروژه متلب,مطلب,متلب,پروژه برق,پروژه قدرت,پروژه مطلب,پروژه سیمولینک,دانلود متلب,دانلود پروژه متلب,پروژهmatlab ,

سعید عربعامری
من سعید عربعامری نویسنده کتاب 28 گام موثر در فتح متلب مدرس کشوری متلب و سیمولینک و کارشناس ارشد مهندسی برق قدرتم . بعد از اینکه دیدم سایتهای متعدد یک مجموعه کامل آموزش متلب و سیمولینک ندارند به فکر راه اندازی این مجموعه شدم
http://sim-power.ir

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *