当前位置: 首页 > news >正文

平衡控制——直立环——速度环

目录

平衡控制原理

平衡控制模型

平衡控制中基于模型设计与自动代码生成技术

速度环应用原理

速度控制模型


平衡控制原理

下图是一个单摆模型,对其进行受力分析如图。 在重力作用下,单摆受到和角度成正比,运动方向相反的回复力。而且在空气中运动的单摆,由于受到空气的阻尼力,单摆最终会停止在垂直平衡位置。空气的阻尼力与单摆运动速度成正比,方向相反。

F =−mgsinθ ≈−mgθ

总结单摆能够稳定在垂直位置的条件有两个: 受到与位移(角度)相反的回复力,在此回复力作用下,单摆便进行周期运动。 受到与运动速度(角速度)相反的阻尼力。阻尼力越大,单摆越会尽快在垂直位置稳定下来。

直立着的车模可以看成放置在可以左右移动平台上的倒立着的单摆。倒立摆之所以不能象单摆一样可以稳定在垂直位置,就是因为在它偏离平衡位置的时候,所受到的回复力与位移方向相同,而不是相反!因此,倒立摆便会加速偏离垂直位置,直到倒下。

如何通过控制使得倒立摆能够像单摆一样,稳定在垂直位置呢? 两个办法: X  改变重力的方向; 增加额外的受力,使得恢复力与位移方向相反才行。

控制倒立摆底部车轮,使得它作加速运动。这样站在小车上(非惯性系,以车轮作为坐标原点)分析倒立摆受力,它就会受到额外的惯性力,该力与车轮的加速度方向相反,大小成正比。这样倒立摆所受到的回复力为:

式中,由于θ 很小,所以进行了线性化。假设负反馈控制是车轮加速度a 与偏角θ 成正比,比例为k1 。如果比例 k1>g( 是重力加速度)那么回复力的方向便于位移方向相反了。此外,为了使得倒立摆能够尽快地在垂直位置稳定下来,还需要增加阻尼力。虽然存在着空气和摩擦力等阻尼力,相对阻尼力比较小。因此需要另外增加控制阻尼力。增加的阻尼力与偏角的速度成正比,方向相反。因此可以得到下式:

按照上面的控制方法,把倒立摆模型变为单摆模型,能够稳定在垂直位置。因此,可得控制车轮加速度的控制算法。

式中,θ 为车模倾角;θ ‘ 为角速度;k1、k2 均为比例系数;两项相加后作为车轮加速度的控制量。只要保证在 条件下,可以使得车模像单摆一样维持在直立状态。其中有两个控制参数 k1>g、k2>0, 决定了车模是否能够稳定到垂直平衡位置,它必须大于重力加速度;决定了车模回到垂直位置的阻尼系数,选取合适的阻尼系数可以保证车模尽快稳定在垂直位置。

在角度反馈控制中,与角度成比例的控制量是称为比例控制;与角速度成比例的控制量称为微分控制。因此上面系数 分别称为比例和微分控制参数。其中微分参数相当于阻尼力,可以有效抑制车模震荡。

总结控制车模直立稳定的条件如下:

(1)能够精确测量车模倾角θ 的大小和角速度θ ' 的大小; (2)可以控制车轮的加速度。

直立控制算法的关键在于获取车模的角度和角速度,通过测量车模的倾角和倾角速度控制车模车轮的加速度来消除车模的倾角。测量车模倾角和倾角速度可以通过安装在车模上的加速度传感器和陀螺仪实现。

而车模的倾角以及角速度的测量,我们使用的 MPU6050 集成了三轴陀螺仪和三轴加速度计,可以通过 IIC 接口同时输出三个方向上的加速度信号和陀螺仪信号。

车模运行速度和加速度是通过控制车轮速度实现的,车轮通过车模两个后轮电机经由减速齿轮箱驱动,因此通过控制电机转速可以实现对车轮的运动控制。加速度控制量由施加在电机上面的电压代替,直接调节控制电机的PWM 的占空比来调节电机转动的加速度。

平衡控制模型

平衡控制中基于模型设计与自动代码生成技术

具体过程前面章节已经有详细介绍,在此简单回顾一下。在模型中打开Configuration,Parameters参数设置对话框,在solver解算器中设置相关参数,在Hardware Implemention中设置芯片类型等相关参数,在Code Generation中设置Simulink Coder等相关参数。具体参数配置见下图

参数配置完后,启动模型编译,进行相关处理后将编译好的代码烧入TMS320F28069芯片中,从而实现对小车的直立环平衡控制。

速度环应用原理

车模的速度是通过调节车模倾角来完成的。车模不同的倾角会引起车模的加减速, 从而达到对于速度的控制。实际上最后还是演变成通过控制电机的转速来实现车轮速度的控制。 当需要提高平衡车向前的行驶速度,就需要增加平衡车的倾角,倾角增大后,车轮在直立控制作用下需要向前运动保持平衡车平衡,速度增大; 如果要降低平衡车向前行驶速度,就需要减小平衡车的倾角,倾角减小以后车轮在直立控制作用下运行速度减小保持平衡车平衡。

由上述可知,可搭建如下数学模型:                                                                                             式中θ代表角度,θ′代表角速度,e(k)是实际速度与设定速度的偏差,∑e(k)偏差求和代表积分。因此,可以从理论上说明小车的速度控制是可以通过搭建上述的数学模型来实现。

速度控制模型

相关文章:

平衡控制——直立环——速度环

目录 平衡控制原理 平衡控制模型 平衡控制中基于模型设计与自动代码生成技术 速度环应用原理 速度控制模型 平衡控制原理 下图是一个单摆模型,对其进行受力分析如图。 在重力作用下,单摆受到和角度成正比,运动方向相反的回复力。而且在空气中运动的单摆,由于受…...

面试简要介绍hashMap

jdk8之前,hashmap采用的数据结构是数组链表,jdk8之后采用的数据结构是数组链表/红黑树。hashmap的数据以键值对的形式存在,如果两个元素的hash值相同,就会发生hash冲突,被放到同一个链表上--->如何解决hash冲突---&…...

HTTPS如何实现加密以及SSL/TSL加密的详细过程

通过将服务器从 HTTP 提升到 HTTPS 加密,数据在客户端和服务器之间的传输过程中的确得到了安全保护。以下是这种实现加密的机制以及客户端需要做的事情的详细说明。 为什么这样就实现了加密 SSL/TLS 协议: HTTPS 使用 SSL(安全套接层&#x…...

Golang | Leetcode Golang题解之第516题最长回文子序列

题目&#xff1a; 题解&#xff1a; func longestPalindromeSubseq(s string) int {n : len(s)dp : make([][]int, n)for i : range dp {dp[i] make([]int, n)}for i : n - 1; i > 0; i-- {dp[i][i] 1for j : i 1; j < n; j {if s[i] s[j] {dp[i][j] dp[i1][j-1] …...

(done) 什么 RPC 协议? remote procedure call 远程调用协议

来源&#xff1a;https://www.bilibili.com/video/BV1Qv4y127B4/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 可以理解为&#xff0c;调用远程服务器上的一个方法/函数/服务的方式&#xff0c;同时隐藏网络细节 一个 python3 …...

PCL 基于Ransac提取误匹配点对

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 基于RANSAC的误匹配点对提出函数 2.1.2 点云可视化函数 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接: PCL点云算法与项目实战案例汇总(长期更新) 一、…...

光速写作 2.0.5 | 专注AI写作,海量素材库

光速写作是一款专为解决写作难题设计的应用。它具有以下功能&#xff1a;- 「AI写作」&#xff1a;帮助分析题目、整理写作思路&#xff0c;合成作文&#xff0c;写出好文章。- 「作文批改」&#xff1a;拍照上传作文后&#xff0c;进行全文点评和分句点评&#xff0c;并进行全…...

【已解决,含泪总结】非root权限在服务器上配置python和torch环境,代码最终成功训练(一)

配置Python环境 没有root权限服务器上有多个python环境但没有自己想要的怎么办 之前跑别的实验的时候改过指定的python3.7版本&#xff0c;但是居然我过了一段时间之后&#xff0c;再次打开&#xff0c;python版本居然又回到2.7&#xff08;服务器/usr/下的默认python版本&am…...

公安基础知识-通哥

公安机关办理行政案件能力 考点一 治安案件追溯失效 6个月 派出所只有警告和500块以下罚款 公安是行政机关 1、治安小事、刑事案件大事 2、殴打他人-轻伤-&#xff08;刑事案件&#xff09;、轻微伤&#xff08;治安案件&#xff09; 3、《治安处罚法》《刑法》 4、只能构…...

Python画图|极坐标下的散点图动态输出

【1】引言 前序已经学习过散点图输出和极坐标图输出&#xff0c;文章链接包括但不限于下述部分&#xff1a; python画散点图|scatter()函数小试牛刀&#xff08;入门级教程&#xff09;_python ax.scatter-CSDN博客 python画图|极坐标中画散点图_极坐标上的散点图-CSDN博客 …...

揭开MySQL并发中的“死锁”之谜:从原理到解决方案的深度解析

目录 1. 环境准备&#xff1a;创建“账户”和“标记”表1.1 创建 dl_account_t 表1.2 创建 dl_mark_t 表 2. 死锁详解2.1 死锁情景一&#xff1a;相反加锁顺序导致的死锁2.2 死锁情景二&#xff1a;唯一索引冲突引发的死锁 3. 事务隔离级别与锁机制4. 预防与解决死锁的方法4.1 …...

【论文阅读】Reliable, Adaptable, and Attributable Language Models with Retrieval

文章目录 OverviewCurrent Retrieval-Augmented LMsArchitectureTraining Limitations & Future Work Overview Parametic language models的缺点&#xff1a; 事实性错误的普遍存在验证的难度&#xff08;可溯源性差&#xff09;难以在有顾虑的情况下排除某些序列适应调整…...

A-Frame负责人Diego Marcos分享WebXR与开源AI的未来

一、引言 在最近的一次播客访谈中,《虚拟现实之声》的主持人Kent Bye与A-Frame的创始人Diego Marcos展开了一场关于WebXR技术及其未来发展潜力的对话。Diego不仅是A-Frame的创始人,同时也是WebXR规范的原创者之一。本次访谈不仅回顾了WebXR的发展历程,还探讨了开源AI技术在…...

【STM32-HAL库】火焰传感器(STM32F407ZGT6)(附带工程下载链接)

一、TEMT6000光照强度传感器 火焰传感器是一种能够检测火焰的传感器&#xff0c;它通过检测空气中的特定波长的光线来检测火焰的存在&#xff0c;并输出一个信号来通知系统发生了火灾 工作原理 火焰传感器的工作原理基于光学检测技术。当火焰燃烧时&#xff0c;会产生一些特…...

git merge没有生成合并提交

有时候本地使用gitmerge命令的时候会发现&#xff0c;合并后的log里边并没有一次merge branch的log&#xff0c;而是把合并分支上的所有commit log都带过来。 这是因为当执行合并操作时&#xff0c;如果目标分支的提交历史是源分支的直接延续&#xff08;即&#xff0c;目标分支…...

算法题总结(十九)——图论

图论 DFS框架 void dfs(参数) { if (终止条件) {存放结果;return; }for (选择&#xff1a;本节点所连接的其他节点) {处理节点;dfs(图&#xff0c;选择的节点); // 递归回溯&#xff0c;撤销处理结果 } }深搜三部曲 确认递归函数&#xff0c;参数确认终止条件处理目前搜索节…...

android studio编译错误提示无法下载仓库

一、调整方法之一 buildscript {repositories {google()jcenter()//maven { url https://maven.aliyun.com/repository/google }//maven { url https://maven.aliyun.com/repository/central }}dependencies {// classpath "com.android.tools.build:gradle:4.1.1"c…...

基于SpringBoot的时装购物系统【源码】+【论文】

时装购物系统是一个基于Springboot框架开发的Web应用系统&#xff0c;数据库使用的是MySQL。该系统充分考虑了代码的可读性、实用性、扩展性和通用性&#xff0c;页面设计简洁、操作方便&#xff0c;易于后期维护。系统分为管理员和用户两大角色&#xff0c;前台页面提供了商品…...

自动化结账测试:使用 Playwright确保电商支付流程的无缝体验【nodejs]

使用 Playwright 掌握端到端结账测试 在电商领域&#xff0c;结账流程是用户体验中至关重要的一环。确保这一流程的稳定性和可靠性对于维护客户满意度和转化率至关重要。在本文中&#xff0c;我们将探讨如何使用 Playwright 进行端到端的结账测试&#xff0c;确保您的结账系统…...

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-25

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-25 0. 前言 大语言模型在很多领域都有成功的应用&#xff0c;在本期计算机前沿技术进展研究介绍中&#xff0c;我们将带来一篇用大语言模型进行诺贝尔文学作品分析的论文。虽然有一定趁最近诺贝尔奖热潮的意味&…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

C++:std::is_convertible

C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

MySQL 知识小结(一)

一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库&#xff0c;分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷&#xff0c;但是文件存放起来数据比较冗余&#xff0c;用二进制能够更好管理咱们M…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...