无刷直流电动机基本转动原理等内容请参考《基于霍尔传感器的无刷直流电机控制原理》、《基于反电动势过零检测法的无刷直流电机控制原理》、《以GD32F30x为例定时器相关功能详解》与《无刷直流电机无位置传感器三段式启动法详细介绍及代码分享》,BLDC基本原理及基础知识本篇不再赘述。

1.PID控制原理

将偏差的比例、积分和微分通过线性组合构成控制量,用这一控制量对被控对象进行控制,这样的控制器称PID控制器。

typedef struct
{//误差项最近两个值 0新值 1旧值 float error[2];  //PID 三个基本参数float Kp;float Ki;float Kd;float Pout;     //比例项输出float Iout;      //积分项输出float Dout;      //微分项输出float out;       //三项叠加输出float max_out;  //PID最大输出float min_out;  //PID最小输出} pid_type_def;

比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差。

在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的。为了消除稳态误差,在控制器中必须引入“积分项”。

在微分控制中,控制器的输出与输入误差信号的微分成正比关系。“微分项”能预测误差变化的趋势,这样,具有比例+微分的控制器就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分控制器能改善系统在调解过程中的动态特性。

float PID_calc(pid_type_def *pid, float ref, float fb)
{//计算最新的误差值pid->error[0] = ref - fb;//比例项计算输出pid->Pout = pid->Kp * pid->error[0];//积分项计算输出pid->Iout += pid->Ki * pid->error[0];//微分项输出pid->Dout = pid->Kd * ( pid->error[0] - pid->error[1] );pid->Iout=( pid->Iout < pid->min_out ) ? pid->min_out : pid->Iout ;pid->Iout=( pid->Iout > pid->max_out ) ? pid->max_out : pid->Iout ;//叠加三个输出到总输出pid->out = pid->Pout + pid->Iout + pid->Dout;pid->out=( pid->out < pid->min_out ) ? pid->min_out : pid->out ;pid->out=( pid->out > pid->max_out ) ? pid->max_out : pid->out ;pid->error[1] = pid->error[0];return pid->out;
}

2.转速控制

对BLDC进行转速控制是最常用的控制方式,转速闭环控制以电机实际转速为反馈量,与给定转速值进行比较,计算两者偏差,并对偏差值进行PID控制,从而逐渐消除此偏差,使电机转速达到给定值。

通过转子位置传感器获取当前的电机转速

【零基础玩转BLDC系列】无刷直流电机闭环控制与软件架构相关推荐

  1. 【零基础玩转BLDC系列】基于反电动势过零检测法的无刷直流电机控制原理

    无刷直流电动机基本转动原理请参考<基于HALL传感器的无刷直流电机控制原理>,基本原理及基础知识本篇不再赘述. 位置传感器的存在限制了无刷直流电机在某些特定场合中的应用,如:使电机系统的体 ...

  2. 【零基础玩转BLDC系列】无刷直流电机无位置传感器三段式启动法详细介绍及代码分享

    无刷直流电动机基本转动原理等内容请参考<基于霍尔传感器的无刷直流电机控制原理>.<基于反电动势过零检测法的无刷直流电机控制原理>与<以GD32F30x为例定时器相关功能详 ...

  3. 零基础玩转C语言系列第一章——初始C语言(上)

    目录 一.如何学好C语言? 1.鼓励你,为你叫好. 2.挤时间学习 3.学好编程,不仅仅是学好C语言 二.初始C语言 本章目标 本章重点 1.什么是C语言? 2.第一个C语言程序 3.数据类型 4.变 ...

  4. 劢领AT| 五分钟,零基础玩转阿里云物联网套件

    劢领AT| 五分钟,零基础玩转阿里云物联网套件 阿里云准备工作 新建产品 添加设备 WIFI模块及设备连接 AT指令方式 配置网络 一步到位,直接连接阿里云 发布与订阅消息 订阅主题 说明 阿里云准备 ...

  5. Arduino基础篇(九)-- 无刷直流电机转速和方向控制

    本文选择Arduino MEGA 2560开发板做调试,通过调整PWM的占空比,控制BLDC3525,内置有感有霍尔驱动,实现对无刷直流电机的转速控制,通过调整数字口输出高低电平,从而实现电机方向控制 ...

  6. 零基础 ABAP 学习教程系列文章的目录

    零基础 ABAP 学习教程系列文章的目录 ABAP 标准培训教程 BC400 学习笔记之一:ABAP 服务器的架构和一个典型的 ABAP 程序结构介绍 ABAP 标准培训教程 BC400 学习笔记之二 ...

  7. 深圳c语言程序设计,深圳零基础玩转C语言编程

    零基础玩转C语言编程 教学特色:注重学员的实操动手能力,案例解析且提供一对一服务 使用教材:国家教材 学习内容:掌握Microsft Visual 2010集成开发工具.掌握C语言编程,重点掌握数组. ...

  8. 第38章 I2S—音频播放与录音输入—零死角玩转STM32-F429系列

    第38章     I2S-音频播放与录音输入 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/ ...

  9. 第39章 ETH—Lwip以太网通信—零死角玩转STM32-F429系列

    第39章     ETH-Lwip以太网通信 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/ ...

最新文章

  1. 2021年USNews美国研究生院排名重磅出炉!!!
  2. mysql打包备份数据到_thinkPHP使用pclzip打包备份mysql数据库的方法
  3. 【HTML+CSS练习】画一个条件查询
  4. python tempfile 创建临时目录
  5. 乱序图片 极验_极验验证吴渊:传统图片验证方式已经无效了!
  6. python cmd闪退_使用cmd python模块时,如何使程序正常崩溃?
  7. bat ping 返回值_专科生可以进bat大厂吗?
  8. 基于JAVA+SpringBoot+Vue+Mybatis+MYSQL的宿舍管理系统
  9. python字符串_四、Python的字符串
  10. 持续集成部署Jenkins工作笔记0020---20.在GitHub上创建WebHook
  11. JS基础_自增和自减
  12. 000 初步使用Kotlin开发Android应用
  13. fiddler看ip地址_Fiddler查看IP和响应时间
  14. 如何把SWF转为PDF文件
  15. python os.walk如何不遍历隐藏文件,Python os.walk() 遍历出当前目录下的文件夹和文件...
  16. OAException Application ICX Message Name ICX SESSION FAI
  17. CentOS7光盘定制化
  18. Premiere Pro 2022 for Mac(pr2022)中文版
  19. 内陆湖泊云量统计分析
  20. 云呐|如何管理好公司的固定资产,固定资产管理怎么做

热门文章

  1. 基于android系统DVR稳定性问题分析及对策
  2. 在微型计算机中pcb是什么,PCB电路板,什么是PCB电路板,PCB电路板介绍--电子百科词库--科通芯城,IC及其他电子元器件交易型电商平台100%正品保证...
  3. Web - H5 - 解决下载图片跨域问题
  4. linux查看vnc进程命令_linux vncviewer使用ubuntu 关机命令
  5. java短链接原理_微博短链接的生成算法(Java版本)
  6. 实例详解Matlab费诺编码
  7. larva labs的创意技术
  8. PTA 7-20 打印九九口诀表
  9. iOS开发- 音频截取
  10. iphone无法开机