位置环速度环串级位置式PID实现全过程解析(详细)

这篇具有很好参考价值的文章主要介绍了位置环速度环串级位置式PID实现全过程解析(详细)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目场景:

电机型号:MD36N行星减速电机_AB两相光电编码器霍尔编码器

电机参数:

//光电编码器线数500,减速比27,减速器长度32.5mm,以1:27输出轴:27*500=13500线,
  四倍频  MD36NP27_24V,减速后转速325(30)rpm,额定转速230(20)rpm
//霍尔编码器线数13,减速比71

单片机型号:STM32F429IG,keil

程序最终功能:串级位置式PID反复调节电机,使得电机可以在一定范围内精准任意停靠在某个位置,比如电机控制目标在圆形轨道转动,就可以实现在固定角度的位置停靠,四等分,八等分等


实现步骤

1、PID调节相关的定时器设置

PID计算定时器

编码器

电机PWM输出定时器

2、

@Override
	public void run() {
		bytes = mmInStream.read(buffer);
		mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget();
	}

问题分析及解决方案:

1、当使用串级位置式PID时,在其他子程序中加入已调试好的程序,PID控制电机突然不动,

关闭所有打开的c、h文件,再打开main.c重新编译下载

2、while循环与if语句对于电机PID调速的影响

电机位置环调速时,target_location在形式上必须是电机转一圈的倍数值,且不为零,其他值也不行,不能直接赋值。

else if也不能用,只能用if

if语句的判断条件不能是数组元素,必须是一个变量。

if语句在keil嵌入式中使用的必须条件就是,if语句必须列举全部的可能性,

3、FreeRTOS的软件定时器会影响软件定时器的定时时间,甚至导致失效

4、直流有刷减速电机位置环速度环位置式调速

a、位置环位置式的初始位置与每转一圈的位置都会被PID记录,因此对电机位置的管理尤为重要,且只能每次转固定脉冲的倍数,不能出现乘法,只能以+=形式赋值。

b、复位多次PID位置环的调试结果符合正弦曲线或PID超调经典曲线,即一次过位,一次正好,一次欠位,或者多次过位...

 5、PID位置环速度环串级调速

6、速度环调速时,电机以最大速度启动且无法调速

位置环速度环串级位置式PID实现全过程解析(详细)7、PID环境配置

上溢下溢计数方向

IN1与IN2双PWM调速时的电机使能方式FWD\REV

电机旋转方向

电机设置速度方向

计算PID的定时器周期太大,无法调速

速度上限还是下限处理,当PWM值越大,速度越小时,设置下限,且界值不对,无法调速

编码器频率

PWM上限

电机速度太高,每圈脉冲数太多导致PID调节失效

电机将FWD,REV同时使能,电机不转

 文章来源地址https://www.toymoban.com/news/detail-403454.html

 

 

 

到了这里,关于位置环速度环串级位置式PID实现全过程解析(详细)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VR游戏开发:从想法到实现的全过程

    作者:禅与计算机程序设计艺术 《VR游戏开发:从想法到实现的全过程》 1.1. 背景介绍 1.2. 文章目的 1.3. 目标受众 1.1. 背景介绍 随着科技的不断发展,虚拟现实(VR)技术逐渐走入大众视野。在游戏领域,VR技术可以为玩家带来更加沉浸的体验,因此受到了越来越多游戏开发者

    2024年02月16日
    浏览(58)
  • 手机学习笔记之二:APKtool工具实现反编译-编译-签名全过程

            APKTool 是一个开源的、跨平台的反编译、回编译 Android 应用程序的工具。它能够将 APK 文件解压并还原成 Android 应用程序的资源文件和 Smali 代码,还能将修改后的资源文件和 Smali 代码重新打包成 APK 文件。APKTool 是 Android 应用程序开发和逆向开发的重要工具之一,它能

    2024年02月02日
    浏览(62)
  • 【Java实现文件上传】java后端+vue前端实现文件上传全过程详解(附源码)

    【 写在前面 】其实这篇文章我早就想写了,只是一直被需求开发耽搁,这不晚上刚好下班后有点时间,记录一下。需求是excel表格的上传,这个是很多业务系统不可或缺的功能点,再此也希望您能够读完我这篇文章对文件上传不再困惑。(文件下载见另外一篇) 涉及知识点

    2024年02月06日
    浏览(40)
  • .net6Api后台+VUE3前端实现上传和下载文件全过程

    首先本文参考的是,感谢博主: net6WebApi上传下载文件_cduoa的博客-CSDN博客_webapi下载文件 在博主的基础上,增加了新的功能,代码中有注明,并且使用VUE3前端实现。 后端部分: 1.首先建立IFileService文件 2.建立FileService文件 3.增加FileController文件 4.Program文件中,进行配置和跨域

    2023年04月09日
    浏览(44)
  • Ubuntu20.04 使用Python实现全过程离线语音识别(包含语音唤醒,语音转文字,指令识别,文字转语音)

      因为手头有一个项目,该项目需要在香橙派上实现语音控制,并且带有语音唤醒功能。简单来说,就是通过唤醒词唤醒香橙派,然后说出相关指令,香橙派去执行指令。   但是,在弄香橙派的时候,自带的麦克风不好使了,单独进行麦克风测试的时候是好使的,但是程

    2024年02月05日
    浏览(37)
  • ElasticSearch-安装部署全过程

    本文已收录于专栏 《中间件合集》   是一个开源的分布式搜索和分析引擎,它建立在 Apache Lucene 搜索引擎库之上。它提供了一个分布式、多租户的全文搜索引擎,具有强大的实时搜索和分析能力。Elasticsearch 是用 Java 语言编写的,并且提供了 RESTful API,使其易于集成和使用

    2024年02月12日
    浏览(34)
  • OpenCV相机标定全过程

    一、OpenCV标定的几个常用函数 findChessboardCorners() 棋盘格角点检测 第一个参数是输入的棋盘格图像(可以是8位单通道或三通道图像); 第二个参数是棋盘格内部的角点的行列数(注意:不是棋盘格的行列数,如棋盘格的行列数分别为4、8,而内部角点的行列数分别是3、7,因

    2024年02月04日
    浏览(34)
  • 得帆云为玉柴打造CRM售后服务管理系统,实现服务全过程管理|基于得帆云低代码的CRM案例系列

    广西玉柴机器股份有限公司       广西玉柴机器股份有限公司始建于1992年,是国内行业首家赴境外上市的中外合资企业,产品远销亚欧美非等180多个国家和地区。公司总部设在广西玉林市,下辖11家子公司,生产基地布局广西、江苏、安徽、山东等地,在海外设有联合研发

    2024年02月02日
    浏览(28)
  • HTTPS】HTTPS过程详解,tcpdump抓包 全过程分析

    RFC中的HTTPS交互过程如下: 客户端支持的TLS最高版本号 客户端生成的随机数 客户端支持的加密套件 主机名server_name cipher suite怎么理解 名字为 ECDH-ECDSA-AES128-SHA256 的CipherSuite 使用 ECDH做密钥交换, 使用ECDSA做认证, 使用AES-128做加密算法, 使用SHA256做MAC算法。 客户端能支持的

    2024年02月11日
    浏览(26)
  • linux安装docker全过程

    3. 第二步:设置docker的存储库。就两条命令,我们直接执行就好。 ​ ​ 4. 安装docker engine和docker-compose。 执行命令: ​ 等到屏幕输出success后,我们输入docker -v 。如果输出了它的版本号那么就证明docker安装好了。输入 docker compose version 如果也输出了版本号,则证明 docker-co

    2024年02月10日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包