异步电机速度估计-模型参考自适应MRAS法(补充)

news2025/1/11 5:45:52

导读:前期文章已经介绍过模型参考自适应MRAS进行速度估计的方法,本期文章主要是对MRAS实现的细节做一下补充。

若需要文章的仿真模型,关注微信公众号:浅谈电机控制,获取。


一、MRAS知识点回顾

1.1 基本原理

MRAS 模型是目前广泛使用的一种电机转速估算模型,该模型主要包括电压参考模型、电流推算模型和PI 自适应调节模型。基于d-q 两相静止坐标系下电机定子电压、电流与转子磁链的关系,将电压模型的转子磁链作为参考指标,将电流模型的转子磁链作为反馈控制量。当输入量同时输入到上述两个模型中,其产生的转子磁链观测结果的误差量输入至PI 自适应调节模型,自适应控制模型不断更新参数,将推算模型的输出量趋近于参考模型的输出。其中,电流模型转子磁链中包含转子转速变量,因此,可以从中获得转子转速的估算值。

 

图1-1 MARS基本结构框图

1.2 自适应率的设计

图1-2基于转子磁链模型的MRAS转速估计框图

基于MRAS的转速估计系统中,自适应律的选取至关重要。选取自适应律的主要用到的方法有:局部参数最优化法(MIT法)、Lyapunov函数法、Popov超稳定性理论法。常用的

MRAS转速估计法包括:基于瞬时无功功率模型、基于反电动势模型、基于转子磁链模型。现有文献采用PI调节器作为自适应律,根据Popov超稳定性理论证明了采用PI调节器作为自适应律可以使整个MRAS系统保持全局渐进稳定。

细节之处:MRAS的自适应率中的PI参数缺少整定的相关理论。

二、仿真系统搭建

 

 图2-1 MARS系统仿真

 

图2-2 MARS系统仿真波形变化情况

从图2-2可知,速度估计在加载和速度变化的过程中,估计误差很大,但可以通过调节自适应的PI参数来减小误差。但PI参数的获取只能靠经验试凑获取。

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

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

相关文章

Calico的BGP打通Kubernetes网络和局域网

1、项目背景 随着云原生技术的不断发展,容器化应用已成为企业构建云原生架构的重要方式。而随着集群规模不断扩大,跨主机通信的需求也越来越重要。在 Kubernetes 集群中,Pod 是最小的调度和管理单位,而网络也是 Kubernetes 中最重…

双链表——“数据结构与算法”

各位CSDN的uu们你们好呀,今天,小雅兰又回来了,到了好久没有更新的数据结构与算法专栏,最近确实发现自己有很多不足,需要学习的内容也有很多,所以之后更新文章可能不会像之前那种一天一篇或者一天两篇啦&…

浅谈 Node.js

Node.js 是什么? Node.js 是一个开源、跨平台的 JavaScript 运行时环境。 官网:https://nodejs.org/zh-cn 更多精彩内容,请微信搜索“前端爱好者“, 戳我 查看 。 Node.js ≠ JavaScript Node.js中,没有BOM和DOM。…

【LLM】LangChain基础使用(构建LLM应用)

note LangChain应用开发框架,支持python和typescript语言;可以帮助生成prompt模板,并通过代理充当其他组件(如提示模板、其他大语言模型、外部数据和其他工具)的中央接口。LangChain可以直接与 OpenAI 的 text-davinc…

BGW协议(算数共享)

概述 BGW协议可以用于对域上包含加法、乘法、常数乘法门的算术电路求值,此协议强依赖Shamir秘密分享方案,利用其同态特性对各个秘密份额进行适当的处理,就可以在秘密值上进行安全计算。 加法门 算数加法共享(两方) …

c++ 友元介绍

友元的目的就是让一个函数或类访问另一个函数中的私有成员 友元函数 (1)普通函数作为友元函数 class 类名{friend 函数返回值类型 友元函数名(形参列表);//这个形参一般是此类的对象.... } 经过以上操作后,友元函数就可以访问此类中的私有…

Vue最新快速上手教程(狂神)

文章目录 前端核心分析1. 第一个Vue程序2. Vue基本语法3. Vue绑定事件4. Vue双向绑定5. 组件讲解6. Axios异步通信7. 计算属性8. 插槽slot9. 自定义事件内容分发10. 第一个vue-cli程序11. webpack学习使用12. vue-router路由13. vueelementUI14. 路由嵌套15. 参数传递及重定向1…

【JAVA】黑马程序员JAVA教程笔记 基础篇 Day 1

常用命令行DOS命令 Path环境变量 用途 1. 可以理解为系统中的一个大管家,记录了很多软件的完整路径。 2. 将常用的软件都交给Path环境变量,便于用命令行打开。 设置步骤 复制要使用的软件的存储地址右键点击 此电脑,打开属性点击 高级系统…

【2023最新】几乎涵盖你需要的Android性能优化的所有操作

前言 现如今,Android开发在市面上的需求不再像以前一样一人难求,僧多认识的情况直接导致整个行业对Android开发岗位的要求越来越高,Android 开发越来越规范,间接导致项目对质量要求的提升。启动优化、内存优化、App 崩溃监控等性…

【网络安全CTF】BUUCTF(Basic篇)

Linux Labs 解题思路:已给用户名密码,直接用ssh工具连接即可获取flag 查找flag在跟下 提交完成。 BUU LFI COURSE 1 访问链接:为php代码审计题,看题目要求构造GET请求读取文件 http://9a7d4988-99f9-4c29-88d8-600e19887723.n…

三极管知识大全

一、三极管的使用 一般可以当做开关管来使用,也可以利用三极管的放大特性,来搭建恒流源,恒压源等等, 三极管当做开关管来使用的话,三极管输出的是高、低、高、低的方波信号 BUCK电源的开关频率在65KHz,也…

【刷题笔记】另类加法+走方格的方案数

一、另类加法 题目: 牛客网链接:另类加法_牛客题霸_牛客网 描述 给定两个int A和B。编写一个函数返回AB的值,但不得使用或其他算数运算符。 测试样例:1,3 返回:4 解析: 因为无法使用算数运算符…

网易云音乐开发--完善video模块

解决多个视频同时播放问题 老样子,npm start开启服务器 说一下问题 现在打开多个视频会让他,同时播放,相当的吵闹。我们只需要一次只有一个视频播放 看文档,我们的思路是点击这个视频,关闭上次视频 我们传入这个id …

shell脚本语言

# 编写一个名为myfirstshell.sh的脚本,它包括以下内容。 #!/bin/bash# 1、包含一段注释,列出您的姓名、脚本的名称和编写这个脚本的目的 # 杨轩 # myfirstshell.sh # 脚本命令的练习# 2、和当前用户说“hello 用户名” echo "hello xuan"# 3、…

Vue生命周期函数执行顺序(使用注意事项)

文章目录 beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedbeforeDestroydestroyed Vue.js 是一个基于 MVVM 模式的前端框架,它的核心是一个响应式的数据绑定系统。在 Vue.js 中,组件是一个可复用的 Vue 实例,它拥有自己的生命周期…

第二章 进程管理

2.1 进程的引入 2.1.1程序的顺序执行 1.程序的顺序执行 程序是人们要计算机完成特定功能的一些指令序列,是一个按严格次序、顺序执行的操作序列,是一个静态的概念。 如:有一个程序,要求先输入数据,再做相应的计算…

platform_get_resource=NULL内核源码分析

platform_get_resourceNULL内核源码分析 文章目录 platform_get_resourceNULL内核源码分析1.第一步,我们看一下什么情况下platform_get_resource函才会返回NULL,也就是没有获取到资源。2.第二步,因为myled这个设节点会转成了platform_device,…

suricata中DPDK收发包线程模型和配置说明

《基于DPDK收包的suricata的安装和运行》中已经讲过基于DPDK收发包的suricata的安装过程,今天我们来看一下,suricata中DPDK的收发包线程模型以及相关的配置。 1、收发包线程模型: 通过分析代码,suricata中DPDK收发包线程模型如下…

C高级 day03

1.编写一个名为myfirstshell.sh的脚本,它包括以下内容。 1、包含一段注释,列出您的姓名、脚本的名称和编写这个脚本的目的 2、和当前用户说“hello 用户名” 3、显示您的机器名 hostname 4、显示上一级目录中的所有文件的列表 5、显示变量PATH和HOM…

采药 DP 裸01背包 java

&#x1f351; 采药 import java.util.*;class Main{static int N 1010;static int[] f new int[N];public static void main(String[] aaa){Scanner sc new Scanner(System.in);int m sc.nextInt();int n sc.nextInt();for(int i 0; i < n; i){int v sc.nextInt()…