当前位置: 首页 > 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编辑软件进行运行及…...

旧手机秒变电脑摄像头:DroidCam创新应用指南

旧手机秒变电脑摄像头&#xff1a;DroidCam创新应用指南 【免费下载链接】droidcam GNU/Linux/nix client for DroidCam 项目地址: https://gitcode.com/gh_mirrors/dr/droidcam 在远程办公与在线协作日益普及的今天&#xff0c;高质量摄像头成为必备工具。然而专用摄像…...

如何在Linux系统中无缝运行Windows应用:WinApps完整配置指南

如何在Linux系统中无缝运行Windows应用&#xff1a;WinApps完整配置指南 【免费下载链接】winapps Run Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS, including Nautilus integration. Har…...

收藏!大模型/后端校招面试,项目这么讲才不浪费优势(小白必看)

这段时间&#xff0c;我全程参与了多场校招后端开发、大模型应用开发岗位的面试复盘工作&#xff0c;越复盘越有一个深刻的感悟&#xff1a;绝大多数候选人&#xff0c;并不是自身项目质量不过关&#xff0c;而是讲述项目的方式彻底走偏&#xff0c;硬生生浪费了自己的核心优势…...

Phi-4-mini-reasoning镜像免配置:预置Prometheus监控指标暴露配置

Phi-4-mini-reasoning镜像免配置&#xff1a;预置Prometheus监控指标暴露配置 1. 模型简介与部署概述 Phi-4-mini-reasoning是一个基于合成数据构建的轻量级开源模型&#xff0c;专注于高质量、密集推理的数据处理能力。作为Phi-4模型家族的一员&#xff0c;它特别针对数学推…...

张毕贺的音乐故事《越说越明》

张毕贺的音乐故事&#xff0c;始于一把吉他&#xff0c;成于不懈创作&#xff0c;最终汇成一条连接梦想与大众的河流。他的音乐历程&#xff0c;既是个人才华的绽放&#xff0c;也是对音乐教育与本土文化推广的坚定投入。 音乐之路&#xff1a;从翻唱走红到原创深耕 张毕贺的…...

AI核心概念解析:Agent、Prompt、Skill 及生态关系

&#x1f310; AI核心概念解析&#xff1a;Agent、Prompt、Skill 及生态关系 一、关键名词正确定义与原理 1. Agent&#xff08;智能体&#xff09; 指具备感知—决策—行动闭环能力的自主软件实体。它不是单个模型&#xff0c;而是一个系统架构&#xff1a;接收输入&#x…...

Qwen3-Reranker-0.6B效果实测:轻量级模型如何让搜索结果更智能

Qwen3-Reranker-0.6B效果实测&#xff1a;轻量级模型如何让搜索结果更智能 1. 重排序模型的价值与挑战 在构建搜索系统时&#xff0c;我们常常面临一个困境&#xff1a;基于嵌入模型的向量检索能快速返回大量候选结果&#xff0c;但真正相关的文档可能埋没在列表中。就像用渔…...

学术论文利器:OpenClaw+Qwen3.5-9B自动生成LaTeX文档

学术论文利器&#xff1a;OpenClawQwen3.5-9B自动生成LaTeX文档 1. 为什么需要自动化论文写作工具 去年冬天&#xff0c;当我面对第五篇论文的修订时&#xff0c;突然意识到自己把80%的时间花在了重复劳动上&#xff1a;调整表格格式、重新绘制图表、校对参考文献编号。这种机…...

PyTorch实战:如何用潜在扩散模型生成高清图像(附DDPM/DDIM/PLMS对比)

PyTorch实战&#xff1a;潜在扩散模型采样方法全面评测与优化指南 1. 潜在扩散模型核心架构解析 潜在扩散模型&#xff08;Latent Diffusion Models, LDM&#xff09;已成为当前生成式AI领域最具突破性的技术之一。与直接在像素空间操作的扩散模型不同&#xff0c;LDM通过变分自…...

从电商推荐到NLP:多任务学习中Loss平衡的行业应用案例解析

从电商推荐到NLP&#xff1a;多任务学习中Loss平衡的行业应用案例解析 在人工智能技术快速渗透各行业的今天&#xff0c;多任务学习&#xff08;MTL&#xff09;正成为提升模型效率的关键策略。想象一下&#xff0c;电商平台需要同时预测用户点击率和购买转化率&#xff0c;智能…...