اطلاعیه

Collapse
No announcement yet.

puls counter

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

    puls counter

    سلام .یه برنامه واسه اندازه گیری فلو مایع نوشتم.به این صورت که بوسیله فرمانcount مقدار پالس ورودی رو به مدت یک ثانیه شمارش میکنه و در خروجی قرار میده.
    منتهی در طول مدتی که میخواد مقادیر رو تو خروجی بزاره حدود 20 میکرو ثانیه (بصورت عملی اندازه گیری شده) تاخیر ایجاد میکنه .حال اگه من یه فرکانس ثابت بهش اعمال کنم تا حدود 20 ثانیه مقدار رو درست نشون میده ولی یه دفعه یک پالس رو جا میندازه که طبیعی هم هست .کسی فکری به ذهنش میرسه؟
    16f876a-pic
    DEFINE OSC 20
    FRQ VAR WORD
    TRISB=0
    TRISC=0
    TRISA=%10001
    ADCON1=%110
    PORTB=0
    PORTC=0
    FRQ=0
    MAIN:
    PORTC.3=0
    COUNT PORTA.0,1000,FRQ
    PORTB=FRQ.BYTE0:PORTC.7=FRQ.BIT8:PORTC.6=FRQ.BIT9: PORTC.5=FRQ.BIT10
    PORTC.3=1
    LOOP1:
    IF PORTA.4==1 THEN GOTO MAIN
    GOTO LOOP1

    #2
    پاسخ : puls counter

    نوشته اصلی توسط hosein0361
    سلام .یه برنامه واسه اندازه گیری فرکانس نوشتم.به این صورت که بوسیله فرمان puls in مقدار پالس ورودی رو به مدت یک ثانیه شمارش میکنه و در خورجی قرار میده.
    منتهی در طول مدتی که میخواد مقادیر رو تو خروجی بزاره حدود 20 میکرو ثانیه (بصورت عملی اندازه گیری شده) تاخیر ایجاد میکنه .حال اگه من یه فرکانس ثابت بهش اعمال کنم تا حدود 20 ثانیه مقدار رو درست نشون میده ولی یه دفعه یک پالس رو جا میندازه که طبیعی هم هست .کسی فکری به ذهنش میرسه؟
    16f876a-pic
    DEFINE OSC 20
    FRQ VAR WORD
    TRISB=0
    TRISC=0
    TRISA=%10001
    ADCON1=%110
    PORTB=0
    PORTC=0
    FRQ=0
    MAIN:
    PORTC.3=0
    COUNT PORTA.0,1000,FRQ
    PORTB=FRQ.BYTE0:PORTC.7=FRQ.BIT8:PORTC.6=FRQ.BIT9: PORTC.5=FRQ.BIT10
    PORTC.3=1
    LOOP1:
    IF PORTA.4==1 THEN GOTO MAIN
    GOTO LOOP1
    با سلام
    دوست گرامی، توی برنامه شما PULS INآ‌ وجود نداره . شما از دستور COUNT استفاده کردین. که تو 1 ثانیه تعداد پالسهای در یافتی رو شمارش میکنه.

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

    دیدگاه


      #3
      پاسخ : puls counter

      سلام. پیشنهادم به ترتیب اولویت، میتونین از :
      1-ماژول تایمر/کانتر 0 استفاده بکنین.
      2-ماژول تایمر/کانتر 1 استفاده بکنین.
      3-اینتراپت خارجی هم استفاده کنین.

      دیدگاه


        #4
        پاسخ : puls counter

        با این وضعیت فلومتر تو هر 24 ساعت میتونه +و- 50 لیتر خطا داشته باشه. میشه همین خطا رو هم گرفت .فکر نمیکنم مشکل باشه. تمصمی خودم اینه که دستور COUNT رو خودم بنویسم (حالا با وقفه یا..) و به جای 1 ثانیه ، مقدار زمان نمونه گیری رو 999980 میکرو ثانیه قرار بدم.اینجوری خطای 20 میکرو ثانیه رو هم گرفته میشه.
        منتهی یه سوالی که پیش میاد اینه که کریستال 20 مگا میتونی وقفه با حدود 20 میکرو ثانیه ایجاد کنه؟؟(در ضمن ،در مورد الگوریتم دستور نیز اگه کسی راهنمایی داره خواهشن...)

        دیدگاه


          #5
          پاسخ : puls counter

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

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

          دیدگاه


            #6
            پاسخ : puls counter

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

            دیدگاه


              #7
              پاسخ : puls counter

              ببینین دوست عزیز
              توی هر سیستم اندازه گیری اول شما باید میزان دقتتون و خطای مجاز رو مشخص کنین. بعدش انتخاب قطعات، سنسور ها و نوع طراحی باید جوری باشه که اون رنج رو با دقت مناسب پوشش بده.
              شما هنوز نگفتین خطای مجاز چقدره؟ شما میگین 50 لیتر خطا داره. اگه فلوی شما تو شبانه روز 10000 لیتر باشه، 50 لیتر میشه نیم درصد که خیلی هم خوبه. ولی اگه 100 لیتر باشه میشه 50 درصد که خیلی بده.
              لطفا اول این موضوع رو روشن کنین.

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

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

              دیدگاه

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