永磁同步电机环路反步法(backstepping)控制

news2024/12/27 14:49:40

文章目录

  • 1、反步控制原理
    • 1.1 李雅普诺夫稳定性定理
    • 1.2 严格反馈系统
    • 1.3 一般设计流程
  • 2、永磁同步电机反步控制
    • 2.1 反步控制器设计
    • 2.2 反步控制仿真
  • 参考

写在前面:本人能力、时间、技术有限,没有对一些细节进行深入研究和分析,也难免有不足和错误之处,欢迎交流和指正。本人写博客主要是学习过程的记录。

1、反步控制原理

反步控制法的基本思想是针对满足严格反馈控制结构的系统,将复杂的系统分解成不超过系统阶数的子系统,然后通过反向递推设计为每个子系统设计李雅普诺夫函数和中间虚拟控制量,最终完成整体控制律的推导。

1.1 李雅普诺夫稳定性定理

在这里插入图片描述

1.2 严格反馈系统

在这里插入图片描述

1.3 一般设计流程

● 推导出研究对象的数学模型,并构造成串级反馈形式;
● 按照所推导的数学模型和反馈结构将系统分解成若干个子系统;
● 选取离输出端最近的子系统作为第一个子系统,构造该子系统的李雅普诺夫函数,定义状态误差,设计虚拟控制量使得该子系统稳定;
● 以前级子系统中的虚拟控制量作为后级子系统的状态给定,由此构造该后级系统的李雅普诺夫函数,定义状态误差,设计虚拟量使得后级子系统稳定,重复这一步骤直到推出整个系统的实际控制;
● 完成实际控制方程,验证系统稳定性。

2、永磁同步电机反步控制

2.1 反步控制器设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 反步控制仿真

模型下载地址: 永磁同步电机反步控制simulink仿真模型

在这里插入图片描述
其中反步控制核心模块:
在这里插入图片描述
第一子系统:
在这里插入图片描述
第二子系统:

在这里插入图片描述
系统参数:

Vdc=24;
Ts=0.0001;
Rs=0.6;
Ld=1.4e-3;
Lq=1.4e-3;
flux=0.034182;
J=1.1e-5;
B=1e-3;
pole=1;
fx=0.02;
DeadTime=1e-6;
speed_kp=0.028885;
speed_ki=3.8891;
speed_Ba=0.00093819;
k1=3100;
k2=50000;
k3=1000;

仿真结果(转速)
在这里插入图片描述
ia,ib,ic

在这里插入图片描述
总结:
双环pi控制至少需要三组pi参数,至少需要6个参数,而反步控制只需要3组参数,而且控制效果比pi控制好。

  • 反步控制优点:
  1. 适用于非线性系统:反步法非常适合处理像PMSM这样非线性的、复杂的控制系统。
  2. 分步设计:通过逐步设计Lyapunov函数,可以将复杂问题分解为更易处理的子问题,并逐步保证系统的稳定性。
  3. 鲁棒性强:反步法能有效处理系统中的不确定性和扰动。
  4. 灵活性:设计过程中,可以根据需求灵活调整控制律,使得该方法适用于不同的系统和控制目标。
  • 反步控制缺点:
  1. 计算复杂性高:反步法需要推导多个Lyapunov函数,并逐步设计控制律,计算复杂度较高。
  2. 控制律复杂:设计出的控制律往往比较复杂,特别是在面对高阶系统时,控制器的实现难度增加。
  3. 对系统模型依赖强:反步法依赖于精确的系统模型,对于模型不确定性较大的系统,可能无法达到理想的效果。
  4. 参数调整困难:反步控制器中包含多个增益参数(如 k 1 . k 2 , k 3 k_1.k_2,k_3 k1.k2,k3 等),这些参数的调节对系统性能影响较大,但调整过程较为复杂。

参考

【1】李通.基于轴转矩观测器的全闭环齿轮传动伺服系统反步控制[D].西安理工大学,2022.DOI:10.27398/d.cnki.gxalu.2022.001314.
【2】花熙文.永磁同步电机的模糊反步自适应调速策略研究[D].南京航空航天大学,2016.
【3】余跃,邓弘志.基于无速度传感器的永磁同步电机反步控制设计与仿真[J].机电工程技术,2024,53(05):252-256.(给定速度任意值模型)

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

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

相关文章

简易CPU设计入门:取指令(四)

项目代码下载 还是请大家首先准备好本项目所用的源代码。如果已经下载了,那就不用重复下载了。如果还没有下载,那么,请大家点击下方链接,来了解下载本项目的CPU源代码的方法。 下载本项目代码 准备好了项目源代码以后&#xff…

SOMEIP_ETS_174: SD_Unknown_Option_type

测试目的: 验证DUT能够拒绝一个引用了未知选项类型的SubscribeEventgroup消息,并以SubscribeEventgroupNAck作为响应。 描述 本测试用例旨在确保DUT遵循SOME/IP协议,当接收到一个引用了未知选项类型的SubscribeEventgroup消息时&#xff0…

Solidedge二次开发(C#)-将dft文件转换为dwg格式文件

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1、前言2、在Solid Edge中创建一个par文件3、通过二次开发将dft转换为dwg4、结果显示1、前言 Solid Edge提供了将dft转换为dwg的接口,也即是保存功能。有时在不显示Solid Edge界面的情况下,将其…

【C语言刷力扣】1436.旅行终点站

题目: 解题思路: 两层循环查找,第一次循环中初始化 destination 为 path中每次旅行的终点作为最终的终点。二次循环查找当前 destination ,若是作为某次旅行的起点,说明不是最后的终点。 char* destCity(char ***paths…

[Linux#62][TCP] 首位长度:封装与分用 | 序号:可靠性原理 | 滑动窗口:流量控制

目录 一. 认识TCP协议的报头 1.TCP头部格式 2. TCP协议的特点 二. TCP如何封装与分用 TCP 报文封装与解包 如何封装解包,如何分用 分离有效载荷 隐含问题:TCP 与 UDP 报头的区别 封装和解包的逆向过程 如何分用 TCP 报文 如何通过端口号找到绑…

多功能快捷回复软件

各位亲爱的客服宝宝们,每天面对大量的客户咨询,您是否还在手动一个一个地打字回复呢?别担心,我们为您带来了一款多功能快捷回复软件——客服宝。有了它,您的工作将变得无比轻松! 客服宝是一款集成了内容存储…

网络编程(14)——基于单例模板实现的逻辑层

十四、day14 今天学习如何通过单例模板实现逻辑层 1. 利用C11特性封装单例模板 和上一节设计的单例模板有些不同,本节设计的单例模板利用了以下四个C11新特性,优化了代码 unique_lock和lock_guard once_flag和call_once std::function condition_v…

1打家劫舍三部曲

刷题刷题找工作! s198.打家劫舍 动态规划:开始打家劫舍! dp数组表示到第i家的最高金额 dp递归公式,要么抢劫这家,加上i-2所抢的钱,要么不抢,保留上一家的。 …

linux中的火墙优化策略

1.火墙介绍 1. netfilter 2. iptables 3. iptables | firewalld 2.火墙管理工具切换 在rocky9 中默认使用的是 firewalld firewalld -----> iptables dnf install iptables - services - y systemctl stop firewalld systemctl disable firewalld systemctl mask fi…

Vue3 使用 pinia

什么是Pinia Pinia是 Vue 的存储库,它允许您跨组件/页面共享状态,与vuex功能一样。 准备 安装 npm install pinia 或者 yarn add pinia使用 首先修改main.ts文件 main.ts import ./assets/main.cssimport { createApp } from vue import App from…

HTB:Tactics[WriteUP]

目录 连接至HTB服务器并启动靶机 1.Which Nmap switch can we use to enumerate machines when our ping ICMP packets are blocked by the Windows firewall? 2.What does the 3-letter acronym SMB stand for? 3.What port does SMB use to operate at? 4.What comma…

Comfyui segmentAnythingUltra V2报错

🎅问题表现及解决方案 Comfyui segmentAnythingUltra V2报错,找不到VITMatte模型,这个报错报的比较模糊,所以花了一点时间找模型。 简单来说,到huggingface上: https://huggingface.co/hustvl/vitmatte-s…

麒麟系统串口配置篇

麒麟系统串口配置篇 1.配置串口驱动(编译/动态加载串口) 解压文件夹,然后在解压后的文件夹所在目录,右键选择打开终端,依次执行以下命令: 以麒麟系统下的CH341串口驱动为例,解压CH341SER_LINUX.zip sudo…

【微服务】网关 - Gateway(下)(day8)

网关过滤工厂 在上一篇文章中,主要是对网关进行了一个总体的介绍,然后对网关中的断言进行了一个描述。在这篇文章中,主要是对网关中的最后一大核心——过滤进行介绍。 当客户端发送过来的请求经过断言之后,如果还想在请求前后添…

如何在 MySQL 中处理 BLOB 和 CLOB 数据类型

在 MySQL 数据库中,BLOB(Binary Large Object)和 CLOB(Character Large Object)数据类型用于存储大量的二进制数据和字符数据。本篇文章我们来一起看看如何在 MySQL 中处理 BLOB 和 CLOB 数据类型,并加入如…

7.3美团—Java日常实习面经

7.2晚上投的,发邮件约到了7.3晚上 总时长1小时10分钟左右 自我介绍 拷打项目30min 缓存三兄弟 Redis除了缓存,还能做什么 Redis的数据结构,什么时候用哈希,什么时候用字符串 线程池的执行流程 MySQL索引的数据结构 聚簇索引…

基于PHP+uniapp微信小程序的个性化影视推荐系统的设计54lfb

目录 项目介绍技术栈和环境说明具体实现截图php技术介绍文件解析微信开发者工具HBuilderXuniapp开发技术简介解决的思路性能/安全/负载方面数据访问方式PHP核心代码部分展示代码目录结构解析系统测试详细视频演示源码获取 项目介绍 首先要进行需求分析,分析出电影信…

JUC高并发编程7:辅助类

1 减少计数CountDownLatch 1.1 CountDownLatch 概述 CountDownLatch 是 Java 并发包(java.util.concurrent)中的一个同步工具类,用于在多个线程之间进行协调。它允许一个或多个线程等待其他线程完成一组操作。 1.1.1 主要方法 CountDownL…

【重学 MySQL】六十二、非空约束的使用

【重学 MySQL】六十二、非空约束的使用 定义目的关键字特点作用创建非空约束删除非空约束注意事项 在MySQL中,非空约束(NOT NULL Constraint)是一种用于确保表中某列不允许为空值的数据库约束。 定义 非空约束(NOT NULL Constra…

基于LORA的一主多从监测系统_AHT20温湿度传感器

1)AHT20温湿度传感器 这个传感器,网上能找到的资料还是比较多的,我们使用的是HAL硬件i2c,相比于模拟i2c,我们不需要过于关注时序问题,我们只需要关心如何获取数据以及数据如何处理,下面以数据手…