دانشنامه تخصصی مهندسی ایران

دانشنامه تخصصی مهندسی ایران

 engpedia   راه اندازی کانال تلگرام ( EngPedia_ir@ )

                همراه با مطالب ویژه سایت بصورت رایگان

  • نسخه ۱۲.۱ نرم افزار Aveva Marine در سایت قرار گرفت. (اینجا)
  • نسخه ۱۰.۵۲ نرم افزار Plus 2D در سایت قرار گرفت. (اینجا)
  • نسخه ۱۱.۰ نرم افزار AGI Systems Tool Kit-STK در سایت قرار گرفت.(اینجا)

همکاران

یک مثال برنامه نویسی انتقال حرارت در MATLAB

مدیریت بهمن ۸, ۱۳۹۲ 20052 بازدید ۶۱دیدگاه

هدف بدست آوردن توزیع انتقال حرارت در صفحه زیر می باشد. توزیع درجه حرارت در یک صفحه مستطیلی با دمای مرز بالای ۰ درجه زانکین و دمای مرز پایین ۱۰۰ رانکین و دمای مرزهای راست و چپ ۰ درجه رانکین به دست آورده شده است. ابعاد صفحه مستطیلی ۱ فوت در ۲ فوت است. تمام شرایط مرزی از نوع دما ثابت هستند. هندسه صفحه مستطیلی در شکل زیر نشان داده شده است.

 


 

معاله دیفرانسیلی پاره ای برای انتقال حرارت دوبعدی دایم به شکل زیر است:

 


 

پس از گسسته سازی معادله دیفرانسیل جریی فوق با روش تفاضلات محدود (Finite Deference) گام های مکانی را ۰.۵ در نظر می گیریم که در اینصورت IM=21 و JM=41 می باشد. در نتیجه توزیع دما را برای ۷۴۱ گره بایستی پیدا کرد. شرایط اولیه را برای همه نقاط داخلی T=0 در نظر گرفته می شود.

کد برنامه MATLAB:

 

برنامه با حلقه for نوشته شده است. در نهایت کانتورهای دما به شکل زیر در می آید.

 

 Heat Transfer Example in MATLAB

 

 

نظرات شما باعث دلگرمی و پیشرفت ما می شود.

telegram: @EngPedia_ir

61 پاسخ به “یک مثال برنامه نویسی انتقال حرارت در MATLAB”

  1. رضا گفت:

    سلام اررور میدهد
    ans =

    bottom

    ans =

    left

    ans =

    top

    ans =

    right

    Undefined function or variable ‘dx’.

    Error in Heat (line 10)
    dT=dx^2/4;
    لطفا راهنمایی کنید

  2. رضا گفت:

    ممنون یه جا رو اشتباه تابپکردم

  3. حربی گفت:

    با سلام خدمت مدیر محترم سایت.
    ممنون از سایت خیلی خوبتون
    یک سوال داشتم در مورد خط ۲۵
    برای گسسته سازی معادله لاپلاس dt چرا گذاشتید در صورتی که در معادله لاپلاس صحبتی از زمان نشده.
    و یک سوال دیگر من اگر بخواهم تولید حرارت در خود جسم داشته باشم چه کار باید بکنم؟
    ببخشید طولانی شد
    ممنون میشم راهنمایی کنید.

    • Admin گفت:

      سلام
      خواهش میکنم.
      منظور از dt همون dx^2/4 هست که در واقع یه نام گذاری هست. منظور زمان نیست!
      اگر حرارت در خود جسم داشته باشین، که معمولا با نام Heat Generation شناخته میشه، کافیه معادله اون رو تو معادله اولیه لحاظ کنید. منظور از معادله، همون معادله بقای انرژی هست.
      موفق باشید.

  4. سروش گفت:

    با سلام و خسته نباشید’
    اگر بخوام جوری برنامه نویسی کنم که برای هر هندسه ورودی کانتور دما رسم کنه باید چیکار کنم?!

  5. سام گفت:

    سلام
    جناب یه سوال داشتم!
    من اگه بخوام دمای هر گره را بدست بیارم چیکار باید بکنم مثلاT(5.6(

  6. محسن گفت:

    سلام . ممنون از پست این مطلب. جناب مهندس اگه زمان داشته باشیم باید چطوری مسئله رو بنویسیم؟‌ انتقال حرارت گذرا یک بعدی با گام های زمانی ۰.۰۰۱…

    میشه راهنمایی کنید؟

    • Admin گفت:

      سلام
      باید اول معادله کلی رو بر حسب زمان بدست بیارین.
      بعش در هر بازه زمانی معادله رو حل کنید.
      یعنی در هر step زمانی باید یکبار معادله رو برای کل جسم بنویسین…
      مثلا در زمان ۱ ثانیه دمای هر گره چقدر هست. اگر استپ شما ۰.۱ هست، در زمان ۱.۱ ثانیه دمای هر گره چقدر میشه..
      data بدیت اومده در روش گذرا بیشتر هست.
      چون در هر زمان، نیاز به داشتن دمای گره ها در یک استپ زمانی قبل هستیم، باید در هر اصتپ زمانی یکبار معادله کامل حل بشه.
      موفق باشید.

  7. عسل گفت:

    با سلام وخسته نباشید
    من می خوا برای یک دیوار تو خالی توزیع دما بدست بیارم ولی هر کاری کردم تا یک هندسه برای دیوار توخالی بکشم نتونستم
    تا اینکه دو تا هندسه جداگانه کشیدم که مکمل هم بودن و هندسه مورد نطرم بدست اومد ولی حالا که می خوام از دستور کانتور استفاده کنم فقط می تونم دو تا مختصات(مربوط به یکی از هندسه ها)رو تو دستور کانتور همراه دما بذارم آیا راهی هس که بشه این دو هندسه رو باهم تبدیل به یک هندسه مجزا کرد یا راهی هس که بشه تو دستور کانتور بشه دوتا هندسه رو باهم بکشه وتوزیع دما رو روی اونا رسم کنه؟

  8. مهدی گفت:

    با سلام
    میخوام dq را از فرمول q=-kdT/dx بدست بیارم و به dT^2/dz برسم که اروور میده لطفا راهنمایی کنید با چه دستوری بنویسم ؟ من با دستور dsolve مینویسم. در نهایت میخوام به یک T برسم که با بشه بهش مقدار داد عدد یا مثل l/2 ؟

  9. محمد گفت:

    این تعداد ۲۱ و ۴۱ چطوری با گام ۰.۵ به دست آمدند و چرا تعداد گره ها ۱۹*۳۹ است؟

  10. محمد گفت:

    فکر نمی کنید وقتی صورت مسأله گفته T اولیه صفر است یعنی مسأله را زمانی حل کرده و dt واقعا متغیر زمانی است؟

  11. مسعود گفت:

    باسلام
    من یک مربع دارم که دو طرفش عایق و دو طرف دیگه اش دماهاش ۴۰۰و ۶۰۰ است
    باید چه تغییری تو برنامه بدم
    (خواهشا کمکم کنیدamasoud36@yahoo.com)

  12. امین گفت:

    سلام.
    من از همین برنامه با شرایط مرزی و اندازه های متفاوت استفاده کردم. توی برنامه من لبه سمت چپ دمای متفاوقتی داره.
    واسه دستور contour ارور میده:

    Error using contour (line 84)
    The size of X must match the size of Z or the number of columns of Z.

    Error in Untitled3 (line 31)
    subplot(2,1,1),contour(x,y,T),

    باید چی کار کنم؟توی منابع دستور کانتور درست توضیح داده نشده.
    ممنون

    • Admin گفت:

      مشکلی نداره
      تست شده قبلا

      • امین گفت:

        برنامه من اینه: میشه بگید چرا جواب نمیده؟ راه حل چیه؟

        format short
        clc
        clear all
        clear history
        disp ‘in the name of GOD’;
        pause (2);
        disp ‘written by AMIN’;
        n = 48;
        m=6;
        x = linspace(0,48,17); dx = x(2)-x(1);
        y = linspace(0,6,3); dy =y(2)-y(1);
        T(1:3,1) = 100;%cahp
        T(1,2:21) = 30; %bala
        T(2,2:21) = 30; %vasat
        T(3,2:21) = 30; %paien
        dt = dx^2/4;
        for k=1:1:inf
        Told = T;
        for i = 2:2
        for j = 2:20
        T(i,j) = dt*((Told(i+1,j)-2*Told(i,j)+Told(i-1,j))/dx^2 + (Told(i,j+1)-2*Told(i,j)+Told(i,j-1))/dy^2) + Told(i,j);
        end
        end
        error = max(max(abs(Told-T)));
        if error <1e-2
        break
        end
        end

        iteration=k;
        subplot(2,1,1),contour(x,y,T),
        title('Temperature (Steady State)'),xlabel('x'),ylabel('y'),colorbar
        subplot(2,1,2),pcolor(x,y,T),shading interp,
        title('Temperature (Steady State)'),xlabel('x'),ylabel('y'),colorbar

      • Admin گفت:

        چه اروری میده؟

  13. صابر گفت:

    باسلام
    می خواستم بدونم اگه یکی از دیواره ها عایق باشه چه تغییری در کد های بالا بوجود می آید

  14. جاسم گفت:

    سلام
    سوال من به شکل دیگه هست
    که کانداکشن هم داره و دمای محیط اطراف هم باید منظور بشه
    از یک طرف همکانوکشن داره
    چه تغییراتی باید داد؟

  15. وانیا گفت:

    با سلام
    با نهایت تشکر از برنامه مفیدتون

  16. مهرو گفت:

    ببخشید من این قسمتهارو متوجه نشدم ، ممنون میشم راهنمایی کنید

    dx = x(2)-x(1
    dy =y(2)-y

    T(i,j) = dt*((Told(i+1,j)-2*Told(i,j)+Told(i-1,j))/dx^2 …
    + (Told(i,j+1)-2*Told(i,j)+Told(i,j-1))/dy^2) …
    + Told(i,j);

  17. موسوی گفت:

    با سلام
    من میخواهم کد متلب تبدیل انرژی حرارتی به انرژی الکتریکی را بنویسم… چهارچوب کار برام نا اشناست. میشه لطفا راهنماییم کنید من چیکار کنم؟ از کجا شروع کنم؟ با تشکر فراوان.

  18. الهه گفت:

    سلام
    پروژه دانشگاهی من در مورد شبیه سازی انتقال حرارت است به روش تفاضل محدود ،میخواستم کتابهای رو در زمینه شبیه سازی با برنامه متلب برام معرفی کنین ممنون

  19. سمانه گفت:

    سلام میشه بگید چطور گام های مکانی را ۰.۵ در نظر می گیریم که در اینصورت IM=21 و JM=41 می باشد. در نتیجه توزیع دما را برای ۷۴۱ گره بایستی پیدا کرد. شرایط اولیه را برای همه نقاط داخلی T=0 در نظر گرفته می شود. چطور Im, Jm روبه دست اوردید؟ الان طول صفحه باشه ۱ وگامو بگیریم ۰.۲ چندن اینا؟؟

  20. mary گفت:

    سلام دوستان من یه راهنمایی میخواستم
    میخوام این معادله رو تو متلب بنویسم چه جوری میشه
    من تو این معادله هدفم بدست اوردن ضرایب k,n هستش و مقادیر y, t روهم دارم dy/dt=k(y^n)

  21. وحید گفت:

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

  22. رضا گفت:

    سلام و خسته نباشید واقعا فایل مفیدی بود ممنونم….یه سوال داشتم و دو روزه دارم تو سایتا میچرخم و تنها سایتی که متلب مرتبط داشت سایت شما بود و تا اینجای کار جای شکر داره و سپاس گذارم.خدمتتون عارض بشم میخام توزیع دما برای حالت پایا وsteadyدر یک ورقه دو بعدی که دمای چپ و راستش مشخصه و بالا و پایینش عایقه و همچنین یک سوراخ در وسط ِ ورقه هست ک سوراخ هم از قضا عایقه.من کد کتلب برای حالت بدون سوراخ رو نوشتم و توزیع دمایی هم درسته حالا میخام شرط سوراخ و مهم تر عایق بودن سوراخ رو اعمال و به ملب وارد کنم و نمیتونم. در واقع تو تفاضل محدود در حالتی که یک جداری یا یک خطی از نقاط عایقع باید بگیم دمای هرنود با نودِ قبلیش برابره و خوب برای نود بالا و پایین ساده س ولی برای تعریف عایق بودن دایره چون دایره بصورت مختصات دایره ای تعریف میشه و دماهای بقیه نقاط صفحه در مختصات دکارتی تعریف میشه یجور نداخل میخوره.تو کتاب محاسبات عددی چپرا هم یه متلب مشابه پیدا کردم ولی نتونستم خوب درکش کنم.حالا از شما کمک میخام که کمکم کنید چجوری میتونم شرط عایق بودن دایره رو به متلب اعمال کنم….خدا خیرتون بده.ممنون میشم کمکم کنید
    https://www.dropbox.com/s/xp3fuj8k1401pjv/photo_2016-11-03_12-56-56.jpg?dl=0

    https://www.dropbox.com/s/r34a46t344pcvn7/Untitled1221.png?dl=0

  23. وحید گفت:

    اگه امکانش هست انتقال حرارت یک بعدی رو برای یک صفحهبه صورت فوروارد و بک وارد بنویسین و عدد بیوت رو هم دخالت بدین

  24. وحید گفت:

    کی میتونین بذارین تو سایت ؟!
    انتقال حرارت یک بعدی فوروارد و بک وارد با تاثیر غرب بیوت

  25. وحید گفت:

    تو رو خدا اگه میشه انتقال حرارت یک بعدی رو با او روش بک وارد و فوروارد برای عدد بیوت مشخص انجام بدین واقعا هیشکی نیست جوابمو بده

  26. پویا گفت:

    سلام . خسته نباشید من دنشجوی رشته ی مکانیک هستم . درس انتقال قدرت یه پروژه به ما داده که باید پنج دیوار رو کدنویس کنیم یه چیزی مثل ماشین حساب بسازیم و….. الان نمیدونم چی به چیه از کجا باید شروع کنم.کمک میکنید لطفا

  27. سناره گفت:

    سلام ببخشین یه سوال اگه ازما بخوان که بعد حل معادله توزیع دما مقدار حرارت منتقل شده به صورت جابجایی به محیط رو محاسبه کنیم باید چیکار کنیم؟

  28. سودا گفت:

    Consider the FD scheme for the 1D steady state convection-diffusion equation ǫu′′−u′ =−۱, ۰ < x < 1, (2.70) u(0) = 1, u(1) = 3. (2.71)
    (a) Verify the exact solution is u(x) = 1 + x +ex/ǫ −۱ e1/ǫ −۱. (۲.۷۲) (b) Compare the following two FD methods for ǫ = ۰.۳, ۰.۱, ۰.۰۵, and 0.0005. (1) Central finite difference scheme:
    ǫ
    Ui−۱ −۲Ui + Ui+1 h2 −
    Ui+1 −Ui−۱ ۲h
    =−۱. (۲.۷۳)
    (۲) Central-upwind finite difference scheme:
    ǫ
    Ui−۱ −۲Ui + Ui+1 h2 −
    Ui −Ui−۱ h
    =−۱. (۲.۷۴) Do the grid refinement analysis for each case to determine the order of accuracy. Plot the computed solution and the exact solution for h = 0.1, h = 1/25, and h = 0.01. You can use Matlab command subplot to put several graphs together. (c) From your observations, in your opinion which method is better?
    چطوری باید برنامه اینوبنویسم؟میشه راهنمایی کنید؟ لطفا

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

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