摘要:PID参数整定,这玩意没什么特别好的方法,按工程方法将模型化为典型I系统,II系统,实际中也不太好用,要依赖模型的精确参数。计算得到PI参数,也会因为建模的过程的简化,带来误差。而且超调量,响应时间,抗扰能力这些指标用公式表示出来也麻烦。
   最最重要的是,TMD,各种性能指标是耦合的,例如超调量小,响应时间往往会长,有点拆了东墙补西墙,来回调,很麻烦。所以一般情况是,先计算个大概,再试凑调参。PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。
碎嘴:看论文看的想睡觉,更一个粒子群参数优化。(知识面较窄,不对的地方轻喷)与其他的算法一样这只是一个优化算法而已,本文实现的是最原始的粒子群进行PI整定.有容易陷入局部最优等确定。更牛逼的!改进PSO,多目标PSO(MPSO)有时间再折腾。(这些不是我的主要研究方向,仅锻炼代码能力,实现一些小的研究,更多是兴趣爱好,以及搞钱哈哈哈)
代码自己逐段研究过,检查每次种群有没有跟新,位置是不是在限定范围内等,我都检验过一遍。注释写的详细,怕自己用的时候看不懂。
先来给同学们看一波结果。
图1 代码、结果展示
粒子群流程图、伪代码如下
![](https://i-blog.csdnimg.cn/blog_migrate/1185135401cd1fbd17ef50f0f1b5fd30.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a12627196da1af0ff5a8d7f0976b045e.jpeg)
Step0 序章
PID参数整定,这玩意没什么特别好的方法,按工程方法将模型化为典型I系统,II系统,实际中也不太好用,要依赖模型的精确参数。计算得到PI参数,也会因为建模的过程的简化,带来误差。而且超调量,响应时间,抗扰能力这些指标用公式表示出来也麻烦。
最最重要的是,TMD,各种性能指标是耦合的,例如超调量小,响应时间往往会长,有点拆了东墙补西墙,来回调,很麻烦。所以一般情况是,先计算个大概,再试凑调参。PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。
Step 1 测试案例
这里以被控对象的传递函数为为例(随便选的一个),利用离散控制器(更符合实际系统)控制被控对象,检验其对阶跃函数的跟踪性能(研究者均统一使用阶跃函数检验)。目标函数使用ITAE,绝对时间误差乘积,以该误差为目标函数优化出来的超调量和误差较小。
由于这个被控模型我随便捏造的,不知道选择合适的参数去控制,于是一来我就直接,上代码!!!结果给我整蒙了,超调量虽然很小,响应时间到了4秒,一度让我怀疑哪个步骤不对。冷静下来思考后,觉得应该是,先手动调参,看看结果,确定一个大概的搜索范围。原来就是之前的搜索范围太小了,所以怎么也得不到好结果。
正如某个伟人说的(不是鲁迅),一天都在做实验,那你什么时候思考呢!(原理本质,永远是第一位的。)
![](https://i-blog.csdnimg.cn/blog_migrate/73ae642b27f566a921f705e949eb6ad0.png)
完成10次迭代,结果如下:(可以自己根据需求,运行10次代码,每次迭代50次,取每次运行结果的平均值,一般来说会更好,这部分代码也已写好,因为仅作演示,为了节省时间,注释掉该部分。这里只搜索了PI参数,要D参数也很简单,各位同学可以自己根据需要修改)
图3 (a)运行历时 (b)适应度曲线
![](https://i-blog.csdnimg.cn/blog_migrate/3fea8832c965c053789d94d0611b748a.png)
响应时间和超调量,感官上看着还行,无静差。
Step2 接入自己的模型
测试成功后,接下来优化自己的转速、电流双闭环电机模型,下面参数是书上和论文上计算出来的。
表1 优化电流环前后PI控制参数
Kpq | Kiq | Kpd | Kid | |
优化前 | 13.2000 | 1053.8 | 5.7750 | 1053.8 |
优化后 | 100 | 128.6785 | 21.70046 | 128.6785 |
图5电流环PI参数优化
别看优化的不多,但是这至少是没有恶化动态抗扰性能,电流环转速环,整个模型有5个参数,这里只选择了其中3个进行优化。
接下来转速环、电流环5个参数同时优化,代码运行10次,取结果均值。历时24424.804355 秒,6.78个小时,睡一觉起来刚刚好。
表2 转速环、电流环优化前后PI参数
Kp | Ki | Kpq | Kiq | Kpd | Kid | |
优化前 | 0.14 | 0.14*50 | 13.2000 | 1053.8 | 5.7750 | 1053.8 |
优化后 | 2 | 10 | 47.1089 | 1026.5246 | 61.177 | 1026.5246 |
![](https://i-blog.csdnimg.cn/blog_migrate/5bfa81489c055eca0891a72945132433.png)
图6 转速环、电流环PI参数优化前后转速曲线
可以看出,优化后的结果,不论是超调量还是动态抗扰性能均大大提升。性能指标响应时间更慢了(非常细微,放大图形才看的出),值得指出的是,优化后的转速曲线进入稳态更慢,0.1~0.3s可以明显看出正在逐渐逼近设定值1000。(上述性能指标这里不量化计算(麻烦),但做产品,做研究,需要科学的评估系统的性能指标,设计与理论相符。)
生有涯,知无涯。既要不断学习,也要有所取舍,有些东西仅作了解即可,学不完根本学不完(大哭)!
点赞+评论+留邮箱,发step1的模型和源代码(白送)
技术咨询,定制模型(money)
Step3参考资料
袁雷——现代永磁同步电机控制原理及MATLAB仿真
https://zhuanlan.zhihu.com/p/265205643
粒子群优化算法(Particle Swarm Optimization, PSO)的详细解读 - 知乎 (zhihu.com)