سلام دوستان
من برنامه ای نوشتم برای کنترل سرعت موتور DC
این برنامه به این نحوه که ورودی مطلوب رو با پالس خروجی شفت انکودر (سرعت) مقایسه میکنه و اگر اختلافشون مثبت باشه به ولتاژ قبلی حدود 0.4 ولت اضافه می کنه و اگر اختلافشون منفی باشه از ولتاژ قبلی 0.4 ولت کم میکنه
حالا به نظر شما این چه نوع کنترلری میشه؟ (مثلا P و PI و ...)
سلام.
براي كنترلر شرط گذاشتيد؟ ( if )
كنترلر شما از خلاقيت خودتون هست و جزء هيچكدوم از تركيبات P و I و D نيست!
اگر قصد پياده سازيه PID داريد ،حتما تو net سرچ بزنيد و بيس code ببينيد تا آشنا بشيد و بعد ارتقائش بديد و در پروژه تون استفاده كنيد.
موفق باشيد.
منظورم فقط P و I و ... نیست
یعنی این کنترلر جزو هیچکدوم از کنترلرهای شناخته شده دیگه نیست؟
یه کم شبیه کنترلرهای دو وضعیته ولی اونم نیست! :(
تا اونجايي كه من مي دونم ، PID يكي از ساده ترين نوع كنترلر هاست.
كنترلرها نوع هاي ديگه اي هم دارن اما من آشنايي ندارم.
الگوريتم شما هيچ وقت به پايداري نمي رسه ، از اين جهت كه ميزان ارور هيچ وقت صفر نمي شه. سرعت جبران سازي هم يكنواخت هست كه اين مورد هم مطلوب نيست.
براي پياده سازيه P بايد ميزان error رو بدست بياريد و در يك ثابت Kp ضربش كنيد.
error = input - setPoint
Kp هم بايد تجربي بدست بيايد.
براي پايداري بهتر هم به ترتيب D و I بايستي در مراحل بعدي بهش افزودهه بشه تا Overshoot و setteling time و ... تنظيم بشه و جبرانسازي با كمترين خطا و بيشترين سرعت امكان پذير بشه.
همش با محاسبات هست و نيازي به if نيست.
اگر تغييرات متغيير ها نياز بود محدود بشه ، براي اين موارد مي تونيد شرط بذاريد. اما خود كنترلر فقط با محاسبات رياضي هست .