用于永磁同步电机驱动器的自适应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仿真实现

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

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

相关文章

理解构建LLM驱动的聊天机器人时的向量数据库检索的局限性 - (第1/3部分)

本博客是一系列文章中的第一篇,解释了为什么使用大型语言模型(LLM)部署专用领域聊天机器人的主流管道成本太高且效率低下。在第一篇文章中,我们将讨论为什么矢量数据库尽管最近流行起来,但在实际生产管道中部署时从根本…

使用Spring Boot AOP实现日志记录

目录 介绍 1.1 什么是AOP 1.2 AOP体系与概念 AOP简单实现 2.1 新建一个SpringBoot项目,无需选择依赖 2.2 设置好本地Maven配置后,在pom.xml文件里添加添加maven依赖 2.3 创建一个业务类接口 2.4 在实体类实现接口业务 2.5 在单元测试运行结果 …

IDEA Writing classes... 比较慢

IDEA配置修改如下: 1、File -> Settings… 2、Build,Execution,Deployment -> Compiler Build process heap size 配置为 20483、Build,Execution,Deployment -> Compiler -> ActionScript & Flex C…

vue基础-diff算法

vue基础-diff算法 1、根元素改变2、根元素不变 1、根元素改变 同级比较-根元素的变化-整个dom树删除重建 2、根元素不变 同级比较,根元素不变-属性改变更新属性

SpringBoot自动装配介绍

SpringBoot是对Spring的一种扩展,其中比较重要的扩展功能就是自动装配:通过注解对常用的配置做默认配置,简化xml配置内容。本文会对Spring的自动配置的原理和部分源码进行解析,本文主要参考了Spring的官方文档。 自动装配的组件 …

[每日习题]进制转换 参数解析——牛客习题

hello,大家好,这里是bang___bang_,本篇记录2道牛客习题,进制转换(简单),参数解析(中等),如有需要,希望能有所帮助! 目录 1️⃣进制转换 2️⃣参…

python 自动化数据提取之正则表达式

>>>> 前 言 我们在做接口自动化的时候,处理接口依赖的相关数据时,通常会使用正则表达式来进行提取相关的数据,今天在这边和大家聊聊如何在python中使用正则表达式。 正则表达式,又称正规表示式、正规表示法、正规…

gitee使用参考

Git代码托管服务 2.1 常用的Git代码托管服务 gitHub( 地址:https://github.com/ )是一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管,故名gitHub码云(地址:…

《cuda c编程权威指南》03 - cuda小功能汇总

1. 计时 1.1 linux #include <sys/time.h>double cpuSecond() {struct timeval tp;gettimeofday(&tp, NULL);return ((double)tp.tv_sec (double)tp.tv_usec*1e-6); }// 调用 double start cpuSecond(); kernel_name << <grid, block >> > (ar…

Java反射机制的详细讲解

目录 1.反射机制是什么&#xff1f; 2.反射机制能干什么&#xff1f; 3.反射相关的类 ​编辑 4.Class类(反射机制的起源 ) 5.反射机制相关的API 1.(重要)常用获得类相关的方法 2.常用获得类中属性相关的方法(以下方法返回值为Field相关 3.(了解)获得类中注解相关的方法…

【Django+Vue】英文成绩管理平台--20230727

能够满足大部分核心需求&#xff08;标绿&#xff09;&#xff1a;报表部分应该比较难。 项目地址 前端编译 https://gitlab.com/m7840/toeic_vue_dist Vue源码 https://gitlab.com/m7840/toeic_vue Django源码 https://gitlab.com/m7840/toeic_python 项目架构 流程 …

LeetCode使用最小花费爬楼梯(动态规划)

使用最小花费爬楼梯&#xff08;动态规划&#xff09; 题目描述算法流程(方法一)编程代码优化代码算法流程&#xff08;方法二&#xff09;编程代码代码优化 链接: 使用最小花费爬楼梯 题目描述 算法流程(方法一) 编程代码 class Solution { public:int minCostClimbingStair…

支持多种通信方式和协议方便接入第三方服务器或云平台

2路RS485串口是一种常用的通信接口&#xff0c;可以支持Modbus Slave协议&#xff0c;并可接入SCADA、HMI、DSC、PLC等上位机。它还支持Modbus RTU Master协议&#xff0c;可用于扩展多达48个Modbus Slave设备&#xff0c;如Modbus RTU远程数据采集模块、电表、水表、柴油发电机…

Qt 中操作xml文件和JSON字符串

文章目录 1、概述1.1、xml介绍1.2、json介绍 2、xml文件增删改查2.1、写xml文件内容2.2、读xml文件内容2.3、删除xml文件内容2.4、修改xml文件内容 3、构建JSON字符串3.1、JSON字符串排版4、剪切板操作 1、概述 1.1、xml介绍 XML 指可扩展标记语言&#xff08;EXtensible Mark…

Sentinel针对IP限流

改造限流策略的针对来源选项 import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;Configuration public class Senti…

JAVA面试总结-Redis篇章(五)——持久化

Java面试总结-Redis篇章&#xff08;五&#xff09;——持久化 1.RDBRDB全称Redis Database Backup file (Redis数据备份文件)&#xff0c;也被叫做Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故障重启后&#xff0c;从磁盘读取快照文件&#x…

软件测试员怎么提升自己的职业竞争力?

目录 管理方向 技术方向 初级测试人员 中级测试人员 高级测试人员 首先分析下软件测试岗位的发展方向&#xff1a;软件测试岗位可以向两个方向发展&#xff0c;一个管理方向&#xff0c;一个技术方向。现在很多做测试的人感到很迷茫&#xff0c;自己整天做着重复的事情&am…

代码随想录额外题目| 数组03 ●34排序数组查首尾位置 ●922按奇偶排序数组II●35搜索插入位置

#34排序数组查首尾位置 medium&#xff0c;我写的:1 暴力 vector<int> searchRange(vector<int>& nums, int target) {int start-1;int end-1;for(int i0;i<nums.size();i){if(nums[i]target && start-1) starti;if(nums[i]target && sta…

【Docker 学习笔记】Windows Docker Desktop 安装

文章目录 一、前言二、Windows Docker 安装1. 基于Hyper-V后端和Windows容器的安装2. 基于WSL2后端的安装&#xff08;推荐&#xff09;3. 安装Docker Desktop on Windows4. 启动并验证Docker Desktop 一、前言 Docker并非是一个通用的容器工具&#xff0c;它依赖于已存在并运…

SpringBootAdmin介绍

一、SpringBootAdmin 简介 1.1 概述 SpringBootAdmin 是一个非常好用的监控和管理的开源组件&#xff0c;该组件能够将 Actuator 中的信息进行界面化的展示&#xff0c;也可以监控所有 Spring Boot 应用的健康状况&#xff0c;提供实时警报功能。 1.2 功能特性 显示应用程序…