ʵÓñê×¼
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Îݸ´óÈ«