当前位置: 首页 > news >正文

FOC电流环

                 interrupt void ISRTimer0(void)
                          {


                                        IQ_Ref=2.2;//在电流环下给负电流电机反转
                                IQ_Fdb=iq;

                                IQ_Error=IQ_Ref-IQ_Fdb;

                                IQ_Up=IQ_Kp*IQ_Error;
                                IQ_Ui=IQ_Ui + IQ_Ki*IQ_Up + IQ_Kc*IQ_SatError;

                                IQ_OutPreSat=IQ_Up+IQ_Ui;

                                if(IQ_OutPreSat>IQ_OutMax)
                                    IQ_Out=IQ_OutMax;
                                else if(IQ_OutPreSat<IQ_OutMin)
                                     IQ_Out=IQ_OutMin;
                                else
                                    IQ_Out=IQ_OutPreSat;

                                IQ_SatError=IQ_Out-IQ_OutPreSat;

                                Uq=IQ_Out;

                        


                                ID_Ref=0;
                                ID_Fdb=id;

                                ID_Error=ID_Ref-ID_Fdb;

                                ID_Up=ID_Kp*ID_Error;
                                ID_Ui=ID_Ui+ID_Ki*ID_Up+ID_Kc*ID_SatError;

                                ID_OutPreSat=ID_Up+ID_Ui;

                                if(ID_OutPreSat>ID_OutMax)
                                    ID_Out=ID_OutMax;
                                else if(ID_OutPreSat<ID_OutMin)
                                     ID_Out=ID_OutMin;
                                else
                                    ID_Out=ID_OutPreSat;

                                ID_SatError=ID_Out-ID_OutPreSat;

                                Ud=ID_Out;
  


                                                      Ualfa = Ud*Cosine - Uq*Sine;
                                                            Ubeta = Uq*Cosine + Ud*Sine;


                                                B0=Ubeta;
                                        B1=0.8660254*Ualfa - 0.5*Ubeta;
                                        B2=-0.8660254*Ualfa- 0.5*Ubeta; 
                                        Sector=0;
                                        if(B0>0) Sector =1;
                                        if(B1>0) Sector =Sector +2;
                                        if(B2>0) Sector =Sector +4;

                                        X=Ubeta;
                                        Y=0.8660254*Ualfa + 0.5*Ubeta;
                                        Z=-0.8660254*Ualfa+ 0.5*Ubeta; 

                                     if (Sector==0)
                                         {
                                           Ta = 0.5;
                                           Tb = 0.5;
                                           Tc = 0.5;
                                          }

                                       if (Sector==1)       
                                         {
                                           t1 = Z;
                                           t2 = Y;

                                           Tb = 0.5*(1-t1-t2);      
                                             if(Tb<0)
                                             {
                                                 Tb=0;
                                             }
                                           Ta = Tb+t1;                               
                                           Tc = Ta+t2;                               
                                          }

                                        else if (Sector==2)  
                                          {
                                           t1 = Y;
                                           t2 = -X;

                                           Ta = 0.5*(1-t1-t2);    
                                           if(Ta<0)
                                           {
                                               Ta=0;
                                           }
                                           Tc = Ta+t1;                               
                                           Tb = Tc+t2;                              
                                          }

                                        else if (Sector==3) 
                                          {
                                           t1 = -Z;
                                           t2 = X;

                                           Ta = 0.5*(1-t1-t2);      
                                           if(Ta<0)
                                           {
                                               Ta=0;
                                           }
                                           Tb = Ta+t1;                              
                                           Tc = Tb+t2;                              
                                          }

                                        else if (Sector==4)  
                                          {
                                           t1 = -X;
                                           t2 = Z;

                                           Tc = 0.5*(1-t1-t2);      
                                           if(Tc<0)
                                           {
                                               Tc=0;
                                           }
                                           Tb = Tc+t1;                              
                                           Ta = Tb+t2;                               
                                          }

                                        else if (Sector==5)  
                                          {
                                           t1 = X;
                                           t2 = -Y;

                                           Tb = 0.5*(1-t1-t2);     
                                           if(Tb<0)
                                           {
                                               Tb=0;
                                           }
                                           Tc = Tb+t1;                              
                                           Ta = Tc+t2;                              
                                          }

                                        else if (Sector==6) 
                                          {
                                           t1 = -Y;
                                             t2 = -Z;

                                           Tc = 0.5*(1-t1-t2);     
                                           if(Tc<0)
                                           {
                                               Tc=0;
                                           }
                                           Ta = Tc+t1;                            
                                           Tb = Ta+t2;                              
                                          }

                                                EPwm1Regs.CMPA.half.CMPA=Ta*3750;
                                    EPwm2Regs.CMPA.half.CMPA=Tb*3750;
                                    EPwm3Regs.CMPA.half.CMPA=Tc*3750;
                                    EPwm1Regs.CMPB=Ta*3750;
                                    EPwm2Regs.CMPB=Tb*3750;
                                    EPwm3Regs.CMPB=Tc*3750;

        }


    PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
    CpuTimer0Regs.TCR.bit.TIF = 1;
    CpuTimer0Regs.TCR.bit.TRB = 1;
 }
 

相关文章:

FOC电流环

interrupt void ISRTimer0(void) { IQ_Ref2.2;//在电流环下给负电流电机反转 IQ_Fdbiq; IQ_ErrorIQ_Ref-IQ_Fdb; IQ_UpIQ_Kp*IQ_Error; IQ_UiIQ_Ui IQ_Ki*IQ_Up IQ_Kc*IQ_SatErr…...

工业设备数据采集方案的设计实施与应用-天拓四方

随着工业4.0时代的来临&#xff0c;工业设备数据采集成为了提升生产效率、优化能源管理、实现智能化决策的关键环节。本文将围绕工业设备数据采集的重要性、方案设计实施以及TDE工业网关的应用实践展开探讨&#xff0c;以期为相关企业提供一种清晰、专业且实操性强的数据采集方…...

【MySQL】索引——索引的实现、B+ vs B、聚簇索引 VS 非聚簇索引、索引操作、创建索引、查询索引、删除索引

文章目录 MySQL5. 索引的实现5.1 B vs B5.2 聚簇索引 VS 非聚簇索引 6. 索引操作6.1 创建主键索引6.2 创建唯一索引6.3 创建普通索引6.4 创建全文索引6.5 查询索引6.6 删除索引 MySQL 5. 索引的实现 因为MySQL和磁盘交互的基本单位为Page&#xff08;页&#xff09;。 MySQL 中…...

剖析HTML 元素——WEB开发系列02

HTML元素是构成HTML文档结构的基本单位&#xff0c;定义了页面上的不同部分和内容。HTML元素可以包含不同类型的内容&#xff0c;如文本、图片、链接、表格等&#xff0c;每种元素都有其特定的用途和语义。通过组合和嵌套不同的HTML元素&#xff0c;可以创建复杂的网页结构和布…...

影响3D打印零件品质的关键因素探析

随着科技的飞速发展&#xff0c;3D打印技术作为一种革命性的制造方式&#xff0c;正逐渐渗透到各个行业和领域。然而&#xff0c;尽管3D打印技术在设计和制造上带来了前所未有的灵活性和效率&#xff0c;但其零件品质却受到多种因素的复杂影响。本文将从设备性能、材料选择、工…...

Oracle事务是怎么练成的

什么是事务 事务是数据库管理系统执行过程的一个逻辑单位&#xff0c;由一系列有限的数据库操作序列构成&#xff0c;事务必须满足‌ACID属性。ACID理论是数据库中最重要的概念之一&#xff0c;分别代表原子性&#xff08;Atomicity&#xff09;、一致性&#xff08;Consisten…...

线程与多线程(一)

线程与多线程&#xff08;一&#xff09; 一、线程1、概念2、示意图3、虚拟地址转换到物理地址4、与进程相比的优点5、与进程相比的缺点6、与进程的关系&#xff08;1&#xff09;线程独有&#xff08;2&#xff09;共享&#xff08;3&#xff09;示意图 二、POSIX线程库三、创…...

连接其他主机上的redis连接不上`telnet: Unable to connect to remote host: Connection refused`

telnet: Unable to connect to remote host: Connection refused 这个错误通常表示目标主机&#xff08;192.168.8.29&#xff09;上的服务&#xff08;6379端口&#xff09;没有运行&#xff0c;或者主机的防火墙/网络设置阻止了连接。 你可以尝试以下步骤来解决问题&#xf…...

dijkstral算法详解

import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Map;public class test39 {// 定义节点类&#xff0c;表示图中的顶点public static class Node {public int value; // 节点的值&#xff0c;即编号public int in; // 进入…...

创意指南丨AR数学沉浸式空间体验

AR学习种类那么多&#xff0c;哪款最吸引你&#xff1f; 星河造梦坊和Unity联手打造的沉浸式空间AR无疑是其中的佼佼者。 这款应用不仅利用AR技术将抽象的数学概念变得生动有趣&#xff0c;还通过互动体验让学习者仿佛置身于一个充满奇幻色彩的数学世界中。 无论是学生还是教…...

linux文件——深度学习文件fd、文件系统调用

前言&#xff1a;从本片开始正式进入linux文件的学习&#xff0c;本片内容主要是文件的fd。 本篇内容博主将要先带友友回忆C语言中的文件操作接口&#xff0c;然后再过渡到操作系统中的系统调用的学习&#xff0c;最后理解操作系统中的文件操作。 ps&#xff1a;本节内容设计一…...

003集——C#数据类型 及大小端序转换——C#学习笔记

如需得到一个类型或一个变量在特定平台上的准确尺寸&#xff0c;可以使用 sizeof 方法。表达式 sizeof(type) 产生以字节为单位存储对象或类型的存储尺寸。下面举例获取任何机器上 int 类型的存储尺寸&#xff1a; using System;namespace DataTypeApplication {class Program{…...

结构化输出及其使用方法

在 LLM 应用程序中构建稳健性和确定性 图片来自作者 欢迎来到雲闪世界。OpenAI最近宣布其最新的gpt-4o-2024–08–06模型支持结构化输出。与大型语言模型 (LLM) 相关的结构化输出并不是什么新鲜事——开发人员要么使用各种快速工程技术&#xff0c;要么使用第三方工具。 在本文…...

yolov8人脸识别案例

GitHub - wangWEI201901/YOLOv8-Detection-Project: &#x1f6e3;️基于YOLOv8的智慧校园人脸识别和公路汽车检测...

成员变量在Java中的定义与使用

成员变量在Java中的定义与使用 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;在本文中&#xff0c;我们将详细探讨Java中的成员变量&#xff0c;包括其定义、使用以及各种类型的成员变量示例。 成员…...

Python开发工具PyCharm入门指南 - 用户界面主题更改

JetBrains PyCharm是一种Python IDE&#xff0c;其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外&#xff0c;该IDE提供了一些高级功能&#xff0c;以用于Django框架下的专业Web开发。 界面主题定义了窗口、对话框、按钮和用户界面的所有可视元素的外观…...

TCP网络套接字

一、创建套接字 #include <sys/types.h> #include <sys/socket.h> int socket(int domain, int type, int protocol); 参数&#xff1a; domain&#xff1a;指定使用的协议族。常见的取值有AF_INET&#xff08;IPv4&#xff09;和AF_INET6&#xff08;IPv6&a…...

Element学习(axios异步加载数据、案例操作)(5)

1、这次学习的是上次还未完成好的恶element案例&#xff0c;对列表数据的异步加载&#xff0c;并渲染展示。 ——>axios来发送异步请求 &#xff08;1&#xff09; &#xff08;2&#xff09;在vue当中安装axios &#xff08;注意在当前的项目目录&#xff0c;并且安装完之后…...

大数据-65 Kafka 高级特性 分区 Broker自动再平衡 ISR 副本 宕机恢复再重平衡 实测

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…...

html+css+js网页设计 软通动力网站2个页面(带js)首页轮播图+置顶导航

htmlcssjs网页设计 软通动力网站2个页面&#xff08;带js&#xff09;首页轮播图置顶导航 网页作品代码简单&#xff0c;可使用任意HTML编辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及…...

【Auto.js例程】华为备忘录导出到其他手机

目录 问题描述方法步骤1.安装下载Visual Studio Code2.安装扩展3.找到Auto.js插件&#xff0c;并安装插件4.启动服务器5.连接手机6.撰写脚本并运行7.本文实现功能的代码8.启动手机上的换机软件 问题描述 问题背景&#xff1a;华为手机换成一加手机&#xff0c;华为备忘录无法批…...

Grafana-ECharts应用讲解(玫瑰图示例)

工具: MySQL 数据库 MySQL Workbench 数据库管理工具(方便编辑数据) Grafana v11.5.2 Business Charts 6.6(原 Echarts插件) 安装 安装 MySQL社区版安装 MySQL Workbench安装 Grafana在 Grafana 插件中搜索 Business Charts 进行安装以上安装步骤网上教程很多,自行搜…...

ES 学习总结一 基础内容

ElasticSearch学习 一、 初识ES1、 认识与安装2、 倒排索引2.1 正向索引2.2 倒排索引 3、 基本概念3.1 文档和字段3.2 索引和倒排 4 、 IK分词器 二、 操作1、 mapping 映射属性2、 索引库增删改查3、 文档的增删改查3.1 新增文档3.2 查询文档3.3 删除文档3.4 修改文档3.5 批处…...

Web前端基础:JavaScript

1.JS核心语法 1.1 JS引入方式 第一种方式&#xff1a;内部脚本&#xff0c;将JS代码定义在HTML页面中 JavaScript代码必须位于<script></script>标签之间在HTML文档中&#xff0c;可以在任意地方&#xff0c;放置任意数量的<script></script>一般会把…...

第34次CCF-CSP认证真题解析(目标300分做法)

第34次CCF-CSP认证 矩阵重塑&#xff08;其一&#xff09;AC代码及解析矩阵重塑&#xff08;其二&#xff09;AC代码及解析货物调度AC代码及解析 矩阵重塑&#xff08;其一&#xff09; 输入输出及样例&#xff1a; AC代码及解析 1.线性化原矩阵 &#xff1a;由于cin的特性我们…...

深圳SMT贴片工艺优化关键步骤

内容概要 深圳SMT贴片工艺优化作为现代电子制造的核心环节&#xff0c;聚焦于提升生产精度与稳定性。其技术框架围绕三大核心维度展开&#xff1a;温度动态调控、设备协同适配与工艺缺陷预判。通过精密温度曲线控制系统&#xff0c;实现回流焊环节的热能梯度精准匹配&#xff…...

Web安全:XSS、CSRF等常见漏洞及防御措施

Web安全&#xff1a;XSS、CSRF等常见漏洞及防御措施 一、XSS&#xff08;跨站脚本攻击&#xff09; 定义与原理 XSS攻击指攻击者将恶意脚本&#xff08;如JavaScript、HTML标签&#xff09;注入到Web页面中&#xff0c;当用户访问该页面时&#xff0c;脚本在浏览器端执行&…...

Python Excel 文件处理:openpyxl 与 pandas 库完全指南

在数据处理和分析过程中&#xff0c;Excel 文件是最常见的数据存储格式之一。Python 提供了多个库来处理 Excel 文件&#xff0c;其中 openpyxl 和 pandas 是最常用的两个库。它们各自有独特的优势&#xff0c;适用于不同的需求。本文将详细介绍如何使用这两个库来处理 Excel 文…...

C++ 中的 const 知识点详解,c++和c语言区别

目录 一。C 中的 const 知识点详解1. 基本用法1.1&#xff09; 定义常量1.2&#xff09; 指针与 const 2. 函数中的 const2.1&#xff09;const 参数2.2&#xff09;const 成员函数 3. 类中的 const3.1&#xff09;const 成员变量3.2&#xff09;const 对象 4. const 返回值5. …...

​线性注意力 vs. 传统注意力:效率与表达的博弈新解

​核心结论​&#xff1a;线性注意力用计算复杂度降维换取全局建模能力&#xff0c;通过核函数和结构优化补足表达缺陷 一、本质差异&#xff1a;两种注意力如何工作&#xff1f; ​特性​传统注意力&#xff08;Softmax Attention&#xff09;线性注意力&#xff08;Linear At…...