• اگر سمپادی هستی همین الان عضو شو :
    ثبت نام عضویت

PID چیست؟

  • شروع کننده موضوع
  • #1

mhmmdshirazi

کاربر فوق‌حرفه‌ای
ارسال‌ها
840
امتیاز
2,452
نام مرکز سمپاد
شهید Helli
شهر
tehran
سال فارغ التحصیلی
1390
مدال المپیاد
:دی خواب موندم!!
دانشگاه
دانشگاه امیر کبیر
رشته دانشگاه
مهندسی مکاترونیک
تلگرام
اینستاگرام
خب دوباره بعد از قرنی سلام می بینم که نبودنم همه چیو به باد داد مدیریت پرید و و و ای بابا!!!!!!!!!1
خب موضوع این پست پی ای دی کنترلر ها انواعشون نحوه ی عمل کردشون و کلا اینکه به چه دردی می خورن (مثلا اگه جونیور کار باشید میشه با این کاری کرد که اگه بخواید هم ربات کج نشه!!!!!!!)

پی ای دی یعنی چی؟؟؟؟؟؟؟؟؟
دی که خب مشتقه ای هم انتگرال و پی هم تناسب
خب اینا به چه دردی می خوره


شما یه وقتی می خواین یه موتور دی سی نه استپ موتور رو دقیقا یه دور بچرخونید یا 15 درجه فرض کنید موتورتون فید بک هم داشته باشه که یه پالس مربعیه!!
فرض کنید شما مدت زمان 15 درجه چرخیدن دقیق موتور رو تو شرایط فرضی می دونید!!!!! مثلا 1 ثانیه
خب حالا تو واقعیت که ان هزار تا مشکل هست مثل اصطکاک یا باری که رو موتوره حالا بحث اصلی میشه اینکه با اون فید بکی که می گیریم باید موتور رو با چند برابر نه لزوما بیشتر سرعت شرایط استاندارد بچرخونیم تا تو همون زمان و تحت هر شرایطی موتور همون کار رو بکنه!!!!!!!!


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

حالا اگه کسی می خواد چیزه بیشتره بدونه بگه که من کمکش کنم چون می دونید که دو هفته دیگه امتحان نهاییه و وقت نیست............. (; :) :D *-:
 
آخرین ویرایش:
  • لایک
امتیازات: Void

aghasina

کاربر فوق‌حرفه‌ای
ارسال‌ها
714
امتیاز
28
نام مرکز سمپاد
Qom Nodet
شهر
قم
پاسخ : PID??? what is this

خب . من میخوام از پایه بدونم چیه ؟! یه جور توضیح بده انتگرال اینا توش نباشه که هیچی بلد نیستم ....
 

astronomer_girl

کاربر فوق‌حرفه‌ای
ارسال‌ها
845
امتیاز
1,487
نام مرکز سمپاد
فرزانگان سمنان
شهر
سمنان
پاسخ : PID??? what is this

بله، منم هیچی نفهمیدم. ترجمه کنیدش لطفا!
 
  • شروع کننده موضوع
  • #4

mhmmdshirazi

کاربر فوق‌حرفه‌ای
ارسال‌ها
840
امتیاز
2,452
نام مرکز سمپاد
شهید Helli
شهر
tehran
سال فارغ التحصیلی
1390
مدال المپیاد
:دی خواب موندم!!
دانشگاه
دانشگاه امیر کبیر
رشته دانشگاه
مهندسی مکاترونیک
تلگرام
اینستاگرام
پاسخ : PID??? what is this

این برنامه رو ببین ازش چی میفهمی که بدونم چطوری توضیح بدم

کد:
int i=0,e=0;/////////in i va e dota moteghayeran:D e yani error yani farghe un chizi ke ma be onvane fidbak az mohit migirim va un chizi ke mikhaym bashe
void pid()
{
if(e==0)
i=0;

i=i+(int)(e)*(dx);//////////////////dx ye baze zamanie ke bayad ba azmayesh behtarin halatesh be dast biad
if(i>=0)
i=i;
else
i=-i;/////////////ghadre motlagh
//////farz kon alan meghdare aslie harekate motor tu ye moteghayer be esme p zakhire shode ke p ba pwm hast va khob beyn 255 ta -255 ke albate ye tabe bayad vasash neveshte she va p e + sa@ gard va bel aks
if(p>=0)
p=p+(int)(i)(e)(dy);
else
p=p-(int)(i)(e)(dy)///////////////dy ham mese dx e
if(e==0)
i=0;

}
 

mavara

کاربر حرفه‌ای
ارسال‌ها
404
امتیاز
1,002
نام مرکز سمپاد
فرزانگان1
شهر
مشهد
دانشگاه
فردوسی
رشته دانشگاه
مهندسی شیمی
پاسخ : PID??? what is this

:))
همه فروتنی می کنن هیچی نمیگن!!!!!
میدونیم ها....ولی فرصت رو میدیم به جوونا !!! :D
 

secret

کاربر حرفه‌ای
ارسال‌ها
286
امتیاز
475
نام مرکز سمپاد
فرزانگان
شهر
سمنان
پاسخ : PID??? what is this

چیزی که من فهمیدم :این برنامه متغیر اولو چک می کنه درصورت برقرار بودن بودن متغیر دومو چک می کنه (این الگوریتم کلی ولی بعدش اصلا چه اتفاقی می افته اگه شرط بر قرار نبود؟؟؟).حالا نکته اینجاسا که من اینجاشو نمی فهممi=-i;/////////////ghadre motlagh .در کل اگه بیشتر توضیح بدین خیلی خوب می شه .
 
  • شروع کننده موضوع
  • #7

mhmmdshirazi

کاربر فوق‌حرفه‌ای
ارسال‌ها
840
امتیاز
2,452
نام مرکز سمپاد
شهید Helli
شهر
tehran
سال فارغ التحصیلی
1390
مدال المپیاد
:دی خواب موندم!!
دانشگاه
دانشگاه امیر کبیر
رشته دانشگاه
مهندسی مکاترونیک
تلگرام
اینستاگرام
پاسخ : PID چیست؟

خب بعد از قرنی دوباره اومدم راستی اسم پست بود pid??? what is this بیخیال!!!!! خب ببین چطوری بگم فرض کن تو یه ربات جونیور تو مقداره کامپس رو می گیری با یه الگوریتم خیلی ساده تبدیلش می کنی به یه عدد بین 128- تا 128+ و صفر وقتیه که ربات زاویه اش درسته و وقتی به سمت راست کج میشه عدد مثبت میشه و بلعکس خب حالا فرض کن یه تابع موتور خیلی ساده داری که واسه هر موتور یه عدد بین 255- تا 255 میگیره که - پاد ساعت گرد و + ساعت گرده خوب روش قدیمی و معمول واسه صاف کردن ربات اینه که اون عدد کامپس رو مستقیم یا با یه ضریبی به pwm موتور اضافه کنیم که این روش تا حدی جواب می ده ولی نمی تونه ربات رو همیشه صافه صاف نگه داره پس میشه این طوری از pid واسه این کار استفاده کرد.....

کد:
/////////////////////////adad compass=cmp
/////////////////ye tabe motor darim intori motor(int pwm)

int i, e=0;
void pid()
{
if(cmp>=-2&&cmp<=2)
i=0;
e=0;
else
e=cmp;
////////
if(cmp>2)
i=+(int)(dx)(e);
else if(cmp<-2)
i=-(int)(dx)(e);
//////////////////
if(cmp>2)
pwm=+(int)((i)+(dy)(e));
else if(cmp<-2)
pwm=+(int)((i)+(dy)(e));

motor(pwm);
}
امیدوارم الان فهمیده باشی منظورم رو.
 

secret

کاربر حرفه‌ای
ارسال‌ها
286
امتیاز
475
نام مرکز سمپاد
فرزانگان
شهر
سمنان
پاسخ : PID چیست؟

خیلی ممنون .دارم فکر می کنم دیگه چه جوری می تونیم این الگوریتم رو بنویسیم.
 
  • شروع کننده موضوع
  • #9

mhmmdshirazi

کاربر فوق‌حرفه‌ای
ارسال‌ها
840
امتیاز
2,452
نام مرکز سمپاد
شهید Helli
شهر
tehran
سال فارغ التحصیلی
1390
مدال المپیاد
:دی خواب موندم!!
دانشگاه
دانشگاه امیر کبیر
رشته دانشگاه
مهندسی مکاترونیک
تلگرام
اینستاگرام
پاسخ : PID چیست؟

خب این عکس ها ماله ویکی پدیا هستن و واسه توضیح بهتر این هارو می زارم!!!!
Pid-feedback-nct-int-correct.png

این یه عکسیه که یه جورایی کار کرد pid controller ها رو نشون میده که من خیلی به اونش کاری ندارم چون میکرو کنترلر ها نمی کشن اونو!!!
Change_with_Kp.png

اینم بش فکر کنید چیزه خوبیه
کد:
Ideal versus standard PID form

The form of the PID controller most often encountered in industry, and the one most relevant to tuning algorithms is the standard form. In this form the Kp gain is applied to the Iout, and Dout terms, yielding:

    \mathrm{MV(t)}=K_p\left(\,{e(t)} + \frac{1}{T_i}\int_{0}^{t}{e(\tau)}\,{d\tau} + T_d\frac{d}{dt}e(t)\right)

where

    Ti is the integral time
    Td is the derivative time

In the ideal parallel form, shown in the controller theory section

    \mathrm{MV(t)}=K_p{e(t)} + K_i\int_{0}^{t}{e(\tau)}\,{d\tau} + K_d\frac{d}{dt}e(t)

the gain parameters are related to the parameters of the standard form through K_i = \frac{K_p}{T_i} and K_d = K_p T_d \,. This parallel form, where the parameters are treated as simple gains, is the most general and flexible form. However, it is also the form where the parameters have the least physical interpretation and is generally reserved for theoretical treatment of the PID controller. The standard form, despite being slightly more complex mathematically, is more common in industry.
[edit] Laplace form of the PID controller

Sometimes it is useful to write the PID regulator in Laplace transform form:

    G(s)=K_p + \frac{K_i}{s} + K_d{s}=\frac{K_d{s^2} + K_p{s} + K_i}{s}

Having the PID controller written in Laplace form and having the transfer function of the controlled system makes it easy to determine the closed-loop transfer function of the system.
[edit] Series/interacting form

Another representation of the PID controller is the series, or interacting form

    G(s) = K_c \frac{(\tau_i{s}+1)}{\tau_i{s}} (\tau_d{s}+1)

where the parameters are related to the parameters of the standard form through

    K_p = K_c \cdot \alpha, T_i = \tau_i \cdot \alpha, and
    T_d = \frac{\tau_d}{\alpha}

with

    \alpha = 1 + \frac{\tau_d}{\tau_i}.

This form essentially consists of a PD and PI controller in series, and it made early (analog) controllers easier to build. When the controllers later became digital, many kept using the interacting form.
[edit] Discrete implementation

The analysis for designing a digital implementation of a PID controller in a Microcontroller (MCU) or FPGA device requires the standard form of the PID controller to be discretised [12]. Approximations for first-order derivatives are made by backward finite differences. The integral term is discretised, with a sampling time Δt,as follows,

    \int_{0}^{t_k}{e(\tau)}\,{d\tau} = \sum_{i=1}^k e(t_i)\Delta t 

The derivative term is approximated as,

    \dfrac{de(t_k)}{dt}=\dfrac{e(t_k)-e(t_{k-1})}{\Delta t}

Thus, a velocity algorithm for implementation of the discretised PID controller in a MCU is obtained by differentiating u(t), using the numerical definitions of the first and second derivative and solving for u(tk) and finally obtaining:

    u(t_k)=u(t_{k-1})+K_p\left[\left(1+\dfrac{\Delta t}{T_i}+\dfrac{T_d}{\Delta t}\right)e(t_k)+\left(-1-\dfrac{2T_d}{\Delta t}\right)e(t_{k-1})+\dfrac{T_d}{\Delta t}e(t_{k-2})\right]




این دقیقا متن Wikipedia واسه توضیحشه که من از این بهتر نمی تونم توضیح بدم پس این رو بخونین و در مورد نحوه نوشتن برنامش من می توضیحم!!!!
 
  • شروع کننده موضوع
  • #10

mhmmdshirazi

کاربر فوق‌حرفه‌ای
ارسال‌ها
840
امتیاز
2,452
نام مرکز سمپاد
شهید Helli
شهر
tehran
سال فارغ التحصیلی
1390
مدال المپیاد
:دی خواب موندم!!
دانشگاه
دانشگاه امیر کبیر
رشته دانشگاه
مهندسی مکاترونیک
تلگرام
اینستاگرام

secret

کاربر حرفه‌ای
ارسال‌ها
286
امتیاز
475
نام مرکز سمپاد
فرزانگان
شهر
سمنان
پاسخ : PID چیست؟

امیدوارم و فقط امیدوارم که برسم موقع امتحانا بیشتر روشون فکر کنم.
 
  • شروع کننده موضوع
  • #12

mhmmdshirazi

کاربر فوق‌حرفه‌ای
ارسال‌ها
840
امتیاز
2,452
نام مرکز سمپاد
شهید Helli
شهر
tehran
سال فارغ التحصیلی
1390
مدال المپیاد
:دی خواب موندم!!
دانشگاه
دانشگاه امیر کبیر
رشته دانشگاه
مهندسی مکاترونیک
تلگرام
اینستاگرام
پاسخ : PID چیست؟

خب عزیزم بعد از امتحانا فک کن!!!!!!!!!!!!!!!
 

ramin_knight_bat

کاربر جدید
ارسال‌ها
3
امتیاز
0
نام مرکز سمپاد
beheshti
شهر
ahvaz
پاسخ : PID چیست؟

سلام.
میشه درمورد dx و dy توضیح بیشتر بدید؟!؟!
زمان روشن موندن موتورهاست؟!؟
یا یک ضریبه؟؟
 
  • شروع کننده موضوع
  • #14

mhmmdshirazi

کاربر فوق‌حرفه‌ای
ارسال‌ها
840
امتیاز
2,452
نام مرکز سمپاد
شهید Helli
شهر
tehran
سال فارغ التحصیلی
1390
مدال المپیاد
:دی خواب موندم!!
دانشگاه
دانشگاه امیر کبیر
رشته دانشگاه
مهندسی مکاترونیک
تلگرام
اینستاگرام
پاسخ : PID چیست؟

در حقیقت انتگرال یه سرعت جلو روی داره که اون dx میشه و مشتق هم یه حده و میزانه نزدیک شدنش به مقدار واقعی همون dy هست که اینا خودشون با یه نوسانه کم متغییرن ولی با میکرو کنترلر نمی شه دقیق حسابشون کرد پس ما صرفا یه ضریب ثابت در نظر می گیریم و بعدش اینکه با آزمایش به دست میاد مسه تحلیل ابعادی!!!
 

ramin_knight_bat

کاربر جدید
ارسال‌ها
3
امتیاز
0
نام مرکز سمپاد
beheshti
شهر
ahvaz
پاسخ : PID چیست؟

پس اصلا این pid نمیشه...
این کار فقط یه فرمولیه که زاویه را به pwm تبدیل می کنید و به موتورها می دید؟؟!؟
غیره اینه؟؟
 

ramin_knight_bat

کاربر جدید
ارسال‌ها
3
امتیاز
0
نام مرکز سمپاد
beheshti
شهر
ahvaz
پاسخ : PID چیست؟

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

http://www.metaroclub.com/forum/f25/pid-587/


كنترل PID
در اين پست و پست هاي آينده سعي دارم در ابتدا به تعريف تئوري PID و سپس توضيح آن و در پايان به روش بدست آوردن تجربي ضرايب آن بپردازم...
الگوريتم PID در ميان همه ي الگوريتم هاي مطرح شده در علم كنترل بيشتر جنبه صنعتي به خود گرفته است.به خصوص در زمينه كنترل موتور از همه مناسب تر به نظر مي رسد.
البته من در ايجا به طور خلاصه و مختصر ومنحصر به ربات فوتباليست دانش آموزي و آن هم فقط در مورد استفاده از اين الگوريتم در ثابت كردن ربات در يك جهت خاص مثلا رو به دروازه ي حريف صحبت مي كنم.و تنها آن بخش از تئوري را مطرح مي كنم كه در اين زمينه كاربرد دارد.دوستان جهت كسب اطلاعات بيشتر مي توانند به منابع اين الگوريتم و كتابهاي موجود در اين زمينه مراجعه كنند.
در اينجا براي بررسي بهتر بحث را به چند قسمت تقسيم مي كنم.
ابتدا تئوري PID
بر خلاف الگوريتم هاي ساده ،الگوريتم PID اين قابليت را دارد كه با توجه به رفتار سيستم در گذشته و موقيت فعلي ربات و همچنين با توجه به احتماخ رخداد خطا در آينده يك روش كترلي را پياده كند.
روش كار بين صورت است كه بوسيله يك سنسور موقيت فعلي ربات بدست مي آيد.و بوسيله تفريق اين موقيت از موقيت مطلوب ،خطاي سيستم محاسبه مي گردد.اين خطا جهت محاسبه ي سه مقدار استفاده مي گردد.
مقدار اول كه در واقع سازنده ي قسمت Proportional سيستم است وبيان گر ميزان اثر پذيري خروجي سيستم از موقيت و خطاي فعلي است.
مقدار دوم كه در واقع سازنده قسمت Integration سيستم است و بيان گر ميزان اثر پذيري سيستم از جمع خطاهايي است كه سيستم در گذشته داشته است.
مقدار سوم كه در واقع سازنده قسمت Derivative سيستم است و بيان گر ميزان اثر پذيري سيستم از احتمال خطايي است كه سيستم در آينده خواهد داشت.
جهت درك بهتر اثر هركدام از اين سه قسمت در خروجي الگوريم ،هر كدام را به طور جداگانه و با بدون در نظر گرفتن ساير قسمت ها بررسي مي كنيم.
Proportional term
قسمت P خروجي سيستم را به صورت نسبتي از خطاي سيستم تنظيم مي كند.يعني در واقع جهت اصلاح خطا آن را با نسبتي خاص در وردي و در جهت اصلاح آن اعمال مي كند.انتخاب P هاي بزرگ سبب پاسخ سريع و بزرگ به سيستم مي گردد.كه در اكثر موارد منجر به ناپايداري سيستم مي شود.انتخاب P ها كوچك زمان رسيدن به نقطه ي مطلوب را افزايش مي دهد.
در شكل زير پاسخ يك كنترل كننده ي P تنها به ورودي پله (يك خطاي ناگهاني) نشان داده شده است.شيب صعود و بزرگي فراجهش به بزرگي P بستگي دارد.

integral term

بخش انتكرال گيرسيستم حاصل جمع تعدادي از خطاهاي گذشته ي سيستم است.در واقع از زماني كه سيستم شروع به داشتن خطا مي كند.خطاهاي سيستم در اين بخش جمع مي شود و وقتي سيستم به موقيت مصلوب رسيد دوباره اين بخش صفر مي گردد.
غالبا استفاده از I تنها منجر به پاسخ هاي بسيار كند و گهگاه نوساني مي گردد.به همين خاطر معمولا بخش P را بابخش I تريب كرده و كنترل كننده PI را بوجود مي آورند.
همانطور كه درشكل زير مي بينيد تركيب اين دو به جواب تقريبا قابل قبولي منجرمي شود كه مي توان بخش هاي مختلف را با آن كنترل كرد.


Derivative term
بخش D ناشي از سرعت غييرات خطا مي باشد. در حقيقت اين بخش بيانگر احتمال رخ داد خطا در آينده است.اگر سرعت خطا زياد باشد.اين بخش نيز بزرگ مي گردد.
اين بخش بيشتر جهت پاسخ دهي به ظطاهاي ناگهاني استفاده مي گردد.ومعمولا با PIيا P مورد استفاده قرار مي گيرد.
عددهاي بزرگ D غالبا به ناپاياري سيستم منجر مي شود.
در شكل زير يك كنترل كننده D نشان داده شده است...


معمولا تركيب اين سه بخش بهترين حالت ممكن را مي دهد.در شكل زير پاسخ سيستم هاي P,PI,PID به طور جداگانه نشان داده شده است.
 

aghasina

کاربر فوق‌حرفه‌ای
ارسال‌ها
714
امتیاز
28
نام مرکز سمپاد
Qom Nodet
شهر
قم
پاسخ : PID چیست؟

حالا یه نکته من بیچاره که نمیدونم انتگرال چیه و مشتق یعنی چی باید چیکار کنم؟!!؟
 
  • شروع کننده موضوع
  • #18

mhmmdshirazi

کاربر فوق‌حرفه‌ای
ارسال‌ها
840
امتیاز
2,452
نام مرکز سمپاد
شهید Helli
شهر
tehran
سال فارغ التحصیلی
1390
مدال المپیاد
:دی خواب موندم!!
دانشگاه
دانشگاه امیر کبیر
رشته دانشگاه
مهندسی مکاترونیک
تلگرام
اینستاگرام
پاسخ : PID چیست؟

به نقل از ramin_knight_bat :
پس اصلا این pid نمیشه...
این کار فقط یه فرمولیه که زاویه را به pwm تبدیل می کنید و به موتورها می دید؟؟!؟
غیره اینه؟؟

ببین این یه حالت خیلی ساده از pid ه و جز این رو نمی شه با میکرو کنترولر ساخت من دارم روش با fpga ور میرم ببینم میشه کاری کرد یا نه!!!!
 

secret

کاربر حرفه‌ای
ارسال‌ها
286
امتیاز
475
نام مرکز سمپاد
فرزانگان
شهر
سمنان
پاسخ : PID چیست؟

یه تاپیک دیگه هم هست اونجاهم توضیحات خوبی دادن.
 

astronomer_girl

کاربر فوق‌حرفه‌ای
ارسال‌ها
845
امتیاز
1,487
نام مرکز سمپاد
فرزانگان سمنان
شهر
سمنان
پاسخ : PID چیست؟

انتگرال و این چیزا رو تو کدوم کتاب سوم باید خوند؟
من خمارم!
 
بالا