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

embedded/2024/10/18 14:25:45/

单纯的去看自控原理,很多概念有点抽象,最好找些应用去理解相关的概念,就找了实验室的一个平衡小车作为应用,不过主要根据小车去跑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.ppmy.cn/embedded/17524.html

相关文章

机器学习鸢尾花使用csv

操作流程 下载鸢尾花数据集导入需要的包读取数据并查看数据大小和长度划分训练集和测试集使用模型评估算法 下载鸢尾花数据集 链接:https://pan.baidu.com/s/1RzZyXsaiJB3e611itF466Q?pwdj484 提取码:j484 --来自百度网盘超级会员V1的分享导入需要…

vue实现录音并转文字功能,包括PC端web,手机端web

vue实现录音并转文字功能,包括PC端,手机端和企业微信自建应用端 不止vue,不限技术栈,vue2、vue3、react、.net以及原生js均可实现。 原理 浏览器实现录音并转文字最快捷的方法是通过Web Speech API来实现,这是浏览器…

新建云仓库

1.GitHub新建云仓库: LICENSE:开源许可证;README.md:仓库说明文件;开源项目;cocoaPodsName.podspec: CocoaPods项目的属性描述文件。 2.Coding新建云仓库: 备注: Coding新建项目:

设计模式- 迭代器模式(Iterator Pattern)结构|原理|优缺点|场景|示例

迭代器模式(Iterator Pattern)是一种行为设计模式,它提供了一种方法来顺序访问聚合对象(容器)中的元素,而又不暴露其实现细节。通过使用迭代器,用户可以从不同类型的聚合对象中以统一的方式遍历…

vue3+node.js+mysql+ant design实现表格的查询功能

今日主要分享如何运用vue、nodejs、mysql及ant design构建表格数据查询功能,这也是众多项目开发者关注的问题。最关键在于前端与后端的协作,后端数据则通过nodejs编写。尽管涉及多项技术,看似复杂,但实际操作却并非困难。当然&…

Java面试之四种访问权限

在Java中,访问权限控制是通过四种不同的访问修饰符实现的: (访问权限就像是门上的锁,不同的修饰符代表着不同的锁类型) 1、public: public是最开放的访问级别修饰符。使用public修饰的成员可以被该类所在…

Linux多进程(二)进程通信方式三 共享内存

共享内存提供了一个在多个进程间共享数据的方式,它们可以直接访问同一块内存区域,因此比使用管道或消息队列等通信机制更高效。在多进程程序中,共享内存通常与信号量一起使用,以确保对共享内存的访问是线程安全的。 一、打开/创建…

Docker数据卷的使用

1 数据卷概念 数据卷是一个共给容器使用的特殊文件目录,位于容器中,可以将宿主机的目录挂载到数据卷上,对数据卷的修改立刻可见,并且更新数据卷不会影响到容器的使用,从而实现数据在主机和容器之间共享。 2 创建数据…