اطلاعیه

Collapse
No announcement yet.

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

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

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

    نوشته اصلی توسط شهریار رجب زاده
    سلام من یه برد برای درایور زدم که آمپر بالا جواب بده
    اول که روشن کردم موتور رو با روش خودم بعد یه مدت دمای موتور بالای 100 درجه رفت!
    اما بعدش فهمیدم زمانی که ماسفت ها باید روشن باشند باید خیلی کم باشه و اونطوری تونستم با دور پایین موتور رو بگردونم دیگه نه ماسفتی داغ کرد و نه موتور
    [hr]
    آقای نوربخش میشه در مورد الگوریتم برنامتون توضیح بدین؟
    در مورد مدت زمان روشن بودن ماسفت ها و کنترل دور...

    راستی مگنت های موتورم در اثر دمای بالا ضعیف شد :cry2:
    با سلام،

    درود بر برادر شهریار رجب زاده :bye
    آقا جان، از صفحه 13 تا صفحه 17 رو نگاه کن، دقیق توضیح دادم و با دوستان بررسی کردیم، اگر سوالی موند، درخدمتم
    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

    Sh_Nourbakhsh@Yahoo.com

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

    دیدگاه


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

      نوشته اصلی توسط aivhl
      نخیر وحید خان، شانسی چیه؟ یه خورده غفلت کنی اصلا نمیچرخه، مثل مال این برادر بزرگوار اکرمی، به شماتیک ارسالی و PDF اتمل AVR444 یه نگاهی بنداز، یه قسمتی هست به اسم Back EMF که قلب تپنده و کل ماجرا اینجاست. البته موضوع توی توضیحات مفصل برنامه میکرو دقیق تر روشن میشه. ولی اصل موضوع اینه که SUMME_UVW به ورودی آنالوگ کمپریتور میکرو وصله ( AIN0 ) و B_EMF_U و B_EMF_U و B_EMF_U هم در گذر از صفر به ترتیب به ورودی دیگر آنالوگ کمپریتور میکرو متصل میشن و در حقیقت با Zero-cross detection گذر از یک موقعیت روتور به موقعیت بعدی تشخیص داده میشه و سیم پیچ درست تحریک میشه.

      در این مدار PWM به ماسفت های مثبت اعمال میشه و با تشخیص گذر از صفر، به ترتیب ماسفت های منفی مربوطه ( U و V و W ) روشن میشن و در نتیجه موتور شروع میکنه به چرخیدن.......

      حالا اگر این همزمانی، به هر دلیلی درست نباشه، دور موتور بشدت افت میکنه و یا اصلا راه نمی افته! و در صورت عدم همزمانی مناسب، ماسفت ها هم گرم میکنند. البته من برنامه میکرو رو به دقت تحلیل کردم و خیلی خوبه، اگر مشکلی باشه مربوط به ضعف آنالوگ کمپریتور داخلی میکرو و نویز پذیریش و درایور و یا نوع ماسفت ها میشه. ( اگر فرصت کردی، از اونجایی که من عملا وارد کار شدم، پست های من رو مرور کن ) برای همین توی درایورهای خفن و یا حساس از آنالوگ کمپریتور خارجی و آی سی درایور ماسفت استفاده شده ( لینکش رو پیدا میکنم و برات میزارم )

      ( در ضمن، همونطور که گفتم، حتما پیشنهاد شما و سایر اساتید محترم رو تست خواهم کرد )
      میشه رو شکل توضیح بدید این ماسفت ها کی باید روشن باشند؟
      من که هرچی فکر میکنم نمیفهمم چطوری از PWM استفاده میکنید
      راستی حس میکنم این موتور 12 تا پله داره(با چرخوندن فهمیدم) در صورتی که انگار موتور های دیگه 4 یا 6 تا دارند یعنی ساختمان موتور چه شکلی در میاد؟

      دیدگاه


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

        برادر شهریار، حتما صفحات 13 تا 17 رو بخون ( مخصوصا توضیحاتی که خودم دادم! :mrgreen: )

        این موتور ها کلا 3 تا قطب دارند، این پست رو ببین :
        http://www.eca.ir/forum2/index.php?topic=52169.msg331469#msg331469

        این هم ببین :
        http://www.eca.ir/forum2/index.php?topic=52169.msg316597#msg316597

        این رو هم تماشا کن :
        http://video.designworldonline.com/video?vid=f98509b2b1044714aa0cf081e48891a5

        و حالا این توضیحات رو بخون :
        در روتین next_commutate_state موتور در شش مرحله، یک استپ جلو میره و حدودا با هشت استپ یک دور کامل میزنه.

        در هر مرحله، با توجه به موقعیت روتور، یکی از قطب های موتور به زمین و یکی به مثبت متصل میشه ( با ماسفت ) و قطب سوم هم برای تشخیص گذر از مرحله جاری، به مقایسه کننده آنالوگ میکرو متصل میشه، به بقیه ماجرا دیگه کاری نداریم! :biggrin:

        حالا جواب سوال شما اینجاست که وقتی یک قطب به زمین متصل شد، اگر به قطبی که باید به مثبت متصل بشه، بجای اتصال مستقیم اون به مثبت، یک موج مربعی با دیوتی سایکل متغییر ( همون PWM خودمون )بدیم، چه اتفاقی خواهد افتاد؟ خوب معلومه دادا، با توجه به برایند موج PWM دور موتور کم و زیاد خواهد شد. حالا توجه داشته باش که این روند در هر بار دور زدن موتور 48 بار رخ میده....

        یعنی در این تصویر، بجای روشن کردن کامل ماسفت های UH و VH و WH ( یعنی UH_ON و VH_ON و WH_ON )در اصل به اونها یک موج PWM اعمال میشه....



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

        Sh_Nourbakhsh@Yahoo.com

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

        دیدگاه


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

          X_X
          من اون شکله رو دیده بودم موقع خوندن تاپیک اما چون ریسایز نمیشد فقط سمت راست رو میدیدم و الآن فقط مراحل 2 و 4 و 6 رو انجام میدادم
          http://www.eca.ir/forum2/index.php?topic=52169.msg331469#msg331469
          فکر کنم این موتورش Inrunner هست اونوقت A و B و C فاز ها هستند دیگه؟
          بعد یه چیز دیگه
          اون مقدار زمان دیوتی سایکل و زمان کلی که تایمر میشماره رو چطور به دست میارید؟

          دیدگاه


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

            نوشته اصلی توسط شهریار رجب زاده
            X_X
            من اون شکله رو دیده بودم موقع خوندن تاپیک اما چون ریسایز نمیشد فقط سمت راست رو میدیدم و الآن فقط مراحل 2 و 4 و 6 رو انجام میدادم
            http://www.eca.ir/forum2/index.php?topic=52169.msg331469#msg331469
            فکر کنم این موتورش Inrunner هست اونوقت A و B و C فاز ها هستند دیگه؟
            بعد یه چیز دیگه
            اون مقدار زمان دیوتی سایکل و زمان کلی که تایمر میشماره رو چطور به دست میارید؟
            دقیقا همین طوریاست اخوی، InRunner و ....

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

            Sh_Nourbakhsh@Yahoo.com

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

            دیدگاه


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

              نوشته اصلی توسط aivhl
              دقیقا همین طوریاست اخوی، InRunner و ....

              سوالت مفهوم نیست، متوجه نشدم...
              چجوری هم از sense استفاده میکنید هم pwm؟؟؟pwm که یه زمان مشخصه اما senseـه که معلوم نیست
              من که نفهمیدم

              دیدگاه


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

                یه سوالی برام پیش اومده این موتوره خیلی داغ میکنه جوری که نمیشه تو دست نگه داشت این طبیعیه؟

                دیدگاه


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

                  با سلام،
                  چجوری هم از sense استفاده میکنید هم pwm؟؟؟pwm که یه زمان مشخصه اما senseـه که معلوم نیست
                  من که نفهمیدم
                  برادر، سورس رو بررسی کن؛ متوجه موضوع میشی ( توضیح دادنش کمی سخته! )
                  یه سوالی برام پیش اومده این موتوره خیلی داغ میکنه جوری که نمیشه تو دست نگه داشت این طبیعیه؟
                  موتور بدون بار اصلا گرم نمیشه، با بار ( ملخ ) در حداکثر سرعت، کمی گرم میشه ( حدود 30 الی 40 درجه ) و اگر در حال بلند کردن چیزی باشه و تحت فشار شدید باشه خیلی گرم میشه ( حدود 70 الی 80 درجه )

                  حالا شما با روش خودت راه انداختیش؟! در اینصورت، ممکنه که در حالت عادی هم بترکه!!! =))
                  مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                  Sh_Nourbakhsh@Yahoo.com

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

                  دیدگاه


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

                    نوشته اصلی توسط aivhl
                    با سلام،
                    برادر، سورس رو بررسی کن؛ متوجه موضوع میشی ( توضیح دادنش کمی سخته! )
                    موتور بدون بار اصلا گرم نمیشه، با بار ( ملخ ) در حداکثر سرعت، کمی گرم میشه ( حدود 30 الی 40 درجه ) و اگر در حال بلند کردن چیزی باشه و تحت فشار شدید باشه خیلی گرم میشه ( حدود 70 الی 80 درجه )

                    حالا شما با روش خودت راه انداختیش؟! در اینصورت، ممکنه که در حالت عادی هم بترکه!!! =))
                    شرمنده سورس رو هم دیدم ولی هر چی نگاه کردم چیزی نفهمیدم :redface:
                    سوال اینه اگه بخوایم زمان بین دو تا سنس رو در نظر بگیریم با توجه به اینکه باید به ماسفت + pwm بدیم pwm باید چند درصدش روشن باشه و چند درصدش خاموش؟
                    این بالای 80 درجه هست(نمیتونم تو دستم نگه دارم)
                    فعلا هم نمیتونم از سنس استفاده کنم چون نمیدونم چطوری باید استفاده کنم :angry:

                    دیدگاه


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

                      نوشته اصلی توسط شهریار رجب زاده
                      شرمنده سورس رو هم دیدم ولی هر چی نگاه کردم چیزی نفهمیدم :redface:
                      سوال اینه اگه بخوایم زمان بین دو تا سنس رو در نظر بگیریم با توجه به اینکه باید به ماسفت + pwm بدیم pwm باید چند درصدش روشن باشه و چند درصدش خاموش؟
                      این بالای 80 درجه هست(نمیتونم تو دستم نگه دارم)
                      فعلا هم نمیتونم از سنس استفاده کنم چون نمیدونم چطوری باید استفاده کنم :angry:
                      با سلام،

                      جواب سوالت دقیقا اینجاست :
                      http://www.eca.ir/forum2/index.php?topic=52169.msg316725#msg316725

                      یک قطب زمین میشه، یک قطب PWM و یک قطب برای تشخیص گذر از موقعیت کنونی روتور، مطابق این عکس :
                      http://s2.picofile.com/file/7223582789/BLDC_Steps.jpg

                      این تصویر به مراحل شش گانه در روتین next_commutate_state اشاره داره...

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

                      Sh_Nourbakhsh@Yahoo.com

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

                      دیدگاه


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

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

                        دیدگاه


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

                          نوشته اصلی توسط شهریار رجب زاده
                          اینکه معلومه!
                          منم موتور رو گذاشتم تو ظرف یخ!
                          الآن هم به جای اون سه مرحله همین 6 تا رو اجرا میکنم تو دور خیلی کم میچرخه خوبم هست
                          فکر کنم سوالم رو درست متوجه نشدید
                          اون زمان روشن بودن ماسفت ها رو چی کار کنم
                          یعنی از لحظه ای که سیگنال میاد تا فاز مربوطه فعال بشه تا زمانی که دوباره سیگنال میاد فاز باید قطع بشه تو طول این مدت ماسفت ها همینطور باید روشن بمونند؟پس pwm اش کجا میره؟
                          ارتباطی که بین زمان روشن بودن ماسفت و دور موتور چیه؟با یه نسبت ثابت دور رو میشه به حداکثر رسوند یا اینکه باید نسبت زمان روشن بودن به خاموش بودن مسافت ها افزایش پیدا کنه؟
                          بله، یک فاز زمین، یک فاز PWM و فاز Sense . این از یک مرحله تا مرحله بعد در همین حالت میمونه و به محض رسیدن به حالت بعدی، طبق اون تصویر تغییر میکنه....

                          توجه داشته باش که مثلا در مرحله اول، UH_ON یعنی اعمال PWM به یک فاز و VL_ON یعنی زمین کردن فاز بعدی و SENSE_W هم یعنی خوندن فیدبک Back_EMF از یک فاز دیگه .....
                          مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                          Sh_Nourbakhsh@Yahoo.com

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

                          دیدگاه


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

                            نوشته اصلی توسط aivhl
                            بله، یک فاز زمین، یک فاز PWM و فاز Sense . این از یک مرحله تا مرحله بعد در همین حالت میمونه و به محض رسیدن به حالت بعدی، طبق اون تصویر تغییر میکنه....

                            توجه داشته باش که مثلا در مرحله اول، UH_ON یعنی اعمال PWM به یک فاز و VL_ON یعنی زمین کردن فاز بعدی و SENSE_W هم یعنی خوندن فیدبک Back_EMF از یک فاز دیگه .....
                            میتونید مشخصات اون PWM رو بهم بگید؟چجوری میسازید؟
                            سوالم از اول همین بوده...

                            دیدگاه


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

                              نوشته اصلی توسط شهریار رجب زاده
                              میتونید مشخصات اون PWM رو بهم بگید؟چجوری میسازید؟
                              سوالم از اول همین بوده...
                              ایول، خوب از اول بوگو دادا :mrgreen:

                              void PWM_init(void)
                              {
                              sbi(TCCR0A, COM0B1); //Clear OC0B on Compare Match
                              sbi(TCCR0A, WGM00); //Mode 3 : Fast PWM
                              sbi(TCCR0A, WGM01); //
                              sbi(TCCR0B, CS00); //No prescaling

                              sbi(TCCR2A, COM2A1); //Clear OC2A on Compare Match
                              sbi(TCCR2A, COM2B1); //Clear OC2B on Compare Match
                              sbi(TCCR2A, WGM20); //Mode 3 : Fast PWM
                              sbi(TCCR2A, WGM21); //
                              sbi(TCCR2B, CS20); //No prescaling
                              } //PWM_init
                              مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                              Sh_Nourbakhsh@Yahoo.com

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

                              دیدگاه


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

                                نوشته اصلی توسط aivhl
                                ایول، خوب از اول بوگو دادا :mrgreen:

                                void PWM_init(void)
                                {
                                sbi(TCCR0A, COM0B1); //Clear OC0B on Compare Match
                                sbi(TCCR0A, WGM00); //Mode 3 : Fast PWM
                                sbi(TCCR0A, WGM01); //
                                sbi(TCCR0B, CS00); //No prescaling

                                sbi(TCCR2A, COM2A1); //Clear OC2A on Compare Match
                                sbi(TCCR2A, COM2B1); //Clear OC2B on Compare Match
                                sbi(TCCR2A, WGM20); //Mode 3 : Fast PWM
                                sbi(TCCR2A, WGM21); //
                                sbi(TCCR2B, CS20); //No prescaling
                                } //PWM_init
                                فکر کنم داریم به جواب نزدیک میشیم
                                خوب حالا تو برنامه چی کار میکنید بر چه اساسی رجیستر های تایمر رو مقدار دهی میکنید تا PWM بسازه؟
                                اون وقت شکل موج حاصل چجوری میشه
                                وقتی که معلوم نیست که سیگنال سنس بیاد چجوری PWM میسازید؟

                                دیدگاه

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