用于永磁同步电机驱动器的自适应SDRE非线性无传感器速度控制(MatlabSimulink实现)

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码&Simulink仿真实现


💥1 概述

本文方法基于状态依赖的里卡蒂方程(SDRE)控制技术及其梯度型神经网络的实时计算方法,允许在线控制PMSM。

为了实现用于永磁同步电机驱动器的自适应 SDRE(State-Dependent Riccati Equation)非线性无传感器速度控制,按照以下步骤进行。

1. 确定系统的动态模型:首先,获得永磁同步电机的动态模型。该模型通常由磁链方程、电流方程和机械方程等组成。根据电机的具体参数和特性,推导出系统的状态空间表达式。

2. 设计自适应 SDRE 控制器:基于系统的状态空间表达式,采用自适应 SDRE 控制策略进行设计。自适应 SDRE 控制是一种基于 Riccati 方程调节器的非线性控制方法,它通过自适应参数来优化控制器的性能。具体设计步骤包括:设置控制器结构、定义控制误差目标和性能指标、计算状态反馈增益矩阵和 Riccati 方程解。

3. 实现无传感器速度估计器:由于无传感器速度控制,需要通过估计器来获取电机转速的信息。可以采用滑模观测器或者其他速度估计器来实现,以获得无传感器的速度测量。

4. 连接控制器和估计器:将自适应 SDRE 控制器和无传感器速度估计器与电机的动态模型相连接。确保控制器能够接收估计到的速度信号,并提供相应的控制输出。

5. 仿真和调试:在 Simulink 环境中建立仿真模型,并进行仿真验证。通过逐步参数调整和性能评估,对控制系统进行调试和优化。

📚2 运行结果

 

 matlab程序:

clc
clear all

Rs=0.625
Ld=0.036
Lq=0.051
phi=0.545
J=7.5e-4
F=0.036
P=2
% a1=R/Ld
a2=P*Lq/Ld
a3=P*Ld/Lq
% a4=R/Lq
a5=P*phi/Lq
a6=3/2*P*phi/J
a7=F/J
B=[1 0;0 1;0 0]

Qc=[1 0 0;0 1 0;0 0 1]
 R=[1 0;0 10]
x2dot=0
x3dot=0
gama=0.1
% syms  a1 a2 a3 a4 a5 a6 a7 x1 x2 x3 R
% f=[-a1*R*x1+a2*x2*x3; -a3*x1*x3-a4*R*x2-a5*x3; a6*x2-a7*x3-1/J*Tl;0]
% jacobian(f,[x1 x2 x3 R ])
% E=4300170000*[1e-6 0 0 0   ;0 1e-6 0 0   ;0 0 1e-6 0   ;0 0 0 1e-6 ]
Rk=0.09*[1 0;0 1]
E=4300180000*[1e-6 0 0 0 0  ;0 1e-6 0 0  0 ;0 0 1e-6 0  0 ;0 0 0 1e-2 0; 0 0 0 0 1e-5]

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]刘伟波,邢佳丽,赵向禹等.双三相多相永磁同步电机驱动器混合直接转矩控制策略[J].科学技术与工程,2022,22(09):3564-3575.

[2]黄义红,张峻涛,刘丹. 机载永磁同步电机驱动器电流重构设计[C]//中国航空学会.第五届中国航空科学技术大会论文集.北京航空航天大学出版社(BEIHANG UNIVERSITY PRESS),2021:592-596.DOI:10.26914/c.cnkihy.2021.064916.

[3]凌峰. 无轴承异步电机非线性解耦控制与无传感器控制研究[D].江苏大学,2021.DOI:10.27170/d.cnki.gjsuu.2021.001911.

[4]江俊. 基于非线性估计理论的永磁同步电机无传感器控制方法的研究[D].江南大学,2006.

🌈4 Matlab代码&Simulink仿真实现

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

c++里的基础类 is_empty_v<_Ty1>

&#xff08;1&#xff09;为什么要研究这个问题&#xff0c;因为包括智能指针等很多源代码里都会使用 _Compressed_pair 这个类&#xff0c;其是一对值。研究这个类&#xff0c;就牵涉另一个更基础的类 is_empty_v<_Ty1> &#xff08;2&#xff09; is_empty_v<_Ty1&…

APP自动化测试-Python+Appium+Pytest+Allure框架实战封装(详细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 pytest只是单独的…

西安电子科技大学

前言 本篇文章投稿与以下活动 【西安城市开发者社区】探索西安高校&#xff1a;展现历史与创新的魅力 资料参考与百度百科 学校简介 西安电子科技大学&#xff08;Xidian University&#xff09;&#xff0c;简称“西电”&#xff0c;位于陕西省西安市&#xff0c;是中央部…

二、SQL-5.DQL-8).案例练习

1、查询年龄为20,21,22,23岁的员工信息 select * from emp where age in(20, 21, 22, 23) and gender 女; 2、查询性别为男&#xff0c;并且年龄在20-40岁&#xff08;含&#xff09;以内的姓名为三个字的员工 select * from emp where gender 男 && age between 2…

ICLR 2023 | 用于分布外泛化的拓扑感知鲁棒优化

论文链接&#xff1a;https://openreview.net/pdf?idylMq8MBnAp 代码链接&#xff1a;GitHub - joffery/TRO: The Pytorch implementation for "Topology-aware Robust Optimization for Out-of-Distribution Generalization" (ICLR 2023) 01. 研究背景 近年来&…

Linux搭建Promtail + Loki + Grafana 轻量日志监控系统

一、简介 日志监控告警系统&#xff0c;较为主流的是ELK&#xff08;Elasticsearch 、 Logstash和Kibana核心套件构成&#xff09;&#xff0c;虽然优点是功能丰富&#xff0c;允许复杂的操作。但是&#xff0c;这些方案往往规模复杂&#xff0c;资源占用高&#xff0c;操作苦…

【Java基础教程】(四十四)IO篇 · 上:File类、字节流与字符流,分析字节输出流、字节输入流、字符输出流和字符输入流的区别~

Java基础教程之IO操作 上 &#x1f539;本节学习目标1️⃣ 文件操作类&#xff1a;File2️⃣ 字节流与字符流2.1 字节输出流&#xff1a;OutputStream2.2 字节输入流&#xff1a;InputStream2.3 字符输出流&#xff1a;Writer2.4 字符输入流&#xff1a;Reader2.5 字节流与字符…

S32K14x FlexNVM介绍(flexible Non-volatile memory)

S32K14x是一款NXP推出的32位汽车级微控制器&#xff0c;其存储结构相对复杂。下面是对其存储结构的中文介绍&#xff1a; S32K14x采用了分层存储结构&#xff0c;包括Flash存储器和SRAM存储器。Flash存储器用于存储程序代码和常量数据&#xff0c;而SRAM存储器用于存储变量数据…

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(14)-Fiddler断点(breakpoints)实战,篡改或伪造数据

1.简介 上一篇主要就讲解和分享Fiddler断点的理论和操作&#xff0c;今天宏哥就用具体例子&#xff0c;将上一篇中的理论知识实践一下。而且在实际测试过程中&#xff0c;有时候需要修改请求或响应数据&#xff0c;或者直接模拟服务器响应&#xff0c;此时可以使用fiddler进行…

数据库—用户权限管理(三十三)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、概述 二、用户权限类型 ​三、用户赋权 四、权限删除 五、用户删除 前言 数据库用户权限管理是指对数据库用户的权限进行控制和管理&#xff0c;确保用户只能执…

C++ 成员初始化列表和new运算符的应用

输出一个学生的学号&#xff0c;姓名&#xff0c;性别和出生年月日 class Date { public:Date(int y, int m, int d) :m_year(y), m_month(m), m_day(d) {}void Print(){cout << m_year << "/" << m_month << "/" << m_day…

春秋云境:CVE-2022-23880(taoCMS v3.0.2 任意文件上传漏洞)

目录 一、题目 二、进入题目&#xff1a; 2.1 文件写入一句话木马&#xff1a; 2.2 用SQL语句写入木马&#xff1a; 一、题目 靶标介绍&#xff1a; taoCMS v3.0.2 文件管理处存在任意文件上传漏洞&#xff0c;攻击者可执行任意代码 二、进入题目&#xff1a; 访问/admin …

ios私钥证书的创建方法

ios私钥证书是苹果公司为ios开发者打包app&#xff0c;推出的一种数字证书&#xff0c;只有同一个苹果开发者账号生成的ios私钥证书打的包&#xff0c;才能上架同一个开发者账号的app store。因此不要指望别人给你共享私钥证书和描述文件&#xff0c;因为别人的证书和描述文件打…

C++部署学习

gcc -E src/main.c -o src/main.i gcc -S src/main.c -o src/main.s gcc -C src/main.c -o src/main.o gcc src/main.c -o exec ./exec

【Golang】Golang进阶系列教程--为什么说 Go 语言字符串是不可变的?

文章目录 前言推荐阅读 前言 最近有读者留言说&#xff0c;平时在写代码的过程中&#xff0c;是会对字符串进行修改的&#xff0c;但网上都说 Go 语言字符串是不可变的&#xff0c;这是为什么呢&#xff1f; 这个问题本身并不困难&#xff0c;但对于新手来说确实容易产生困惑…

神奇数学世界的魔力迷踪:破解3的幂次方之谜

本篇博客会讲解力扣“326. 3 的幂”的解题思路&#xff0c;这是题目链接。 昨天刚刚讲解完2的幂&#xff0c;今天就来看看3的幂。 思路1 3的幂不能像2的幂那样&#xff0c;直接看二进制中是否有且仅有一位为1&#xff0c;所以“2的幂”那道题中的前两种方法就失效了&#xff…

leetcode 1005. K 次取反后最大化的数组和

2023.7.30 本题思路如下&#xff1a; 按绝对值大小将数组进行从大到小的排序。遍历数组&#xff0c;若当前元素为负数则修改其符号。遍历完之后&#xff0c;判断k是否为奇数&#xff0c;若为奇数&#xff0c;则还需要修改一次符号&#xff0c;此时修改绝对值最小的那个数的符号…

(原创)Flutter与Native通信的方式:EventChannel和BasicMessageChannel

前言 上一篇博客主要介绍了MethodChannel的使用方式 Flutter与Native通信的方式&#xff1a;MethodChannel 这篇博客接着讲另外两种通信方式 EventChannel和BasicMessageChannel EventChannel用于从native向flutter发送通知事件&#xff0c;例如flutter通过其监听Android的重…

深入篇【C++】手搓模拟实现list类(详细剖析底层实现原理)模拟实现正反向迭代器【容器适配器模式】

深入篇【C】手搓模拟实现list类(详细剖析底层实现原理&#xff09;&& 模拟实现正反向迭代器【容器适配器模式】 Ⅰ.迭代器实现1.一个模板参数2.两个模板参数3.三个模板参数 Ⅱ.反向迭代器实现1.容器适配器模式 Ⅲ.list模拟实现1.定义结点2.封装结点3.构造/拷贝4.迭代器…

线性代数的学习和整理2:用EXCEL进行矩阵计算

目录 0 写在前面的话 网上推荐的线性代数的课程 1 线性代数和矩阵的各种概念 1.1 各种逻辑图 2 关于线性代数入门的各种灵魂发问 2.1 什么是线性&#xff0c;什么是线性相关 &#xff1f; 为什么叫线性变换&#xff1f; 为什么叫线性代数&#xff1f; 2.2 线性代数是人造…