اطلاعیه

Collapse
No announcement yet.

کنترلر PID

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

    #31
    پاسخ : کنترلر PID

    سلام دوستان
    من یک هیتر دارم که قراره دمای یک شیء رو گرم کنه . برای فیدبک از سنسور غیر تماسی mlx استفاده کردم . قصد دارم کنترل دما رو با استفاده از PID انجام بدم . توی انجمن یک نمونه کد پیدا کردم :
    کد:
    error=SP-temp; //H1
    pterm=kp*error; //H2
    iterm=(ki*error)+last_iterm;//H3
    dterm=(error-last_error)*kd;//H4
    D=(pterm+iterm+dterm)*100; //H5
    if(D<1) D=1; //H6
    if(D>1020) D=1020; //H7
    last_iterm=iterm; //H8
    last_error=error; //H9
    D2=D; //H10
    HD=D2/256; //change to int val [xx xx] //H11
    LD=D2%256; //H12
    حالا سوال اینجاست که مقادیر ضرایب رو حتما باید به صورت تجربی به دست اورد یا راه دیگه ای هستش که حداقل نزدیک به مقدار شد.
    با تشکر
    انجمن LABVIEW
    http://www.eca.ir/forum2/index.php?board=279.0
    اموزش میکروکنترلرهای AVR به زبان ساده
    http://www.eca.ir/forum2/index.php/topic,7070.0.html

    دیدگاه


      #32
      پاسخ : کنترلر PID

      با سلام خدمت دوستان عزیز
      با اجازه من هم در بحث شرکت کنم.
      برای بدست آوردن ضرایب معادله PID راحت ترین کار استفاده از تولباکس PID Tuning Matlab هست.هستی میشه به راحت ضرایب PIDF یا FPID را هم پیدا کرد.
      فقط کافیه معادله دینامیکی سیستم را به متلب بدین و در کمتر از یک ثانیه پارامترهای کنترل کننده را ببینید.
      به همین سادگی
      **همیشه به این فکر کن که خداوند با توست**

      دیدگاه


        #33
        پاسخ : کنترلر PID

        نوشته اصلی توسط حســـــین اقـبـالـی
        با سلام خدمت دوستان عزیز
        با اجازه من هم در بحث شرکت کنم.
        برای بدست آوردن ضرایب معادله PID راحت ترین کار استفاده از تولباکس PID Tuning Matlab هست.هستی میشه به راحت ضرایب PIDF یا FPID را هم پیدا کرد.
        فقط کافیه معادله دینامیکی سیستم را به متلب بدین و در کمتر از یک ثانیه پارامترهای کنترل کننده را ببینید.
        به همین سادگی
        سلام
        اینکه خیلی عالیه!
        منظورت از FPID منظورت PID مرتبه کسری هست؟
        متلب از نسخه چند به بعد این تولباکس رو داره؟

        دیدگاه


          #34
          پاسخ : کنترلر PID

          با سلام
          راستش من هنوز نمیدونم این FPID مخفف چی هست!! :eek:
          ولی تا جایی که میدونم میاد و یک فیلتر پایین گذر قبل از ترم P کنترل کننده اضافه میکنه و پاسخ کنترل کننده را بهبود می بخشه.
          من الان دارم با ورژن R2013b کار میکنم و این تولباکس را داره.
          خیلی راحت شما میتونید مدل دینامیکی را توی Work Space تعریف کنین و در این تولباکس فراخوانی کنید، بعد نوع کنترل کننده (P,I,PI,PID,FPI,FPID) را تعیین و گزینه Tune را بزنید تا متلب در کمتر از یک ثانیه ضرایب را تقدیم شما بکنه :mrgreen:
          التماس دعا
          **همیشه به این فکر کن که خداوند با توست**

          دیدگاه


            #35
            پاسخ : کنترلر PID

            نوشته اصلی توسط Coronaa
            یعنی توی بازار به اسم کنترلر PID وجود داره؟ یعد تنظیمات داره یا اونا رو دیگه باید از روی متلب پیدا کرد پارامتراشو؟
            بله تو ابزار دقیق pid کنترلر داریم
            شما فقط ضرایب p , i , d رو وارد میکنی
            telgram:09396888049

            دیدگاه


              #36
              پاسخ : کنترلر PID

              سلام
              دو مدل پر کاربرد کنترلرهای صنعتی
              یکی کنترلر های(دما و ... ) jumo آلمانی و دیگری کنترلرهای autonics کره ای هستن که تو صنایع ایران بسیار استفاده میشن
              زندگی آن چه که زیسته ایم نیست ، بلکه آن چیزی است که از گذشته به خاطر داریم ...گابریل گارسیا مارکز

              دیدگاه


                #37
                پاسخ : کنترلر PID

                سلام کسی هست با یه مثال خیلی ساده اما کاربردی یک سیستم P رو نشون بده که وقتی مقدار مطلوب بالا باشه خطای حالت ماندگار زیاده و وقتی P پایینه خطا کم میشه اما امکان نوسان هست .میخوام با یه مثال ساده این حقیقت ثابت شه ممنون
                سوال دیگه درمورد ضرایب PID فرض که مقادیر مشخص شدن (در یک سیستم کنترل دما توسط میکرو) یعنی ما دما رو از خروجی میخونیم میبریم تو میکرو مقدار مطلوب رو هم که داریم خطا در میاد تو میکرو هم ضرایب و فرمولا رو داریم نهایتن به یه جواب میرسیم .حالا سوال اینجاس که جواب ما از نوع گرماس (چون هدف دما بوده)از کجا بفهمیم چقدر ولتاژ به گرم کننده الکتریکی اعمال شه تا اونقدر دما(جواب)تولید شه.ممنون

                دیدگاه


                  #38
                  پاسخ : کنترلر PID

                  سلام
                  وقتی خطا رو بدست آوردید در مقدار عدد P ضرب میکنید و بعد در مقدار 0-255 اسکیل میکنید به دلیل این که PWM بیشتر
                  میکرو ها 8 بیتی هست یا اگر نیست خب تو همون رنج اسکیل میکنید مثلا 10 بیت که میشه 0-1024 و به رجیستر مربوطه
                  میفرستید
                  فرض کنید دما 20 درجه هست ولی مطلوب ما 22 باشه پس خطا میشه error=22-20 یعنی دو درجه و به فزض مقدار P
                  10 هست پس خروجی کنترلر میشه 20 خب کافیه این مقدار به رجیستر PWM اعمال بشه و این تویه یه لوپ با زمان تکرار
                  مشخص که ثابت زمانی هست و به عبارتی این مقدار در نتیجه ترم I , D بسیار تاثیر گذار هست این مدل گسسته یا دیجیتال هست
                  ولی برایه کنترلر پیوسته از OP-AMP استفاده میشه به این ترتیب که اول PID رو طراحی میکنی و بعد ترم انتگرال گیر و مشتق گیر و
                  ترم نسبت رو با پ امپ که تویه الکترونیک بخشطراحی کامپیوتر آنالوگ خوندیم ساخته و به قسمت تقویت کننده قدرت که میتونه ترانزیسور
                  یا هر مدار دیگه دیگه باشه میدیم
                  نمیدونم با این بیان در هم و برهم من چیزی فهمیدید یا نه

                  دیدگاه


                    #39
                    پاسخ : کنترلر PID

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

                    اول از همه باید با وقفه تایمر یه ثابت زمانی مثلا 5-50000 میکروثانیه درست کرد بعد از فرمول هایی که در بالا نوشتن دوستان
                    نوشته اصلی توسط nex2004
                    سلام دوستان
                    من یک هیتر دارم که قراره دمای یک شیء رو گرم کنه . برای فیدبک از سنسور غیر تماسی mlx استفاده کردم . قصد دارم کنترل دما رو با استفاده از PID انجام بدم . توی انجمن یک نمونه کد پیدا کردم :
                    کد:
                    error=SP-temp; //H1
                    pterm=kp*error; //H2
                    iterm=(ki*error)+last_iterm;//H3
                    dterm=(error-last_error)*kd;//H4
                    D=(pterm+iterm+dterm)*100; //H5
                    if(D<1) D=1; //H6
                    if(D>1020) D=1020; //H7
                    last_iterm=iterm; //H8
                    last_error=error; //H9
                    D2=D; //H10
                    HD=D2/256; //change to int val [xx xx] //H11
                    LD=D2%256; //H12
                    حالا سوال اینجاست که مقادیر ضرایب رو حتما باید به صورت تجربی به دست اورد یا راه دیگه ای هستش که حداقل نزدیک به مقدار شد.
                    با تشکر
                    با این تغییر که ترم انتگرال گیر باید در ثابت زمانی ضرب بشه و ترم مشتق گیر به شابت زمانی تقسیم بشه و در آخر با یه شرط مقدار انتگرال
                    گیر رو محدود کنیم که از حد معین تجاوز نکنه
                    و در آخر به سیستم اعمال بشه

                    یکی از روش هایه به دست آوردن ضرایب به صورت سعی و خطا این طور هست که در ابتدا ضرایب I,D رو صفر یا عدد بسیار کوچک در حد صفر میزاریم
                    و بعد ترم P رو از یه عدد کوچک مثلا 0.0001 شروع به افزایش میکنیم تا جایی که سیستم شروع به ناپایدار شدن کنه و بعد با کم کردن تا مقدار مناسب
                    یعنی جایی که سیستم سریع و پایدار جواب بده با ابن عمل مقدار P به دست میاد بعد به همین ترتیب اول مقدار D و بعد I رو بدست میاریم

                    برایه پیاده سازی در سخت افزار فکر کنید یه مدار با میکرو ساختیم که یه موتور رو با L298 درایو میکنه و فیدبک رو از یه شفت اینکودر نوری بدست میاره
                    کافیه اول با یه فرمول سرعت موتور رو محاسبه کنیم که میشه فیدبک و بعد از ورودی ست پوینت یا مقدار مطلوب رو بگیریم و به محاسبه گر PID بدیم و خروجی
                    رو به PWM بدیم

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

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



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

                    دیدگاه


                      #40
                      پاسخ : کنترلر PID

                      ممنون از پاسخ ولی سوالم چیز دیگه ای بود.فرض کنید سیستمی تناسبی بسته ایم وبه قول شما E=2شده است ضرب ده که همان گین است میکنیم میشود 20 حال سوال این است که این عدد مگر دما نیست؟خوب ما از روی کدام علم این عدد را جهت PWM اعمال می کنیم؟ در صورتی که PWM ماهیتش ولتاژ است .پس رفتار گرم کننده نسبت به ولتاژ اعمالی مهم نیس؟

                      دیدگاه


                        #41
                        پاسخ : کنترلر PID

                        نوشته اصلی توسط mohsen_lachini
                        ممنون از پاسخ ولی سوالم چیز دیگه ای بود.فرض کنید سیستمی تناسبی بسته ایم وبه قول شما E=2شده است ضرب ده که همان گین است میکنیم میشود 20 حال سوال این است که این عدد مگر دما نیست؟خوب ما از روی کدام علم این عدد را جهت PWM اعمال می کنیم؟ در صورتی که PWM ماهیتش ولتاژ است .پس رفتار گرم کننده نسبت به ولتاژ اعمالی مهم نیس؟
                        اینکه ولتاژ با دما چه رابطه ای داره با تابع تبدیل سیستمتان توصیف میشه. هر سیستمی مطابق ورودی و خروجی ای که داره دارای یک تابع تبدیله. پیدا کردن این تابع هم به مدل کردن اجزای سیستم و دینامیک هر بخش برمیگرده. در حقیقت پله پله از ورودی شروع میکنند و به جلو میروند تا به خروجی برسند و این وسط یک سری رابطه شکل میگیره که با کنار هم قراردادن آنها تابع تبدیل پیدا میشه.

                        دیدگاه


                          #42
                          پاسخ : کنترلر PID

                          نوشته اصلی توسط mohsen_lachini
                          ممنون از پاسخ ولی سوالم چیز دیگه ای بود.فرض کنید سیستمی تناسبی بسته ایم وبه قول شما E=2شده است ضرب ده که همان گین است میکنیم میشود 20 حال سوال این است که این عدد مگر دما نیست؟خوب ما از روی کدام علم این عدد را جهت PWM اعمال می کنیم؟ در صورتی که PWM ماهیتش ولتاژ است .پس رفتار گرم کننده نسبت به ولتاژ اعمالی مهم نیس؟
                          شما یه حدود برایه حد اقل و حداکثر خطایه ممکن دارید مثلا از 20-150 درجه وقتی هیتر کاملا خاموش و شما بیشترین دما رو به عنوان نقطه تنظیم میدیدبه سیستم یا بلعکس پس محدوده تغریات میشه 130 درجه ولی شما میتونید حداکثر 255 به PWM بدید خی 130/255=0.5 میشه پس باید خروجی رو یه 0.5 تقسیم کنید یا به عبارتی در 2 ضرب کنید و به PWM بدید ولی وقتی از PID استفاده میکنید نصبت به ضرایب این حداقل و حداکثر ها تغییر میکنه که شما باید حساب کنید و این نسبت رو بدست بیاری

                          برایه مثال من دور موتورم حداکثز 14000 دور بود که با ضرایت حدود 400000 خروجی هم برایه کنترل کننده داشتم در اینجا من خروجی رو به 160 تقسیم میکردم و به رجیستر تایمر میفرستادم

                          دیدگاه


                            #43
                            پاسخ : کنترلر PID

                            سلام
                            کسی تنظیم ضرایب pid به روش یک جهارم دامنه میدونه
                            میشه توضیح بدید؟

                            دیدگاه


                              #44
                              پاسخ : کنترلر PID

                              سلام اساتید، :smile:
                              خیلی عذر می خوام، فرض می کنیم در صنعت با استفاده از PLC یک کنترلر PID مثلا برای کنترل سطح یک مخزن داشته باشیم، روش تجربی و اصطلاحا کارگری برای تنظیم ضرایب کنترلر به چه صورتی هست؟
                              چون فکر نمی کنم در کاربردهای صنعتی کسی از مدلسازی و تابع تبدیل و فرآیندهای ریاضی استفاده کنه.
                              پیشاپیش از لطف و راهنمایی هاتون متشکرم.

                              دیدگاه


                                #45
                                پاسخ : کنترلر PID

                                نوشته اصلی توسط Coronaa
                                سلام دوست عزیز
                                توضیحت عالی بود.
                                فقط هنوز یه جایی برام مبهمه!
                                اینکه میگین اختلاف بینر خروجی مطلوب و خروجی واقعی میشه ارور و این ارور وارد کنترللر میشه و ضرایب تنطیم میشه، میخوام بدونم محاسبه ی ارور و وارد کردن اون به کنترلر برای تصحیح ضرایب بصورت سخت افزار هست و یا باید دستس انجام بدیم؟
                                من هنوز متوجه نشدم کنترلر PID بصورت سخت افزار وجود داره یا نه!
                                سلام
                                قطعه سخت افزاری هم داره
                                http://www.nipponinstruments.com/pid-controllers-in-india.html

                                4 تا 20 میلی آمپر و دما و ... رو میتونه به عنوان ورودی بگیره و ضرایب سه المان انتگرال گیر و تناسبی و مشتق رو هم به عنوان تنظیم میگیره

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

                                موفق باشید:x

                                دیدگاه

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