اطلاعیه

Collapse
No announcement yet.

ساخت کنترلر دما PID فازی با AVR [آموزشی]

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

    #76
    پاسخ : ساخت کنترلر دما PID فازی با AVR --- آموزشی ---

    سلام

    آقا ما این ضرایب را چطور باید به دست بیاریم؟؟!!! :cry:

    ما کل این 6 صفحه را خوندیم و آخرش نفهمیدیم این ضرایب چطور به دست میاد!!! :sad:

    دیدگاه


      #77
      پاسخ : ساخت کنترلر دما PID فازی با AVR --- آموزشی ---

      دوستان عزیز عرض سلام و شب بخیر خدمت همه شما دارم
      اگه نتونستم روی قولم ایستادگی کنم و مطالب رو ادامه بدم واقعا پوزش میطلبم و از این حرفا دیگه...
      راستش دارم واسه کنکور ارشد میخونم به خاطر همینه که نتونستم سر بزنم به تاپیک..
      خیلی دلم واسه فضای اینجا تنگ شده...یه مدت اینجا شده بود خونه دوم من...
      انشاالله این کنکور رو از سر رد کنم دوباره برمیگردم خدمتتون...
      شما هم دعا کنید که با این وضع درس خوندنم بتونم یه کاری واسه خودم بکنم... :redface: :nerd:
      بهتون قول میدم مطالب رو ادامه بدیم و البته این بار با جزییات بیشتر ولی خب به قول قدیمیا دیر و زود داره ولی سوخت و سوز نداره.... :nice:
      سرتونو درد نیارم دیگه
      با اجازه همگی...
      موفق و پیروز باشید
      تا بعد خدانگهدار
      تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

      www.intelart.ir


      ساخت کنترلر دما PID فازی با AVR [آموزشی]

      دیدگاه


        #78
        پاسخ : ساخت کنترلر دما PID فازی با AVR --- آموزشی ---

        با سلام اگه میشه در مورد کنترل فازی توضیح بدید.
        با تشکر//
        من pid کار کردم اما تو فازی کردنش موندم؟؟؟

        دیدگاه


          #79
          پاسخ : ساخت کنترلر دما PID فازی با AVR --- آموزشی ---

          نوشته اصلی توسط rekima
          با سلام اگه میشه در مورد کنترل فازی توضیح بدید.
          با تشکر//
          من pid کار کردم اما تو فازی کردنش موندم؟؟؟

          سلام

          شما که PID کار کردین میشه بگین من برای پروژه ی زیر چه کار باید بکنم

          ما یه کوره داریم که دمای آن با یک سنسور PT100 اندازه گیری میشه و المنت های آن هم با یه کنتاکتور ON و OFF میشه!!

          حالا ما می خوایم اگر دمای کوره روی 120 درجه (مثلاً 120 درجه) تنظیم شد، بتونیم فرمان خامون و روشن شدن در زمان های مناسب به کنتاکتور بدیم تا دمای کوره در دمای 120 درجه با تلرانس 1 درجه بمونه!!!

          حالا من باید چکار کنم؟؟؟

          در ضمن من دارم فرمان خاموش و روشن را با میکرو به یه اپتوترایاک میدم و بعد با یک ترایاک فرمان کنتاکتور را قطع و وصل میکنم!!!

          ممنونم از راهنمائیتون

          دیدگاه


            #80
            پاسخ : ساخت کنترلر دما PID فازی با AVR --- آموزشی ---

            سلام
            اول اینکه من pid را رو ربات مسیریاب کار کردم و زیاد تو اندازه گیری دما وارد نیستم.(تا حالا با adc و اندازی گیری دما کار نکردم)
            دوم اینکه اول شما باید این پروژه رو بدون الگوریتم pid بنویسید و بعدش به pid تبدیلش کنید.
            سوم اینکه اگه بدون pid کار کردین برنامه اش را بزارید و توضیحی در مورد برنامه بدید تا شاید بتونم کمکی براتون بکنم.
            در ضمن با چه زبانی میخواهید؟؟

            به نظرم کار سختی نباید باشه//
            با تشکر...

            دیدگاه


              #81
              پاسخ : ساخت کنترلر دما PID فازی با AVR --- آموزشی ---

              ممنون از پاسختون

              من با کدویژن کار میکنم. اما اگر با بیسیک هم باشه ، بلدم!!

              برنامه اش چیز خاصی نداره!

              داره ولتاژ را اندازه گیری میکنه، طبق یه رابطه مقاومت PT100 را اندازه گیری میکنه و مقدار دما را با توجه به مقاومت سنسور (طبق دیتاشیت) گزارش میکنه!


              الان من براش تعریف کردم که وقتی دما از دمای تنظیمی کمتر هیتر را روشن کن و وقتی که دما یک درجه از دمای تنظیمی بیشتر شد، هیتر را خاموش کن.

              مشکل من الان اینه که، وقتی دما یک درجه از دمای تنظیمی بیشتر شد و هیتر خاموش شد، هنوز المنت داغ هست و دما همچنان بالا میره و نمیتونم برای این قضیه کاری بکنم. پس باید قبل از اینکه به دمای تنظیمی برسه، در جایی هیتر خاموش بشه که در نهایت دمای محفظه دمای تنظیمی را رد نکنه!

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

              حالا نمیدونم توی عمل چطوری باید این کار را بکنم. تئوری این مسائل را هم خوندم، اما توی عمل مشکل دارم.

              ممنون میشم کمکم کنید.

              دیدگاه


                #82
                پاسخ : ساخت کنترلر دما PID فازی با AVR --- آموزشی ---

                نوشته اصلی توسط ok20
                ممنون از پاسختون

                من با کدویژن کار میکنم. اما اگر با بیسیک هم باشه ، بلدم!!

                برنامه اش چیز خاصی نداره!

                داره ولتاژ را اندازه گیری میکنه، طبق یه رابطه مقاومت PT100 را اندازه گیری میکنه و مقدار دما را با توجه به مقاومت سنسور (طبق دیتاشیت) گزارش میکنه!


                الان من براش تعریف کردم که وقتی دما از دمای تنظیمی کمتر هیتر را روشن کن و وقتی که دما یک درجه از دمای تنظیمی بیشتر شد، هیتر را خاموش کن.

                مشکل من الان اینه که، وقتی دما یک درجه از دمای تنظیمی بیشتر شد و هیتر خاموش شد، هنوز المنت داغ هست و دما همچنان بالا میره و نمیتونم برای این قضیه کاری بکنم. پس باید قبل از اینکه به دمای تنظیمی برسه، در جایی هیتر خاموش بشه که در نهایت دمای محفظه دمای تنظیمی را رد نکنه!

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

                حالا نمیدونم توی عمل چطوری باید این کار را بکنم. تئوری این مسائل را هم خوندم، اما توی عمل مشکل دارم.

                ممنون میشم کمکم کنید.
                چون تغییرات دما با کندی صورت میگیره بهتره PD باشه. قرار دادن یک ضریب P فقط سرعت تصمیم گیری را بیشتر میکنه اما همین overshot ها (ادامه بالا رفتن دمای هیتر حتی بعد از خاموش کردن )را باعث میشه. با قرار دادن ضریب D میشه تا حدودی جلوی این overshotها را گرفت.
                بهتره برای انجام این کار با کسی که درس کنترل خطی را خوب فهمیده صحبت کرده و ایده بگیرید.
                پیاده سازی کنترلر PD یا PID کار سختی نیست اما تنظیم ضرایب و دیجیتال سازی کنترلر کار را کمی سخت میکنه.
                مسئله درک کردن PIDکنترلر یه چیزه و پیاده سازیش یه چیز دیگه. برای کار شما که امکان کنترل توان بر روی هیتر ندارید کمی کار سخت تر میشه.
                مطالب زیر باید مشخص بشه :
                فرکانس اجرای حلقه کنترل : یعنی هر چند وقت یکبار خطا را پیدا کرده و تصمیم به اصلاح آن میکنید؟
                برای ایجاد کنترلر P باید در انتها از یک مقایسه کننده برای تولید 0 یا 1 جهت روشن یا خاموش کردن هیتر بکنید.
                کد:
                Out = P * Error;
                if (Out > TRIGER)
                  Hiter = ON;
                else
                  Hiter = OFF;
                برای افزودن کنترلر D و کلا استفاده از PD به شرح زیر عمل میکنیم
                کد:
                Out = P * Error + D * (Error - Past_Error);
                Past_Error = Error;
                if(Out > WINDING)
                  Out = WINDING;
                if (Out > TRIGER)
                  Hiter = ON;
                else
                  Hiter = OFF;
                حالا با تنظیم دقیق ضرایب D و P میتوانید جلوی تغییرات دما را با دقت مورد نظر بگیرید.
                مقادیر ثابت زیر را هم باید در کار بدست بیاورید.
                WINDING و TRIGER
                کار WINDING برای جلوگیری از واگرا شدن بیش از اندازه کنترلر هست که احتمالا بهش بر نخورید.
                نوع متغییرها باید از نوع float باشند.
                فرکانس حلقه در بروز WINDING خیلی تاثیر داره. اگر کنترلر را خیلی صدا بزنید و ضرایب به خوبی تنظیم نشده باشند ممکنه هیچ به جواب نرسید. چون به سرعت مقدار متغییر Out رو به افزایش یا کاهش میزاره و اونوقت مجبورید در ثابت TRIGER دست ببرید که حتی ممکنه به سقف نوع متغییها (float یا int) برسید و سرریز در آنها رخ دهد.
                اکیدا توصیه میکنم که فرکانس حلقه بسیار مهم بوده و باید یکنواخت باشد. یعنی سر هر 1 ثانیه صدا زده میشه به 1.2 تغییر پیدا نکنه و دوباره برگرده سر جاش.
                در صورتی که فرکانس حلقه را تغییر بدهید باید یکبار دیگه ضرایب را پیدا کنید.

                دیدگاه


                  #83
                  پاسخ : ساخت کنترلر دما PID فازی با AVR --- آموزشی ---

                  سلام
                  با تشکر از جواب دوست خوبم hs_golpa
                  اما به نظر من اگر از کنترلر pi استفاده کنی میتونی این مشکل رو حل کنی.
                  چون کنترلر p همون نوع رایجه/یعنی کنترلر تناسبی/بدین صورت که خطا رو اندازه میگیریم و براساس اون دستور توقف یا روشن شدن هیتر رو میدیم.
                  و کنترلر i یعنی عبرت گرفتن از گذشته/
                  واما در مورد ضرایب D باید بگم که معمولا تاثیر d کم است یا حتی میشه گفت خیلی خیلی کم است.
                  و در مورد i باید مفدارش خیلی کم باشد.
                  استفاده از کنترلر pi
                  ********************************
                  error=setpoint - point
                  P = error * Kp
                  (I = I +(err * Kd
                  Pi = P + I
                  ********************************
                  kp و ki ضرایب هستند/
                  ابتدا به ساکن مقدار انتگرالی صفر است/
                  setpoint همان حالت مطلوب شماست یعنی دمایی که میخواهید در ان هیتر خاموش یا روشن شود/
                  point خروجی سنسور pt100 میباشد.یعنی همان ورودی/
                  به نظر من اگه ابن مدلی از این کنترلر استفاده کنی میتونی جواب بهتری بگیری/باز هم نظر دوستان برام مهمه/
                  باتشکر...

                  دیدگاه


                    #84
                    پاسخ : ساخت کنترلر دما PID فازی با AVR --- آموزشی ---

                    ممنون از اینکه با حوصله و با ضرافت تمام این مطلب را توضیح دادین.

                    دوست خوبم hs_golpa فرمودند که از کنترلر PD و rekima عزیز گفتن که PI بهتره!! :agree:

                    اوکی!

                    ولی این را بگم که من اصلا بلد نیستم که چطوری این ضریب را به دست بیارم!!! باید چکار کرد؟؟؟

                    این ضریب چطوری باید محاسبه بشه؟؟!! :question:

                    دیدگاه


                      #85
                      پاسخ : ساخت کنترلر دما PID فازی با AVR --- آموزشی ---

                      سلام
                      اول تکلیف خودتو معلوم کن که از کدوم کنترلر میخای استفاده کنی/
                      بعد برای تعیین ضرایب چندین روش وجود داره/(کنترلر های فازی و قواعد زیگلر-نیکولس و ....)
                      هر دو رو امتحان کن هر کدوم نتیجه بهتری داد از اون استفاده کن شایدم pd بهتر جواب بده شایدم pi/

                      دیدگاه


                        #86
                        پاسخ : ساخت کنترلر دما PID فازی با AVR --- آموزشی ---

                        انتگرال گیر برای حذف نویز بیشتر کاربرد داره.
                        من برای کنترل موتور براش لس از یک PID کنترلر استفاده کردم که عملا ضرایب مهم و سرنوشت سازش p و i بود.
                        اما برای کنترل دمای کوره که که تغییر دما با شیب ملایمی هست و از طرفی نویز یا جابجایی سریع مرجع با خروجی را نداریم ، تاثیر I کمتره.
                        برای پیدا کردن ضرایب به صورت زیگر نیکولز میتونید کار کنید.
                        اما این طور که فهمیدم اطلاعات شما در کنترل خطی کافی نیست و بنابراین کارتون کمی سخت میشه.
                        اول اون برنامه ای که در بالا آورده شده را بنویسید و نتایجش را مشاهده کنید.
                        میتوانید برای جلوگیری از خطرات احتمالی، این کار را بر روی یک نمونه مجموعه ساده شده تست کنید. یک سشوار برقی و یک سنسور دما. سعی کنید دمای یک محفظه را در 68 درجه ثابت نگه دارید.
                        همچنین با ثبت مقادیر داخلی میکرو از طریق پورت سریال میتونید یک نمودار از تغییرات دما بدست بیارید و اینطوری دیدتون نسبت به موضوع بهتر میشه.
                        البته میتوانید از کنترلرهای آماده در بازار هم استفاده کنید. اینطوری کارتون هم تمیز تره و مهندسی شده. چرا که به صورت دقیق بر روی اصل مسئله کنترل کوره و فرایندش تمرکز میکنید و دیگه دقدقه جواب گرفتن از مدار را ندارید.
                        مثلا بدست آوردن یه نموداری شبیه این

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

                        دیدگاه


                          #87
                          پاسخ : ساخت کنترلر دما PID فازی با AVR --- آموزشی ---

                          بله ضرایب مهم و سرنوشت ساز p و i هست و d تاثیر خیلی خیلی کمی دارد حتی تو کنترل دمای کوره؟(البته بر اساس تجربه من)

                          دیدگاه


                            #88
                            پاسخ : ساخت کنترلر دما PID فازی با AVR --- آموزشی ---

                            سلام
                            متاسفانه بنده نمیتونم سر بزنم به انجمن وگرنه تمام این بهامات رو برطرف میکردیم
                            ببینید این ک چ کنترلری استفاده بشه به درک مفاهیم کنترل خطی و اینکه اصلا چه فرایندی و از چه نوعی رو دارید کنترل میکنید نیاز داره
                            فرایند های دمایی یک فرایند مرتبه اول هستند...یعنی در معادله مشخصه اون ها فقط 1 قطب وجود داره.پس برای کنترل کردن چنین فرایند کند و تنبلی باید از یک کنترلر سریع استفاده کنید.کنترلر P سرعت رو زیاد میکنه ولی در کنارش Over shoot رو هم افزایش میده.کنترلر D آینده رو پیش بینی میکنه و از ایجاد OV.S زیاد جلوگیری میکنه ولی در عوض خطای حالت ماندگان داره.
                            کنترلر PD به ندرت استفاده میشه چرا که به نویز بسیار حساس هست.پس به یک عامل حذف کننده خطای ماندگار هم نیاز هست که در واقع همون کنترلر I هستش.برای فرایندهای کند و کم سرعت ترکیب هر سه کنترلر یعنی PID پیشنهاد میشه.
                            اینو در نظر داشته باشید که افزایش بیش از حد گین انتگرالی باعث به وجود آمدن Wind up میشه و حتی با زیاد تر کردن اون میتونه سیستم رو نوسانی کنه و حتی به مرز ناپایداری برسونه.برای بهبود عملکرد سراغ کنترلر های ترکیبی با PID ، مثل Fuzzy و Neuro Fuzzy یا Genetic Algorithm میرویم...در واقع با استفاده از این الگوریتم به جای داشتن ضرایب ثابت از ضرایب متغیر بهره میبریم که میتونه خیلی خیلی عملکرد سیستم رو بهبود ببخشه.
                            نکته دوم این که هیچ وقت تمام مشخصه های مطلوب رو نمیتونید در کنار هم داشته باشید(البته در به کار گیری کنترلرهای کلاسیک مثل PID )
                            مسلما کاهش ov.s کندی سیستم و افزایش سرعت ، افزایش OV.s رو به همراه داره.حذف خطای ماندگار یکی از مشخصه های مطلوب هستش که بهای داشتن این مشخصه مطلوب ، کاهش سرعت سیستم و افزایش زمان نشست یا همون Settling time هست.
                            این کنترلر دیجیتال شده pid به همراه تغییر دنده ضرایب فازی رو به عنوان پروژه کارشناسی ساختم و نتیجه خیلی مطلوبی هم گرفتم.ایشالا بعد از کنکور( :read: :wow تمام تجربیات و مطالبی که کسب کردم رو اینجا میذارم.
                            ببخشید که نمیتونم کامل مطالب رو توضیح بدم.فقط جسته و گریخته یه توضیحی نوشتم.
                            موفق باشید
                            تولید کننده تجهیزات برنامه پذیر اتوماسیون صنعتی

                            www.intelart.ir


                            ساخت کنترلر دما PID فازی با AVR [آموزشی]

                            دیدگاه


                              #89
                              پاسخ : ساخت کنترلر دما PID فازی با AVR --- آموزشی ---

                              کنترلر فازی لطفا؟؟؟؟؟؟

                              دیدگاه


                                #90
                                پاسخ : ساخت کنترلر دما PID فازی با AVR --- آموزشی ---

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

                                دیدگاه

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