2_foc闭环调试_ADC电流采样与滤波及pid数据结构

news2024/9/21 17:57:44

8683360ff8b81a43d1d8f8c71598d5fb.png

1、ADC电流采样

上次添加了编码器获取电角度的程序,将之前开环控制的角度进行了替换,这次再将电流采样添加进来,之后就可以利用这样一个有反馈的系统进行电流环PI控制器参数调试。

       之前写过ADC+DMA电流采样的stm32库函数程序,现在来看还是有很大缺陷的:首先当电机没有转动时,ADC采样已经有了一个数值,即是一个偏置,需要后面将其减去,这块采回来的电流理论上是一个正弦波数值。另外需要将ADC采样值转换为对应单位的电流,公式是(ADC原始值-偏置)*3.3V参考电压/4096/R欧姆/放大倍数,这个还需要进一步验证。

2、  一阶低通滤波算法    

       FirstOrder_LPF_Calc 通常用于计算一阶低通滤波器(LPF)的输出,滤波器用于平滑输入信号,消除噪声,尤其是在控制系统中处理传感器信号时。一阶滤波,又叫一阶惯性滤波,或一阶低通滤波。是使用软件编程实现普通硬件RC低通滤波器的功能。

一阶低通滤波的算法公式为:

              Y(n)=αX(n) + (1-α)Y(n-1) 

  α 越大,滤波器的响应越快,能更快跟踪输入变化,但噪声抑制效果较差。

    α越小,响应越慢,能更好地滤除噪声,但可能会导致信号滞后。

应用:

FirstOrder_LPF_Calc 可广泛应用于传感器信号滤波、电流环和速度环的噪声抑制等场景。在FOC(磁场定向控制)中,滤波器用于平滑电流和速度反馈信号,避免过大的噪声干扰控制系统的稳定性。

总结:

  通过调节 α,可以灵活控制滤波器的响应速度和噪声抑制效果。

  滤波器能有效减小信号中的高频噪声,同时保持低频成分的完整性。

       一阶滤波无法完美地兼顾灵敏度和平稳度。有时,我们只能寻找一个平衡,在可接受的灵敏度范围内取得尽可能好的平稳度。而在一些场合,我们希望拥有这样一种接近理想状态的滤波算法。即:当数据快速变化时,滤波结果能及时跟进(灵敏度优先);当数据趋于稳定,在一个固定的点上下振荡时,滤波结果能趋于平稳(平稳度优先)。

3、 pid参数数据结构

typedef struct    
{ 
float  Ref;          // Input: Reference input
float  Fdb;          // Input: Feedback input
float  Err;          // Variable: Error
float  Kp;           // Parameter: Proportional gain
float  Up;           // Variable: Proportional output
float  Ui;           // Variable: Integral output
float  Ud;           // Variable: Derivative output      
float  OutPreSat;    // Variable: Pre-saturated output
float  OutMax;       // Parameter: Maximum output
float  OutMin;       // Parameter: Minimum output
float  Out;          // Output: PID output
float  SatErr;       // Variable: Saturated difference
float  Ki;           // Parameter: Integral gain
float  Kc;           // Parameter: Integral correction gain
float  Kd;           // Parameter: Derivative gain
float  Up1;          // History: Previous proportional output
float  Ui_1;
float  OutF;
} PIDREG_T;

       先混个面熟,之后挨个调。 

f049a38a4a874874cfe23c29a445a941.png

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

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

相关文章

《 C++ 修炼全景指南:八 》智能指针大揭秘:从 auto_ptr 到 unique_ptr shared_ptr 的进化之路

1、引言 在 C 编程中,内存管理历来是复杂且容易出错的部分。手动管理动态分配的内存不仅会导致内存泄漏,还会引发悬空指针和双重释放等问题。如何有效地管理动态内存,避免内存泄漏和未定义行为,往往是困扰初学者和资深开发者的难…

常见 HTTP 状态码详解与Nginx 文件上传大小限制

在我们日常使用 Nginx 搭建网站或应用服务时,可能会遇到很多与文件上传和请求响应相关的问题。今天我们就来聊聊 如何限制文件上传的大小,并介绍一些常见的 HTTP 状态码 及其在 Nginx 中的处理方式。 一、文件上传大小限制 有时,我们需要限…

Web3的崛起与智能合约的角色

随着Web3的发展,去中心化网络逐渐取代了以往的集中控制互联网模式。这一转变不仅强调了用户的自治权和隐私保护,还引入了智能合约这一核心技术。智能合约基于区块链技术,能够自动执行合约条款,无需中介干预,从而确保了…

git下载安装windows

https://git-scm.com/download/win 接下来傻瓜式安装就可以了

Django创建模型

1、根据创建好应用模块 python manage.py startapp tests 2、在models文件里创建模型 from django.db import modelsfrom book.models import User# Create your models here. class Tests(models.Model):STATUS_CHOICES ((0, 启用),(1, 停用),# 更多状态...)add_time mode…

RAR压缩包原密码过于简单如何修改密码?

RAR压缩包作为一种常见的文件压缩格式,广泛应用于文件传输和存储中。为了保障文件的安全性,用户经常会给RAR压缩包设置密码。但有时我们觉得原密码过于简单,想要修改成一个比较复杂的密码,这时我们要如何修改让人压缩包密码呢&…

<<编码>> 第 5 章 绕过拐弯的通信(Seeing Around Corners) 示例电路

灯泡通讯电路 info::操作说明 鼠标单击开关切换开合状态 primary::在线交互操作链接 https://cc.xiaogd.net/?startCircuitLinkhttps://book.xiaogd.net/code-hlchs-examples/assets/circuit/code-hlchs-ch05-01-communication-circuit.txt 双边灯泡通讯电路 info::操作说明 鼠…

Windows一键安装Mysql数据库|非官方复杂安装,解压即可,操作简单

我们都知道在官方安装mysql数据库极其复杂,还极大概率遇到各种问题,今天教大家只要解压就可安装完数据库,操作及其简单绿色。 版本包括了mysql8或mysql5,各位各取所需即可。 不管你之前是否安装过数据库,只要端口330…

Ai+若依(智能售货机运营管理系统---帝可得)--货道关联商品【08篇---0004:关联商品】

货道关联商品 需求 对智能售货机内部的货道进行商品摆放的管理 此功能涉及四个后端接口 查询设备类型(已完成) 查询货道列表(待完成) 查询商品列表(已完成) 货道关联商品(待完成&#xff0…

个人学习笔记5-2:动手学深度学习pytorch版-李沐

#深度学习# #人工智能# #神经网络# 卷积神经网络(convolutional neural network,CNN) 6.4 多输入多输出通道 6.4.1 多输入通道 当输入包含多个通道时,需要构造一个与输入数据具有相同输入通道数的卷积核,以便与输入…

[基于 Vue CLI 5 + Vue 3 + Ant Design Vue 4 搭建项目] 07 如何修改 npm run serve 的启动端口号

如何修改 npm run serve 的启动端口号 首先,找到 npm run serve 对应的脚本 在 package.json 文件中找到 serve 对用的脚本 然后,添加 – port 新端口号 这里修改启动端口号为 9000,则在启动命令后面加上 --port 9000 最后,启动…

【信息论基础第二讲】离散信源的数学模型及其信息测度包括信源的分类、信源的数学模型、离散信源的信息测度、二元信源的条件熵联合熵

一、信源的分类 二、信源的数学模型 1、信源的概念 在通信系统中,收信者在未收到信息以前,对信源发出什么消息是不确定的、随机的、因此我们可以用随机变量、随机序列或者随机过程来描述信源的输出。严格地说,用概率空间来描述信源输出。 …

基于高通主板的ARM架构服务器

一、ARM架构服务器的崛起 (一)市场需求推动 消费市场寒冬,全球消费电子需求下行,服务器成半导体核心动力之一。Arm 加速布局服务器领域,如 9 月推出 Neoverse V2。长久以来,x86 架构主导服务器市场&#…

百度视频排名代发(百度视频秒收录代发)

百度视频排名代发(百度视频秒收录代发) 代做灰色关键词百度排名(代发百度灰色词外推)#百度推广#关键词排名#灰色词排名 推荐阅读: 百家号图文排名代发:文章客服系统挂载电话https://www.bsw80.com/post/471.html 很多老板表示想…

CMS之Wordpress建设

下载 https://cn.wordpress.org/ 宝塔安装Wordpress 创建网站 上传文件、并解压、剪切文件到项目根目录 安装 -> 数据库信息 -> 标题信息 http://wordpress.xxxxx.com 登录 http://wordpress.xxxxxxxxx.com/wp-admin/ 1. 主题(模板) wordpress-基本使用-02-在主题…

【Python】由二维列表初始化导致修改元素时会修改相同位置元素的引用问题f = [[0] * len(matrix[0])] * len(matrix)

背景: 在刷Leetcode过程中,需要初始化一个与另一个矩阵(如 matrix)尺寸相同的二维列表(如 f),并填充初始值(如 0)。一开始用的是这种方法试图创建一个所有元素均为 0 的…

分布式调度方案:Elastic-Job

文章目录 一、什么是分布式调度二、Elastic-Job 介绍三、Elastic-Job 实战3.1 环境搭建3.1.1 本地部署3.1.2 服务器部署3.1.3 Zookeeper 管控台界面 3.2 入门案例3.3 SpringBoot 集成 Elastic-Job3.4 任务分片(★)3.5 Dataflow 类型调度任务 一、什么是分…

速通GPT:Improving Language Understanding by Generative Pre-Training全文解读

文章目录 速通GPT系列几个重要概念1、微调的具体做法2、任务感知输入变换3、判别式训练模型 Abstract概括分析和观点1. 自然语言理解中的数据问题2. 生成预训练和监督微调的结合3. 任务感知输入变换4. 模型的强大性能 Introduction概括分析和观点1. 自然语言理解的挑战在于对标…

Oracle EBS AP预付款行分配行剩余预付金额数据修复

系统环境 RDBMS : 12.1.0.2.0 Oracle Applications : 12.2.6 问题情况 AP预付款已验证和自动审批但是未过账已经AP付款但是又撤消付款并且未过账问题症状 AP预付款暂挂: AP预付款行金额(等于发票金额)与分配行金额不相等: 取消AP预付款提示如下:

GAMES101(7~8节,着色,插值,渲染流水线)

Shading着色 光线传播越远,强度越小 冯氏光照 / Blinn-Phong着色模型: 环境光(常量):颜色 * 强度 法线n,观测方向v,光照方向I,反射光线R,半程向量H(V和I的角…