NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 2534 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 10 از 10

موضوع: مشکل در برنامه نویسی بیسیک ،برای یک pid controler

  1. #1
    کاربر دائمی raminrayat آواتار ها
    تاریخ عضویت
    Dec 2009
    نام
    رامین چمن ارا
    نوشته ها
    474
    تشکر
    268
    تشکر شده 608 بار در 256 پست

    Icon16 مشکل در برنامه نویسی بیسیک ،برای یک pid controler

    سلام به دوستان.من دنبال یه برنامه pid کنترلر می گشتم .و بالاخره پیداش کردم اما به زبان c و با کدویژن نوشته .خودم اون رو دستو پا شکسته با بیسیک نوشتم.البته فعلا بدون کیپد. ولی دما رو به جای اینکه دقیقا رو مقدار ست پوینت نگه داره ! 4 الی 6 درجه دما بیشتر از setpoint میشه چون من زبان c بلد نبودم نتونستم علت رو با مقایسه با برنامه اصلی بفهمم .لطفا راهنماییم کنید.
    اولی برنامه اصلی از سایت picpars.com
    دومی برنامه نوشته شده با بیسیک

    دوستان خواهش می کنم بعد از دانلود فایل بگید مشکل برنامه من تو بیسیک چیه.یا اگه راه بهتری مد نظرتونه بگید.






    فايل هاي پيوست شده فايل هاي پيوست شده
    ویرایش توسط raminrayat : 25-09-2011 در ساعت 19:37

  2. کاربران : 2 تشکر کرده اند از شما raminrayat برای ارسال این پست سودمند:


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  4. #2
    کاربر دائمی raminrayat آواتار ها
    تاریخ عضویت
    Dec 2009
    نام
    رامین چمن ارا
    نوشته ها
    474
    تشکر
    268
    تشکر شده 608 بار در 256 پست

    پیش فرض

    واقعا یک نفر تو این انجمن نیست که کمک کنه مشکل برنامه رو بفهمم ؟ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  5. #3
    کاربر فعال arm-mohsen-avr آواتار ها
    تاریخ عضویت
    May 2011
    نام
    محسن جودی
    نوشته ها
    222
    تشکر
    200
    تشکر شده 149 بار در 101 پست

    پیش فرض

    با سلام
    دوست عزیز این قسمت برنامه را اصلاح کن :

    Kp = 0.01
    Ki = 0.0000007


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

  6. کاربران : 2 تشکر کرده اند از شما arm-mohsen-avr برای ارسال این پست سودمند:


  7. #4
    کاربر دائمی raminrayat آواتار ها
    تاریخ عضویت
    Dec 2009
    نام
    رامین چمن ارا
    نوشته ها
    474
    تشکر
    268
    تشکر شده 608 بار در 256 پست

    پیش فرض

    ازتون ممنونم.
    چندتا سوال برام پیش اومده ما تو کنترلر pid طبق شکلی که براتون قرار میدم
    Pterm = Kp * Error که به نظر درسته چون تو شکل هم p=kp*e
    و همچنین در مورد Iterm = (Error + Last_iterm)*ki که طبق شکل ki ضرب در انتگرال خطا(که همان مجموع خطاهاست)

    اما در مورد Dterm = Error - Last_error*kd متوجه نمیشم که چرا این رابطه رو تو زبان c نوشته.مگه طبق شکل
    مقدار ترم دی برابر با مشتق خطا نسبت به زمان که در اخر ضربدر kd شده نیست؟ پس چرا نوشته
    Dterm = Error - Last_error*kd رابطه بین این دورو من متوجه نمیشم.ممنون میشم راهنماییم کنید
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: 800px-Pid-feedback-nct-int-correct.png
مشاهده: 50
حجم: 41.2 کیلو بایت  

  8. تشکرها از این نوشته :


  9. #5
    کاربر فعال arm-mohsen-avr آواتار ها
    تاریخ عضویت
    May 2011
    نام
    محسن جودی
    نوشته ها
    222
    تشکر
    200
    تشکر شده 149 بار در 101 پست

    پیش فرض

    دوست عزیزبه نظر من و با استناد به اینکه انتگرال و مشتق رو در یه بازه زمانی باید حساب کرد . این برنامه چون داخل یه حلقه بی نهایت نوشته شده حاصل عبارت یعنی Dterm = Error - Last_error*kd و بقیه فرمول ها حساب شده و در حلقه بی نهایت تکرار شده و به همین دلیل است که اعداد مداوم در حال تغییر هستند یعنی کران بالای انتگرال و همچنینdt توسط حلقه ایجاد می شود و مداوم تکرار می شود و فرمول نیز صحیح است . اگر زمان را تحت کنترل در آوری می توان به صورت دقیق انتگرال و مشتق را حساب کرد . این نظر من بود شایدهم مشکل داشته باشه ولی اگه دوستان نظری بدن ممنون میشیم . تا این حد می دونستم.

  10. کاربران : 2 تشکر کرده اند از شما arm-mohsen-avr برای ارسال این پست سودمند:


  11. #6
    کاربر فعال arm-mohsen-avr آواتار ها
    تاریخ عضویت
    May 2011
    نام
    محسن جودی
    نوشته ها
    222
    تشکر
    200
    تشکر شده 149 بار در 101 پست

    پیش فرض

    اگه به این لینک که گذاشتم بری یه ربات تعقیب خط با pid ساختن و سورسش هم موجوده و فرمولها را از بازه زمانی خارج کرده و حساب می کنه .امیدوارم مفید باشه
    http://www.ermicro.com/blog/?p=1163

  12. کاربران : 3 تشکر کرده اند از شما arm-mohsen-avr برای ارسال این پست سودمند:


  13. #7
    کاربر دائمی raminrayat آواتار ها
    تاریخ عضویت
    Dec 2009
    نام
    رامین چمن ارا
    نوشته ها
    474
    تشکر
    268
    تشکر شده 608 بار در 256 پست

    پیش فرض

    دستتون درد نکنه جالب بود.ولی من زبان c رو وارد نیستم .بیسیک کار می کنم

  14. تشکرها از این نوشته :


  15. #8
    کاربر علاقه مند
    تاریخ عضویت
    Aug 2012
    نوشته ها
    48
    تشکر
    20
    تشکر شده 2 بار در 2 پست

    پیش فرض

    با سلام خدمت دوستان
    برد اماده این pid برای موتور دی سی تو بازار نیست بخریم دوستان اگه سراغ دارن لطفا بگن
    ممنون میشم اگه کسی کمک کنه
    ویرایش توسط ahmad1369 : 28-07-2013 در ساعت 16:34

  16. #9
    کاربر علاقه مند
    تاریخ عضویت
    Aug 2012
    نوشته ها
    48
    تشکر
    20
    تشکر شده 2 بار در 2 پست

    پیش فرض

    سلام خدومت دوستان
    من دنبال برد اماده pid کنترل میگردم از کجا میتونم بخرم؟؟؟؟؟

  17. #10
    تازه وارد
    تاریخ عضویت
    May 2017
    نوشته ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    در مورد pid زمان اندازه گیری فید بک بسیار مهم است و نمونه پالس برای کنترل دور موتور باید به دقت انجام گیرد من با بسکام از طریق تایمر صفر و دو یکی کانتر و تایمر دو بعنوان تایمر استفاده کردم زمان اندازه گیری یک صدم ثانیه تنظیم کردم و به خوبی کار میکند
    Pterm=error*ki
    *ki(Pterm=(error-lastiterm

موضوعات مشابه

  1. 30 کلید بیسیم
    توسط jik در انجمن AVR
    پاسخ: 6
    آخرين نوشته: 01-12-2013, 18:17
  2. برنامه نویسی با بیسیک برای pic
    توسط arash89 در انجمن برنامه نویسی کامپیوتر/کنترل با کامپیوتر
    پاسخ: 0
    آخرين نوشته: 01-02-2013, 16:40
  3. پاسخ: 2
    آخرين نوشته: 14-12-2012, 21:01
  4. برنامه بیسیک برای ارتباط سریال
    توسط wwwa در انجمن برنامه نویسی کامپیوتر/کنترل با کامپیوتر
    پاسخ: 12
    آخرين نوشته: 22-03-2010, 03:24
  5. تبدیل هگز به بیسیک
    توسط divar_t در انجمن PIC
    پاسخ: 2
    آخرين نوشته: 28-12-2009, 21:10

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •