آموزش متلب

خطايابي برنامه ها-1

خطايابي برنامه ها
شما مي توانيد از راههاي زير، برنامه هايتان را خطايابي (debugging) نمائيد:
– برنامه را به چند بخش كوتاهتر تقسيم كنيد و هر بخش را جداگانه امتحان كنيد.
– نتايج محاسبات را در مراحل مياني جريان برنامه بنويسيد. اين كار را مي توانيد به آساني با برداشتن semicolon (;) از انتهاي دستور محاسباتي ويا نوشتن نام متغير مورد نظر انجام دهيد.

همچنين مي توانيد با قرار دادن disp در مكانهاي مشخصي از برنامه دريابيد كه برنامه تا كجا به پيش رفته است.
– تا حد امكان سعي كنيد كه از عمليات ماتريسي استفاده كنيد و در برنامه از تعداد حلقه هايي كه همان كار را انجام مي دهند بكاهيد.
– خطوط مورد شك برنامه را بطور جداگانه در محيط كار MATLAB اجرا كنيد تا درستي و يا نادرستي محاسبه را دريابيد.
– دقت كنيد كه پيغام خطا روي چه سطري از برنامه داده شده است و بويژه دقت كنيد كه پيغام خطا چه مي باشد و چه معنايي دارد.
– امكانات خطايابي موجود در نرم افزار را به كمك بگيريد.

 

پيغامهاي خطا
بيشترين حجم پيغامهاي خطايي كه شما در ابتداي كار با MATLAB دريافت مي كنيد مربوط به عمليات و جايگزيني هاي برداري/ماتريسي است. در اين بخش نحوه تصحيح برنامه را با استفاده از پيغامهاي خطاي دريافتي با ذكر يك مثال نشان داده مي شود.
در نظر بگيريد كه مي خواهيد سطح PVT را بر اساس قانون گاز كامل رسم كنيد. داده هاي ورودي به برنامه محدوده هاي فشار و دما به صورت برداري هستند و برنامه بايد حجم ويژه گاز را محاسبه نمايد و سپس سطح را رسم كند. بهتر است كه محاسبه حجم در يك تابع جداگانه انجام گيرد تا اگر بخواهيد محاسبه را با معادله حالت ديگري نيز تكرار كنيد، نيازي به نوشتن مجدد
برنامه اصلي نداشته باشيد و فقط تابع محاسبه حجم را تغيير دهيد. فرض كنيد كه برنامه اصلي و تابع مورد نياز را در وهله اول به صورت زير ايجاد كرده ايد:

برنامه اصلي (main.m)

% Input
p = input(‘ Pressure (bar) = ‘);
t = input(‘ Temperature (K) = ‘);
% Calculation
v = ideal(t,p*1e5);
% Plotting results
surf(p,vol,t)

تابع (ideal.m)

function v = ideal(t,p)
R = 8314; % Gas constant (J/kmol.K)
v = R*t/p; % Ideal gas law

حال در صورتي كه اين برنامه را اجرا كنيد، پيغام خطاي زير را دريافت مي كنيد:

» main
Pressure (bar) = [1:10]
Temperature (K) = 300:5:400
??? Error using ==> /
Matrix dimensions must agree.
Error in ==> C:\MATLABR11\work\ideal.m
On line 4 ==> v = R*t/p; % Ideal gas law
Error in ==> C:\MATLABR11\work\main.m
On line 6 ==> v = ideal(t,p*1e5);

همانطور كه ملاحظه مي كنيد اشكال از سطر ٦ برنامه اصلي كه مربوط به مراجعه به تابع است گرفته شده و در حقيقت خطا در سطر ٤ تابع و مشخصا” در نحوه تقسيم دو بردار p و t وجود دارد. به ياد بياوريد كه در عمليات ماتريسي، ابعاد ماتريسها بايد اجازه انجام چنين عملي را بدهد. در اينجا با دو بردار p و t نمي توان عمل تقسيم را انجام داد و اصولا” در اين مسئله مقصود از عبارت بكار برده شده براي محاسبه حجم گاز كامل انجام محاسبه ماتريسي نمي باشد. بنابراين سطر ٤ تابع ideal.m به شكل زير تغيير داده مي شود (بكار بردن تقسيم عضو به عضو بجاي ماتريسي) تا محاسبه حجم به صورت ماتريسي صورت نگيرد:

function v = ideal(t,p)
R = 8314; % Gas constant (J/kmol.K)
v = R*t./p; % Ideal gas law

ادامه دارد …

 

 

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

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

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

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