基于粒子群优化算法(PSO)永磁同步电机电流环多参数辨识MATLAB仿真模型

关注“电气仔推送”获得资料(专享优惠)

仿真模型简介

在同步旋转dq 轴坐标系下建立PMSM 数学模型,将定子dq 轴电压设为辨识模型和实际测量值的输入,设计了PSO 辨识PMSM 参数的适应度函数。该辨识方法不需推导复杂的电机数学模型,可同时辨识定子绕组电阻、定子绕组dq 轴电感和永磁体磁链4 个参数。仿真效果完美!!

PSO-PMSM参数辨识

PMSM 参数辨识问题可转化为系统最优化问题,其基本思想是根据系统的参考模型输出和辨识模型输出的差值,通过辨识算法对辨识模型参数不断调整,从而辨识出电机参数。

此模型将ud,uq,id,iq,ωe(dq电压、dq电流、速度)作为PSO参数辨识算法的数据输入,,NCPSO 将id,iq,ωe每组数据与此代每个粒子解向量(R^,L^d,L^q,ψ^f) 结合,通过下式获得每个粒子的辨识模型电压( u^d,u^q) 。

获得辨识模型电压之后,根据其与测量电压( ud,uq) 的差值来计算每个粒子的适应度函数值,并不断刷新种群历史全局最优粒子和每个粒子历史最优粒子,每个粒子通过PSO策略产生下代粒子,使得下代粒子的适应度值小于上代,如此循环,直到算法满足终止条件,算法终止时输出的即为种群全局最优粒子。基于粒子群算法的永磁同步电机多参数辨识原理如下图2所示,

整体流程图如下图所示

PSO 不断筛选PMSM 待辨识参数的适当值,使得辨识模型与实际测量值之间的误差平方和适应度函数值达到最小值,适应度函数值越小,其辨识模型电压与测量电压越接近,待辨识参数和实际值也越接近。适应度函数如下:

仿真模型主体

上图左侧为仿真模型主体,右侧为电气信号数据采集部分。

辨识模型电压合成模块

预参考文献(上文)提出的一致。

PSO算法优化算法

适应度函数与参考文献(上文)提出的一致。

参数辨识结果

参数辨识结果代入仿真模型

电机转速

电机转矩

电机输出三相电流

电流波形为正弦信号,存在一定谐波(介意者慎拍)

参考文献

改进粒子群算法的永磁同步电机多参数辨识——刘细平

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/50227.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言统计分析——整合和重构

参考资料:R语言实战【第2版】 R中提供了许多用来整合(aggregate)和重塑(reshape)数据的强大方法。在整合数据时,往往将多组观测替换为根据这些观测计算的描述性统计量。在重塑数据时,则会通过修…

STM32——GPIO(点亮LEDLED闪烁)

一、什么是GPIO? GPIO(通用输入输出接口): 1.GPIO 功能概述 GPIO 是通用输入/输出(General Purpose I/O)的简称,既能当输入口使用,又能当输出口使用。端口,就是元器件…

数据结构(5.3_5)——二叉树的线索化

第一种寻找中序前驱方法 中序线索化 本质上就是一次中序遍历,只不过需要在一边遍历一边处理结点线索化 代码: //全局变量pre 指向当前访问结点的前驱 ThreadNode* pre NULL;struct ElemType {int value; };//线索二叉树结点 typedef struct ThreadNode…

linux练习2

一、搭建nfs服务器,客户端可从服务端/share目录上传与下载文件 **服务端** 1、下载相关安装包 [rootserver ~]# yum install rpcbind -y [rootserver ~]# yum install nfs-utils -y 2、 创建共享文件夹/share并授予权限 [rootserver ~]# mkdir /share [rootserv…

Vue3 响应式高阶用法之 `triggerRef()`

Vue3 响应式高阶用法之 triggerRef() 在 Vue3 的响应式系统中,shallowRef 提供了一种轻量级的响应式状态管理方式。然而,当我们需要对 shallowRef 的内层属性进行操作时,就会遇到一些限制。幸运的是,Vue3 提供了 triggerRef() 方…

Yum源配置问题

一、配置yum源 1.备份当前yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载新的CentOS-Base.repo 到/etc/yum.repos.d/ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 或者 curl …

【学习笔记】Redis学习笔记——第16章 Sentinel

第16章 Sentinel 监视一个或多个主服务器及其下属服务器,在主服务器故障时,降级主服务器并将某一从服务器选举为新服务器。 这里的Sentinel本质上只是一个运行在特殊模式下的Redis服务器。 16.1 启动并初始化Sentinel 使用命令redis-server启动Sentin…

shell脚本自动化安装启动各种服务

1、自动化配置dns服务器 A主机:vim dns.sh #!/bin/bash# 自动化部署dns# 1、下载bind# 2、修改配置文件# vim /etc/named.conf # listen-on port 53 { 127.0.0.1;any; }; 修改(定位替换)# allow-query { localhost;any; }; 修改&am…

vector以及迭代器失效

前言 学习完string,之后学习的就是vector。vector就是之前C语言中讲到过的顺序表,用三个变量分别记录资源的位置,容器的容量和容器中元素个数。原来的写法是直接使用指针加两个int变量,而标准库中,三个都是由指针确定的…

sql server 连接报错error 40

做个简单的记录,造成40 的原因有很多,你的错误并不一定就是我遇到的这种情况. 错误描述: 首先我在使用ssms 工具连接的时候是可以正常连接的,也能对数据库进行操作. 在使用 ef core 连接 Sql Server 时报错: Microsoft.Data.SqlClient.SqlException (0x80131904): A network-r…

hadoop学习(二)

一.MapReduce 1.1定义:是一个分布式运算程序的编程框架 1.2核心功能:将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。 1.3优点 1)易于编程 它简单的实现一些接口&#…

【Linux】Ubuntu解决Release 文件已经过期问题

​今天在执行update更新软件包时遇到了此问题:E: http://cn.archive.ubuntu.com/ubuntu/dists/jammy-updates/InRelease 的 Release 文件已经过期(已经过期了 247天 21小时 33分 15秒)。该仓库的更新将不会应用,如图 ​ 这个报错之前其实经常遇到&#x…

电脑虚拟摄像头软件分享|用手机打破电脑摄像头的极限

随着手机摄像头的不断更新迭代,手机已经接近专业电脑摄像头的画质。这让我们可以花费更低的成本获取优质的电脑录像画面。今天小编给大家详细讲解电脑虚拟摄像头的在我们日常生活中的妙用,以及分享几款口碑不错的电脑虚拟摄像头软件。有需要的小伙伴可以…

周末两天我搭建了一个智能问答ai工具网站

背景 周五的时候我去看了一下Boos 直聘,然后沟通了一个10k-15k的职位,她问我会不会后端,我说会一些node,然后他跟我说他们的工作是去对接第三方的的AI工具,我说这个没问题,我自己原来接触过Stable Diffusi…

智能识海:基于深度学习的海洋生物检测系统开发指南

基于深度学习的海洋动物检测系统(UI界面YOLOv8/v7/v6/v5代码训练数据集) 引言 海洋动物检测在海洋生态保护、科学研究和渔业管理中起着至关重要的作用。通过深度学习技术,尤其是YOLO(You Only Look Once)模型&#x…

算法训练营第47天|1143.最长公共子序列|1035.不相交的线|53. 最大子序和|392.判断子序列

1143.最长公共子序列 思路:这道题比较难理解的是递推公式,要想明白状态转换和各个状态的意义。 如果text1[i - 1] 与 text2[j - 1]相同,那么找到了一个公共元素,所以dp[i][j] dp[i - 1][j - 1] 1; 如果text1[i - 1] 与 text2[j…

IO的分类有哪些

目录 一:BIO,NIO,AIO有什么区别 二:BIO,NIO,AIO有哪些适用场景 三:BIO的编程流程 四:NIO的三大核心部分 五:NIO中buffer的属性有哪些 六:BIO与NIO的对比 七:简…

Unity3D 转换微信小游戏指引 05 广告内购

Unity3D 转换微信小游戏指引系列(第五期 完结) 广告 在小程序后台页面找到推广->流量主 开通条件如下: 开通之后,需要接入广告组件。 调用创建广告组件的接口时,需要传入参数 adUnitId,这个是开通流量…

「C++系列」数组

文章目录 一、数组1. 声明数组2. 初始化数组3. 访问数组元素4. 遍历数组注意事项示例代码 二、多维数组1. 声明二维数组2. 初始化二维数组3. 访问二维数组元素4. 遍历二维数组注意事项示例代码 三、指向数组的指针1. 声明指向数组的指针2. 通过指针访问数组元素3. 指针和数组的…

json的数据结构

JSON 的数据结构 JSON 由两种数据结构组成:对象(字典)和数组。 一、对象 对象(object)是由键值对组成的无序集合。 键是字符串,值可以是任何类型,包括对象和数组;对象由一对花括…