اطلاعیه

Collapse
No announcement yet.

تولید PWM سینوسی 3 فاز برای ساخت اینورتر و کنترل دور موتور ac

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

    #16
    پاسخ : تولید PWM سینوسی 3 فاز برای ساخت اینورتر و کنترل دور موتور ac

    سلام
    ممنون شرمنده زحمت شد.
    من اون عبارت else speed=995 رو برابر else speed=495 و عبارت temp=Timer_Value[speed] رو برابر temp=Timer_Value[495] قرار دادم .اون خط که نوشتید speed=495 رو اضافه نکرده بودم.
    به هر حال ممنون
    مولای من
    نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

    یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

    دیدگاه


      #17
      پاسخ : تولید PWM سینوسی 3 فاز برای ساخت اینورتر و کنترل دور موتور ac

      یکی از دوستان در انجمن الکترونیک صنعتی، در باره سورس برنامه ای که زمان های لازم را برای TIMER3 تولید می کند، سوال کرده بودند. منظور از این سوال آرایه با 996 عضو دو بایتی است که در متن برنامه قرار دارد و فرکانس خروجی را تعیین می کند.برنامه ساده زیر که البته به زبان قدیمی QBASIC نوشته شده، این اعداد را تولید و در یک فایل با نام دلخواه ذخیره می کند و با استفاده از منطق آن می توان در سایر زبانها هم همین برنامه را نوشت:

      کد:
      ' timer value for 0.5-100 Hz output
      ' xtal = 8MHz , 256 point sine table
      CLS
      INPUT "FILENAME="; file$
      'KILL file$
      OPEN file$ FOR OUTPUT AS #1
          
      FOR f = 5 TO 1000
      
      IF f < 200 THEN
      n = 1
      ELSEIF f < 400 THEN
      n = 2
      ELSEIF f < 600 THEN
      n = 4
      ELSEIF f < 800 THEN
      n = 8
      ELSE
      n = 16
      END IF
      t1 = (312500 * n) / f
      IF ABS(t1 - INT(t1)) <= ABS(t1 - CLNG(t1)) THEN
      t1 = INT(t1)
      ELSE
      t1 = CLNG(t1)
      END IF
      
      
      IF INT((f - 5) / 8) = INT(f - 5) / 8 THEN
      PRINT #1, t1; ",";
      ELSEIF (INT((f - 4) / 8) = INT(f - 4) / 8) OR f = 1000 THEN
      PRINT #1, t1
      ELSE
      PRINT #1, t1; ",";
      END IF
      NEXT f
      CLOSE
      END
      اوژن: به معنای افکننده و شکست دهنده است
      دانایی، توانایی است-Knowledge is POWER
      برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
      وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
      قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
      اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
      ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

      دیدگاه


        #18
        پاسخ : تولید PWM سینوسی 3 فاز برای ساخت اینورتر و کنترل دور موتور ac

        با سلام به دوستان بویژه جناب طراح.
        در باره منطق محاسبه دامنه سینوسی یا همون duty cycle موج PWM متناظر سوالاتی داشتم. به نظر میرسه در عمل مقدار V اعمالی بر حسب F با مقدار تئوری V/F تا حدودی فرق داره. از جناب طراح تقاضا دارم در مورد نحوه محاسبه و فرمولی که برای اون در قسمتی از برنامه که در زیر نوشتم توضیح بدن. مخصوصآ در بازه بین f_Base و f_Boost دامنه بر چه اساسی محاسبه میشه؟

        #pragma vector=TIMER3_COMPA_vect
        __interrupt void TIMER3_comparea_isr(void)
        .
        .
        .
        if(speed>=f_Base)
        {
        OCR1A=sine[index];
        OCR1B=sine[(unsigned char)(index+84U)];
        OCR1C=sine[(unsigned char)(index+170U)];
        }
        else if (speed<=f_Boost)
        {
        OCR1A=A_calc(sine[index],A_Boost);
        OCR1B=A_calc(sine[(unsigned char)(index+84U)],A_Boost);
        OCR1C=A_calc(sine[(unsigned char)(index+170U)],A_Boost);
        }
        else
        {
        unsigned long A;
        A=((N*(speed-f_Boost))/M)+A_Boost;
        OCR1A=A_calc(sine[index],(unsigned char)A);
        OCR1B=A_calc(sine[(unsigned char)(index+84U)],(unsigned char)A);
        OCR1C=A_calc(sine[(unsigned char)(index+170U)],(unsigned char)A);
        }
        }

        همچنین در مورد تابع A_calc اگر مقدور هست به صورت کلی توضیح بدید چه عملیاتی قرار هست روی دامنه انجام بشه و چرا؟

        دیدگاه


          #19
          پاسخ : تولید PWM سینوسی 3 فاز برای ساخت اینورتر و کنترل دور موتور ac

          دامنه سینوسی در 3 ناحیه از فرکاتس به سه روش مختلف محاسبه می شود:

          1- برای فرکانس های بزرگتر یا مساوی با f_Base در حداکثر خود قرار دارد.
          2- برای فرکانس های کوچکتر یا مساوی با f_Boost دارای مقدار ثابت A_Boost است. در این ناحیه با فرض قابل توجه شدن مقاومت اهمی نسبت به امپدانس ناشی از سلف، مقدار دامنه ثابت در نظر گرفته شده است.
          3- بین این دو ناحیه که دامنه از یک معادله خط پیروی می کند.
          تابع A_calc هم برای محاسبه مقادیر این خط نوشته شده است.
          اوژن: به معنای افکننده و شکست دهنده است
          دانایی، توانایی است-Knowledge is POWER
          برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
          وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
          قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
          اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
          ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

          دیدگاه


            #20
            پاسخ : تولید PWM سینوسی 3 فاز برای ساخت اینورتر و کنترل دور موتور ac

            از اینکه حتی در این ساعت از روز ، وقت صرف پاسخگویی میکنید بسیار سپاسگذاریم.
            بله بنده هم در لا بلای پستهای قبلی که منتشر کرده بودین تا حدودی به پاسخ رسیده بودم که حالا کامل شد.
            منتهی بنده زیاد متوجه فرایند و بلایی که سر پارامترهای ورودی تابع A_calc میاد نشدم. البته خط به خط رو متوجه میشم. اینکه در ابتدا اون رو با 128 مقایسه کردید اگر ازش کوچکتر بود اونو Not کردید و... . منتهی دلیلش رو نفهمیدم. برا همین عرض کردم اگر امکان داره به طور کلی در موردش توضیح بدید. نمی دونم شایدم این رابطه ای هست که خودتون به صورت تجربی و برای بازدهی بهتر بدست آوردید. اگر اشتباه میکنم بفرمائید.
            کد:
            unsigned char A_calc(unsigned char sine, unsigned char Ain)
            {
             unsigned int sine_temp;
             unsigned char sine1; 
             sine1=((sine<128)?~sine:sine);
             sine_temp=(((unsigned int)sine1)<<1); 
             sine_temp-=255;
             sine_temp*=Ain;
             sine_temp>>=8; 
             sine_temp+=255;
             sine_temp>>=1;
             sine1=(unsigned char)sine_temp;
             if (sine<128) sine1=~sine1;
             return sine1;
            }

            دیدگاه


              #21
              پاسخ : تولید PWM سینوسی 3 فاز برای ساخت اینورتر و کنترل دور موتور ac

              توضیح عملکرد تابع:
              از آنجایی که جدول سینوسی دارای مقداری در محدوده 0 تا 255 است، برای تشخیص نیم سیکل مثبت یا منفی موج، مقدار آن با 128 مقایسه می شود که در صورت بزرگتر یا مساوی بودن با این عدد در نیم سیکل مثبت و در غیر اینصورت موج در نیم سیکل منفی قرار دارد. برای اینکه محاسبات برای هر دو نیم سیکل بصورت یکسان انجام شود، در صورت دوم مقدار دیتا متمم می شود (مثلا 127 به 128 تبدیل می شود). سپس مقدار مورد نظر در دو ضرب می شود و 255 واحد از آن کم می شود. بنابراین نیم سیکل موج به محدوده 1 تا 255 به اصطلاح scale می شود. در مرحله بعد این مقدار در دامنه مورد نظر A ضرب می شود و High Byte آن جدا می شود. سپس مجددا با 255 جمع و حاصل تقسیم بر دو می شود که عدد حاصل با فرض حداکثر دامنه در محدوده 127 تا 254 خواهد بود. در مرحله آخر هم در صورت منفی بودن نیم سیکل، این عدد متمم می شود. برای فهم بهتر منطق عملکرد، اعداد در محدوده 128 تا 255 ابتدا به 1 تا 255 و سپس 255 تا 65025 (با فرض A=255) و سپس 0 تا 254 و سپس 255 تا 509 و در نهایت 127 تا 254 تبدیل می شود.
              در بررسی منطق این تابع به نظرم رسید که در این مرحله آخر یک نا پیوستگی جزئی در اطراف محور تقارن سینوسی به اندازه یک واحد ایجاد می شود و لازم است به منظور برطرف کردن آن در انجام محاسبات، یک واحد به مقدار محاسبه شده اضافه شود.

              پی نوشت: اشکال بالا در نسخه جدید پروژه تصحیح شد.
              اوژن: به معنای افکننده و شکست دهنده است
              دانایی، توانایی است-Knowledge is POWER
              برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
              وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
              قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
              اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
              ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

              دیدگاه


                #22
                پاسخ : تولید PWM سینوسی 3 فاز برای ساخت اینورتر و کنترل دور موتور ac

                سلام جناب طراح. ببخشید. آیا این عدم تقارن کامل ناشی از محاسبات غیر اعشاری نیست؟
                بنده برای محاسبه دامنه سینوسی قبلاً یک برنامه نوشته بودم که دامنه رو تا حدود زیادی متقارن محاسبه میکنه.
                برنامه رو قرار میدم. لطفاً نظرتون رو درباره اعداد بدست آمده بیان کنید.
                توضیحات:
                1- چون برنامه برای کار با اعداد صحیح مثبت نوشته شده مواظب باشید تا پارامتر های ورودی هم صحیح و مثبت باشند.
                2- پارامتر Duty Cycle باید برابر حد اکثر دامنه ممکن قرار داده بشه. (1 واحد کمتر از پریود PWM )
                http://www.microcontrollers.ir/SPWM-360.zip

                دیدگاه


                  #23
                  پاسخ : تولید PWM سینوسی 3 فاز برای ساخت اینورتر و کنترل دور موتور ac

                  جناب آقای کی نژاد، بسیار بسیار ممنونم. توضیحات کاملی بود.

                  دیدگاه


                    #24
                    پاسخ : تولید PWM سینوسی 3 فاز برای ساخت اینورتر و کنترل دور موتور ac

                    نوشته اصلی توسط Perfect
                    آیا این عدم تقارن کامل ناشی از محاسبات غیر اعشاری نیست؟
                    شکل موج سینوسی محاسبه شده متقارن است و عدم تقارنی وجود ندارد. برنامه ای هم که زحمت آن را کشیدید با اعدادی امتحان کردم که از نظر تقارن به نظر درست بود، اما از نظر صحت و سقم شکل سینوسی، اظهار خاصی از روی اعداد نمی توان کرد و با رسم شکل بهتر می توان درباره آن قضاوت کرد.
                    اوژن: به معنای افکننده و شکست دهنده است
                    دانایی، توانایی است-Knowledge is POWER
                    برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                    وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                    قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                    اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                    ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                    دیدگاه


                      #25
                      پاسخ : تولید PWM سینوسی 3 فاز برای ساخت اینورتر و کنترل دور موتور ac

                      با سلام جناب طراح
                      بنده میخواهم روی یک درایور موتور 3 فاز کار کنم
                      فعلا ای سی m3phac رو پیدا نکردم
                      حالا اگه بشه با میکرو راهندازی کنم عالی میشه
                      حال سوال داشتم در نمونه کد های این تاپیک کد کامل جهت راهندازی موجود هست یا 3 pwm دیگر برای سطوح ولتاژ باید نوشته شود
                      طبق گفته های خودتان 6 pwm نیاز است
                      هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                      بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                      میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

                      تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                      دیدگاه


                        #26
                        پاسخ : تولید PWM سینوسی 3 فاز برای ساخت اینورتر و کنترل دور موتور ac

                        با استفاده از نمونه کدهای این تاپیک می توانید 3 موج PWM سینوسی را تولید کنید که بوسیله گیت های Not امکان تولید 3 موج مکمل هم وجود دارد. اضافه کردن Dead time هم می تواند بوسیله درایوری مانند IR2130 انجام شود. در پست اول تاپیک زیر نقشه شماتیک لازم برای پیاده سازی این طرح وجود دارد که دوستان آن را بصورت عملی بسته و جواب گرفته اند (به توضیحات متن تاپیک مراجعه کنید):

                        http://www.eca.ir/forum2/index.php?t...5219#msg275219
                        اوژن: به معنای افکننده و شکست دهنده است
                        دانایی، توانایی است-Knowledge is POWER
                        برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                        وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                        قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                        اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                        ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                        دیدگاه


                          #27
                          پاسخ : تولید PWM سینوسی 3 فاز برای ساخت اینورتر و کنترل دور موتور ac

                          با سلام خدمت دوستان عزیز
                          من با سیستم کنترل موتور زیاد آشنایی ندارم ، اینجا دیدم دوستان زحمت زیادی کشیدن و شماتیک و سورس برنامه میکرو mega64 رو گذاشتن ، می خواستم بدونم آیا این پروژه با میکرو pic مثلا مدل 16f877a قابل اجراست و این کار با این میکرو شدنیه
                          در ضمن اگه کسی لطف کنه و در مورد برنامه میکرو نوشته شده خط بخط توضیح بده ممنون میشم . شاید بشه برای میکرو های دیگه بسطش داد . به هر حال هدف یاد گیریه
                          ممنون از دوستان عزیز

                          دیدگاه


                            #28
                            پاسخ : تولید PWM سینوسی 3 فاز برای ساخت اینورتر و کنترل دور موتور ac

                            برای هر فاز PWM به یک واحد Compare نیاز است (جمعا سه واحد برای سه فاز) که در PIC16f877 ظاهرا تنها دو واحد Compare برای تایمر 16 بیتی وجود دارد. البته با روش های نرم افزاری و بدون استفاده از واحد Compare هم می توان فرکانس های محدودی را تولید کرد( چنانکه زمانی با 89c555wd یک مولد سه فاز pwm طراحی کرده بودم). اما روش اصولی استفاده از خانواده هایی است که حداقل 3 واحد Compare در آنها وجود داشته باشد. در مورد توضیح برنامه و با فرض تسلط بر AVR، درباره هر بخشی که سوال دارید آن را به صورت جزئی مطرح کنید تا پاسخ داده شود.
                            اوژن: به معنای افکننده و شکست دهنده است
                            دانایی، توانایی است-Knowledge is POWER
                            برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                            وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                            قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                            اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                            ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                            دیدگاه


                              #29
                              پاسخ : تولید PWM سینوسی 3 فاز برای ساخت اینورتر و کنترل دور موتور ac

                              با سلام خدمت جناب مهندس کی نژاد
                              بنده به علت نیاز و علاقه ای که به این مبحث داشتم تقریبآ سه هفته پیش یاد گیری زبان C
                              رو شروع کردم :read: و تغییراتی در برنامه بدین شرح دادم.
                              ADC ها رو حذف کردم و مقادیر ثابت برای final_speed وAcceleration
                              در نظر گرفتم.
                              و میخواستم در یک مورد راهنماییم کنید
                              در نظر دارم افزایش دامنه یکی از فازها را در مقدار مشخصی متوقف کنم.
                              به جهت اینکه در برنامه نویسی به تبحر کافی نرسیدم منتظر لطف جنابعالی
                              هستم.
                              با تشکر

                              جناب طراح:
                              بدون نمونه کد اظهار نظر خاصی را نمی توان ارائه کرد. با توجه به تفاوت عملکرد کد مورد نظر شما با محتوای این تاپیک، سوال خود را می توانید در تاپیک مربوط به تولید سینوسی سه فاز در انجمن پروژه های تکمیل شده AVR پیگیری کنید.
                              سلام و خسته نباشید
                              بنده با آخرین ورژن برنامه ای که شما زحمت آنرا کشیدید :applause:
                              با استفاده ار IR2104 که دارای dead time داخلیست و 6 عدد BUP 403 یک موتور سه فاز یک اسب را راه اندازی کردم.

                              چه تغییراتی در برنامه اعمال کنم تا افزایش دامنه در مقدار مشخصی محدود بشه.
                              البته آزمایشاتی انجام دادم مثلآ با تقسیم مقادیر آرایه دامنه رو کم و زیاد کردم و با تغیر نرخ نمونه برداری فرکانس
                              رو تغییر دادم . ولی خب هنوز کار تنها تابع برنامه رو درک نکردم.
                              میدونم شما مشغله زیادی دارید ممنون میشم کمی راهنماییم کنید. باتشکر

                              اگر شاد بودی آرام بخند تا غم بیدار نشود

                              دیدگاه


                                #30
                                پاسخ : تولید PWM سینوسی 3 فاز برای ساخت اینورتر و کنترل دور موتور ac

                                با مراجعه به متن برنامه می توانید مشاهده کنید که دامنه سیوسی برای هر فاز بصورت مستقل محاسبه می شود و شما می توانید برای یک فاز به خصوص این دامنه را محدود یا تضعیف کنید ( در روتین وقفه TIM3_COMPA).
                                اوژن: به معنای افکننده و شکست دهنده است
                                دانایی، توانایی است-Knowledge is POWER
                                برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
                                وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
                                قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
                                اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
                                ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

                                دیدگاه

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