اطلاعیه

Collapse
No announcement yet.

سوال در مورد الگوریتم PID در Labview

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    سوال در مورد الگوریتم PID در Labview

    با سلام
    من در مورد PID یک سوال داشتم. برای اینکه بتونم سوالمو بهتر مطرح کنم یه فایل آماده کردم و پلودش کردم:
    http://www.uploadc.com/1n37lwpty5qx/PID_example.vi.htm
    حالا سوال من:
    توی این برنامه من به صورت دستی هم SetPoint و هم Process Variable را کنترل می کنم. وقتی که SP بزرگتر از PV باشه output زیاد میشه و وقتی که SP از PV کمتر باشه output کم میشه. خب تا ایا مشکل خاصی نیست. ولی مشکل اصلی کجاست. اینکه مثلاً output تا 5 رفته و حالا من دستی SP و PV را مساوی انتخاب می کنم. اصولاً باید مقدار output صفر بشه ولی output روی همون 5 باقی می مونه.
    حالا مشکل این اتفاق چیه؟
    فرض کنید شما از این استفاده کردید واسه کنترل شدت دمای یه المنت برای گرم نگهداشتن یه اتاق. وقتی دمای اتاق کمتره، شدت گرمادهی المنت زیاد میشه. و همنیجور این شدت اضافه میشه تا دمای اتاق و دمای تنظیمی با هم برابر بشن.خوب الان چه اتفاقی افتاده؟ اولاً المنت با همون شدت قبلی داره گرما تولید میکنه و از طرف دیگه هم اصولاً شدت گرمادهیش توی حداکثر هستش.
    ممنون میشم یه نفر به من کمک کنه
    با تشکر
    علی برهانی

    #2
    پاسخ : سوال در مورد الگوریتم PID در Labview

    منم خیلی کنترل دما با pid رو دوست دارم
    احتمالا ، یه 2 ماه دیگه که سرم خلوت بشه ، عملی اون رو اجرا میکنم
    چند تا نکته :
    در طراحی سیستم کنترلی pid ، از حلقه خودش استفاده کنید ، (Control & Simulation Loop)
    ti , td باید برحسب دقیقه باشند
    Time step Ts رو نیز باید به pid بدید

    دیدگاه


      #3
      پاسخ : سوال در مورد الگوریتم PID در Labview

      با سلام.
      دوستان عزیز ما دوره کارشناسی کنترل خطی پاس کردیم اما متوجه نشدیم pid کارش چیه ؟

      حالا کاربردش با لب ویو چی هست ؟

      اگه حوصله اش و دارید توضیح بدید.
      اگه چیزی بلدیم به بقیه هم یاد بدیم ....

      دیدگاه


        #4
        پاسخ : سوال در مورد الگوریتم PID در Labview

        حالا من یه کم توضیح میدم :
        pid مخفف کلمه Proportional-Integral-Derivative هستش که در حقیقت ترکیبی از کنترل کننده های p یا همون تناسبی ، I یا همون انتگرالی و d یا همون مشتق گیر ها هستن.
        دو پارامتری که شما باید در pid مشخص کنید setpoit , process variable هست. process variable همون پارامتری هست که شما قصد دارید کنترل کنید مثل دما ، فشار ، سطح مایع و .. و setpoint مقدار طراحی شده شما " desire " که دوست دارید به اون برسید.. حالا با توجه به مقادیری که به پارامترهای خود pid مثل p, Td , Ti میدید میتونید ترکیب pid رو به p ، PI ، PD ، D ، I و PID تبدیل کنید.
        در حقیقت در یک کنترل حلقه بسته close loop وقتی شما از خروجی سیستم به منظور کم کردن خطا فیدبک میگیرید باید به نحوی عمل بشه که هم خطا کمترین بشه و هم اثر فیدبک بر خروجی زیاد نباشه... و ما اینکار رو توسط کنترل کننده های مذکور که در مسیر فیدبک و در مسیر پیشرو قرار میدهیم انجام میدیم. راه استفاده درستش اینه که شما ابتدا معادلات ریاضی حاکم بر سیستم رو پیدا کنید و سپس اونو پیاده کنید. چون تا شما درک درستی از نحوه کار نداشته باشین نمیتونید انجامش بدید...

        دیدگاه


          #5
          پاسخ : سوال در مورد الگوریتم PID در Labview

          یه vi تو پالت کنترل هست ، که ضرایب p ,i ,d رو پیدا میکنه فکر کنم اسمش autotuning.vi باید باشه
          با پیدا کردن این ضرایب ، سخترین قسمت کارتون حل میشه

          دیدگاه


            #6
            پاسخ : سوال در مورد الگوریتم PID در Labview

            نوشته اصلی توسط حمید رضا حسین وردی
            حالا من یه کم توضیح میدم :
            pid مخفف کلمه Proportional-Integral-Derivative هستش که در حقیقت ترکیبی از کنترل کننده های p یا همون تناسبی ، I یا همون انتگرالی و d یا همون مشتق گیر ها هستن.
            دو پارامتری که شما باید در pid مشخص کنید setpoit , process variable هست. process variable همون پارامتری هست که شما قصد دارید کنترل کنید مثل دما ، فشار ، سطح مایع و .. و setpoint مقدار طراحی شده شما " desire " که دوست دارید به اون برسید.. حالا با توجه به مقادیری که به پارامترهای خود pid مثل p, Td , Ti میدید میتونید ترکیب pid رو به p ، PI ، PD ، D ، I و PID تبدیل کنید.
            در حقیقت در یک کنترل حلقه بسته close loop وقتی شما از خروجی سیستم به منظور کم کردن خطا فیدبک میگیرید باید به نحوی عمل بشه که هم خطا کمترین بشه و هم اثر فیدبک بر خروجی زیاد نباشه... و ما اینکار رو توسط کنترل کننده های مذکور که در مسیر فیدبک و در مسیر پیشرو قرار میدهیم انجام میدیم. راه استفاده درستش اینه که شما ابتدا معادلات ریاضی حاکم بر سیستم رو پیدا کنید و سپس اونو پیاده کنید. چون تا شما درک درستی از نحوه کار نداشته باشین نمیتونید انجامش بدید...
            حالا من این سوال و از شما که توی چند تا نرم افزار کارکردین دوست دارم بپرسم که: به نظرتون شبیه سازی یه سیستم خصوصا کنترلی با لب ویو بهتره یا اینکه متلب ؟!یا اینکه باید ترکیبی کار کرد!
            اگر مزایا و معایبی هم هرکدوم دارند خوشحال میشم مختصرا بگید تا بعدا که می خوام برم سراغشون بهتر بتونیم انتخاب داشته باشم! :job:

            دیدگاه


              #7
              پاسخ : سوال در مورد الگوریتم PID در Labview

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

              دیدگاه


                #8
                پاسخ : سوال در مورد الگوریتم PID در Labview

                من یه استادی داشتم ، آخر کنترل بود ... خیلی زیبا ، تدریس میکرد
                پروژه های دانشگاه های آمریکایی رو میداد بهمون ،عین آب خوردن با matlab حلشون میکردم (در گذشته) ( چون خیلی خوب تدریس کرده بود :mrgreen: )
                خلاصه اینکه شبیه سازی با matlab شاید از نظر تئوری بهتر باشه ، اما اگر قصد این رو دارید که تو عمل پیاده سازی کنید و درک بهتری از بلوک دیاگرامها داشته باشید ، قطعا labview کاراتر هستش !

                دیدگاه

                لطفا صبر کنید...
                X