Simulink|基于粒子群算法的永磁同步电机多参数辨识

devtools/2024/9/23 11:19:19/

目录

主要内容   

  模型研究   

  结果一览   

下载链接 


主要内容   

仿真程序参考文献《改进粒子群算法的永磁同步电机多参数辨识》,采用粒子群算法与simulink模型结合的方式,对永磁同步电机进行多参数辨识。程序以定子绕组电阻、d轴电感、q轴电感和永磁体磁链四个参数作为输入参数,以定子dg轴电压作为输出,通过辨识模型电压与测量电压的偏差作为目标函数,从而实现参数的精准辨识。

  模型研究   

  1. 适应度函数

适应度函数以辨识模型与实际测量值之间的误差平方和最小为目标,适应度函数值越小,其辨识模型电压与测量电压越接近,待辨识参数和实际值也越接近,具体表达式如下:

对应的程序代码为:

fitness_gbest(j) = -((ud0-ud_0)^2 + (uq0-uq_0)^2 + (ud1-ud_1)^2 + (uq1-uq_1)^2 ); % 每个个体的历史最佳适应度

2. 算法流程

算法流程主要是通过粒子群算法调用simulink仿真模型,通过输入计算输出值和适应度值,通过循环优化出最佳参数,具体流程可参考下图:

3. simulink仿真模型主体

对应数据采集模块的​模型如下:

模型对应的dq轴电压计算模块如下​:

SVPWM模块​如下:

4. 部分程序代码

​
iter = 1;                        %迭代次数
record = zeros(ger, 1);          % 记录器
while iter <= gerfor j=1:sizepop%    更新速度并对速度进行边界处理 pop_v(:,j)= c_1 * pop_v(:,j) + c_2*rand*(gbest(:,j)-pop_x(:,j))+c_3*rand*(zbest-pop_x(:,j));% 速度更新for i=1:dimif  pop_v(i,j) > vlimit_max(i)pop_v(i,j) = vlimit_max(i);endif  pop_v(i,j) < vlimit_min(i)pop_v(i,j) = vlimit_min(i);endend%    更新位置并对位置进行边界处理pop_x(:,j) = pop_x(:,j) + pop_v(:,j);% 位置更新for i=1:dimif  pop_x(i,j) > xlimit_max(i)pop_x(i,j) = xlimit_max(i);endif  pop_x(i,j) < xlimit_min(i)pop_x(i,j) = xlimit_min(i);endend%    进行自适应变异if rand > 0.85i=ceil(dim*rand);pop_x(i,j)=xlimit_min(i) + (xlimit_max(i) - xlimit_min(i)) * rand;end%    进行约束条件判断并计算新种群各个个体位置的适应度ud_0 = pop_x(1,j)*id0 - we0*pop_x(3,j)*iq0;uq_0 = pop_x(1,j)*iq0 + we0*(pop_x(2,j)*id0 + pop_x(4,j));ud_1 = pop_x(1,j)*id1 - we1*pop_x(3,j)*iq1;uq_1 = pop_x(1,j)*iq1 + we1*(pop_x(2,j)*id1 + pop_x(4,j));fitness_pop(j) = -((ud0-ud_0)^2 + (uq0-uq_0)^2 + (ud1-ud_1)^2 + (uq1-uq_1)^2 ); 

  结果一览   

适应度值逐渐逼近0,说明待辨识参数和实际值越来越近,优化​效果非常好!

Ud

Uq​

下载链接 


http://www.ppmy.cn/devtools/87728.html

相关文章

【Python 逆向滑块】(实战二)逆向滑块,并实现用Python+Node.js 生成滑块、识别滑块、验证滑块、发送短信

逆向日期&#xff1a;2024.07.31 使用工具&#xff1a;Node.js、油猴 本章知识&#xff1a;逆向网易易盾【fp】参数 文章难度&#xff1a;中等&#xff08;没耐心的请离开&#xff09; 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要做的可联系我】 AES解…

Nginx代理路径被吃

Nginx代理路径被吃的情况 日常工作中经常使用nginx反向代理一些资源&#xff0c;有时正常代理&#xff0c;发现代理不过去。 验证被吃调location情况 通过浏览器访问&#xff1a; https://zhao138969.com/LinuxPackage/Python/SelectDocker location /LinuxPackage { proxy…

【Qt】ComboBox

QComboBox是Qt中用于显示下拉列表框的控件&#xff0c;可以从预定义的选项中选择一个或多个选项 常用属性 属性说明currentText当前选中的文本currentIndex当前选中的条目的下标editable 是否允许修改 设置为true时&#xff0c;可以直接输入&#xff0c;也可以搭配validator进…

前端和Postman调用同一个接口,拿到的数据不一样

1、表现 联调一个List接口&#xff0c;Postman自测得到的ID和前端调用得到的ID&#xff0c;结果不一样。前者结果&#xff1a; 后者结果&#xff1a; 同一份代码、同一个数据库&#xff0c;出现这种错误&#xff0c;大概率是类型转换时出问题了&#xff0c;但检查代码发现&…

ibm was是什么意思?

IBM WebSphere Application Server&#xff08;简称IBM WAS&#xff09;是IBM官方提供的一种企业级应用服务器&#xff0c;用于提供Java应用程序执行的环境。它可以保证应用程序的高可用性、高扩展性以及故障恢复能力。IBM WAS软件是IBM公司商用的Java应用服务器的一部分。该软…

扎克伯格与黄仁勋共同展示Meta最新版的视觉AI模型Segment Anything 2

Meta 公司去年推出的机器学习模型Segment Anything 一炮打响&#xff0c;该模型可以快速、可靠地识别并勾勒出图像中的任何事物。公司首席执行官马克-扎克伯格&#xff08;Mark Zuckerberg&#xff09;周一在 SIGGRAPH 大会上首次公布了新版&#xff0c;将该模型应用到了视频领…

【力扣】SQL题库练习5

高级查询和连接 1341.电影评分 表&#xff1a;Movies ------------------------ | Column Name | Type | ------------------------ | movie_id | int | | title | varchar | ------------------------ movie_id 是这个表的主键(具有唯一值的列)。 ti…

数据集——鸢尾花介绍和使用

文章目录 一、鸢尾花数据集内容二、使用中常转换DataFrame 一、鸢尾花数据集内容 from sklearn import svm, datasets # 鸢尾花数据 iris datasets.load_iris() print(iris.data) X iris.data[:, :2] # 为便于绘图仅选择2个特征 y iris.target它包含了150个样本&#xff0c…