目录

  • 前言
  • PID有什么用?
  • 二、控制方式
    • 1.离散控制和连续控制
    • 2.连续系统控制
    • 举个粒子
  • 3.离散控制
    • 总结:

前言

在上一章“PID的理解与实现一”中我们简单的介绍了PID是什么,以及简要的进行了一个伪代码的编写、讲述了他应该如何调试。在接下来的环节中我们将对他进行matlab代码的编程调节与讲解。

包含:matlab的连续控制和matlab的离散控制。

上一个文章:PID的理解与实现(一)
https://blog.csdn.net/weixin_49909123/article/details/110533072

PID有什么用?

当了解了PID的大致结构,我们了解到了PID一般运用于稳定输出——即在有外部影响的情况下,我们给它一个“眼睛”,让它自动调整,尽力排除外部的影响,从而达到我们要求的目标。它主要可以运用在调节直流电机转速,调节直流减速电机的位置。

例子:制造一个自动驾驶汽车,制造自平衡单车都有他的影子在其中。

二、控制方式

1.离散控制和连续控制

在matlab软件中,这个系统软件同时提供了连续函数和离散函数来控制我们所需要控制的对象。他的目的是为了降低用户使用这种控制程序的复杂程度,但是他还想要提高用户所需要的仿真精度和仿真速度,而且还要有他所应用的广泛性,所以说他提供这两种控制器,供用户选择。

我们都知道在计算机软件中计算方程的时候,计算机只能一步一步的计算,然后将他们所有的解整合起来,形成我们需要的答案。所以说,当我们在图像中显示一个曲线的时候,往往他仅仅是一堆一堆的点,通过非常非常小的细缝来连接起来,集成了一个像曲线的样子。当这个点越多,步长越短的时候,这个曲线就会越完美,但是步长过长时,他就会导致我们的计算量过大,从而使我们的程序计算时间过于长,效率不高。
所以我们必须在布场和图像精美度中进行折中。我们需要努力调整步长精度,以灵化的方法,然后来达到我们所需要达到的最佳程度。

matlab之所以提供了连续控制器和离散控制器,就是方便与用户进行使用,对于一个用户新手来说,他不知道如何调整这些步长,他也不知道如何进行离散化方法的选择,所以说matlab可以用他所给的连续控制来自动的帮他进行一波选择,这样会使得软件更加方便的被软件使用者使用。
而有的软件使用者为了追求更高的仿真精度,所以说,他就要对仿真过程步长进行自己的决定,也要对这些离散化方法进行自我选择,这样的话,他可以控制的仿真,结果可以达到他所期望的要求。这样话也可以拓宽它对matlab软件的使用范围。

2.连续系统控制

在介绍代码之前,我想先将一些东西。

状态空间:
是控制工程中的一个名词。状态是指在系统中可决定系统状态、最小数目变量的有序集合。而所谓状态空间则是指该系统全部可能状态的集合。简单来说,状态空间可以视为一个以状态变数为座标轴的空间,因此系统的状态可以表示为此空间中的一个向量。
状态空间表示法即为一种将物理系统表示为一组输入、输出及状态的数学模式,而输入、输出及状态之间的关系可用许多一阶微分方程来描述。
为了使数学模式不受输入、输出及状态的个数所影响,输入、输出及状态都会以向量的形式表示,而微分方程(若是线性非时变系统,可将微分方程转变为代数方程)则会以矩阵的形式来表示。


图源文源:(百度百科)

如果我们想要描述一个系统的运动时,势必要把它放在状态空间中,在状态空间中描述一个运动。

在介绍一个概念:

系统的阶
动态系统的阶是其微分方程的最高导数的阶,同样,它是传递函数分母中的最高次幂.
一阶系统
一阶系统是最简单的动态系统,一些常见的示例包括质量块阻尼系统和RC电路。一阶微分方程的一般形式如:

PID的理解与实现(二)相关推荐

  1. 深入理解C/C++二维数组

    深入理解C/C++二维数组 前言 本来以为自己对二维数组的理解还可以,没感觉有什么,但是今天小伙伴问了一个问题感觉迷惑了好久,于是决定细致的记录一下,一步一步的探究各种关于二维数组的问题,巩固基础. ...

  2. TLD(Tracking-Learning-Detection)学习与源码理解之(二)

    TLD(Tracking-Learning-Detection)学习与源码理解之(二) zouxy09@qq.com http://blog.csdn.net/zouxy09 OpenTLD下载与编译 ...

  3. 深入理解常见的二十三种设计模式

    深入理解常见的二十三种设计模式 文章目录 深入理解常见的二十三种设计模式 一.设计模式的分类 1.1 创建型(五种) 1.2 结构型(七种) 1.3 行为型(十一种) 二.创建型 2.1 单例模式 2 ...

  4. 深入理解Plasma(二)Plasma 细节

    最新内容会更新在主站深入浅出区块链社区 原文链接:深入理解Plasma(二)Plasma 细节 这一系列文章将围绕以太坊的二层扩容框架,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等. ...

  5. Scratch3.0——助力新进程序员理解程序(十二、画笔)

    Scratch3.0--助力新进程序员理解程序(十二.画笔) 目录 Scratch3.0--助力新进程序员理解程序(十二.画笔) 前言 环境 下载地址 安装说明 1.菜单栏 2.功能栏 3.代码区 4 ...

  6. 看《墨攻》理解IoC概念(二 )http://www.qqread.com/erp/3/j380307_3.html

    看<墨攻>理解IoC概念(二) 巧巧电脑网络 2007-11-07  IT168 陈雄华   收藏此文  大 中 小 分享到QQ空间人人网开心网豆瓣新浪微博腾讯微博更多0 上一页123下一 ...

  7. 基于cnn的短文本分类_自然语言理解之(二)短文本多分类TextCNN实践

    本文包含:用keras实现文本分类的2种baseline结构:TextCNN.Bi-GRU+conv+pooling:网络结构可视化:采用小样本在本地(乞丐版MacBook Pro)评估baselin ...

  8. 深入理解WMS(二):Dialog与Toast源码解析

    作者:ScottStone 链接:https://www.jianshu.com/p/1090d6c33dec 通过上面的分析可以看出,View是Android中的视图呈现方式,但是View并不能单独 ...

  9. 深入理解JVM虚拟机(二):垃圾回收机制

    谈起GC,应该是让Java程序员最激动的一项技术,我相信每个Java程序员都有探究GC本质的冲动!JVM垃圾回收机制对于了解对象的创建和对象的回收极为重要,是每个Java程序员必须掌握的技能. 本博客 ...

最新文章

  1. WdatePicker,js日期插件 ,时间相加
  2. (2014年2月7日升级)Ubuntu-14.04-Alpha2-32位简体中文优化封装版
  3. The whole Fiori application is wrapped in a big shell xml view
  4. web前端开发最佳实践--(笔记之JavaScript最佳实践)
  5. 【python之路】数据库2
  6. mysql日期可以保存时区_数据库存储时间的时区问题
  7. JavaScript综合项目:博客前端
  8. java基础七--网络编程(1)
  9. 微信公号“架构师之路”学习笔记(四)-分布式ID生成算法(应用场景、uuid/guid、snowflake算法)
  10. singleTask和startActivityResult
  11. 优秀的程序员是没有性生活的
  12. 微信中禁止网页下拉出现网页由XXX提供
  13. linux海报制作软件,春节海报制作素材平台-春节海报一键制作app下载v1.0.0-Linux公社...
  14. unsupported format character '}' (0x7d) at index 83
  15. f.readline()和f.readline()和f.read()
  16. 电脑可安装的超炫实用软件
  17. python3.7.4游戏代码,Python3+Pygame实现射击游戏完整代码
  18. Android 建立自己的手写笔画图案 Gesture Builder
  19. Python3下基于bs4和sqlalchemy的爬虫实现
  20. 1727: Dungeon Master

热门文章

  1. linux编译有线程的文件要加什么参数,Linux多线程实例,在编译中要加 -lpthread参数...
  2. 哈勃发现史上最遥远单颗恒星 距离地球129亿光年
  3. 【React】485- React 大佬都在用的 22 种神奇工具
  4. ZigBee 3.0(ZCL,ZHA)
  5. 在H5页面中使用Google Analytics
  6. ubuntu18.04分辨率只有1024*768,解决方案和踩坑梳理(应该适用其他ubuntu版本)
  7. 程序猿专用代码注释:佛祖保佑,永无BUG
  8. 金仓数据库 KingbaseGIS 使用手册(9.4. 拓扑结构构造函数、9.5. 拓扑结构编辑函数)
  9. Loup Verlet计算统计力学的创始人
  10. 人工智能打造充满创造力的新世界,华为云开发者日无锡站成功举办