作为一个搞物联网应用的,最近才接触到NCS这个概念。有点东西,赶紧记录一下。

NCS由通过网络连通的控制环路组成,控制信号和反馈信号会在控制器和本地系统间交换。典型的方块图如下:



其中,本地(Plant)信号是通过传感器(Sensor)进行采集的,然后通过模数转换器转换成数字信号,经过网络到达控制器。控制器根据传感器的输出决定控制,将信号通过网络下发到数模转换器变成模拟信号,经过执行器(Actuator)操作设备。NCS分为开环控制系统和闭环控制系统,这里只看相对复杂的闭环系统。由于控制指令是通过网络下发的,这就是N这个前缀的由来。

NCS的优劣

NCS有一些强大的优势,使得它被标榜为“下一代控制系统”。其中的关键指标有:

  1. 降低了系统的复杂度。由于有了网络,各个系统的数据也都能放在一起看。实际就是能源管理系统。

  2. 高效共享数据。设备间的参数可以通过网络共享,就可以设计更好的控制算法。就是用能分析。

  3. 更智能的决策。有了上面这些信息,人就能做出更智慧的决策。

  4. 省去不必要的线路。有了网络,有了无线,就不用有线了。就是无线传感网。

  5. 可以轻易扩大网络规模:只要增加网络里的传感器、执行器、控制器就好了。因为无线,容易更换也容易维护。

  6. 可以远程控制。

  7. 使用范围广阔。可以在分布式电力系统、机器人、无人机、无人驾驶、空间探索、地质探索、工业自动化、远程调试、高危环境、航天器等等各种场景使用。

不过NCS也有一些突出问题:

  1. 无法决定上数时间。由于有网络,数据到达的时间无法精确控制,所以比较难实现均匀采样。
  2. 数据完整性不能保证。因为网络原因,可能会丢数。
  3. 通讯延迟。原因不言而喻,影响就是控制指令不能被立即执行。
  4. 网络的复杂性。节点数一上来复杂度就上来,就可能影响数据堵塞。所以节点达到数以万计的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)的更多相关文章

  1. MongoDB 3.0 用户创建

    摘要: MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法. 环境.测试: 在安装MongoDB之后,先关闭auth认证,进 ...

  2. Git详解及github的使用

    1.Devops介绍 1.Devops是什么 开发 development 运维 operations 2.Devops能干嘛 提高产品质量 1 自动化测试 2 持续集成 3 代码质量管理工具 4 程 ...

  3. Git--02 Devops介绍及git安装部署

    目录 1. Devops介绍 01. 运维介绍 02. Devops是什么 03. Devops能干嘛 04. Devops如何实现 2. Git版本控制系统 01. 版本控制系统简介 02. 为什么 ...

  4. Git版本控制及gitlab私有仓库

    Git版本控制系统 版本控制系统简介 版本控制系统是一种记录一个或若干个文件内容变化,以便将来查阅特定版本内容情况的系统 记录文件的所有历史变化 随时恢复到任何一个历史状态 多人协作开发 常见版本管理 ...

  5. devops持续集成

    目录 Devops 版本控制系统 Git安装 Git使用 git四种状态 git基础命令 git分支 git合并冲突 git标签 git命令总结 Github使用 创建仓库 HTTP协议 SSH协议 ...

  6. 版本控制系统(VCS)简介

    简介 版本控制系统(VCS)是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.使用版本控制系统通常还意味着,就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先 ...

  7. SVN源代码的版本控制系统使用简介

    SVN是以个开放源代码的版本控制系统,当前最流行的版本控制系统,GIT是近段时间刚兴起的. 下面开始介绍如何安装也配置 1先下载或者从别的地方弄一个安装包(本人是64位的,32位的就用32位的安装包) ...

  8. 基于ZigBee的家居控制系统的设计与应用

    基于ZigBee的家居控制系统的设计与应用 PPT简介:http://pan.baidu.com/s/1i38PC6D 摘  要 智能家居是未来家居的发展方向,其利用先进的网络技术.计算机技术和无线通 ...

  9. BAS/BRAS/RADIUS简介

    标签: java radius协议   linux radius认证服务器   转自: http://blog.csdn.net/sun93732/article/details/5999274 由R ...

  10. Git简介

    Git从入门到学会 Git简介 Git是什么? Git和SVN一样都是一种高效的管理代码的系统. Git是目前世界上最先进的分布式版本控制系统(没有之一). 创建版本库 什么是版本库呢?版本库又名仓库 ...

随机推荐

  1. Vs2019在发布过程中遇到xxx-Web.config Connection String"参数不能为 Null 或 空 的错误

    原文地址:https://www.zhaimaojun.top/Note/5465234 如下图: 当使用的数据库更换或者修改后数据库字段会失效,当我们从webconfig中清除数据库字段后,依然会报 ...

  2. 07. rails 创建user模型

    rails帮助命令 rails -h 创建user模型 命令行 haima@haima-PC:/media/haima/34E401CC64DD0E28/site/go/src/ruby/circle ...

  3. GPS坐标、火星坐标、百度坐标之间的转换--提供javascript版本转换代码

    1.国内几种常用坐标系说明 WG-S84: GPS仪器记录的经纬度信息,Google Earth采用,Google Map中国范围外使用,高德地图中国范围外使用.GCJ-02: 火星坐标系,中国国家测 ...

  4. Vue3 echarts 组件化使用 resizeObserver

    点击查看代码 const resizeObserver = ref(null); //进行初始化和监听窗口变化 onMounted(async () => { await nextTick(() ...

  5. Linux上执行内存中的脚本和程序

    在Linux中可以不需要有脚本或者二进制程序的文件在文件系统上实际存在,只需要有对应的数据在内存中,就有办法执行这些脚本和程序. 原理其实很简单,Linux里有办法把某块内存映射成文件描述符,对于每一 ...

  6. Sphinx 自动化文档

    目录 文章目录 目录 Sphinx 入门 reStructuredText 语法格式 标题.列表.正文.要点 表格 代码块 引用其他模块文件 引用静态图片 Sphinx Sphinx 是一个工具,它使 ...

  7. Linux搭建ES集群环境

    搭建ES集群环境 准备 三台服务器 其中一台为主机节点 ES安装自行上传到各个节点home路径下并解压重命名 集群名称:cluster-big-data同一个集群多个节点,集群名称必须相同,节点名称不 ...

  8. Python闭包和装饰器原理

    # Python闭包和装饰器 ############# 闭包 ############## ''' 1. 一个外层函数,内嵌一个内层函数: 2. 内层函数使用外层函数的参数: 3. 外层函数将内层函 ...

  9. SpringBoot使用@Value获取不到值的问题

    背景 在一次SpringBoot项目改造为Cloud的过程中,使用Nacos作为配置中心获取属性,改造后程序启动报错,查看日志,定位到代码: 解决方案 如果了解Bean的生命周期的同学应该知道,Spr ...

  10. latex图片格式问题解决(viso转PDF转eps)

    latex图片格式问题解决(viso->PDF->eps) 1.viso绘图 如何让界面自动适应图的大小? 设计->大小->适应绘图 如何将VISIO图转换为PDF? 文件-& ...