【PSO-PID】使用粒子群算法整定PID参数控制起动机入口压力值

  最近在学优化算法,接触到了经典寻优算法之粒子群PSO,然后就想使用PSO算法来调节PID参数,在试验成功之后将此控制算法应用到了空气起动系统上,同时与之前的控制器进行对比看看哪种控制效果最好。

0 引言

  PID参数整定主要有两种:① 传统整定方法:幅值-相角裕度法、工程整定法、Z-N频率响应方法等,传统整定方法需要一定的工程经验,且只能获得相对意义上的最佳参数组合。② 新兴智能寻优算法如神经网络法、粒子群优化法等,其能自主的在约束条件的限制下寻找最优的控制参数,智能控制的发展为PID的参数整定提供了新的途径。
  粒子群算法(PSO)属于种群搜索的自适应优化算法,其基本思想是把鸟群中的每个鸟看成一个粒子,鸟群寻找食物的过程中,不确定食物的具体位置,没有具体的飞行目标。只知道自己和食物的位置关系,为了尽快找到食物,它们通过对距食物最近的鸟的附近空间的搜索来达到找到食物的目的。
  PSO优化算法因其结构简单,寻优效率高、精度高的特性常被广泛应用到参数整定中

1 PSO算法原理

  粒子群算法的整个寻优过程是:先对粒子群中的初始粒子的位置和速度进行初始化设置,然后进行粒子群算法的迭代过程,在迭代过程中,计算出每次迭代过程中粒子的适应度值,根据适应度值,粒子进行速度和位置信息的更新,直至迭代过程结束。在迭代结束后,得到全局最优粒子,控制器的参数组合也到达预设条件下的最优,以此来提高控制器的控制能力。粒子群算法中主要包括粒子、极值、适应度函数几个要素
  ① 粒子:算法的每次迭代都是同时对粒子位置和速度进行更新,粒子位置代表的就是所要求的解,速度是每次迭代时位置的调节步长。为了避免算法中粒子盲目搜索,通常要根据实际控制量的具体范围设定位置和步长的上下限 [ − X max ⁡ , X max ⁡ ] \left[ -X_{\max}\text{,}X_{\max} \right] [XmaxXmax] [ − V max ⁡ , V max ⁡ ] \left[ -V_{\max}\text{,}V_{\max} \right] [VmaxVmax]粒子的位置和步长更新方式为:
{ v i d k + 1 = w × v i d k + c 1 × r 1 × ( p i d − x i d k ) + c 2 × r 2 × ( p g d − x i d k ) x i d k + 1 = x i d k + v i d k + 1 \begin{cases} v_{id}^{k+1}=w\times v_{id}^{k}+c_1\times r_1\times \left( p_{id}-x_{id}^{k} \right) +c_2\times r_2\times \left( p_{gd}-x_{id}^{k} \right)\\ x_{id}^{k+1}=x_{id}^{k}+v_{id}^{k+1}\\ \end{cases} {vidk+1=w×vidk+c1×r1×(pidxidk)+c2×r2×(pgdxidk)xidk+1=xidk+vidk+1式中, v i d k + 1 v_{id}^{k+1} vidk+1 表示第 i i i 个粒子在第 k + 1 k+1 k+1 次迭代中第 d d d 维上的速度信息, x i d k + 1 x_{id}^{k+1} xidk+1 表示第 i i i 个粒子在第 k + 1 k+1 k+1 次迭代中第 d d d 维上的位置信息, c 1 c_1 c1 c 2 c_2 c2 为学习因子, w w w 为惯性权重。
  ② 极值:算法的每次迭代都需要参考两个极值,即全局最优值 p g d p_{gd} pgd 和粒子个体的历史最优值 p i d p_{id} pid 。通过不断比较、计算种群中每个粒子的适应度值来得到这两个极值。
  ③ 适应度函数: 粒子群算法中,为了检验所求值的优劣,引入适应度函数,目前为止所有的适应度值函数中考量最为综合、合理的评判指标为 ITEA 方法,即 J = ∫ 0 ∝ t ∣ e ( t ) ∣ d t J=\int_0^{\propto}{t\left| e\left( t \right) \right|dt} J=0te(t)dt
PSO算法粒子迭代示意图为:

2 改进PSO算法

  由于惯性权重 w w w对于算法的寻优过程影响很大,现在的研究也大多集中在惯性权重的改进方面,来解决粒子群算法容易陷入局部最优的问题。
  惯性权重 w w w 的设计方法有:① 线性递减惯性权重策略: w = w max ⁡ − ( w max ⁡ − w min ⁡ ) t T max ⁡ w=w_{\max}-\left( w_{\max}-w_{\min} \right) \frac{t}{T_{\max}} w=wmax(wmaxwmin)Tmaxt② 非线性递减惯性权重策略: w = w max ⁡ − ( w max ⁡ − w min ⁡ ) ( t T max ⁡ ) 2 w = w max ⁡ − ( w max ⁡ − w min ⁡ ) [ 2 t T max ⁡ − ( t T max ⁡ ) 2 ] w=w_{\max}-\left( w_{\max}-w_{\min} \right) \left( \frac{t}{T_{\max}} \right) ^2 \\ w=w_{\max}-\left( w_{\max}-w_{\min} \right) \left[ \frac{2t}{T_{\max}}-\left( \frac{t}{T_{\max}} \right) ^2 \right] w=wmax(wmaxwmin)(Tmaxt)2w=wmax(wmaxwmin)[Tmax2t(Tmaxt)2]  通过对比,在相同的条件下,采用非线性惯性权重的粒子群算法收敛速度更快,陷入局部最优的情况减少,得出的控制器参数更加有效。

3 PSO-PID控制器设计

  利用 PSO 算法的寻优特性对 PID 控制器的三个参数进行调整,将 PSO 算法的维度设定为3,每个粒子的位置信息在这 3 个维度的分解量都对应的表示一组 PID 参数值。粒子群PSO-PID优化流程如下图所示。

4 仿真结果与分析

  将PSO-PID控制方法与PID控制、RBF-PID控制、ADRC控制这三种控制方法进行对比,在相同的参数下进行仿真,仿真模型以及结果如下。

① 搭建模型

② PSO-PID的迭代过程和ITAE变化曲线为

  可以看出,随着迭代次数的增加,群体适应值在不断地减小直至稳定在一个值左右。
③ PID参数变化曲线:

  可以看出比例系数 Ki 随着迭代次数的增加逐渐减小,而积分系数 Ki 和微分系数 Kd 始终保持在一个值,无明显变化。
④ 寻优前后的跟踪对比:

  可以看出寻优前与寻优后存在明显的改进,寻优后的跟踪曲线控制效果更好,能更好的跟踪上参考曲线。
⑤ 四种控制器的控制效果对比:

  可以看出最后的控制效果从好到坏依次为:PID < RBF-PID < PSO-PID < ADRC。但是,ADRC也有它的缺点,即当采样时间不在0.001~0.0001这个区间内时,其控制效果达不到最好。在实际的PLC控制系统中,对于一般优先级的模块来说,PLC的采样时间在100ms或10ms这种量级,达不到1ms甚至0.1ms这种级别,所以当采样时间过大时,可能ADRC的控制效果还不如PID控制。
  另外,我还发现个问题,几乎所有文献中,使用PSO-PID控制器的参考输入都是用的阶跃输入信号或者常值输入信号,在我多次使用其他类型输入仿真试验之后得出结论,使用阶跃信号的PSO优化效果最好,调优效果最明显。

5 参考文献

[1] 曹刚,令狐克均,吴怀超,等. 基于PSO-PID的重型AT主油压调节的研究[J]. 机床与液压,2019,47(16):152-156
[2] 康日晖. 基于改进PSO-PID算法的四轴飞行器飞控系统研究[D]. 山西:太原理工大学,2018.
[3] 高杰. 基于粒子群算法的微电网经济调度优化[D]. 长江大学,2021.
[4] 杜文正,谢政,童国林. 桥式起重机PSO-PID防摆控制器的设计[J]. 机床与液压,2013,41(13):98-100.

  • 3
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: PSO-SVM(粒子算法优化支持向量机)是一种结合了粒子算法(PSO)和支持向量机(SVM)的优化算法。PSO是一种启发式算法,模拟鸟群觅食行为进行搜索,能够实现全局最优解的搜索。而SVM是一种分类和回归分析的算法,通过最大化分类间隔来确分类边界。 PSO-SVM算法通过将PSO应用于SVM优化问题,以寻找更优的分类器参数。具体的步骤如下: 1. 初始化粒子群的位置和速度,这些粒子代表着SVM分类器的参数。 2. 计算每个粒子对应的SVM分类器的精度(准确度)。根据这个精度计算适应度。 3. 找到当前粒子群中最好的分类器(SVM参数组合),并记录其适应度。 4. 更新粒子的速度和位置。根据当前位置和速度,确下一步的位置和速度。同时,根据适应度来更新个体最优解和全局最优解。 5. 重复步骤2到4,直到达到指的迭代次数或达到一的适应度。 6. 输出全局最优的SVM分类器参数,作为最终的分类器。 PSO-SVM算法的优点是能够搜索到更优的SVM分类器参数组合,从而提高分类器的准确度。同时,PSO算法避免了局部最优解的问题,通过粒子之间的信息交流,能够在搜索过程中跳出局部最优解。 然而,PSO-SVM算法也存在一些不足之处。首先,该算法对初始参数的选择较为敏感。其次,算法在处理大规模数据集时,计算成本较高。 总结来说,PSO-SVM算法是一种通过粒子算法优化支持向量机分类器参数的方法。它具有一的优势和不足,可以根据实际问题的需求来选择使用。 ### 回答2: pso-svm算法是一种利用粒子算法(PSO)优化支持向量机(SVM)的方法。在传统的SVM中,目标是找到一个最佳的超平面,将样本点分离为不同的类别。然而,对于复杂的数据集,传统的SVM可能无法取得良好的分类效果。 为了提高SVM的性能,pso-svm方法引入了粒子算法粒子算法是一种模仿鸟群觅食行为的优化算法,它通过不断地更新粒子的位置来搜索最优解。在pso-svm中,每个粒子代表SVM模型的一个参数设置,并且通过寻找最佳参数组合来优化SVM的性能。 粒子算法通过计算每个粒子的适应度来评估其性能。适应度函数通常基于粒子对应的参数组合在训练数据上的分类准确率。每个粒子利用自身的历史最优位置和群体最优位置来更新自己的位置。通过不断迭代,粒子算法最终会找到一个较好的参数组合,从而优化SVM的分类性能。 pso-svm算法的优点是能够全局搜索最优解,并且具有较强的鲁棒性和自适应性。它能够找到适用于复杂数据集的最佳参数组合,从而提高了SVM的分类效果。同时,pso-svm算法不仅适用于二分类问题,还可扩展到多分类问题。 总结来说,pso-svm算法粒子算法与支持向量机相结合,通过优化SVM的参数选择来提高其分类性能。这种算法能够在复杂数据集中找到最佳的超平面划分,具有较强的鲁棒性和自适应性,并且能够应用于多分类问题。 ### 回答3: PSO-SVM 粒子算法是一种通过粒子群优化算法来优化支持向量机(SVM)模型的方法。SVM 是一种常用的机器学习算法,用于分类和回归问题。然而,在处理大规模数据集时,SVM 的计算复杂度往往很高,因此需要一种有效的优化方法。 粒子算法(PSO)是一种基于模拟群体行为的优化算法,它模拟了鸟群寻找食物的行为。每个粒子代表了一个解决方案,并根据自身当前的位置以及群体中最优解的位置进行搜索。在 PSO-SVM 算法中,每个粒子的位置即 SVM 模型的参数,例如决策函数中的权重和偏置。 PSO-SVM 粒子算法的优化过程如下:首先初始化一群粒子,并为每个粒子随机分配初始位置和速度。然后,根据每个粒子当前的位置计算 SVM 模型的性能指标,例如分类准确率或误差。接下来,根据当前位置和全局最优解的位置,更新粒子的速度和位置。这个迭代过程将不断进行,直到满足终止条件(例如达到最大迭代次数或收敛)。 通过使用 PSO-SVM 粒子算法来优化 SVM 模型,可以得到更好的模型性能和更快的收敛速度。粒子算法能够在参数空间中进行全局搜索,并以群体的合作方式来寻找最优解。相比于传统的参数优化方法,PSO-SVM 粒子算法能够更好地克服 SVM 高计算复杂度和局部最优解的问题,从而提高了模型的准确性和鲁棒性。 总之,PSO-SVM 粒子算法是一种有效的优化方法,可以应用于支持向量机模型,帮助我们更好地处理大规模数据集和获得更好的模型性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值