اطلاعیه

Collapse
No announcement yet.

راه اندازی موتور براشلس (BLDC)

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

    پاسخ : راه اندازی موتور براشلس (BLDC)

    با سلام،

    نوشته اصلی توسط roboreza
    سلام من پست هایی که گفته بودید خونده بودم بازم خوندم :read:
    ولی نفهمیدم چکار کردین .............
    پاسخ شما در پست زیر داده شده :

    نوشته اصلی توسط aivhl
    با سلام،

    وقتی که مدار روشن میشه و تایمر یک سر ریز میشه، روتین مربوط به کوموتاسیون ( next_commutate_state ) بدون در نظر گرفتن حالات و اتفاقات مقایسه کننده اجرا میشه، این موضوع در عمل موجب تکان خوردن و گردش نامنظم و بی هدف موتور میشه. ( این گردش ممکنه حتی برعکس جهت درست گردش موتور باشه! ) این موضوع تا زمانی که موتور قبل از سر ریز شدن تایمر، بیشتر از یک دور کامل بزنه ( یعنی وقفه مقایسه کننده 200 بار اتفاق بیافته )، ادامه پیدا میکنه. این ماجرا برابر است با دور موتور بیش از 230 دور بر دقیقه. ( این یعنی اینکه حداقل دور موتور در هر حالتی باید بیشتر از 230 دور بر دقیقه باشه، وگرنه تایمر یک سر ریز میشه .... ) در عمل این اتفاق خجسته بعد از کمتر از یک ثانیه اتفاق خواهد افتاد :mrgreen:

    توجه داشته باشید که این مثل این میمونه که شما برای سهولت استارت موتور، در ابتدا با دستتون شفت موتور رو گرفتید و یه هولی بهش دادید!!! ( این عمل برای استارت موتور الزامیه )

    بعد از وقایع صدر الاشاره، برنامه وارد روال عادی اجرای خودش میشه و قاعدتا دیگه سر ریز تایمر اتفاق نخواهد افتاد!

    روشن شد برادر؟! :mrgreen:
    البته بعدها تغییراتی در کل برنامه اعمال شده که با توجه به فانکشن ها و انتظارات جدید، عملکرد برنامه از نظر سرعت در حد مطلوبی قرار بگیره ولی کلیات قضیه همونه و تغییری نکرده.

    ( دستورات راه اندازی اولیه که توضیحاتش رو در بالا مشاهده میکنید از روتین ذکر شده خارج شده و به روتین startup_commutate_state منتقل گردیده )

    یک توضیح اجمالی :
    وقفه سرریز تایمر یک که با ISR_BEMF_WDT نامگذاری شده، در اصل نقش واچ داگ Back-EMF رو داره، یعنی اینکه اگر Back-EMF تا سرریز این تایمر اتفاق نیافته، یعنی اینکه یک مشکلی در چرخش موتور وجود داره!
    در زمان استارت اولیه موتور، بدلیل اینکه موتور ثابته، این تایمر سرریز میشه و روتین startup_commutate_state که وظیفه راه اندازی اولیه موتور رو داره اجرا میشه.
    روتین startup_commutate_state هم با توجه به توضیحات پست قبلی اشاره شده، موتور رو بدون در نظر گرفتن Back-EMF و بی هدف به گردش وا میداره.
    پس از اینکه وقفه مقایسه کننده آنالوگ یا همون گذر از صفر ( یا در واقعیت ما نصف Back-EMF ! ) که ISR_BEMF_ZC نامگذاری شده برای 200 بار متوالی ( قبل از سرریز شدن ISR_BEMF_WDT ) اتفاق بیافته، یعنی اینکه موتور شروع به حرکت کرده و با فراخوانی روتین next_commutate_state در روتین ISR_BEMF_ZC ( با هر بار وقوع گذر از صفر ) ادامه حرکت موتور با توالی کوموتاسیون ها انجام خواهد شد .....

    اگر راه اندازی اولیه موتور با مشکل مواجه هست، بهتره که مقدار rotor_RUN که در حال حاضر عدد 200 هست و یا مقادیر اولیه راه اندازی PWM در روتین ISR_BEMF_WDT رو بررسی و بازنگری کنید.

    بدلیل اینکه گردش موتور به هر دو جهت چپ و راست پیش بینی شده، روتین های startup_commutate_state و next_commutate_state دارای دو قسمت برای گردش به چپ و یا راست هستند که با متغییر RotStatus انتخاب میشن.
    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

    Sh_Nourbakhsh@Yahoo.com

    http://s2.picofile.com/file/7170362468/_Wall_e_.jp

    دیدگاه


      پاسخ : راه اندازی موتور براشلس (BLDC)

      اقا دستتون درد نکنه حالا با توجه به توضیحاتتون یه برنامه مینویسم ببینم چی میشه آخه چون من با pic کار میکنم نمیتونم از برنامه شما استفاده کنم
      شماتیک رو دیدید؟نظری در مورد جریان کشی زیاد موتور ندارید؟
      AYRIC

      دیدگاه


        پاسخ : راه اندازی موتور براشلس (BLDC)

        نوشته اصلی توسط roboreza
        اقا دستتون درد نکنه حالا با توجه به توضیحاتتون یه برنامه مینویسم ببینم چی میشه آخه چون من با pic کار میکنم نمیتونم از برنامه شما استفاده کنم
        شماتیک رو دیدید؟نظری در مورد جریان کشی زیاد موتور ندارید؟
        با سلام،

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


        اضافه شده در تاریخ :
        پی نوشت :
        راستی، یه نگاهی به AN857 از شرکت میکروچیپ بنداز، توی پروتئوس در پوشه مثال هاش هم هست ...
        مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

        Sh_Nourbakhsh@Yahoo.com

        http://s2.picofile.com/file/7170362468/_Wall_e_.jp

        دیدگاه


          پاسخ : راه اندازی موتور براشلس (BLDC)

          نوشته اصلی توسط aivhl
          راستی، یه نگاهی به AN857 از شرکت میکروچیپ بنداز، توی پروتئوس در پوشه مثال هاش هم هست ...
          اینی گفتید رو دیدم
          موتوری که استفاده کرده اگر هر سه تا پایه اش رو به 5 ولت مستقیم وصل کنید موتور با حداکثر سرعتش میتابه :surprised: :eek: :angry:
          تازه توی این پروژه انگار از سنسور استفاده کرده
          در مورد سخت افزار نهایی هم درسته میگید این نیست قسمت قدرتش رو همه ی ماسفت هارو irf3205 گذاشتم و با ir2104 داریوشون کردم. چرا میگین این که تو پروتئوسه کار نمیکنه؟

          فکر نمیکنم مشکل از بخش قدرت مدارم باشه (البته اون اصلیه)چون هر کدوم از نیم پل هارو با یه موتور براش بزرگ تستش کردم و خیلی خوب جواب میده و قشنگ بک هم میزنه

          برنامه رو هم اینجوری نوشتم که
          اول اومدم s==1 کردم و تابع station رو صدا زدم که فاز B=HI و فازC=LOW شود بعد منتظر مقدار فاز A شدم که مقدارش نسبت به اون چیزی که بوده تغییر کنه به محض این که تغییر کرد BREAK کردم و رفتم سراغ تحریک فاز های بعدی
          درسته؟
          S==0 هم مال موقعی هست که میخوام همه ی فازها رو غیر فعال کنم که البته ازش استفاده نکردم
          مشکل جریان میتونه مال مقدار مقاومت ها یا خازن های فیلتر BEMF باشه؟

          در مورد مقایسه کننده خارجی هم چون بلد نبودم با مقایسه کننده داخلی میکرو کار کنم این کارو کردم :redface:

          AYRIC

          دیدگاه


            پاسخ : راه اندازی موتور براشلس (BLDC)

            سلام به اعضای محترم

            سوالی از آقای نور بخش راد داشتم :

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

            باتشکر .

            دیدگاه


              پاسخ : راه اندازی موتور براشلس (BLDC)

              با سلام،

              مشکل جریان میتونه مال مقدار مقاومت ها یا خازن های فیلتر BEMF باشه؟
              خیر، نمیتونه از این باشه، شاید موتورت مشکل داره، با یه موتور دیگه تست کن، شاید مقادیر المانهای درایورت هم درست نباشه ...

              در مورد مقایسه کننده خارجی هم چون بلد نبودم با مقایسه کننده داخلی میکرو کار کنم این کارو کردم :redface:
              این خیلی حیفه! سعی کن از مقایسه کننده داخلی استفاده کنی، هم کار تمیزتر میشه و هم اینکه حرفه ای و خلاصه میشه، ضمن اینکه استفاده از مقایسه کننده PIC از AVR راحت تره!

              نوشته اصلی توسط aseok
              سلام به اعضای محترم

              سوالی از آقای نور بخش راد داشتم :

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

              باتشکر .
              بستگی به خودت و نوع استفاده ات داره، تفاوت فقط در ابعاده و مورد استفاده ...
              مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

              Sh_Nourbakhsh@Yahoo.com

              http://s2.picofile.com/file/7170362468/_Wall_e_.jp

              دیدگاه


                پاسخ : راه اندازی موتور براشلس (BLDC)

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

                دیدگاه


                  پاسخ : راه اندازی موتور براشلس (BLDC)

                  ببخشید منظورم این هست که با توجه به مشخص بودن ابعاد قطعات ، مگر نباید نقشه مدار دریک ابعاد مشخص باشه ؟

                  دیدگاه


                    پاسخ : راه اندازی موتور براشلس (BLDC)

                    سلام
                    مشکل جریان کشیدن درست شد :wow: :wow:
                    مال موتور بود. یه موتورXM3548CA انداختم روش (650 وات) توی حداکثر سرعت و بی باری فقط 1.7 آمپر جریان میکشه که مطابق دیتاشیت موتوره
                    اینم فیلمش
                    http://www.aparat.com/v/nYoRL
                    نظرتون رو بگید :applause:
                    AYRIC

                    دیدگاه


                      پاسخ : راه اندازی موتور براشلس (BLDC)

                      نوشته اصلی توسط roboreza
                      سلام
                      مشکل جریان کشیدن درست شد :wow: :wow:
                      مال موتور بود. یه موتورXM3548CA انداختم روش (650 وات) توی حداکثر سرعت و بی باری فقط 1.7 آمپر جریان میکشه که مطابق دیتاشیت موتوره
                      اینم فیلمش
                      http://www.aparat.com/v/nYoRL
                      نظرتون رو بگید :applause:
                      با سلام،

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

                      Sh_Nourbakhsh@Yahoo.com

                      http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                      دیدگاه


                        پاسخ : راه اندازی موتور براشلس (BLDC)

                        نوشته اصلی توسط aivhl
                        با سلام،

                        تبریک میگم، خیلی هم خوب .....
                        حالا که از کلیات الگوریتم برنامه مطمئن شدی، در اولین قدم سعی کن که مقایسه کننده خارجی رو حذف کنی و از مقایسه کننده داخلی خود میکرو استفاده کنی و در مرحله بعد هم ارتباطات برد رو توسعه بده .....
                        بله اتفاقا همین دیروز داشتم روی مقایسه کننده داخلی pic ها کار میکردم.یه کد هم نوشتم که وقتی ولتاژ بیشتر از 2.5 شد میرفت تو وقفه و یه led رو روشن میکرد اما دیگه اون led خاموش نمیشد. شما میدونید باید چکار کنم؟ یه چیز دیگه اینکه اصلا vref رو چطور باید تعیین کنم؟ چون توی wizard یه لیست از ولتاژهای مختلف داره که من ولتاژ2.5 رو انتخاب کردم. نیازی نیست که به پایه خاصی ولتاژ 2.5 به عنوان vref اعمال بشه؟
                        AYRIC

                        دیدگاه


                          پاسخ : راه اندازی موتور براشلس (BLDC)

                          نوشته اصلی توسط roboreza
                          بله اتفاقا همین دیروز داشتم روی مقایسه کننده داخلی pic ها کار میکردم.یه کد هم نوشتم که وقتی ولتاژ بیشتر از 2.5 شد میرفت تو وقفه و یه led رو روشن میکرد اما دیگه اون led خاموش نمیشد. شما میدونید باید چکار کنم؟ یه چیز دیگه اینکه اصلا vref رو چطور باید تعیین کنم؟ چون توی wizard یه لیست از ولتاژهای مختلف داره که من ولتاژ2.5 رو انتخاب کردم. نیازی نیست که به پایه خاصی ولتاژ 2.5 به عنوان vref اعمال بشه؟
                          با سلام،

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

                          اگر بخوای از ولتاژ رفرنس استفاه کنی، یکی از پین های ورودی آنالوگ وظیفه Vref مثبت و یکی دیگه منفی رو دارند. البته میتونی از ولتاژ رفرنس داخلی میکرو هم استفاده کنی که ظاهرا شما در تست خودتون این کار رو کردید ...

                          مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                          Sh_Nourbakhsh@Yahoo.com

                          http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                          دیدگاه


                            پاسخ : راه اندازی موتور براشلس (BLDC)

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

                            دیدگاه


                              پاسخ : راه اندازی موتور براشلس (BLDC)

                              نوشته اصلی توسط aivhl
                              تا جایی که من میدونم، در یک مد شما میتونی یکی از ورودی های آنالوگ رو بعنوان رفرنس در نظر بگیری و هر ورودی دیگری از آنالوگ ها رو با اون مقایسه کنی، در اینصورت، اگر اینتراپتش رو هم فعال کرده باشی، روتین اینتراپت مربوطه اجرا خواهد شد. این مد برای کار شما مناسب تره ....
                              از همین روش یه کد دارید؟ من با ccs کار میکنم و توی سایت ccsinfo هم سرچ کردم اما چون شماتیک کنار کد هاشون نمیذارند من متوجه نشدم.
                              AYRIC

                              دیدگاه


                                پاسخ : راه اندازی موتور براشلس (BLDC)

                                نوشته اصلی توسط roboreza
                                سلام
                                مشکل جریان کشیدن درست شد :wow: :wow:
                                مال موتور بود. یه موتورXM3548CA انداختم روش (650 وات) توی حداکثر سرعت و بی باری فقط 1.7 آمپر جریان میکشه که مطابق دیتاشیت موتوره
                                اینم فیلمش
                                http://www.aparat.com/v/nYoRL
                                نظرتون رو بگید :applause:
                                سلام
                                آقا فوق العاده بود
                                ممنون
                                فقط میشه مدارو برنامشو بزاری ماهم استفاده کنیم؟
                                زکات علم نشر آن است

                                دیدگاه

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