PID¿ØÖÆÆ÷Éè¼Æ ÏÂÔØ±¾ÎÄ

ʵÓñê×¼

PID¿ØÖÆÆ÷Éè¼Æ

Ò»¡¢PID¿ØÖƵĻù±¾Ô­ÀíºÍ³£ÓÃÐÎʽ¼°ÊýѧģÐÍ

¾ßÓбÈÀý-»ý·Ö-΢·Ö¿ØÖƹæÂɵĿØÖÆÆ÷£¬³ÆPID¿ØÖÆÆ÷¡£ÕâÖÖ×éºÏ¾ßÓÐÈýÖÖ»ù±¾¹æÂɸ÷×ÔµÄÌØµã£¬ÆäÔ˶¯·½³ÌΪ£º

m(t)?Kpe(t)?KpKi?e(t)dt?KpKd0tde(t) (1-1) dt

ÏàÓ¦µÄ´«µÝº¯ÊýΪ£º

??Ki?Gc(s)?Kp?1?S?KdS????

?

Kp?2SKi?KdS?1S (1-2)

PID¿ØÖƵĽṹͼΪ£º

Èô4?Ti?1£¬Ê½£¨1-2£©¿ÉÒÔд³É£º

G(s)?KcPKi???1S?1???2S?1?S

Óɴ˿ɼû£¬µ±ÀûÓÃPID¿ØÖÆÆ÷½øÐд®ÁªÐ£Õýʱ£¬³ý¿ÉʹϵͳµÄÐͱðÌá¸ßÒ»¼¶Í⣬»¹½«ÌṩÁ½

¸ö¸ºÊµÁãµã¡£ÓëPI¿ØÖÆÆ÷Ïà±È£¬PID¿ØÖÆÆ÷³ýÁËͬÑù¾ßÓÐÌá¸ßϵͳµÄÎÈ̬ÐÔÄܵÄÓŵãÍ⣬»¹¶àÌṩһ¸ö¸ºÊµÁãµã£¬´Ó¶øÔÚÌá¸ßϵͳ¶¯Ì¬ÐÔÄÜ·½Ã棬¾ßÓиü´óµÄÓÅÔ½ÐÔ¡£Òò´Ë£¬ÔÚ¹¤Òµ¹ý³Ì¿ØÖÆÏµÍ³ÖУ¬¹ã·ºÊ¹ÓÃPID¿ØÖÆÆ÷¡£PID¿ØÖÆÆ÷¸÷²¿·Ö²ÎÊýµÄÑ¡Ôñ£¬ÔÚϵͳÏÖ³¡µ÷ÊÔÖÐ×îºóÈ·¶¨¡£Í¨³££¬Ó¦Ê¹»ý·Ö²¿·Ö·¢ÉúÔÚϵͳƵÂÊÌØÐÔµÄµÍÆµ¶Î£¬ÒÔÌá¸ßϵͳµÄÎÈ̬ÐÔÄÜ£»¶øÊ¹Î¢·Ö²¿·Ö·¢ÉúÔÚϵͳƵÂÊÌØÐÔµÄÖÐÆµ¶Î£¬ÒÔ¸ÄÉÆÏµÍ³µÄ¶¯Ì¬ÐÔÄÜ¡£

Îݸ´óÈ«

ʵÓñê×¼

¶þ¡¢ÊµÑéÄÚÈÝÒ»£º

×Ô¼ºÑ¡¶¨Ò»¸ö¾ßÌåµÄ¿ØÖƶÔÏó(Plant)£¬·Ö±ðÓÃP¡¢PD¡¢PI¡¢PID¼¸ÖÖ¿ØÖÆ·½Ê½Éè¼ÆÐ£ÕýÍøÂ磨Compensators£©£¬ÊÖ¹¤µ÷ÊÔP¡¢I¡¢D¸÷¸ö²ÎÊý£¬Ê¹±Õ»·ÏµÍ³µÄ½×Ô¾ÏìÓ¦£¨Response to Step Command£©¾¡¿ÉÄܵغã¨Îȶ¨ÐÔ¡¢¿ìËÙÐÔ¡¢×¼È·ÐÔ£© ¿ØÖƶÔÏó(Plant)µÄÊýѧģÐÍ£º

??1G(S)????0.5S?1??S?1???

??2?2 S?3S?2 ʵÑé1ÖУ¬ÎÒʹÓÃMATLABÈí¼þÖеÄSimulinkµ÷ÊԺͱà³Ìµ÷ÊÔÏà½áºÏµÄ·½·¨ ²»¼ÓÈκδ®ÁªÐ£ÕýµÄϵͳ½×Ô¾ÏìÓ¦£º

£¨1£© P¿ØÖÆ·½Ê½£º

P¿ØÖÆ·½Ê½Ö»ÊÇÔÚǰÏòͨµÀÉϼÓÉϱÈÀý»·½Ú£¬Ï൱ÓÚÔö´óÁËϵͳµÄ¿ª»·ÔöÒæ£¬¼õСÁËϵͳµÄÎÈ̬Îó²î£¬¼õСÁËϵͳµÄ×èÄᣬ´Ó¶øÔö´óÁËϵͳµÄ³¬µ÷Á¿ºÍÕñµ´ÐÔ¡£

P¿ØÖÆ·½Ê½µÄϵͳ½á¹¹Í¼ÈçÏ£º

È¡Kp=1ÖÁ15£¬²½³¤Îª1£¬½øÐÐÑ­»·²âÊÔϵͳ£¬½«²»Í¬KpϵĽ×Ô¾ÏìÓ¦ÇúÏß»æÖÆÔÚÒ»ÕÅ×ø±êͼÏ£º

Îݸ´óÈ«

ʵÓñê×¼

MATLABÔ´³ÌÐò£º

%¶ÔÓÚP¿ØÖƵıà³ÌʵÏÖ clear; d=[2]; n=[1 3 2]; t=[0:0.01:10]; for Kp=1:1:15 d1=Kp*d; g0=tf(d1,n);

g=feedback(g0,1); y=step(g,t); plot(t,y);

if ishold~=1 ,hold on,end end grid

ÓÉʵÑéÇúÏß¿ÉÒÔ¿´³ö£¬Ëæ×ÅKpÖµµÄÔö´ó£¬ÏµÍ³µÄÎÈ̬Îó²îÖð½¥¼õС£¬ÎÈ̬ÐÔÄܵõ½ºÜºÃµÄ¸ÄÉÆ£¬µ«ÊÇ£¬KpµÄÔö´ó£¬Ê¹ÏµÍ³µÄ³¬µ÷Á¿Í¬Ê±Ôö¼Ó£¬ÏµÍ³µÄ¶¯Ì¬ÐÔÄܱä²î£¬Îȶ¨ÐÔϽµ¡£Õâ¾ÍÊÇP¿ØÖƵÄÒ»°ã¹æÂÉ¡£

ÓÉÓÚÇúÏß¹ýÓÚÃܼ¯£¬ÎÒ½«³ÌÐòÉÔ×öÐ޸ģ¬Ê¹Æä½ö½öÏÔʾ³öµ±ÏµÍ³ÎÈ̬Îó²îСÓÚ10%µÄ×îСKpÖµ £¬²¢Ëã³ö´ËʱϵͳµÄÎÈֵ̬ºÍ³¬µ÷Á¿¡£ еijÌÐòΪ£º

%Ð޸ĺó¶ÔÓÚP¿ØÖƵıà³ÌʵÏÖ clear; d=[2]; n=[1 3 2];

Îݸ´óÈ«

ʵÓñê×¼

t=[0:0.01:10]; for Kp=1:1:15 d1=Kp*d; g0=tf(d1,n);

g=feedback(g0,1); y=step(g,t); plot(t,y); dc=dcgain(g) if dc>0.9,

plot(t,y),disp(Kp),disp(dc),break,end;%ÏÔʾ³öÎÈ̬Îó²îСÓÚ10%µÄ×îСKpÖµ£¬²¢Ëã³öÎÈֵ̬

if ishold~=1 ,hold on,end end grid

Kp=10ʱϵͳµÄ½×Ô¾ÏìÓ¦ÇúÏß

ÎÒÃǾͲÉÓÃʹϵͳÎÈ̬Îó²îСÓÚ10%µÄ×îСKpÖµ10£¬²¢¼ÆËã³ö´ËʱϵͳµÄ³¬µ÷Á¿Îª34.6%£¬ÎÈ̬Îó²îΪ1-0.9091=0.0909¡£ÕâЩ½á¹ûÊÇÎÒÃÇÄܽÓÊܵġ£ (2)PD¿ØÖÆ·½Ê½

PD¿ØÖÆ·½Ê½ÊÇÔÚP¿ØÖƵĻù´¡ÉÏÔö¼ÓÁË΢·Ö»·½Ú£¬ÓÉͼ¿É¼û£¬ÏµÍ³µÄÊä³öÁ¿Í¬Ê±Êܵ½Îó²îÐźż°ÆäËÙÂʵÄË«ÖØ×÷Óá£Òò¶ø£¬±ÈÀý¡ªÎ¢·Ö¿ØÖÆÊÇÒ»ÖÖÔçÆÚ¿ØÖÆ£¬¿ÉÔÚ³öÏÖÎó²îλÖÃǰ£¬Ìáǰ²úÉúÐÞÕý×÷Ó㬴Ӷø´ïµ½¸ÄÉÆÏµÍ³ÐÔÄܵÄÄ¿µÄ¡£

¿ØÖÆÏµÍ³µÄ´«µÝº¯ÊýΪ£º

2KpKdS?2Kp

S2?3S?2Îݸ´óÈ«