智能控制
文章平均质量分 93
jxandrew
这个作者很懒,什么都没留下…
展开
-
rust嵌入式开发之总结
我们用rust开发的新版产品刚刚交付,已经在海上安装测试完毕并顺利投产。终于松了口气,同时也有时间和精力来做个全面的总结了原创 2024-05-31 11:48:11 · 1343 阅读 · 3 评论 -
rust嵌入式开发之基于await构造应用级临界区
并发编程时还有一个更重要的问题需要我们解决:资源竞争。Embassy目前还只是一个有限的运行时,还不是一个ROTS,提供不了系统级的临界区。针对这个问题,笔者就考虑如何在应用层面提供不需要关中断就可以实现临界区保护的互斥锁。实质上,就是基于Embassy运行时来实现应用层面的互斥锁。原创 2024-04-13 13:44:59 · 1238 阅读 · 1 评论 -
rust嵌入式开发之RTICvsEmbassy
RTIC和Embassy是目前rust嵌入式开发中比较热门的两个框架。本来呢,针对RTIC的移植已经完成了一小半,但在移植过程中感受到了RTIC的不足,正好跳出来全面考察下embassy,本文就是根据目前的尝试结果做个对比总结。原创 2024-02-05 14:48:44 · 1535 阅读 · 2 评论 -
rust嵌入式之用类函数宏简写状态机定义
笔者一向认为,用有限状态自动机来做硬件控制是最好的选择,同时又倾向于用文本定义来定义状态机是更好的做法。所以此次用rust开发嵌入式自然也是如此。原创 2024-01-20 12:56:53 · 1330 阅读 · 1 评论 -
rust嵌入式开发补充
本文是对[rust嵌入式开发](https://zhuanlan.zhihu.com/p/677077634)的补充,就当时遗留的一些问题进行增补与修正原创 2024-01-13 17:42:00 · 1187 阅读 · 1 评论 -
用jxTMS开发智能转运箱(3)
用jxTMS开发智能转运箱(3)本系列以开发管控类危化品的智能转运箱为例讲述了jxTMS的智能硬件支持下的业务管控体系:用jxTMS开发智能转运箱(1)用jxTMS开发智能转运箱(2)jxTMS目前已打包为docker容器,可以下拉jxTMS的docker镜像并按jxTMS使用示例尝试使用。逻辑部件在jxTMS的智能控制编程模型中,分为了三个部分:将输入以文本化的条件的形式识别为事件,控制系统以事件来驱动编程要执行的控制动作用预定义的逻辑部件,加载文本化的控制逻辑描述,成为特定原创 2021-08-31 12:52:50 · 122 阅读 · 0 评论 -
用jxTMS开发智能转运箱(2)
本系列以开发管控类危化品的智能转运箱为例讲述了jxTMS的智能硬件支持下的业务管控体系:用jxTMS开发智能转运箱(1)jxTMS目前已打包为docker容器,可以下拉jxTMS的docker镜像并按jxTMS使用示例尝试使用。设备在jxTMS的智能控制体系中,所有的设备都是用go实现的。其实现层次如下:即所有的智能硬件都统一抽象为Dev的接口,python代码根据这个抽象统一对所有前端设备的读取、操作与控制。这样,一个设备在python主代码中只要简单的声明即可:#智能转运箱中用于控制电锁、原创 2021-08-27 13:49:27 · 165 阅读 · 0 评论 -
jxTMS--模糊控制
jxTMS:低成本快速定制的业务系统开发平台。模糊控制模糊控制就是运用模糊数学的基本原理,结合产生式的知识运用方式,通过定义模糊规则,根据当前采集到的输入量经过推理计算出控制量。所以要实现模糊控制包括如下的几个步骤:定义模糊数,我一般称为模糊性质,如轻、重、中等力度等,主要是对当前属性的实际取值给出一个性质判断定义模糊变量,如大小、方向、速度、力量等,一般由两个以上的模糊性质组成,其实就是通常的模糊集定义模糊规则,如:如果 方位 是 非常 左 则 方向 是 右 且 速度 是 大。意为原创 2020-10-09 13:45:31 · 291 阅读 · 0 评论 -
模糊控制-模糊性知识的应用问题
上篇文章谈了模糊性知识的表示问题,这篇文章就来谈谈模糊性知识的应用问题。在上篇文章中,我们说到,模糊性知识由三部分组成:用于表示人类如何进行判断的产生式规则,形如:如果…则…用于说明我们所了解到的事实的模糊命题,如:速度 是 大用于确定模糊量取值的隶属度定义,如:实际测得的数值是123,而123算做大的可能性是0.8,算做正常的可能性是0.5,算做小的可能性是0.3,根据人类思考、解决问题的原创 2017-04-20 10:56:09 · 4760 阅读 · 1 评论 -
模糊控制-模糊是什么鬼
在PythonPi基于人脸检测的行车控制中我们介绍了PythonPi的目标驱动型控制.但这个目标驱动型控制在控制小车的时候,怎么看怎么难受:就这么前前后后、磨磨唧唧的挪来挪去的,这效率也太低了些吧:(目标驱动控制是应用反馈控制的原理来简化控制的分析与实现过程,降低了控制的难度。但正由于这种简化,所以其控制过程不够精细、效率也不太高。还记得我们的那个控制系统的通用框架吗?目标驱动型控制是用来解决预置知原创 2017-04-05 11:31:36 · 10337 阅读 · 1 评论 -
模糊控制-模糊性知识的表示问题
通过上篇文章我们了解了什么是模糊,理解模糊控制就比较简单了,即在通用的控制系统框架中:在预置知识部分,如我们前面所介绍的这样通常的控制系统装定的是精确性的知识;而模糊控制,装定的是模糊性的知识。所以,模糊控制就是解决模糊性知识的表示问题和模糊性知识的应用问题。在我们刚开始讨论智能控制的分布式智能控制初步时,我们谈到了产生式,并且说了几点产生式的缺点,也就解释了我们之前为什么要使用更简洁、更高效的状态原创 2017-04-12 14:24:11 · 3029 阅读 · 0 评论 -
PythonPi基于人脸检测的行车控制-任务组件
PythonPi实现目标驱动型控制的核心是任务组件。在介绍任务组件之前,我们先要讨论一下所谓的降阶控制。在一个复杂的控制任务中,由于涉及到的传感器、执行器众多,其功能、特性各异,如果集中在一起进行处理,会过于复杂,难以高效的实现。针对这种情况,IT最基本的解决思路就是分层处理,也就是所谓的分而治之原则。我们将一个控制系统分为三个层次分别实现不同的控制任务:组织层,用于目标定义、任务规划,如无人驾驶原创 2017-03-30 10:13:27 · 452 阅读 · 0 评论 -
PythonPi基于人脸检测的行车控制-PythonPi的目标驱动型控制
前文(分布式智能控制)说了:现代控制系统基本都是反馈型的控制。因此PythonPi实际上并无必要提供一个所谓的反馈控制的功能。我们讲过我们的控制系统是包括传感器、执行器、裁决器的,而当代的控制核心都是计算机控制,实际上,现代的控制系统都是:从传感器采集信号来了解当前的系统状态和环境状态根据预置的知识体系(模型库、事实库、规则库)对现场采集到的状态信息进行理解与逻辑推理,以决定控制动作执行控制动原创 2017-03-21 13:18:03 · 563 阅读 · 0 评论 -
PythonPi基于人脸检测的行车控制-什么是控制
控制在百度百科中所给出的解释是:掌握住对象不使任意活动或超出范围;或使其按控制者的意愿活动。根据这个解释,可以看出我们之前所实现的控制功能都是最简单、最基本的控制:固定响应式控制。固定是说功能固定,按下这个按钮,灯就开了,松开灯就灭了,无论我们重复多少次,只要系统正常工作,都是这个功能,也不管当时是不是白天、需不需要开灯。而响应则说明我们的系统是一种被动应激反应型的工作模式:接收到一个信号,按照预先原创 2017-03-06 11:21:16 · 498 阅读 · 0 评论 -
PythonPi基于人脸检测的行车控制-概述
视频好像发不了,转一下啦: PythonPi基于人脸检测的行车控制-概述 闷!怎么把电视的声音也录下来了原创 2017-01-20 11:42:28 · 478 阅读 · 0 评论 -
用PythonPi实现门禁系统-示例
和分布式智能控制系统类似,首先实现了Python接口的API,基于图形界面的管理界面以后视情况提供。先看示例的接线图:这个示例是用树莓派的spi接口连接了一个rc522读卡器,以15号gpio口连接了一个led作为电锁动作的指示,15号gpio口连接了一个开关按钮作为出门按钮,1号gpio口连接了一个开关按钮模拟门状态。实现代码如下:from cn.ijingxi.corpuscle.python原创 2017-01-12 13:27:13 · 6232 阅读 · 1 评论 -
用PythonPi实现门禁系统-功能实现
在考虑如何用PythonPi来实现门禁功能时,我们首先要梳理有多少状态变量:出门按钮,有开关两个状态读卡器,有读到有效卡号(即有权限在本场景中使用)与未读到电锁,有开关两个状态自动锁门定时器,有触发与未触发两个状态状态分析:当读卡器读到卡并完成权限裁决后,其等价于出门按钮,即给出一个触发信号(如闭合),而其反向的状态(如开启)可以忽略定时器只有超时触发状态有效因此,根据三个状态变量(原创 2017-01-16 13:37:16 · 1555 阅读 · 2 评论 -
分布式智能控制-输入组件
输入组件主要负责采集各前端传感器的输入信号,目前主要包括有gpio采集到的开关量信号、i2c采集到的模拟量信号等,当然这些信号还都应包括从下属各种单片机(目前只考虑nodeMCU)采集到的信号,还包括了定时器发出的时间通知信号、手机等智能前端发出的人员操控信号等。其中麻烦点的是i2c采集到的有可能是连续的数值即数组。我对未来控制场景的第一个判断就是随着电子元器件的性价比迅速上升,未来随时都会是有几千原创 2016-12-15 21:51:55 · 584 阅读 · 0 评论 -
分布式智能控制-动作组件
动作组件主要负责对各动作执行器进行控制,目前主要包括有gpio的输出控制、i2c设备控制等,当然还包括了下属各设备(目前只考虑nodeMCU参见远程PWM实验)的远程控制,还包括了定时器的启动、手机等智能前端显示状态修改等。动作组件在有了JXPi平台的支持后实现起来是很简单的,其唯一需要考虑的是控制逻辑处理点和动作的实际执行点很可能不在同一个智能体上。考虑到上层系统处理的一致性,最终将其执行过程分为原创 2016-12-15 21:52:36 · 541 阅读 · 0 评论 -
分布式智能控制-条件组件
控制系统应具有一定的通用性,所以其必须提供一定的自动化工具给现场工程师,由其根据实际情况来搭建适当的控制逻辑。条件组件就是用于输入值比较的自动化工具。条件判断包括两个部分:值比较:等于、大于、小于等等逻辑操作:与或非,当然如何检测条件比较简单,比如小于50,也就可以不需要逻辑操作了条件组件的实现非常简单,用条件树做下处理就是了。关键是条件组件到底有什么用?!在设计之初,我也反复权衡过到底是用产原创 2016-12-15 21:53:09 · 522 阅读 · 0 评论 -
分布式智能控制-控制逻辑组件
逻辑控制组件主要做的事情就是将前面几个组件组装起来,使之协调运行。逻辑控制组件本身封装了状态机组件。和单体的状态机有所不同的是,单体状态机的状态切换后是调用一个python或lua函数来执行控制动作,而分布式的状态机则是显式触发一个动作组件。但这样一来,分布式状态机的描述能力就比不上单体状态机了,毕竟一个函数就是一个有着脚本语言支持的、拥有强大的逻辑操作能力的语句片段,远非一条简单的动作执行命令可比原创 2016-12-15 21:53:43 · 486 阅读 · 0 评论 -
分布式智能控制-示例
见证奇迹的时刻来了!看一下下面的代码和前面一篇文章中实现“带总控的开关功能”的代码有什么不同呢?from cn.ijingxi.corpuscle.python import logicfrom cn.ijingxi.corpuscle.python import activefrom cn.ijingxi.corpuscle.python import conditionfrom cn.ij原创 2016-12-16 15:38:53 · 1404 阅读 · 0 评论 -
分布式智能控制-命名
由于参与设备多、种类也多,所以端口命名也需要一个整体的规范。由于设备数量多,所以层次性命名方案是显然的,一个控制点的名字应该是如下格式的:[域名]/智能体名[/[下联设备名/]端口名]一个智能控制网络中的名字是以“/”开头的,也就是说如果一个名字是以“/”开头,则其一定是和自己属于同一个控制系统,不是以“/”开头,则其属于另外的控制系统,甚至可能是其它组织的。例如,某智能楼宇收到一个”fire.de原创 2016-12-22 15:29:09 · 497 阅读 · 0 评论 -
用PythonPi实现门禁系统-场景
在分布式智能控制系统中,我们介绍了控制逻辑组件。该组件可以完成智能控制的功能。但控制逻辑组件存在一个问题:它不具备基于个体识别然后据此进行管控的能力,控制逻辑组件并不关心参与者是谁,它对所有人都是一视同仁的,因此控制逻辑组件是无法用来进行门禁管控的。为了实现门禁控制,我们将具有个体识别能力的识别点、基于角色的权限管理和一个事件驱动的控制逻辑组件组装到一起就成为一个场景。和控制逻辑相比,场景具有针对特原创 2017-01-03 10:18:55 · 2322 阅读 · 0 评论 -
用PythonPi实现门禁系统-概述
门禁系统是安保系统中最常用的安全防护系统之一。和控制系统相关的主要包括如下部分:门控制器,这也就是通用的控制模型中的裁决器,一般都直接集成了前端信号、动作执行的接线端子。一般分为单门或双门,多个门控制器可组成一个较大的门禁控制系统,一般采用RS485或TCP/IP进行组网读卡器,首先通过发卡将某张ID卡或IC卡的卡和某人进行关联,然后在门禁管控点读取该卡的卡号来识别通过该管控点的人员电锁,主要原创 2016-12-26 16:50:16 · 1418 阅读 · 0 评论 -
分布式智能控制-配置
各组件开发完毕,依托PythonPi平台对python的支持能力,所以首先就提供了python封装的API,图形界面的UI暂时等一下。由于我们采取了全网广播,很自然的,我们的分布式智能控制系统天然的具有非中心、控制点全网移动的能力,也就是说,针对一个控制功能,我们可以单独编写一个python脚本/程序,然后这个python程序可以在所有组网的智能体上随意移动,谁都可以运行这段python代码,而谁运原创 2016-12-19 16:18:11 · 607 阅读 · 0 评论 -
扫二维码,用手机遥控小车
视频发不上来,只好转了: 扫二维码,用手机遥控小车原创 2017-01-05 13:06:51 · 1266 阅读 · 0 评论 -
用PythonPi实现门禁系统-权限管控
对门禁系统来说,权限就是是否许可某人通过某门。从控制的角度来说,就是读入一个卡号,决定是否开锁或采取其它动作。智能控制系统首先是一个信息系统,信息系统中的权限是对信息资源的管控,按信息流动的方向有两种权限:根据访问者是否有权读取信息来决定是否允许信息流出根据访问者是否有些操作信息来决定是否接受信息流入,这又包括了对信息的删除、修改、新增,统一视为修改而对于门禁系统来说,甚至是控制系统来说,基本原创 2016-12-29 10:47:55 · 1886 阅读 · 0 评论 -
PythonPi门禁课程-概述
门禁系统是安保系统中最常用的安全防护系统之一。和控制系统相关的主要包括如下部分:门控制器也就是通用的控制模型中的裁决器,一般都直接集成了前端信号、动作执行的接线端子。一般分为单门或双门,多个门控制器可组成一个较大的门禁控制系统,一般采用RS485或TCP/IP进行组网:它一般提供了读卡器、出门按钮、电锁电源控制继电器、锁状态(门磁)的接口,也就是上图中控制板两侧的那些绿色接线端子。门控制器本质上就是原创 2016-12-30 11:57:30 · 1259 阅读 · 0 评论 -
用PythonPi实现门禁系统-模式识别
模式识别听起来很高大上,其实就是特征识别。人类对事物的识别过程其实就是提取特征、根据特征对事物进行分类的过程,然后人类就可以将这类事物的特点与规律套用到这个事物上。我们在门禁课程中曾提出过一个双人开门的练习:在某些安全性要求较高的门禁控制点,要求两人以上才能开门。但如果用通常的状态机来实现这个功能,我在思考题中也说,会有非常多的问题难以解决。这些问题包括:有权限的人连刷两次怎么办(如何将两个不同的原创 2017-01-09 11:05:30 · 1945 阅读 · 0 评论 -
分布式智能控制初步
运行在树莓派上支持Python在线编程的智能控制平台原创 2016-12-15 21:46:56 · 722 阅读 · 0 评论