اطلاعیه

Collapse
No announcement yet.

مشکل کار با PID

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

    #16
    پاسخ : مشکل کار با PID

    نوشته اصلی توسط saeid.fzly نمایش پست ها
    وقتی متغیر روی فلوت گذاشته شد مشکلات حل شد البته توی برنامه خود PID هم تغییراتی دارم که کد نهایی بخش PID به این شکل شد.

            Error = Analog1 - Analog2 ;

    Pterm = TP * Error;
    Iterm = (TI * Error ) + Last_Error;
    Dterm = TD * (Last_Process - Processvalue);

    Processvalue = ( Pterm + Iterm + Dterm );

    Last_Error = Error;
    Last_Process = Processvalue;
    سلام
    چیزی که بهتره به کارتون اضافه کنید anti wide up هست که جلوگیری میکنه از به اشباع رفتن مقدار انتگرال گیر هست
    اگر سیستم به دلیلی کند بشه ممکنه مقدار انتگرالگیر به اشباع بره که سیستم رو میتونه نا پایدار کنه یه شرط بذارید بعد از انتگرال گیر در صورتی که بیشتر از حدی
    محدودش کنه با این کار دیگه به اشباع نمیره

    دیدگاه


      #17
      پاسخ : مشکل کار با PID

      نوشته اصلی توسط ehsanbagheri نمایش پست ها
      سلام
      چیزی که بهتره به کارتون اضافه کنید anti wide up هست که جلوگیری میکنه از به اشباع رفتن مقدار انتگرال گیر هست
      اگر سیستم به دلیلی کند بشه ممکنه مقدار انتگرالگیر به اشباع بره که سیستم رو میتونه نا پایدار کنه یه شرط بذارید بعد از انتگرال گیر در صورتی که بیشتر از حدی
      محدودش کنه با این کار دیگه به اشباع نمیره
      سلام عذر میخام متوجه دقیق نشدم یعنی باید چه کار کنم؟

      دیدگاه


        #18
        پاسخ : مشکل کار با PID

        نوشته اصلی توسط saeid.fzly نمایش پست ها
        سلام عذر میخام متوجه دقیق نشدم یعنی باید چه کار کنم؟
        بعد از خط چهارم یه خط اضافه کن و با یه شرط چک کن اگر مقدار Iterm بیشتر از حدی شد اون رو محدود کن
        if(iterm>500 ) iterm=500;
        if(iterm<-500)iterm=-500;

        دیدگاه


          #19
          پاسخ : مشکل کار با PID

          نوشته اصلی توسط ehsanbagheri نمایش پست ها
          بعد از خط چهارم یه خط اضافه کن و با یه شرط چک کن اگر مقدار Iterm بیشتر از حدی شد اون رو محدود کن
          if(iterm>500 ) iterm=500;
          if(iterm<-500)iterm=-500;
          اوکی متوجه شدم میگین توی یه بازه محدودش کنم حالا سوال اینه چرا 500 ؟

          دیدگاه

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