محاسبه سطح زیر منحنی هیسترزیس

امروز در سایت یونیکا نحوه محاسبه مساحت حلقه‌ها رو آموزش میدیم. چند روز پیش یکی از دوستان ایمیلی ارسال کرده بود و برای محاسبه سطح زیر منحنی هیسترزیس با نرم افزار متلب کمک خواسته بود. از اونجایی که خودم هم در زمان دانشجویی با نمودار های هیسترزیس زیاد سر و کار داشتم تصمیم گرفتم نحوه محاسبه مساحت حلقه ها رو توضیح بدم.

محاسبه سطح زیر منحنی هیسترزیس | یونیکا
محاسبه سطح زیر منحنی هیسترزیس | Hysteresis Loop Area | یونیکا

اگر تمایل به برنامه نویسی ندارید و به نرم افزاری نیاز دارید که در کمتر از یک ثانیه مساحت درون حلقه رو براتون محاسبه کنه، می تونید نرم افزار آریان رو تهیه کنید. کافیه فایل نمودارتون رو وارد نرم افزار کنید تا بلافاصله مساحت درون حلقه رو بهتون نمایش بده.

ARIAN Pro (غیر رایگان)

مکانیزم محاسبه سطح زیر منحنی هیسترزیس

دوستان برنامه نویس به راحتی میتونن با هر زبان برنامه نویسی (C – C++ – C# – Python) این کار رو انجام بدن. به تصویر زیر نگاه کنید. روش کار دقیقا مشابه با محاسبه مساحت زیر منحنی هست. که چند سال پیش این آموزش رو با نرم افزار اکسل و متلب (بخش اول و بخش دوم) براتون قرار دادم.

محاسبه سطح حلقه | Loop Area | یونیکا
محاسبه سطح حلقه | Loop Area | یونیکا

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

اگر تمایل به برنامه نویسی ندارید و به نرم افزاری نیاز دارید که در کمتر از یک ثانیه مساحت درون حلقه رو براتون محاسبه کنه، می تونید نرم افزار آریان رو تهیه کنید. کافیه فایل نمودارتون رو وارد نرم افزار کنید تا بلافاصله مساحت درون حلقه رو بهتون نمایش بده.

ARIAN Pro (غیر رایگان)

برنامه نویسی محاسبه سطح زیر منحنی هیسترزیس

باید مساحت تک تک ذوزنقه ها رو با استفاده از یک حلقه تکرار با هم جمع کنیم. فرمولی که برای محاسبه مساحت هر ذوزنقه باید ازش استفاده کنیم در زیر آورده شده.

//Area of Trapezius
long area;
area = (x2 - x1) * (y2 + y1) / 2

نکته شگفت انگیزی که وجود داره اینه که وقتی از فرمول بالا در یک حلقه تکرار مثل For یا Foreach استفاده کنیم، به صورت خود کار مساحت ناحیه قرمز رنگ منفی میشه و دیگه نیاز نیست مساحت ناحیه سبز رو جدا حساب کنیم و قرمز رو جدا و از هم کم کنیم. چون طبق فرمول، باید دو مقدار x رو از هم کم کنیم یعنی X2 – X1 که عدد مثبتی میشه و به صورت مشابه برای لبه پایینی نمودار باید حاصل X7 – X6 رو حساب کنیم که مقداری منفی میشه. پس خود کار اگر کد بالا رو توی حلقه بزاریم، نواحی قرمز رنگ منفی میشه و خودکار از ناحیه سبز رنگ کم میشه. کد این قسمت به زبان برنامه نویسی C#.net

// Return the polygon's area in "square units."
// The value will be negative if the polygon is
// oriented clockwise.
private float SignedPolygonArea()
{
    // Add the first point to the end.
    int num_points = Points.Length;
    PointF[] pts = new PointF[num_points + 1];
    Points.CopyTo(pts, 0);
    pts[num_points] = Points[0];

    // Get the areas.
    float area = 0;
    for (int i = 0; i < num_points; i++)
    {
        area +=
            (pts[i + 1].X - pts[i].X) *
            (pts[i + 1].Y + pts[i].Y) / 2;
    }

    // Return the result.
    return area;
}

 

یک نکته‌ی دیگه که باید بهش توجه کنید اینه که نقاط X و Y شما به صورت ساعتگرد هست یا پاد ساعتگرد؟ اگر اعداد شما پاد ساعت گرد باشه، نتیجه ‌ی نهایی منفیمیشه که باید قدر مطلقش رو به عنوان مساحت در نظر بگیرید. پس در هر صورت وقتی تابع بالا رو صدا می زنید بهتره که از اون قدر مطلق بگیرید. کد این قسمت به زبان برنامه نویسی C#.net

// Return the polygon's area in "square units."
public float PolygonArea()
{
    // Return the absolute value of the signed area.
    // The signed area is negative if the polyogn is
    // oriented clockwise.
    return Math.Abs(SignedPolygonArea());
}

 

منبع این مطلب البته با کمی تغییر http://csharphelper.com

 

محمد زندی

محمد علی زندی هستم، دانش آموخته در رشته مهندسی مواد. اطلاعات کمی دارم ولی تا اونجایی که زمان بهم اجازه بده، دانسته هام رو اینجا میذارم. امیدوارم یونیکا رو خونه ی خودتون بدونید و از بودن در این خونه لذت ببرید.


مقاله‌های من (80)محصولات من (10)

2 نظر برای محاسبه سطح زیر منحنی هیسترزیس ثبت شده

  1. با نرم افزار اوریجین هم میشه مساحت داخل حلقه هیسترزیس رو بدست اورد؟

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

پر کردن تمام موارد زیر الزامیست