平衡小车的控制算法--结合自动控制原理学习

2024-04-26 18:52

本文主要是介绍平衡小车的控制算法--结合自动控制原理学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

单纯的去看自控原理,很多概念有点抽象,最好找些应用去理解相关的概念,就找了实验室的一个平衡小车作为应用,不过主要根据小车去跑matlab去验证一些控制算法。结合台湾国立交通大学林沛群的自控线上课的总结

一、自控原理重要概念

问题:什么是自控,到底自控要干的是什么事情?

   自控就是希望被控对象的表现达到预期,那自然控制器怎么去控制(给控制量)就是核心了。

(一)两种控制模式:

1.开环控制模式

  根据预先设定的控制量计算方法给出控制量,这个计算方法无视被控对象的表现,只看自己,不看对象。

开环控制的控制量计算,有个前馈控制概念 :   根据扰动或设定值的变化按补偿原理而工作的控制系统。其特点是:当扰动作用产生,被控变量还未变化以前,根据扰动作用的大小进行控制。以补偿扰动对被控变量的影响。

2.闭环控制模式

看菜吃饭,控制量的计算要实时的根据被控对象的表现(相关传感数据)进行计算调整。从被控对象的表现进行反馈到被控量的技术也就算反馈控制。

(二)自控系统的分类

●按控制方式:按给定值操纵的开环控制、按干扰补偿的开环控制、按偏差调节的闭环控制、复合控制:闭环反馈为主,开环补偿为辅。
●按给定值变化规律:恒值系统、随动系统、程序控制系统。
●按系统性能:线性/非线性系统、连续/离散性系统、定常/时变性系统、确定/不确定系统。

一般接触的主要是线性非时变系统,现实中很多是把非线性系统转化成线性系统去处理,比如带有sin(a)在a接近0附近直接等价转换成a。

(三)自动系统衡量好坏的要素

基本要求:

稳定性:是保证控制系统正常工作的先决条件。
快速性:动态性能,有指标。
准确性:稳态(过度结束后的)值应尽量与期望值一致。

最基本的就是稳定性,如下图虚线是控制目标,有几种常见的控制结果

具体的指标参数

1.稳态值

2.上升时间

3.调节时间:

4.最大超调量

5.峰值时间

6.延迟时间

(四)怎么去计算这个控制量呢?  

1.系统建模(有些算法不需要建模,如PID)

五中系统表达方式

(1)微分方程,从物理系统的特性去建立物理公式,一般都是微分方程,只要能得到微分方程的解基本上就可以得到控制量

(2)传递函数,传递函数:输出与输入的比,一般都物理微分方程转到频率domain的函数,即进行拉普拉斯变换

(3)impluse response 与传递函数类似

(4)状态空间 (这是现代控制理论的主要方向)

重点了解传递函数

传递函数的BLOCK Diagram表达(一般在matlab里面用)

Signal-flow Graph 表示

Matlab关于传递函数的指令

这篇关于平衡小车的控制算法--结合自动控制原理学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/938382

相关文章

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

Java Stream的distinct去重原理分析

《JavaStream的distinct去重原理分析》Javastream中的distinct方法用于去除流中的重复元素,它返回一个包含过滤后唯一元素的新流,该方法会根据元素的hashcode和eq... 目录一、distinct 的基础用法与核心特性二、distinct 的底层实现原理1. 顺序流中的去重