无刷电机数学模型建立之——克拉克变换

前言

MOS管如何驱动无刷电机,请参考如下链接
无刷电机概念与原理

一、FOC流程图

在这里插入图片描述

二、FOC的过程是输入需求的电机力矩,最后把需求的电机力矩转换为三相线的电力输出,并且让电机旋转物理上输出需求的力矩的过程,这也称为电机控制三环中的力矩环,位置闭环和速度闭环都得基于力矩环。

在这里插入图片描述

三、为啥要克拉克变换?

1、交替开关的MOS管可以驱动无刷电机转动,而这些MOS管是以极快的速度按一定周期进行的。

在这里插入图片描述

2、把这些周期性开启和关断的过程联系起来,对其各个相进行单独的观察,就可以得到三个相A、B、C相的电流随时间变化的的曲线。这三个相的曲线存在120°的相位差

在这里插入图片描述

3、因此,控制无刷电机归根结底就是控制这三条相差120°的sin曲线

在这里插入图片描述

3、但只要想一想就会发现想要直接控制好这三条sin曲线是非常困难的,首先相与相之间是相互耦合的,MOS管一旦打开就会至少打开两个相,所以只想改变一相的波形来实现电机控制是肯定不行的,必须多个相同时考虑才能实现电机控制

在这里插入图片描述

4、因此,这种通过改变波形的方式来实现电机控制,那会使问题变得非常复杂,有没有一种方法能把这个多变量的耦合问题降解为单一变量的控制问题?那克拉克变换就是来做这件事的

在这里插入图片描述

四、克拉克变换的概念

1、卡拉克变换实际上就是降维解耦的过程,把难以控制的三相相位差120°波形降解为二维矢量

在这里插入图片描述

2、第一步先把三相随时间变化的三相电流波形抽象为三个间隔120°的矢量,从而波形的幅值的变化就变成了矢量长短的变化

在这里插入图片描述

3、第二步利用三角函数对这三个矢量进行降维,降维到 α \alpha α β \beta β这两个坐标轴上,从而把复杂的三相变化问题降解为了二维坐标轴上的数值变化问题

在这里插入图片描述

五、克拉克变换推导

1、建立坐标系

在这里插入图片描述

2、然后把三维矢量用三角函数投影到二维坐标系

在这里插入图片描述

3、然后把投影之后的结果写成矩阵形式,就得到了克拉克变换的基本形式

在这里插入图片描述

4、至此,就成功的把无刷电机控制问题由三相的sin波形降级为了两维平面内的双变量问题,从而简化了电机运动状态的表述形式。

在这里插入图片描述

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

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

相关文章

钡铼分布式I/O系统边缘计算Modbus,MQTT,OPC UA耦合器BL206

BL206系列耦合器是一个数据采集和控制系统,基于强大的32 位微处理器设计,采用Linux操作系统,支持Modbus,MQTT,OPC UA协议,可以快速接入现场PLC、DCS、PAS、MES、Ignition和SCADA以及ERP系统,同时…

通过vue3 + TypeScript + uniapp + uni-ui 实现下拉刷新和加载更多的功能

效果图: 核心代码: <script lang="ts" setup>import { ref, reactive } from vue;import api from @/request/api.jsimport empty from @/component/empty.vueimport { onLoad,onShow, onPullDownRefresh, onReachBottom } from @dcloudio/uni-applet form …

cannot import name ‘OrderedDict‘ from ‘typing‘

** cannot import name ‘OrderedDict’ from ‘typing’ ** 这个错误&#xff0c;问题一般在maxvit.py文件&#xff0c;我的路径&#xff1a;D:\Coding\Anaconda\Anaconda\envs\CNN-flower\Lib\site-packages\torchvision\models\maxvit.py 一般就是在项目文件夹下的这个路…

谷粒商城——session共享

问题1 一个系统中不同微服务的session共享。 问题1的解决办法 1. session复制的方法&#xff1a;微服务的副本之间通过通信共享session。这样每一个微服务的副本都会保存所有的session。&#xff08;缺点&#xff1a;造成大量的通信&#xff0c;多处额外的通信开销。&#x…

【Android】Activity的生命周期

Activity的生命周期 1.返回栈 其实Android是使用任务&#xff08;task&#xff09;来管理Activity的&#xff0c;一个任务就是一组存放在栈里的Activity的集合&#xff0c;这个栈也被称作返回栈&#xff08;back stack&#xff09;。栈是一种后进先出的数据结构&#xff0c;在…

Oracle开发和应用——PL/SQL语法4(例外处理)

6.4.8. 例外处理 1)概念 所谓例外(exception),就是程序中发生的意外情况,例如:程序体部分代码发生的各种报错等。 2)顺序 PL/SQL中,例外总是首先被目前程序块的例外部分捕捉和处理。如果当前程序块不存在相应例外处理,则会继续传播到下一层程序块。如果还是没发现相…

AES算法概述

文章目录 一、AES 概述二、AES 加密算法的特点三、秘钥类型四、填充方式五、加密方式 一、AES 概述 二、AES 加密算法的特点 AES加密的数据块长度为128&#xff08;16字节&#xff09;&#xff0c;长度不足需要填充。密码长度可以为16,24,32字节。 三、秘钥类型 AES加密按秘…

【C++高阶】精通AVL树:全面剖析与深度学习

目录 &#x1f680; 前言一&#xff1a; &#x1f525; AVL树的性质二&#xff1a; &#x1f525; AVL树节点的定义三&#xff1a; &#x1f525; AVL树的插入四&#xff1a; &#x1f525; AVL树的平衡调整&#xff08;附动图&#xff09; 五&#xff1a;&#x1f525; AVL树的…

c++初阶篇(三):内联函数及auto关键字

1.内联函数 1.1 概念 以inline修饰的函数叫做内联函数&#xff0c;编译时C编译器会在调用内联函数的地方展开&#xff0c;没有函数调 用建立栈帧的开销&#xff0c;内联函数提升程序运行的效率。 如果在上述函数前增加 inline 关键字将其改成内联函数&#xff0c;在编译期间编…

使用winget安装git

Winget 是 Windows 包管理器&#xff0c;是微软开发的一个命令行工具&#xff0c;它允许用户通过命令行界面来发现、安装、升级、配置和卸载 Windows 10 和 Windows 11 上的应用程序。 Winget 旨在提供一种更加高效和统一的方式来管理 Windows 上的软件包。它支持 Windows 10 …

RNN循环递归网络讲解与不掉包python实现

这里写目录标题 1.算法简介2. RNN算法原理2.1 RNN基本结构介绍2.2 计算流程 3.完整训练代码 1.算法简介 参考论文&#xff1a;Elman J L. Finding structure in time[J]. Cognitive science, 1990, 14(2): 179-211.&#xff0c;谷歌被引次数超16000! 说到循环递归结构就不得不…

秒杀案例-分布式锁Redisson、synchronized、RedLock

模拟秒杀 源码地址前期准备创建数据库表导入数据dependenciespomControllerTSeckillProductTseckillProductServiceTseckillProductServiceImplTseckillProductMapperTseckillProductMapper.xml使用JMeter压力测试开始测试超卖现象原因解决办法更改数据库库存500进行JMeter压力…

运维锅总详解Kubernetes之Kubelet

本文尝试从Kubelet的发展历史、实现原理、交互逻辑、伪代码实现及最佳实践5个方面对Kubelet进行详细阐述。希望对您有所帮助&#xff01; 一、kubelet发展历史 Kubelet 是 Kubernetes 中的核心组件之一&#xff0c;负责管理单个节点上的容器运行。它的发展历史和功能演进是 Kub…

odoo17 win11布署

今天重装系统,正巧试了下odoo17的布置,系统配置: windows 11专业版,python 3.12.3 postgresql postgresql-13.15-1-windows-x64 安装过程中适当调了一下python库版本 # The officially supported versions of the following packages are their # python3-* equivalent …

【LeetCode】222. 完全二叉树的个数

什么是计算机基础&#xff1f;如果本题能够用二分二进制二叉树的方式解出本题&#xff0c;那么我可以认为你的计算机基础就很好了。很久以来&#xff0c;我一直认为自己的计算机基础好&#xff0c;但是自刷题以来&#xff0c;跟网上这么多优秀的同学相比&#xff0c;我发现我实…

五分钟学会 Docker Registry 搭建私有镜像仓库

在上一篇文章《前端不懂 Docker &#xff1f;先用它换掉常规的 Vue 项目部署方式》中&#xff0c;我们学习了如何使用 aliyun 私有镜像仓库&#xff0c;也了解到可以使用 Docker Registry 搭建私有镜像仓库。这篇文章就分享下实操过程。 registry 是官方提供的 registry 镜像&…

设计模式使用场景实现示例(结构型模式——装饰器模式)

在一个被高山和浓密森林包围的古老王国中&#xff0c;有一位技艺高超的工匠名叫李奥。李奥擅长制作各种各样的物品&#xff0c;从精致的首饰到坚固的盔甲。然而&#xff0c;他最引以为傲的创造是一把能够根据持有者的需要变换形态的神奇剑。 这把剑被命名为“千面剑”。起初&am…

WEB前端09-前端服务器搭建(Node.js/nvm/npm)

前端服务器的搭建 在本文中&#xff0c;我们将介绍如何安装和配置 nvm&#xff08;Node Version Manager&#xff09;以方便切换不同版本的 Node.js&#xff0c;以及如何设置 npm&#xff08;Node Package Manager&#xff09;使用国内镜像&#xff0c;并搭建一个简单的前端服…

MySQL-显示所有错误信息

1 需求 需求1&#xff1a;默认值 需求2&#xff1a;查询当前值 需求3&#xff1a;设置显示所有错误信息 2 语法 3 示例 在 MySQL 中&#xff0c;当执行 SQL 语句时发生的错误通常不会直接显示所有的错误信息&#xff0c;而是返回一个错误代码和简短的描述。但是&#xff0c;…

类和对象(三)

默认成员函数 接下来继续看剩下的两个默认成员函数。 const成员函数 将const修饰的成员函数称之为const成员函数&#xff0c;const修饰成员函数放到成员函数参数列表的后 ⾯。const实际修饰该成员函数隐含的this指针&#xff0c;表明在该成员函数中不能对类的任何成员进⾏修…