【算法】电机-几种直流无刷电机控制优化算法

2023-05-16

除了电机控制里经常使用的经典PID控制方法,目前还存在几种常用的优化控制算法在这里给大家普及一下,明白它们的大概原理及相互之间的区别。

目录:

1、经典PID控制

2、模糊控制

3、滑膜变结构控制


1、经典PID控制

这个相信大家都很熟悉了,就不用我多解释了吧。

简单地说:根据给定值和实际输出值构成控制误差,将误差分别乘以比例、积分和微分系数构成控制量,去控制系统的控制对象。

缺点:传统的PID控制器对参数敏感,只有当控制器参数适合被控系统时,才能获得较好的性能。无刷直流电机是一个多变量的非线性系统,传统PID控制下的调速系统,如果系统状态改变,PID的参数也要改变。因此传统PID控制器的动态性能较差,会导致电机速度相应较慢、控制精度低、很难保证良好的调速效果。

也就是说,在系统中,PID的参数在系统运行前就设定好了,不具有在线整定功能。如果这时候系统状态发生了改变,PID参数还是原来那几个的话,就会对系统的精准控制造成影响,即所谓的,动态性能较差。

2、模糊PID控制

定义:模糊控制算法是以模糊集理论、模糊语言变量和模糊逻辑推理为基础的一种智能控制算法,它不需要精确的数学模型,同时还可以简单有效的处理系统的非线性问题,因此可以提高控制系统的稳定性和鲁棒性。

模糊PID控制器是将模糊算法与PID控制参数的自整定相结合的一种控制算法。可以说是模糊算法在PID参数整定上的应用。

一个模糊控制器主要是由模糊化,模糊推理机和精确化三个功能模块和知识库(包括数据库和规则库)构成的。

模糊PID控制器原理图

模糊PID控制器原理如图所示,根据输入偏差e偏差变化率ec经推理输出PID修正参数(ΔKP、ΔKI、ΔKD),完成对PID控制器比例、积分和微分这三个参数的在线自整定,控制信号由PID控制器产生,控制信号通过驱动器驱动电机运转,电机的速度信号通过霍尔传感器反馈至控制器,完成速度闭环控制。

模糊控制器由三部分组成: 1 根据隶属度函数,对输入量、输出量进行模糊化(分段) 2 根据模糊规则进行模糊推理,得到输出量的隶属度 3 根据输出量的隶属度,进行反模糊化,得到准确的输出量

3、滑膜变结构控制

滑膜变结构控制本质上是一类特殊的非线性控制,其非线性表现为控制的不连续性,这种控制策略与其他控制的不同之处在于系统的“结构”并不固定,而是可以在动态过程中根据系统当前的状态(如偏差及其各阶导数等)有目的地不断变化,迫使系统按照预定“滑动模态”的状态轨迹运动。

由于滑动模态可以进行设计且与对象参数及扰动无关,这就使得变结构控制具有快速响应、对参数变化及扰动不敏感、无需系统在线辨识,物理实现简单等优点

该方法的缺点在于当状态轨迹到达滑膜面后,难于严格地沿着滑膜面向着平衡点滑动,而是在滑膜面两侧来回穿越,从而产生颤动,即抖振问题。

说实话,没看太明白具体是咋实现的,以后有机会再深入学习!

未完待续...

感谢指导!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【算法】电机-几种直流无刷电机控制优化算法 的相关文章

  • Opencv将图片中的手写数字一个一个单独的抠出来并保存到指定的文件夹

    今天想要构建自己的MNIST数据集 xff0c 但是一个一个手画然后拍照再把数字一个一个抠出来实在是太耗时了 xff0c 所以想用程序解决这个问题 xff1a 下面附上程序 xff1a xff08 备注 xff1a 里面的代码是在之前某个博
  • onnxruntime.capi.onnxruntime_pybind11_state.Fail: [ONNXRuntimeError] : 1 : FAIL : Load model from mn

    树莓派4B在使用onnxruntime1 6 0对model onnx模型进行加载的时候出现以下的报错 xff1a 原因 xff1a 由于导出的ONNX模型文件不兼容ONNX Runtime当前版本所导致的 xff0c 一开始我导出模型的方
  • C++ 模板与泛型编程简述

    目录 1 什么是模板和泛型编程 2 定义及使用模板 1 什么是模板和泛型编程 什么是模板 xff1f 什么是泛型编程 xff1f 模板的概念与泛型编程是相辅相成的 想象一个场景 xff1a 我们需要比较两个整数或两个字符串的大小 xff0c
  • 在jupyter notebook中添加和删除环境【笔记】

    在jupyter notebook中加入虚拟环境 xff1a python span class token operator span m ipykernel install span class token operator span
  • 浮点数怎么用二进制表示

    浮点数怎么用二进制表示 对于浮点数在计算机中是怎么用二进制表示的 xff0c 这个知识点让我学了很久 xff0c 很多资料讲的特别抽象难懂 xff0c 所以今天我想用自己的方式讲一讲 学过 计算机组成原理 或者类似 计算机系统 这些课程的小
  • Git合并出问题了怎么办

    首先 xff0c 我们不要在master中去进行修改提交 xff0c 一般这个时候我们新建一个分支 xff0c 将合并后的代码复制到新的分支中去 xff0c 然后我们对分支去进行一个修改 xff0c 当修改完成之后 xff0c 再合并到ma
  • 解决win11不能开启5GHZ热点的问题

    对于电脑5GHZ波段不可用的问题解决方法如下 xff1a 手机打开5GHz先让电脑连接电脑开启5Ghz热点断开WiFi xff0c 这时就可以用电脑开的5Ghz的热点了
  • SpringBoot 各层之间的关系

    一 层级 SpringBoot 分为四层 xff1a controller层 service层 dao层 entity层 entity层 xff1a 和model层一样 xff0c 存放的是实体类 xff0c 属性值与数据库值保持一致 xf
  • IEEE 802.1至802.12各层的 功能及特点

    IEEE 802 1 通用网络概念及网桥等 IEEE 802 2 逻辑链路控制等 IEEE 802 3 CSMA CD访问方法及物理层规定 IEEE 802 4 ARCnet总线结构及访问方法 物理层规定 IEEE 802 5 Token
  • ubuntu 常用命令大全

    一 文件 文件夹管理 ls 列出当前目录文件 xff08 不包括隐含文件 xff09 ls a 列出当前目录文件 xff08 包括隐含文件 xff09 ls l 列出当前目录下文件的详细信息 cd 回当前目录的上一级目录 cd 回上一次所在
  • MyBatis mapper.xml中使用静态常量或者静态方法

    使用MyBatis技术 xff0c 书写mapper xml时 xff0c 如果在其中的ognl表达式或者sql中直接使用一些数字或者字符串的话 xff0c 会造成难以维护的问题 在Java编码中 xff0c 我们通常会把这些数字或者字符串
  • get请求和post请求的区别

    HTTP协议 什么是协议 xff1f 协议实际上是某些人 xff0c 或者某些组织提前制定好的一套规范 xff0c 大家都按照这个规范来 xff0c 这样可以做到沟通无障碍 协议就是一套规范 xff0c 就是一套标准 由其他人或其他组织来负
  • 常见网络协议

    网络协议为计算机网络中进行数据交换而建立的规则 标准或约定的集合 例如 xff0c 网络中一个微机用户和一个大型主机的操作员进行通信 xff0c 由于这两个数据终端所用字符集不同 xff0c 因此操作员所输入的命令彼此不认识 为了能进行通信
  • C++ 栈(stack)使用简述

    目录 1 有关函数的作用 2 测试用例 至于栈的结构与原理 xff08 先入后出 xff09 这里就不细说了 xff0c 这里主要记录下 C 43 43 的头文件 lt stack gt 有关栈的操作是如何使用的 1 有关函数的作用 sta
  • 解决一个镜像ID同时拥有多个tag的问题

    docker rmi span class token operator lt span REPOSITORY TAG span class token operator gt span
  • 蜂鸣器介绍

    蜂鸣器介绍 蜂鸣器是一种将电信号转换为声音信号的器件 xff0c 常用来产生设备的按键音 报警音等提示信号 蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器 有源蜂鸣器 xff1a 内部自带振荡源 xff0c 将正负极接上直流电压即可持续发声
  • DS1302时钟芯片(SPI协议)

    DS1302时钟芯片 DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片 它可以对年 月 日 周 时 分 秒进行计时 xff0c 且具有闰年补偿等多种功能 可以把该芯片看成一个小型的单片机 xff0c 其内部
  • ESP8266与单片机通信共地问题

    ESP8266与单片机通信共地问题 1 共地 xff1a 在数字电路中 xff0c 要判断一个电平信号的高低 xff0c 就需要一个标准来判断 xff0c 这个判断标准就是0电平 也叫地 xff09 xff0c 要把所有IC芯片的地连在一起
  • RS-485接口协议详解

    RS 485详解 通信协议 通讯协议主要是实现两个设备之间的数据交换功能 xff0c 通讯协议分硬件层协议和软件层协议 硬件层协议决定数据如何传输问题 xff0c 比如要在设备1向设备2发送0x63 xff0c 0x63的二进制数为0110
  • 使用阿里云IoT Studio建立物模型可视化界面

    使用阿里云IoT Studio建立物模型可视化界面 上一篇文章介绍了如何使用ESP 01S上报数据到物模型 xff1a https blog csdn net weixin 46251230 article details 12899671

随机推荐

  • 51单片机 简易光电循迹小车

    前言 应学校暑期课程要求 xff0c 也作为和小组成员完成一次对51单片机的练手 xff0c 制作了简易的光电小车 xff0c 完成了循迹功能 xff0c 下面包括较为详细的小车搭建过程以及完整代码 硬件部分准备 电源 可充电的电池组是智能
  • 阶段学习的总结

    当程序中存在多个对象的时候 xff0c 如何确定这些对象的析构顺序 单个对象创建时构造函数的调用顺序 调用父类的构造过程 调用成员变量的构造函数 xff08 调用顺序与声明顺序相同 xff09 调用类自身的构造函数 多个对象析构时 析构顺序
  • stm32学习笔记-1 STM32简介

    1 STM32简介 文章目录 1 STM32简介1 1 套件简介1 2 STM32芯片内部的外设1 3 STM32芯片系统结构1 4 STM32芯片引脚定义1 5 STM32最小系统 注 xff1a 笔记主要参考B站 江科大自化协 教学视频
  • Jetson Xavier NX 配置opencv3.4.5

    主要参考Jetson Xavier NX安装opencv3 x以及踩过的坑 xff0c 纪录下自己的错误 下载opencv3 4 5 链接 xff1a https pan baidu com s 17mASm87RNbgfmM 31vlxb
  • C++ 队列(queue、priority_queue)使用简述

    目录 1 queue有关函数的作用 2 priority queue 有关函数作用 3 queue 测试用例 4 priority queue 测试用例 至于队列的结构与原理 xff08 FIFO xff0c 先入先出 xff09 这里就不
  • 前端 | 数据可视化之ECharts

    文章目录 一 数据可视化1 1 什么是数据可视化1 2 数据可视化的使用场景1 3 常见可视化库1 4 小结 二 ECharts简介2 1 什么是ECharts 三 ECharts的快速入门3 1 ECharts使用五部曲3 2 选择不同类
  • Oracle数据库修改账户密码

    Oracle数据库用户密码忘记了怎么办 xff1f 1 首先需要进入cmd命令格式 xff1b 2 输入sqlplus as sysdba 超级用户角色 xff1b 3 SQL命令下输入alter user 用户名 account unlo
  • 如何让进程后台运行?(TX)

    一 运行指令 43 amp xff08 如 a out amp xff09 这样是将命令放入到一个作业队列中了 表现 xff1a 1 结果会输出到终端 2 前台出现进程号 3 使用Ctrl 43 C发送SIGINT信号 xff0c 程序免疫
  • Ubuntu20.04.2+ROS noetic打开rviz报错:...symbol lookup error...librviz.so: undefined symbol:

    打开rviz闪退 xff0c shell显示如下 xff1a 一开始我的独立显卡是安装好了的 xff0c 界面显示的OpenGL也是独显的 xff0c 但是用的其他博客的方法 xff1a span class token function
  • 计算机网络谢希仁第七版第四章习题

    4 09 xff1a xff08 1 xff09 子网掩码为 255 255 255 0 代表什么意思 xff1f xff08 2 xff09 一个网络的现在掩码为 255 255 255 248 xff0c 问该网络能够连接多少个主机 x
  • Ubuntu Linux操作系统——图形界面与命令行

    文章目录 Linux和Ubuntu命令行界面使用仿真终端窗口Shell基础正则表达式通配符模式表达式 Shell中的特殊字符 Linux命令行的使用命令行语法格式命令行基本用法命令行输入与输出执行Shell脚本vi编辑器vi操作模式打开vi
  • SDN控制器Ryu、Floodlight、OpenDayLight的安装以及Mininet连接

    文章中文件名内的xxx需要替换成自己文件的具体版本 ubuntu下安装之前可以先用 sudo apt cache madison soft name查看一下apt安装的版本 xff0c 如果版本合适的话用apt更加方便 Ryu控制器 Ryu
  • 调试时出现:undefined Expecting 'EOF','}',',',']', got STRING以下错误的解决方法

    网上查了很多跟此问题相关的答案 xff0c 都没彻底解决 xff0c 今天亲自遇到这个问题和解决方法了 xff0c 特写下来 问题描述 xff1a 代码是这样的 xff1a VM523 1 undefined Expecting EOF g
  • tensorflow详细安装过程

    我电脑安装的python是3 7 4的 xff0c 所以python如果版本不一样的话 xff08 不是3 7的 xff09 xff0c 下边的内容不建议完全参考 xff0c 可以适当参考 主要是注意很多numpy和models与你安装的t
  • FOC——无刷电机的简单驱动

    文章目录 一 什么是无刷电机 xff1f 1 长什么样 xff1f 2 怎么工作 xff1f 二 试着让它转起来1 STM32CubeMX配置2 keil Clion代码编写3 结果分析 参考的资料 写这个是为了记录学习过程 xff0c 为
  • C++ 链表(list)使用简述

    目录 1 有关函数的作用 2 测试用例 C 43 43 STL 库的 list 容器是一个双向链表 包含在头文件 lt list gt 中 1 有关函数的作用 list 本身 xff1a list lt type gt li 定义一个参数类
  • KEIL5打开KEIL4工程的方法

    解决的问题 xff1a 当使用KEIL5打开KEIL4工程的时候会提示让你下载支持包 xff0c 可以参考以下流程安装你的KEI5版本对应的支持包 步骤 xff1a 一 打开KEIL5 xff0c 点击左上角的HELP About uVis
  • Ubuntu shell脚本自动输入密码

    Ubuntu脚本实现自动输入密码 执行shell脚本的时候若遇到权限问题 xff0c 会需要手动输入密码 xff0c 自动化脚本就变得加个引号了 解决方法 描述太麻烦 xff0c 举例说明 xff1a 想要获取权限删除文件 密码为00000
  • H3C华三链路聚合的原理及配置

    1 链路聚合的作用 xff1a 将多条物理链路捆绑在一起形成一条以太网逻辑链路 xff0c 实现增加链路带宽 的目的 xff0c 同时这些捆绑在一起的链路通过相互动态备份 xff0c 可以有效地提高链路的可靠性 2 聚合模式 xff1a 静
  • 【算法】电机-几种直流无刷电机控制优化算法

    除了电机控制里经常使用的经典PID控制方法 xff0c 目前还存在几种常用的优化控制算法在这里给大家普及一下 xff0c 明白它们的大概原理及相互之间的区别 目录 xff1a 1 经典PID控制 2 模糊控制 3 滑膜变结构控制 1 经典P