网络化的控制系统简介(NCS)
作为一个搞物联网应用的,最近才接触到NCS这个概念。有点东西,赶紧记录一下。
NCS由通过网络连通的控制环路组成,控制信号和反馈信号会在控制器和本地系统间交换。典型的方块图如下:

其中,本地(Plant)信号是通过传感器(Sensor)进行采集的,然后通过模数转换器转换成数字信号,经过网络到达控制器。控制器根据传感器的输出决定控制,将信号通过网络下发到数模转换器变成模拟信号,经过执行器(Actuator)操作设备。NCS分为开环控制系统和闭环控制系统,这里只看相对复杂的闭环系统。由于控制指令是通过网络下发的,这就是N这个前缀的由来。
NCS的优劣
NCS有一些强大的优势,使得它被标榜为“下一代控制系统”。其中的关键指标有:
降低了系统的复杂度。由于有了网络,各个系统的数据也都能放在一起看。实际就是能源管理系统。
高效共享数据。设备间的参数可以通过网络共享,就可以设计更好的控制算法。就是用能分析。
更智能的决策。有了上面这些信息,人就能做出更智慧的决策。
省去不必要的线路。有了网络,有了无线,就不用有线了。就是无线传感网。
可以轻易扩大网络规模:只要增加网络里的传感器、执行器、控制器就好了。因为无线,容易更换也容易维护。
可以远程控制。
使用范围广阔。可以在分布式电力系统、机器人、无人机、无人驾驶、空间探索、地质探索、工业自动化、远程调试、高危环境、航天器等等各种场景使用。
不过NCS也有一些突出问题:
- 无法决定上数时间。由于有网络,数据到达的时间无法精确控制,所以比较难实现均匀采样。
- 数据完整性不能保证。因为网络原因,可能会丢数。
- 通讯延迟。原因不言而喻,影响就是控制指令不能被立即执行。
- 网络的复杂性。节点数一上来复杂度就上来,就可能影响数据堵塞。所以节点达到数以万计的NCS也是很难建设的。
NCS的设计
控制指令最先是仿真处理器上产生的,主要通过频域分析和拉普拉斯变换做数据分析,精确度有限、带宽有限、数据漂移、有噪声,管理非线性误差能力不足。对于已知的延迟可以在控制时使用著名的史密斯预测器处理。
后来CPU出现了,可以用数字控制器代替模拟处理器了。但是通过离散电信号控制模拟量设备必然导致时序紊乱。另外还必须引入逻辑进行数模转换。采样定理和z变换成为了数字控制系统的标配。z变换假定采样时均匀的,这样对于数字控制器,定时采样也成了标配。在数字控制早期,CPU算力和内存都很稀缺,所以控制器的复杂度和电力的使用都要最小化。定时采样假设是否最好,结论并不明显。所以1962年有人写了文章使用了适应性采样:《Adaptive sampling frequency for sampled-data control systems》,采样频率会根据错误率调整。随着计算成本的下降,适应性采样逐渐没了市场。
从计算侧着手,1973年发表的《Scheduling algorithms for multiprogramming in hard real-time environment》提出了实时调度建模和分析,实时调度是基于一系列限制性假设的,其中之一是任务的周期性。尽管后来越来越多的假设来限制实际问题,不过周期性一直最流行。另外网络拓扑会随着时间改变,因为受控设备会换位置。所以总体上控制系统在动态环境是高度适应性的。尤其无线通信允许网络的快速部署来远程控制,但网络也有问题,上面也都提到了。这些问题都会影响数字控制器。下图是控制性能和采样率的平衡:

图中有三根线,分别是本地控制(Continuous Control)、数字控制(Digital Control)、网络控制(Networke Control)。可见网络控制的性能只在B和C间不错,超过C也会下降。
下表是传统控制系统和网络化系统的区别汇总:

网络化的控制系统简介(NCS)的更多相关文章
- MongoDB 3.0 用户创建
摘要: MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法. 环境.测试: 在安装MongoDB之后,先关闭auth认证,进 ...
- Git详解及github的使用
1.Devops介绍 1.Devops是什么 开发 development 运维 operations 2.Devops能干嘛 提高产品质量 1 自动化测试 2 持续集成 3 代码质量管理工具 4 程 ...
- Git--02 Devops介绍及git安装部署
目录 1. Devops介绍 01. 运维介绍 02. Devops是什么 03. Devops能干嘛 04. Devops如何实现 2. Git版本控制系统 01. 版本控制系统简介 02. 为什么 ...
- Git版本控制及gitlab私有仓库
Git版本控制系统 版本控制系统简介 版本控制系统是一种记录一个或若干个文件内容变化,以便将来查阅特定版本内容情况的系统 记录文件的所有历史变化 随时恢复到任何一个历史状态 多人协作开发 常见版本管理 ...
- devops持续集成
目录 Devops 版本控制系统 Git安装 Git使用 git四种状态 git基础命令 git分支 git合并冲突 git标签 git命令总结 Github使用 创建仓库 HTTP协议 SSH协议 ...
- 版本控制系统(VCS)简介
简介 版本控制系统(VCS)是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.使用版本控制系统通常还意味着,就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先 ...
- SVN源代码的版本控制系统使用简介
SVN是以个开放源代码的版本控制系统,当前最流行的版本控制系统,GIT是近段时间刚兴起的. 下面开始介绍如何安装也配置 1先下载或者从别的地方弄一个安装包(本人是64位的,32位的就用32位的安装包) ...
- 基于ZigBee的家居控制系统的设计与应用
基于ZigBee的家居控制系统的设计与应用 PPT简介:http://pan.baidu.com/s/1i38PC6D 摘 要 智能家居是未来家居的发展方向,其利用先进的网络技术.计算机技术和无线通 ...
- BAS/BRAS/RADIUS简介
标签: java radius协议 linux radius认证服务器 转自: http://blog.csdn.net/sun93732/article/details/5999274 由R ...
- Git简介
Git从入门到学会 Git简介 Git是什么? Git和SVN一样都是一种高效的管理代码的系统. Git是目前世界上最先进的分布式版本控制系统(没有之一). 创建版本库 什么是版本库呢?版本库又名仓库 ...
随机推荐
- git checkout 命令图文详解
目录 git checkout branchname (切换本地分支) 切换远程分支 放弃修改 git checkout . git checkout – filename git checkout ...
- Windows 上安装 PostgreSQL详细图文教程
转载于微信公众号:SQL数据库运维,如需转载请注明出处,谢谢! PostgreSQL 的 Slogan 是 "世界上最先进的开源关系型数据库". 这里使用 Enterprise D ...
- cesium教程3-加载3dtile模型,并调整位置
直接上示例代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- centos 文件系统权限
模板:drwxrwxrwx r表是读 (Read) .w表示写 (Write) .x表示执行 (eXecute) 读.写.运行三项权限可以用数字表示,就是r=4,w=2,x=1, 777就是rwxrw ...
- radmin远程控制软件怎么样,有没有替代品
Radmin 是流行的.屡获殊荣的安全远程控制软件,它使您能够在远程计算机上实时工作,就像使用它自己的键盘和鼠标一样. 您可以从多个地方远程访问同一台计算机,是网络和管理类别中流行的远程桌面工具. R ...
- PageOffice 6 最简集成代码(VUE+Springboot)
本文描述了PageOffice产品在(VUE+Springboot)前后端分离的项目中如何集成调用.调用PageOffice打开文件的主要核心代码是:后端Springboot项目中第6步和前端VUE项 ...
- pod(三):pod的管理
目录 一.系统环境 二.前言 三.pod的管理 3.1 环境介绍 3.2 管理pod 一.系统环境 服务器版本 docker软件版本 CPU架构 CentOS Linux release 7.4.17 ...
- WPF在ListView中绑定Command命令的写法
假定:ViewModel中有一个数据源叫Persons,有一个命令叫DoCommand,通过System.Windows.Interactivity触发器绑定鼠标MouseUp事件,当UI端绑定了Da ...
- Xcode 自动化构建问题梳理
一.Xcode Xcode是mac OS平台上面开发的官方IDE,可以用来开发iOS应用和mac应用.随着iOS系统的升级,Xcode也会更新,而且是强制更新. Xcode每次版本更新稳定性很差,经常 ...
- 前端项目报EISDIR: illegal operation on a directory, read这个错误
背景: 我用webstorm开发前端页面时,项目用Vue3来开发,出现如下报错. 原因: 这个报错是由于代码中引入的一些组件或者模块路径不正确导致的,在vue2中,引入组件是下面这样写的: impor ...