اطلاعیه

Collapse
No announcement yet.

ساخت اینورتر سینوسی خالص - Pure Sine Wave Inverter

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

    پاسخ : ساخت اینورتر سینوسی خالص - Pure Sine Wave Inverter

    نوشته اصلی توسط -Alone-
    چه اشتباهی؟
    سوئیچ ها باید بصورت ضربدری باشند(یک اصل در پل H)

    :mrgreen: بله حق با شماست :redface:
    من فکر کردم در اون شماتیکی که زحمت کشیدید قرار دادید ...
    ای را با بی و پریم را با بپریم جفت جفت با هم گرفتید گفتم نکند اشتباه کردید...
    پوزش میخوام باید بیشتر دقت میکردم قبل از این که پست بزنم :redface:
    آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
    مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
    _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

    دیدگاه


      پاسخ : ساخت اینورتر سینوسی خالص - Pure Sine Wave Inverter

      درود به تمامی دوستان عید همه مجدد مبارک
      ببینید اصلا بحث سر قسمت منفی نیست این یه فکر اشتباه هست و IC درایو به بخش منفی کاری نداره مثلا IR2110
      2 قسمت ورودی سیگنال داره قبول HIN و LIN خوب فقط این دو سیگنال با توجه به مدار ما باید قرینه هم باشن وگرنه جفت سوئیچ ها روشن میشه البته با توجه به طرح ما وگرنه شما میتونید در توپولوژی 2 سوئیچ جفت ورودی ها رو یکی کنید بماند
      ورودی که اینا قبول میکنن از 0 تا مثلا 5 یا 12 ولت وفقط گفتم قرینه هم هستن زمانی که HIN روشنه LIN خاموشه و برعکس قضیه
      شما به یه سمت میتونی فرکانس 16 کیلوهرتز به بالاتر بدی(بستگی به توان کاری و طرحمون داره)
      و سمت دیگه فرکانس 50 یا 60 هرتز
      و برادر دوست عزیز یا مهندس و... شما در عمل نمیتونی باتوجه به IC درایو IR2110 به 2 تا ماسفت یا IGBT پایین فرکانس بالا بدی چون یکی مربوط به دو تا IC متفاوت هست و نمیتونی اینکارو با این IC کنی مگر اینکه بیای از 4 تا IC درایو تکی استفاده کنی که با توجه به گفته های خودت سعی میکنی از قطعات کمتری استفاده کنی

      و مطلب بعدی اقا سینا عزیز چرا اون تحمید گیت اند گذاشت (((بی دلیل نیست)))
      میخاست فرکانس بالا رو هم تو بازه های 50 هرتز داشته باشه و بعد اون بیاد بده به IR2110
      در واقع 2 تا فرکانس رو روهم سوار کرده

      و مطلب اخر مدار تو طرح بوست پوش پول باید محافظ مثله LOW BATT,,, OVER HEAT,,,OVER LOAD و از همه مهمتر SHORT CIRCUIT داشته باشه که سریعا قطع کنه اتفاق دیگه بقول شما میکرو هنگ کرد دیگه مشکلی پیش نیاد چون اونقدر سریع هم نمیسوزه مدار زودتر خاموش شده (اگه اتصال کوتاه بشه ماسفت های مدار پوش پول زودتر میسوزه نه پل H


      من از تنگی چشم فیل دانستم

      آنان که غنی ترند ... محتاج ترند

      دیدگاه


        پاسخ : ساخت اینورتر سینوسی خالص - Pure Sine Wave Inverter

        نوشته اصلی توسط aliebi1
        درود به تمامی دوستان عید همه مجدد مبارک
        ببینید اصلا بحث سر قسمت منفی نیست این یه فکر اشتباه هست و IC درایو به بخش منفی کاری نداره مثلا IR2110
        2 قسمت ورودی سیگنال داره قبول HIN و LIN خوب فقط این دو سیگنال با توجه به مدار ما باید قرینه هم باشن وگرنه جفت سوئیچ ها روشن میشه البته با توجه به طرح ما وگرنه شما میتونید در توپولوژی 2 سوئیچ جفت ورودی ها رو یکی کنید بماند
        ورودی که اینا قبول میکنن از 0 تا مثلا 5 یا 12 ولت وفقط گفتم قرینه هم هستن زمانی که HIN روشنه LIN خاموشه و برعکس قضیه
        شما به یه سمت میتونی فرکانس 16 کیلوهرتز به بالاتر بدی(بستگی به توان کاری و طرحمون داره)
        و سمت دیگه فرکانس 50 یا 60 هرتز
        و برادر دوست عزیز یا مهندس و... شما در عمل نمیتونی باتوجه به IC درایو IR2110 به 2 تا ماسفت یا IGBT پایین فرکانس بالا بدی چون یکی مربوط به دو تا IC متفاوت هست و نمیتونی اینکارو با این IC کنی مگر اینکه بیای از 4 تا IC درایو تکی استفاده کنی که با توجه به گفته های خودت سعی میکنی از قطعات کمتری استفاده کنی

        oo:
        یا من بد متوجه شدم و دارم اشتباه میکنم و یا شما اشتباه میکنی!
        من تا اینجای کار راجع به نوع درایور هیچ نظری ندادم و شماتیک خودم رو هم اگر نگاه کنید میبینید که سیگنال هست و وارد درایو نشدم
        از 2110 هم تابحال استفاده نکردم که ببینم حرف شما صحت داره راجع به فرکانس پایین بودنش و یا نه

        نوشته اصلی توسط aliebi1
        و مطلب بعدی اقا سینا عزیز چرا اون تحمید گیت اند گذاشت (((بی دلیل نیست)))
        میخاست فرکانس بالا رو هم تو بازه های 50 هرتز داشته باشه و بعد اون بیاد بده به IR2110
        در واقع 2 تا فرکانس رو روهم سوار کرده
        oo:
        اینو نمیدونم باید چی بگم

        نوشته اصلی توسط aliebi1
        و برادر دوست عزیز یا مهندس و...
        oo:
        چرا میخوای بزنیمون؟ :biggrin:

        دیدگاه


          پاسخ : ساخت اینورتر سینوسی خالص - Pure Sine Wave Inverter

          نوشته اصلی توسط -Alone-

          oo:
          یا من بد متوجه شدم و دارم اشتباه میکنم و یا شما اشتباه میکنی!
          من تا اینجای کار راجع به نوع درایور هیچ نظری ندادم و شماتیک خودم رو هم اگر نگاه کنید میبینید که سیگنال هست و وارد درایو نشدم
          از 2110 هم تابحال استفاده نکردم که ببینم حرف شما صحت داره راجع به فرکانس پایین بودنش و یا نه
          oo:
          اینو نمیدونم باید چی بگم
          oo:
          چرا میخوای بزنیمون؟ :biggrin:
          دوست عزیزم Alone و علی آقای عزیز
          خسته نباشید , مطالب مهمی را اشاره کردید , دست هر دوی شما درد نکنه
          در تکمیل فرمایشات دوستان من مقاله آقای تحمید را قرار میدم تا دوستان خواننده تاپیک متوجه موضوع شوند و بفهمند که در مورد چه فردی
          و روشی صحبت می شود...:

          http://www.scribd.com/doc/154517242/Sine-Wave-Generation-and-Implementation-using-dsPIC33FJ#scribd

          پ.ن: در مورد فیلتر دوستان نظری ندارند؟ به چه صورت باید حساب شود...؟ مثلا در فرومی برای 16 کیلو هرتز
          سلف 5 میلی و خازن 220 نانو پیشنهاد داده بودند.... و همچنین بهتر است روی دو خروجی باید دو سف جدا قرار دهیم
          یا یک سلف و بر روی یک خروجی قرار گیرد و خروجی دوم چیزی قرار ندهیم...؟
          همچنین جناب جبراییلی در همین تاپیک توضیح دادند که نباید خازن فیلتر را زیاد بالا بگیریم و باید برای کنترل فیلتر تا جایی که میشود
          سلف را افزایش داد....
          آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
          مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
          _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

          دیدگاه


            پاسخ : ساخت اینورتر سینوسی خالص - Pure Sine Wave Inverter

            درود و سلام بهاری
            شرمنده منظوری نداشتم شما به سید ما گفتی منو هی فلان چی نگو من همه جوره گفتم ناراحت نشی

            سید جان ما هم این تحمید رو قبول داریم اطلاعات خوبی تو وبلاگش در اختیار همگان گذاشته و خیلی ساده و رسا توضیح داده

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

            استاد جبراییلی درست گفتن چرا اون اینه که با افزایش خازن خروجی شبیه حالت خازنی میشه و امکان داره نه یعنی 100% به سوئیچ های قدرت فول بریج یا پل H اسیب میزنه
            در مورد سلف فیلتر پایین گذر میتونه رو یه سمت یا جفت خروجی باشه که باید تو محاسبه لحاظ بشه
            و اگه جایی دیدن 2 تا سلف هست بخاطر اینکه اومدن 2 تا سلف کو چیکتر گذاشتن و طی 2 مرحله فیلتر کردن

            نمونه دستگاه خودتون مگه یه سلف نداشت پس حل اقا
            محاسبه فیلتر پایین گذر رو با فرکانس قطع شروع میکنن و وجود هارمونیک ها کلا تا اونجایی که من مطالعه کردم مقداری 1یچیده هست یعنی من بلد نیستم :mrgreen:

            Fc=1/2p*sqrt LC
            P=عدد قطبی 3.14
            sqrt=رادیکال
            Fc=فرکانس قطع
            من از تنگی چشم فیل دانستم

            آنان که غنی ترند ... محتاج ترند

            دیدگاه


              پاسخ : ساخت اینورتر سینوسی خالص - Pure Sine Wave Inverter

              نوشته اصلی توسط aliebi1
              درود و سلام بهاری
              شرمنده منظوری نداشتم شما به سید ما گفتی منو هی فلان چی نگو من همه جوره گفتم ناراحت نشی

              سید جان ما هم این تحمید رو قبول داریم اطلاعات خوبی تو وبلاگش در اختیار همگان گذاشته و خیلی ساده و رسا توضیح داده

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

              استاد جبراییلی درست گفتن چرا اون اینه که با افزایش خازن خروجی شبیه حالت خازنی میشه و امکان داره نه یعنی 100% به سوئیچ های قدرت فول بریج یا پل H اسیب میزنه
              در مورد سلف فیلتر پایین گذر میتونه رو یه سمت یا جفت خروجی باشه که باید تو محاسبه لحاظ بشه
              و اگه جایی دیدن 2 تا سلف هست بخاطر اینکه اومدن 2 تا سلف کو چیکتر گذاشتن و طی 2 مرحله فیلتر کردن

              نمونه دستگاه خودتون مگه یه سلف نداشت پس حل اقا
              محاسبه فیلتر پایین گذر رو با فرکانس قطع شروع میکنن و وجود هارمونیک ها کلا تا اونجایی که من مطالعه کردم مقداری 1یچیده هست یعنی من بلد نیستم :mrgreen:

              Fc=1/2p*sqrt LC
              P=عدد قطبی 3.14
              sqrt=رادیکال
              Fc=فرکانس قطع
              سلام علی آقا , خوب هستید دوست عزیز؟
              من که نفهمیدم به چه صورتی حساب میشه؟! :mrgreen:
              شما خودتون تونستید حساب کنید؟
              آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
              مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
              _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

              دیدگاه


                پاسخ : ساخت اینورتر سینوسی خالص - Pure Sine Wave Inverter

                منم پیشنهاد میکنم از سلف بزرگتر استفاده کنید تا جایی که میتونید به جای خازن بزرگتر...
                توشبیه سازی عکس العمل وحشتناکی داشت ولتاژ رو تا 10000V بالا میبرد! البته بدون بار بود . یادتون هم باشه برای اینکه این مشکل پیشنیاد باید یه بار ثابت همیشه داشته باشه این اینورتورهای سینوسی.
                اگرم دقت کرده باشید همشون یکی یا دوتا سلف گردن کلفت دارن یا توان بالاهاشون 2-3 تا تروئیدی رو روهم ساندویچ کردن و کلی سیم پیچیدن روش...

                دیدگاه


                  پاسخ : ساخت اینورتر سینوسی خالص - Pure Sine Wave Inverter

                  خوب خلاصه کارهایی که باید انجام بشه...:
                  1- ساخت مدار بوست پوش پول 12 به 310 ولت
                  2- ساخت موج SPWM با یک نوسان ساز...
                  3- ساخت مدار فول بریج
                  4- ساخت فیلتر LC برای تبدیل SPWM به موج سینوسی...
                  آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
                  مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
                  _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

                  دیدگاه


                    پاسخ : ساخت اینورتر سینوسی خالص - Pure Sine Wave Inverter

                    نوشته اصلی توسط sina1359
                    خوب خلاصه کارهایی که باید انجام بشه...:
                    1- ساخت مدار بوست پوش پول 12 به 310 ولت
                    2- ساخت موج SPWM با یک نوسان ساز...
                    3- ساخت مدار فول بریج
                    4- ساخت فیلتر LC برای تبدیل SPWM به موج سینوسی...
                    oo:
                    نوشته اصلی توسط sina1359
                    خوب خلاصه کارهایی که باید انجام بشه...:
                    1- ساخت مدار بوست پوش پول 12 به 310 ولت
                    2- ساخت موج SPWM با یک نوسان ساز...
                    oo: oo: oo:

                    دیدگاه


                      پاسخ : ساخت اینورتر سینوسی خالص - Pure Sine Wave Inverter

                      نوشته اصلی توسط -Alone-
                      oo: oo: oo: oo:
                      سلام حامد خان
                      مشکل چیه دوست عزیز :mrgreen:
                      جمله بدی نوشتم؟
                      آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
                      مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
                      _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

                      دیدگاه


                        پاسخ : ساخت اینورتر سینوسی خالص - Pure Sine Wave Inverter

                        این یک لینک محاسبه LC فیلتر آنلاین است :
                        فقط نمیدونم به چه صورت باید محاسبه انجام داد؟ :mrgreen:

                        http://circuitcalculator.com/lcfilter.htm

                        http://siversima.com/rf-calculator/lc-resonance-calculator/

                        پ.ن: دوستان کسی تونسته فیلتر را محاسبه کنه؟ مثلا برای SPWM سی کیلو هرتز
                        چه میزان سلف - چه اندازه هسته تیروئیدی.... نیاز است و چه ظرفیت خازنی باید به کار رود
                        خازن هم معمولا در اینتر نت از نوع پلی استری و MKT استفاده میکردند .....
                        و ظرفیت خازن را تا میتوانند پایین میگیرند..
                        آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
                        مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
                        _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

                        دیدگاه


                          پاسخ : ساخت اینورتر سینوسی خالص - Pure Sine Wave Inverter



                          کد:
                          #include "STC12C5410AD.H"
                          
                          #include "math.h"
                          #include "absacc.h"
                          #include "intrins.h"
                          #include "stdlib.h"
                          
                          sbit beep=P3^4;
                          sbit stopi=P3^3;
                          sbit stopo=P3^2;
                          sbit short_protection=P1^3;
                          sbit short_indicator=P1^4;
                          sbit hv_indicator=P1^5;
                          sbit lv_indicator=P1^6;
                          sbit w_indicator=P1^7;
                          
                          #define FOSC 12000000L   //System Clock Frquency(12MHz)
                          #define BAUD 2400     //UART baudrate  2400
                          #define v_c  		 5
                          #define i_c    	 5
                          
                          #define AD_FEEDBACK	 0	  //Output Voltage Feedback(Normally AD Channel 0)
                          #define AD_BATTERY  1	  //Battery Voltage Watcher(CH1)
                          #define AD_IOUT    2  //Output Current Feedback(CH2)
                          
                          #define MIN_BAT    9  //Mininum Battery Voltage
                          #define MAX_BAT    15  //Maxium Battery Voltage
                          #define WARN_BAT   10  //Low Battery Warning Voltage
                          #define MAX_IOUT	 5	  //Maxium Output Current
                          #define MAX_VOUT   245 //Maxium Output Voltage
                          #define MIN_VOUT   200 //Mininum Output Voltage
                          
                          #define NONE_PARITY  0
                          #define ODD_PARITY  1
                          #define EVEN_PARITY  2
                          #define MARK_PARITY  3
                          #define SPACE_PARITY 4
                          
                          #define PARITYBIT   EVEN_PARITY 
                          
                          typedef unsigned char  BYTE;
                          typedef unsigned int  WORD;
                          
                          unsigned int u_out,u_in;
                          unsigned int m,pwm_1,pwm_2;
                          int k=0,i,j,pwm1,pwm2,t=0; 
                          unsigned char code pwm[159]={0,4,8,13,17,21,25,29,34,38,42,46,50,54,59,63,67,71,75,79,83,86,90,94,98,102,105,109,113,116,120,123,127,130,134,137,140,143,147,150,153,156,159,161,164,167,170,172,175,177,179,182,184,186,188,190,192,194,196,198,199,201,203,204,205,207,208,209,210,211,212,213,213,214,214,215,215,216,216,216,216,216,216,215,215,214,214,213,213,212,211,210,209,208,207,205,204,203,201,199,198,196,194,192,190,188,186,184,182,179,177,175,172,170,167,164,161,159,156,153,150,147,143,140,137,134,130,127,123,120,116,113,109,105,102,98,94,90,86,83,79,75,71,67,63,59,54,50,46,42,38,34,29,25,21,17,13,8,4};
                          
                          bit busy;
                          char itc_result[3];
                          
                          int v_bat,v_out,i_out;
                          unsigned char iv_s,ov_s,oi_s;
                          
                          //ÑÓʱº¯Êý//
                          void delay(unsigned int time){
                            unsigned int a=0,b;
                            for(a=0;a<time;a++)
                           		for(b=0;b<1200;b++);
                          }
                          
                          //PWM initiallize//
                          void pwm_init(){
                            CMOD=0X02; //ÉèÖÃPCA¼ÆÊýÆ÷¹¤×÷ƵÂÊΪF/2//
                            CCON=0X00; //ÇåÁã¼ÆÊýÆ÷ºÍÒç³ö±êÖ¾//
                            CL=0X00;  //¼ÆÊýÆ÷µÍ8λºÍ¸ß8λȫ²¿ÇåÁã//
                            CH=0X00;
                            CCAPM0=0X42; //ÉèÖÃPWM0¿Ú//
                            CCAPM1=0X42;
                            CCAPM2=0X42;
                            CCAPM3=0X42; 
                            CCAP0L=0X00; 
                            CCAP0H=0X00;
                            CCAP1L=0X00;
                            CCAP1H=0X00;
                            CCAP2L=0X00;
                            CCAP2H=0X00;
                            CCAP3L=0X00;
                            CCAP3H=0X00;
                            CR=1;//¿ªÆôPCA¼ÆÊýÆ÷//
                           
                          }
                          
                           //Timer initiallize//
                          void time_init() {
                           #if(PARITYBIT==NONE_PARITY)
                           	SCON=0x50;
                           #elif (PARITYBIT==ODD_PARITY)||(PARITYBIT==EVEN_PARITY)||(PARITYBIT==MARK_PARITY)
                          	SCON=0xDA;
                           #elif (PARITYBIT==SPACE_PARITY)
                            SCON=0xD2;
                           #endif 
                          
                           TMOD=0X00;//¶¨Ê±Æ÷0¹¤×÷ÔÚģʽ0//
                           TMOD|=0x20;
                           ET0=1; //¿ª¶¨Ê±Æ÷0ÖжÏ//
                           TH0=0XFE;
                           TL0=0X01;  //¶¨Ê±Æ÷³õֵΪ8192-512  32¸öµã¾§Õñ12M  50Hz*2*31=1/3100s//
                           TR0=1;//¿ªÆô¶¨Ê±Æ÷0//
                           
                           TH1=TL1=-(FOSC/12/32/BAUD);
                           TR1=1;
                           ES=1;
                           }
                          
                          //·¢ËÍÊý¾Ý//
                          void SendData(BYTE dat){
                           while(busy); 
                           ACC=dat;
                           if(P){
                          	 #if(PARITYBIT==ODD_PARITY)
                          	  TB8=0;
                          	 #elif(PARITYBIT==EVEN_PARITY)
                          	  TB8=1;
                             #endif
                           }else{
                          	 #if(PARITYBIT==ODD_PARITY)
                          	  TB8=1;
                          	 #elif(PARITYBIT==EVEN_PARITY)
                          	  TB8=0;
                             #endif	 
                           }
                           busy=1;
                           SBUF=ACC;
                          }
                          
                          //·¢ËÍ×Ö·û´®//
                          void SendString(char *s){
                            while(*s){
                          	 SendData(*s++);
                            }
                          }
                          
                          //UARTÖжÏ//
                          void Uart_Isr() interrupt 4 using 1{
                            if(RI){
                             RI=0;
                            }
                            if(TI){
                          	 TI=0;
                          	 busy=0;
                            }
                          }
                          
                          //ÈíÆô¶¯//
                          void soft_start(void){
                          	m=0;
                          	do{
                          		m=m+27;
                            		delay(10);
                          	}
                           	while(m<210);  
                           }
                          
                          
                          //³õʼ»¯AD//
                          void AD_init(){
                          	P1M0=0X07;
                          	P1M1=0XF0;
                          	P1=0xFF;  //ÉèÖÃP1Ϊ¸ß×èÊäÈë//
                          	ADC_CONTR = 0x80|0x60; //270¸öʱÖÓÖÜÆÚת»»Ò»´Î//
                          	delay(2);
                           }
                          
                          //AD²ÉÑùº¯Êý//
                          //AD ת»»0¡ª¡ª¡ª¡ª7¶ÔÓ¦P1.0µ½P1.7;  0--charge; 1--u_bat; 2--out;3--input; 4--load//
                          unsigned int ad(unsigned char i){
                          	ADC_DATA=0;
                          	ADC_LOW2=0;
                          	ADC_CONTR=0x80|0x60|i|0x08;//0000,1010¿ªÆôADת»»P1.2//
                          	_nop_();
                          	_nop_();
                          	_nop_();
                          	_nop_();
                          	while(!(ADC_CONTR&0X10));//µÈ´ýת»»½áÊø//
                           	ADC_CONTR&=~0x10;
                           	return ADC_DATA;
                          }
                          
                          
                          //INT to CHAR//
                          void inttochar(unsigned int num){
                          	itc_result[0]=num/100+48;   
                          	itc_result[1]=(num/10)%10+48; 
                          	itc_result[2]=num%10+48;
                          }
                          
                          
                          //Voltage Regulation//
                          void voltage_regulation(){
                          	int c;
                          	c=560-(4.48*ad(AD_FEEDBACK));
                          	if (c<255){
                          		if(short_protection==1) m=c;	
                          	}
                          	else{
                          		if(short_protection==1) m=255;
                          	}
                          	v_out=ad(0)*v_c/256;	
                          }
                          
                          
                          //SPWMʵÏÖ//
                          void int_time0(void) interrupt 1{
                          	TH0=0XFE;
                          	TL0=0X01;//ÖØ×°¼ÆÊýÖµ//
                          	TR0=1;
                          	CCAP0H=pwm1;
                          	CCAP2H=pwm1;
                          	CCAP1H=pwm2; //×°ÈëÂö¿íÖµ//
                           	CCAP3H=pwm2;
                           	k++;
                            if(k<159){//Õý°ëÖÜ//
                          		i=k;
                          		if(short_protection==1){	
                          			pwm_1=m*pwm[i]/216;
                            		pwm1=(unsigned char)pwm_1;
                          		}
                          		else{
                          			if(k==15)
                          				pwm1=30;
                          			else
                          				pwm1=0;
                          		}
                          		pwm2=0;
                          	}
                           	else if(k<318){//¸º°ëÖÜ//
                          		j=k-159;
                          		pwm1=0;	
                             	if(short_protection==1){
                          			pwm_2=m*pwm[j]/216;
                            		pwm2=(unsigned char)pwm_2;
                          		}
                          		else{
                          			if(k==45)
                          				pwm2=30;
                          			else
                          				pwm2=0;
                          		}
                            }
                           	else{//ÖÜÆÚ½áÊø//
                          		k=0;
                          		i=k;
                          
                          		if(short_protection==1){
                          			pwm_1=m*pwm[i]/216;
                              		pwm1=(unsigned char)pwm_1;
                          		}
                          		else{
                          			pwm1=0;
                          		}
                              pwm2=0;
                          		
                          		voltage_regulation();//Õ¼¿Õ±Èµ÷ÕûʵÏÖÎÈѹ
                          		v_bat=ad(AD_BATTERY)*400/256; //È¡µÃ10±¶µç³ØµçѹµÄÖµ
                          		i_out=ad(AD_IOUT)*i_c/256;	 //È¡µÃµçÁ÷
                          
                          		if(t<40)					//ָʾµÆÉÁ˸¼Æʱ
                          			t++;
                          	}  
                          }
                          
                          
                          //Ö÷³ÌÐò// 
                          void main(){
                            P3M0=0x00;
                          	P3M1=0x10;
                          
                          
                          	pwm_init();
                          	time_init();
                          	EA=1;
                          	AD_init();
                          	soft_start();
                          	m=216;
                          	
                            	beep=0;
                          	stopi=0;
                          	stopo=0;
                          	short_indicator=0;
                          	hv_indicator=0;
                          	lv_indicator=0;
                          	w_indicator=0;
                          
                          	SendString("Ready!\r\n");
                          	while(1){
                          		if((stopi==1)|((v_bat<(10*MIN_BAT)))|(v_bat>(10*MAX_BAT))|(short_protection==0)){ //µç³ØµçѹÒì³£»òÕßÊä³ö¶Ì·»òÕßÍⲿҪÇóֹͣʱ±¨¾¯
                          			beep=1;
                          		}
                          		else{
                          			beep=0;										
                          		}
                          		if((stopi==1)|((v_bat<(10*MIN_BAT)))|(v_bat>(10*MAX_BAT))){ //µç³ØµçѹÒì³£»òÕßÍⲿҪÇóֹͣʱ¹Ø±ÕÊä³ö
                          			stopo=1;
                          		}
                          		else{
                          			stopo=0;										
                          		}
                          
                          		//Êä³öµçѹ¼ì²â
                          		if (v_out<MIN_VOUT){						 //µÍѹ
                          			if(t==40){
                          				w_indicator=~w_indicator;
                          			}
                          			ov_s=2;
                          		}
                          		else{
                          			if (v_out>MAX_VOUT){				  //³¬Ñ¹
                          				w_indicator=1;
                          				ov_s=1;
                          			}
                          			else{
                          				w_indicator=0;						//Õý³£
                          				ov_s=0;
                          			}
                          		}
                          
                          		//¶Ì·¹ýÁ÷¶¯×÷
                          		if(short_protection==0){					 //¶Ì·ָʾµÆ³£ÁÁ+±¨¾¯
                          			short_indicator=1;
                          			oi_s=2;
                          		}
                          		else{
                          			if (i_out>(10*MAX_IOUT)){				 //¹ýÁ÷ָʾµÆÉÁ˸
                          				if(t==40){
                          					short_indicator=~short_indicator;
                          				}
                          				oi_s=1;
                          			}
                          			else{
                          				short_indicator=0;					 //Õý³£Çé¿ö
                          				oi_s=0;
                          			}
                          		}		
                          		
                          		//µçѹָʾ
                          		lv_indicator=(v_bat<(10*MIN_BAT));				 
                          		if (((10*MIN_BAT)<v_bat)&(v_bat<(10*WARN_BAT))){
                          			if(t==10){
                          				lv_indicator=1;
                          				t=0;
                          			}					
                          		}
                          		hv_indicator=(v_bat>(10*MAX_BAT));
                          
                          		//ÇåÁãÉÁ˸¼ÆÊýÆ÷
                          		if(t==10)	t=0;  
                          
                          	  //µçѹÊäÈë״̬
                          		if (v_bat<(10*MIN_BAT))									
                          			iv_s=1;												 //µÍѹֹͣ
                          		else if (((10*MIN_BAT)<v_bat)&(v_bat<(10*WARN_BAT)))
                          			iv_s=2;												 //µÍѹ¾¯±¨
                          		else if (v_bat>(10*MAX_BAT))
                          			iv_s=3;												 //¸ßѹֹͣ
                          		else
                          			iv_s=0;												 //Õý³£
                          
                          		
                          
                          		inttochar(v_bat);
                          		SendString("in:");
                          		SendString(itc_result);
                          		inttochar(v_out);
                          		SendString("vout:");
                          		SendString(itc_result);
                          		inttochar(i_out);
                          		SendString("iout:");
                          		SendString(itc_result);
                          		inttochar(iv_s*100+ov_s*10+oi_s);
                          		SendString("status:");
                          		SendString(itc_result);
                          		SendString("\r\n");
                          
                          		
                          	}
                          }

                          http://s6.picofile.com/file/8180386868/SpwmV1.zip.html

                          آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
                          مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
                          _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

                          دیدگاه


                            پاسخ : ساخت اینورتر سینوسی خالص - Pure Sine Wave Inverter

                            نوشته اصلی توسط sina1359
                            این یک لینک محاسبه LC فیلتر آنلاین است :
                            فقط نمیدونم به چه صورت باید محاسبه انجام داد؟ :mrgreen:

                            http://circuitcalculator.com/lcfilter.htm

                            http://siversima.com/rf-calculator/lc-resonance-calculator/

                            پ.ن: دوستان کسی تونسته فیلتر را محاسبه کنه؟ مثلا برای SPWM سی کیلو هرتز
                            چه میزان سلف - چه اندازه هسته تیروئیدی.... نیاز است و چه ظرفیت خازنی باید به کار رود
                            خازن هم معمولا در اینتر نت از نوع پلی استری و MKT استفاده میکردند .....
                            و ظرفیت خازن را تا میتوانند پایین میگیرند..
                            من دارم روش کار می کنم ولی باید سعی کنید که حتما ظرفیت خازن پایین باشه چون در این صورت سویچ ها به سرعت می سوزند فیلترهایی که معمولا میگذارند LCL هست اگر خواستید نرم افزار Filter Solutions 2009 را دانلود کنید(15MB)>>توی گوگل سرچ کنید هست
                            گویند سنگ لعل شود در مقام صبر اری شود ولی به خون جگر شود
                            همیشه آخر همه چیز خوبه، اگر هم هنوز خوب نشده پس هنوز آخرش نشده(چارلی چاپلین)

                            دیدگاه


                              پاسخ : ساخت اینورتر سینوسی خالص - Pure Sine Wave Inverter

                              نوشته اصلی توسط amin20107
                              من دارم روش کار می کنم ولی باید سعی کنید که حتما ظرفیت خازن پایین باشه چون در این صورت سویچ ها به سرعت می سوزند فیلترهایی که معمولا میگذارند LCL هست اگر خواستید نرم افزار Filter Solutions 2009 را دانلود کنید(15MB)>>توی گوگل سرچ کنید هست
                              سلام دوست عزیز
                              پس میتونید یک فیلتر LCL برای SPWM فرکانس 28 کیلو هرتز
                              محاسبه کنید و یک شماتیک از فیلتر قرار دهید....
                              آموزش ساخت دستگاه برف ساز خانگی : https://www.eca.ir/forums/thread55009.html
                              مقاله آموزشی 11 پروژه با AVR و بسکام: https://www.eca.ir/forums/thread31760.html
                              _*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡__*̡͌l̡*̡̡ ̴̡ı̴̴̡ ̡̡͡|̲̲̲͡͡͡ ̲▫̲͡ ̲̲̲͡͡π̲̲͡͡ ̲̲͡▫̲̲͡͡ ̲|̡̡̡ ̡ ̴̡ı̴̡̡ *̡͌l̡*̡̡_

                              دیدگاه


                                پاسخ : ساخت اینورتر سینوسی خالص - Pure Sine Wave Inverter

                                من و یکنفردیگه مدار اینورتر 3 فاز برای کنترل سرعت موتور 2 کیلووات ساختیم کار هم کرد.
                                تولید موج و کنترل سرعت موتور با یک مگا64 انجام شد. موتور 56 کویل بود و همراه سنسور هال 6 استپ به ازای هر طول موج. (دقت 60درجه)
                                ترانزیستور هارو جهت تست irfz44 گزاشتیم و گیت درایور هم اگر درست یادم باشه IRXXX. پارت نامبرش یادم نیست.

                                بزارید یک خورده رفع ابهام کنم. شما در واقع باید یک مدار باک بسازین که مدام Duty رو کم و زیاد می کنه که ولتاژ خروجی به صورت سینوسی تغییر کنه.
                                در درایو موتور به دلیل این که موتور داخل خودش سلف داره نیازی به اضافه کردن سلف در خروجی نیست و با کنترل duty , جریان موتور با یک ریپل خیلی کم به طور سینوسی تغییر می کنه و عملا شما هیچ نیازی به اضافه کردن فیلتر ندارین.
                                هرگز در خروجی ماسفتها دقیقا در سورس ماسفت های بالا و درین ماسفت های پایین خازن نزاین.
                                به دلیل این که هیچ مدار باکی در سورس ماسفت هاش خازن نداره و اگر بزارین یک بار ریکتیو خیلی شدید به تغذیه مدار اضافه می شه و در هر سوییچ چیزی حدود 100-200 آمپر جریان لحظه ای رد می شه متناسب با ظرفیت خازن.
                                مدار باک در خروجی سویچ یک سلف داره و بعد سلف می تونید خازن با ظرفیت زیاد بزاین.
                                در کنترل موتور به این خازن هم احتیاجی نیست و عملا اصلا نمی تونیم خازنی اضافه کنیم.
                                حالا به دلیل این که هدف تولید موج 50 هرتز هست بهتره به جای خازن خالی یک سلف و خازن در خروجی بزارین که فرکانس رزونانسش 50 هرتز بشه ولی فکر می کنم نیازی به سلف ثانویه هم نباشه.
                                من اینورتر فرکانس ثابت نساختم ولی فکر می کنم اگر فرکانس PWM به اندازه کافی زیاد باشه و خازن خروجی خیلی بزرگ نباشه ولتاژ خروجی 50 هرتز در میاد.

                                در ضمن اصلا در نظر گرفتین وقتی که جریان مصرف کننده از حدی کمتر بشه مدار باک به طور غیر خطی عمل می کنه و ولتاژ خروجی افزایش پیدا می کنه؟

                                در کنترل موتور هیچ وقت به این مرحله نمی رسیم به خاطر این که موتور همواره جریان می کشه و وقتی جریان نمی کشه افزایش ولتاژ مشکل خاصی بوجود نمیاره.

                                اگر در خروجی یک ترانس بزارین تاحدودی این مشکل برطرف می شه به دلیل این که ترانس یک مقاومت داره و همواره یک جریان هرچند کم می کشه.
                                ولی فکر می کنم در کاربردی که شما دنبالش هستین بهتره یک حلقه کنترلی با فیدبک ولتاژ بزارین و ولتاژ خروجی رو با تغییر Duty cycle کنترل کنین.

                                برای تحلیل مدار اینورتر از تحلیل مدار Buck استفاده کنین.

                                دیدگاه

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