<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<meta name="generator" content="pdf2htmlEX">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<link rel="stylesheet" href="https://static.pudn.com/base/css/base.min.css">
<link rel="stylesheet" href="https://static.pudn.com/base/css/fancy.min.css">
<link rel="stylesheet" href="https://static.pudn.com/prod/directory_preview_static/628884ce16e0ca7141fa480b/raw.css">
<script src="https://static.pudn.com/base/js/compatibility.min.js"></script>
<script src="https://static.pudn.com/base/js/pdf2htmlEX.min.js"></script>
<script>
try{
pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});
}catch(e){}
</script>
<title></title>
</head>
<body>
<div id="sidebar" style="display: none">
<div id="outline">
</div>
</div>
<div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/628884ce16e0ca7141fa480b/bg1.jpg"><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls0 ws0">14<span class="ls1">.2.2 <span class="ff2">算法流程</span> </span></div><div class="t m0 x1 h3 y2 ff3 fs0 fc0 sc0 ls1 ws0">14.2.2.1 <span class="ff4">优化过程<span class="_ _0"></span><span class="ff3"> </span></span></div><div class="t m0 x2 h3 y3 ff5 fs0 fc0 sc0 ls1 ws0">利用粒子群算法对<span class="_ _1"> </span><span class="ff3">PI<span class="_ _0"></span>D<span class="_"> </span><span class="ff5">控制<span class="_ _0"></span>器的参数<span class="_ _0"></span>进行优化设计,<span class="_ _0"></span>其过程如图<span class="_ _2"> </span><span class="ff3 ls2">14<span class="ls1">-<span class="_ _3"></span>3<span class="_ _4"> </span></span></span>所示。<span class="ff3"> </span></span></span></div><div class="c x3 y4 w2 h4"><div class="t m1 x4 h5 y5 ff5 fs1 fc0 sc0 ls1 ws0">粒子群算法(<span class="ff3">PSO</span>)</div><div class="t m1 x5 h6 y6 ff3 fs2 fc0 sc0 ls1 ws0"> <span class="ff5">开始</span></div><div class="t m1 x6 h7 y7 ff5 fs2 fc0 sc0 ls1 ws0">结束</div><div class="t m1 x7 h7 y8 ff5 fs2 fc0 sc0 ls1 ws0">产生粒子群</div><div class="t m1 x8 h7 y9 ff5 fs2 fc0 sc0 ls1 ws0">满足终止条件吗?</div><div class="t m1 x4 h7 ya ff5 fs2 fc0 sc0 ls1 ws0">否</div><div class="t m1 x9 h7 yb ff5 fs2 fc0 sc0 ls1 ws0">是</div><div class="t m1 xa h5 yc ff3 fs1 fc0 sc0 ls1 ws0">Simulink</div><div class="t m1 xb h6 yd ff5 fs2 fc0 sc0 ls1 ws0">粒子依次赋值给<span class="ff3">Kp</span>、<span class="ff3">Ki</span>、<span class="ff3">Kd</span></div><div class="t m1 xc h8 ye ff5 fs2 fc0 sc0 ls1 ws0">运行<span class="fs3">控制系统</span>模型</div><div class="t m1 xd h7 yf ff5 fs2 fc0 sc0 ls1 ws0">输出性能指标</div><div class="t m1 xe h7 y10 ff5 fs2 fc0 sc0 ls1 ws0">粒子群</div><div class="t m1 xf h7 y11 ff5 fs2 fc0 sc0 ls1 ws0">更新操作</div></div><div class="t m0 x10 h3 y12 ff3 fs0 fc0 sc0 ls1 ws0"> </div><div class="t m0 x11 h3 y13 ff5 fs0 fc0 sc0 ls1 ws0">图<span class="_ _1"> </span><span class="ff3">14-<span class="_ _3"></span>3 PS<span class="_ _0"></span>O<span class="_ _4"> </span><span class="ff5">优化<span class="_ _2"> </span></span>PI<span class="_ _0"></span>D<span class="_"> </span><span class="ff5">的过程<span class="_ _0"></span>示意图<span class="ff3"> </span></span></span></div><div class="t m0 x12 h3 y14 ff5 fs0 fc0 sc0 ls1 ws0">图中,粒子群算法与<span class="_ _5"> </span><span class="ff3">Sim<span class="_ _0"></span>u<span class="_ _0"></span>li<span class="_ _3"></span>nk<span class="_ _6"> </span><span class="ff5">模型之间连接的桥梁<span class="_ _0"></span>是粒子(即<span class="_ _5"> </span><span class="ff3">PID<span class="_ _6"> </span></span>控制器参数)和该<span class="_ _0"></span>粒子对应<span class="_ _0"></span>的适</span></span></div><div class="t m0 x1 h3 y15 ff5 fs0 fc0 sc0 ls1 ws0">应值(<span class="_ _3"></span>即控<span class="_ _3"></span>制系统的性<span class="_ _3"></span>能指标<span class="_ _3"></span>)。<span class="_ _3"></span>优化过程如<span class="_ _3"></span>下:<span class="_ _3"></span><span class="ff3 ls0">PSO<span class="_ _5"> </span></span>产生粒<span class="_ _3"></span>子群(可以<span class="_ _3"></span>是初<span class="_ _3"></span>始化<span class="_ _3"></span>粒子群,也<span class="_ _3"></span>可以<span class="_ _3"></span>是更</div><div class="t m0 x1 h3 y16 ff5 fs0 fc0 sc0 ls1 ws0">新后的粒子群),将<span class="_ _0"></span>该粒子群中的粒子<span class="_ _0"></span>依次赋值<span class="_ _0"></span>给<span class="_ _6"> </span><span class="ff3">PI<span class="_ _0"></span>D<span class="_"> </span><span class="ff5">控制器的参<span class="_ _0"></span>数<span class="_ _6"> </span><span class="ff3 ls3">Kp<span class="_ _0"></span><span class="ff5 ls1">、<span class="ff3 ls3">Ki</span>、<span class="ff3 ls3">Kd<span class="_ _0"></span><span class="ff5 ls1">,然后<span class="_ _0"></span>运行控制系统的</span></span></span></span></span></span></div><div class="t m0 x1 h3 y17 ff3 fs0 fc0 sc0 ls1 ws0">Simul<span class="_ _0"></span>i<span class="_ _3"></span>n<span class="_ _0"></span>k<span class="_ _7"> </span><span class="ff5">模型,得到该组参数对应的性能指标,该性<span class="_ _0"></span>能指标传递到<span class="_ _8"> </span><span class="ff3 ls0">PSO<span class="_ _7"> </span></span>中作为该粒子的适<span class="_ _0"></span>应值,最后判</span></div><div class="t m0 x1 h3 y18 ff5 fs0 fc0 sc0 ls1 ws0">断是否可以退出算法<span class="_ _0"></span>。<span class="ff3"> </span></div><div class="t m0 x1 h3 y19 ff3 fs0 fc0 sc0 ls1 ws0">14.2.2.2 <span class="ff4">粒子群算法实<span class="_ _0"></span>现<span class="ff3"> </span></span></div><div class="t m0 x2 h3 y1a ff5 fs0 fc0 sc0 ls1 ws0">粒子群算法的基本原理在<span class="_ _8"> </span><span class="ff3">14.1.1<span class="_ _7"> </span></span>中已经述及<span class="_ _3"></span>,进一<span class="_ _3"></span>步地,粒子在搜<span class="_ _3"></span>索空间中的速度和位置<span class="_ _3"></span>根据如下</div><div class="t m0 x1 h3 y1b ff5 fs0 fc0 sc0 ls1 ws0">公式确定:<span class="ff3"> </span></div><div class="c x13 y1c w3 h9"><div class="t m2 x14 ha y1d ff3 fs4 fc0 sc0 ls1 ws0">1<span class="_ _9"> </span>1<span class="_ _2"> </span>1<span class="_ _a"> </span>2<span class="_ _b"> </span>2</div><div class="t m2 x8 hb y1e ff3 fs5 fc0 sc0 ls1 ws0">(<span class="_ _c"> </span>)<span class="_ _d"> </span>(<span class="_ _e"> </span>)</div><div class="t m2 x15 hc y1d ff6 fs4 fc0 sc0 ls1 ws0">t<span class="_ _f"> </span>t<span class="_ _10"> </span>t<span class="_ _11"> </span>t<span class="_ _12"> </span>t<span class="_ _11"> </span>t</div><div class="t m2 x16 hd y1e ff6 fs5 fc0 sc0 ls1 ws0">v<span class="_ _13"> </span>wv<span class="_ _14"> </span>c<span class="_ _1"> </span>r<span class="_ _15"> </span>P<span class="_ _16"> </span>x<span class="_ _11"> </span>c<span class="_ _b"> </span>r<span class="_ _17"> </span>G<span class="_ _18"> </span>x</div><div class="t m2 x17 he y1d ff7 fs4 fc0 sc0 ls1 ws0"></div><div class="t m2 xe hf y1e ff7 fs5 fc0 sc0 ls1 ws0"><span class="_ _19"> </span><span class="_ _1a"> </span><span class="_ _1b"> </span><span class="_ _10"> </span></div></div><div class="t m0 x18 h3 y1f ff3 fs0 fc0 sc0 ls1 ws0"> <span class="_ _0"></span> (14-4<span class="_ _0"></span>) </div><div class="c x13 y20 w4 h9"><div class="t m3 x19 ha y1d ff3 fs4 fc0 sc0 ls4 ws0">11<span class="_ _1c"></span><span class="ff6 ls1">t<span class="_ _1d"> </span>t<span class="_ _1b"> </span>t</span></div><div class="t m3 x1a hd y1e ff6 fs5 fc0 sc0 ls1 ws0">x<span class="_ _1e"> </span>x<span class="_ _14"> </span>v</div><div class="t m3 x1b he y1d ff7 fs4 fc0 sc0 ls5 ws0"></div><div class="t m3 x1c hf y1e ff7 fs5 fc0 sc0 ls6 ws0"></div></div><div class="t m0 x1d h3 y21 ff3 fs0 fc0 sc0 ls1 ws0"> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _0"></span> <span class="_ _3"></span>(14-5)<span class="_ _0"></span> </div><div class="t m0 x2 h10 y22 ff5 fs0 fc0 sc0 ls7 ws0">其中,</div><div class="c x1e y23 w5 h11"><div class="t m4 x1a h12 y24 ff6 fs6 fc0 sc0 ls8 ws0">x</div></div><div class="t m0 x1f h10 y22 ff5 fs0 fc0 sc0 ls1 ws0">表示粒<span class="_ _3"></span>子的<span class="_ _3"></span>位置,</div><div class="c x20 y23 w6 h11"><div class="t m5 x16 h12 y24 ff6 fs6 fc0 sc0 ls1 ws0">v</div></div><div class="t m0 x21 h10 y22 ff5 fs0 fc0 sc0 ls1 ws0">表示<span class="_ _3"></span>粒子<span class="_ _3"></span>的速度<span class="_ _3"></span>,</div><div class="c x22 y23 w7 h11"><div class="t m6 x16 h12 y24 ff6 fs6 fc0 sc0 ls1 ws0">w</div></div><div class="t m0 x23 h10 y22 ff5 fs0 fc0 sc0 ls1 ws0">为惯性因<span class="_ _3"></span>子<span class="_ _3"></span>,</div><div class="c x24 y25 w8 h9"><div class="t m7 x15 ha y1d ff3 fs4 fc0 sc0 ls1 ws0">1</div><div class="t m7 x16 hd y1e ff6 fs5 fc0 sc0 ls1 ws0">c</div></div><div class="t m0 x25 h10 y22 ff5 fs0 fc0 sc0 ls1 ws0">、</div><div class="c x26 y25 w7 h9"><div class="t m8 x15 ha y26 ff3 fs4 fc0 sc0 ls1 ws0">2</div><div class="t m8 x16 h13 y27 ff6 fs7 fc0 sc0 ls1 ws0">c</div></div><div class="t m0 x27 h10 y22 ff5 fs0 fc0 sc0 ls1 ws0">为加<span class="_ _3"></span>速常<span class="_ _3"></span>数,</div><div class="c x28 y25 w9 h9"><div class="t m9 x29 ha y26 ff3 fs4 fc0 sc0 ls1 ws0">1</div><div class="t m9 x16 h13 y27 ff6 fs7 fc0 sc0 ls1 ws0">r</div></div><div class="t m0 x2a h10 y22 ff5 fs0 fc0 sc0 ls1 ws0">、</div><div class="c x2b y25 w8 h9"><div class="t m7 x2c ha y1d ff3 fs4 fc0 sc0 ls1 ws0">2</div><div class="t m7 x16 hd y1e ff6 fs5 fc0 sc0 ls1 ws0">r</div></div><div class="t m0 x2d h3 y22 ff5 fs0 fc0 sc0 ls1 ws0">为<span class="ff3">[<span class="_ _3"></span>0,1<span class="_ _0"></span>]</span></div><div class="t m0 x1 h10 y28 ff5 fs0 fc0 sc0 ls1 ws0">之间的随机数,</div><div class="c x2e y29 w7 h9"><div class="t m8 x2f hc y26 ff6 fs4 fc0 sc0 ls1 ws0">t</div><div class="t m8 x16 h13 y27 ff6 fs7 fc0 sc0 ls1 ws0">P</div></div><div class="t m0 x30 h10 y28 ff5 fs0 fc0 sc0 ls1 ws0">是粒子迄今为止搜索到<span class="_ _0"></span>的最优<span class="ls2">位置<span class="_ _3"></span></span>,</div><div class="c x31 y29 wa h9"><div class="t ma x17 hc y26 ff6 fs4 fc0 sc0 ls1 ws0">t</div><div class="t ma x16 h13 y27 ff6 fs7 fc0 sc0 ls1 ws0">G</div></div><div class="t m0 x32 h3 y28 ff5 fs0 fc0 sc0 ls1 ws0">是整个粒子群迄今为<span class="_ _0"></span>止搜索到<span class="_ _0"></span>的最优位置。<span class="ff3"> </span></div><div class="t m0 x2 h3 y2a ff3 fs0 fc0 sc0 ls0 ws0">PSO<span class="_"> </span><span class="ff5 ls1">的流程如下<span class="_ _0"></span>:<span class="ff3"> </span></span></div><div class="t m0 x33 h3 y2b ff5 fs0 fc0 sc0 ls1 ws0">(<span class="ff3">1</span>)初始化粒子群,<span class="_ _0"></span>随机产生所有粒子<span class="_ _0"></span>的位置<span class="_ _0"></span>和速度,并确定<span class="_ _0"></span>粒子的</div><div class="c x34 y2c w7 h9"><div class="t m8 x2f hc y26 ff6 fs4 fc0 sc0 ls1 ws0">t</div><div class="t m8 x16 h13 y27 ff6 fs7 fc0 sc0 ls1 ws0">P</div></div><div class="t m0 x35 h10 y2b ff5 fs0 fc0 sc0 ls1 ws0">和</div><div class="c x36 y2c wa h9"><div class="t ma x17 hc y26 ff6 fs4 fc0 sc0 ls1 ws0">t</div><div class="t ma x16 h13 y27 ff6 fs7 fc0 sc0 ls1 ws0">G</div></div><div class="t m0 x37 h3 y2b ff5 fs0 fc0 sc0 ls1 ws0">;<span class="ff3"> </span></div><div class="t m0 x33 h3 y2d ff5 fs0 fc0 sc0 ls1 ws0">(<span class="ff3">2<span class="_ _3"></span></span>)对<span class="_ _3"></span>每个<span class="_ _3"></span>粒子,<span class="ls7">将其</span>适应值<span class="_ _3"></span>与<span class="ls7">该粒</span>子所经<span class="_ _3"></span>历过的最<span class="_ _3"></span>优<span class="_ _3"></span>位置</div><div class="c x38 y2e w7 h9"><div class="t m8 x2f hc y26 ff6 fs4 fc0 sc0 ls1 ws0">t</div><div class="t m8 x16 h13 y27 ff6 fs7 fc0 sc0 ls1 ws0">P</div></div><div class="t m0 x39 h10 y2d ff5 fs0 fc0 sc0 ls1 ws0">的适<span class="_ _3"></span>应值<span class="_ _3"></span>进行<span class="_ _3"></span>比较,如<span class="_ _3"></span>较好<span class="_ _3"></span>,则将其</div><div class="t m0 x1 h10 y2f ff5 fs0 fc0 sc0 ls1 ws0">作为当前的</div><div class="c x3a y30 w7 h9"><div class="t m8 x2f hc y26 ff6 fs4 fc0 sc0 ls1 ws0">t</div><div class="t m8 x16 h13 y27 ff6 fs7 fc0 sc0 ls1 ws0">P</div></div><div class="t m0 x1f h3 y2f ff5 fs0 fc0 sc0 ls1 ws0">;<span class="ff3"> </span></div><div class="t m0 x33 h3 y31 ff5 fs0 fc0 sc0 ls1 ws0">(<span class="ff3">3</span>)<span class="_ _3"></span>对每个粒<span class="_ _3"></span>子,<span class="ls7">将其</span>适应值与整<span class="_ _3"></span>个粒子群所经<span class="_ _3"></span>历过<span class="_ _3"></span>的最优位置</div><div class="c x3b y32 wa h9"><div class="t ma x17 hc y26 ff6 fs4 fc0 sc0 ls1 ws0">t</div><div class="t ma x16 h13 y27 ff6 fs7 fc0 sc0 ls1 ws0">G</div></div><div class="t m0 x3c h10 y31 ff5 fs0 fc0 sc0 ls1 ws0">的适应值<span class="_ _3"></span>进行比<span class="_ _3"></span>较,如较好,<span class="_ _3"></span>则</div><div class="t m0 x1 h10 y33 ff5 fs0 fc0 sc0 ls1 ws0">将其作为当前的</div><div class="c x2e y34 wa h9"><div class="t ma x17 hc y26 ff6 fs4 fc0 sc0 ls1 ws0">t</div><div class="t ma x16 h13 y27 ff6 fs7 fc0 sc0 ls1 ws0">G</div></div><div class="t m0 x3d h3 y33 ff5 fs0 fc0 sc0 ls1 ws0">;<span class="ff3"> </span></div><div class="t m0 x33 h3 y35 ff5 fs0 fc0 sc0 ls1 ws0">(<span class="ff3">4</span>)按式<span class="ff3">(14-4<span class="_ _0"></span>)<span class="_ _3"></span><span class="ff5">和式<span class="_ _0"></span><span class="ff3">(14-5)<span class="ff5">更新粒子的<span class="_ _0"></span>速度和位置;<span class="_ _0"></span><span class="ff3"> </span></span></span></span></span></div><div class="t m0 x33 h3 y36 ff5 fs0 fc0 sc0 ls1 ws0">(<span class="ff3">5</span>)如果没有满足终止条件(<span class="_ _3"></span>通常为预设的迭代次<span class="_ _3"></span>数和适应值下限值),<span class="_ _3"></span>则返回步骤(<span class="_ _3"></span><span class="ff3">2</span>),否则,</div><div class="t m0 x1 h3 y37 ff5 fs0 fc0 sc0 ls1 ws0">退出算法,得到最优<span class="_ _0"></span>解。<span class="ff3"> </span></div></div><div class="pi" data-data='{"ctm":[1.611792,0.000000,0.000000,1.611792,0.000000,0.000000]}'></div></div>
</body>
</html>