10、高效开发的形式化建模技术与铁路数据验证工具

高效开发的形式化建模技术与铁路数据验证工具

1. 形式化建模技术概述

在铁路系统建模中,采用了一种结合基于状态的建模符号(iUML - B)和基于过程的符号(ERS)的方法。iUML - B 图主要捕捉系统复杂的数据方面及其演变,而 ERS 图则代表系统的行为方面,特别是事件的顺序。

1.1 信号与轨道空位检测的建模

信号在铁路系统中起着关键作用。方法 set tvd state 使信号进入可通行状态(非默认状态),而方法 set tvd state signal 则在相应连接区段被占用时将信号恢复到默认状态。信号通过连接器与路径相关联,这通过类(Elem Ctor)以及关联 Signal Ctor 和 Path Ctor Beg 进行建模。同时,信号也通过其连接器和关联 Sgmt Ctor 与轨道空位检测(TVD)区段相关联。类不变式 cdm inv2 确保只有当信号后方有活动路径时,信号才会被设置为非默认值。

在图 2 的信号区域,使用异或组合器将集合 tvd state curr 分为两种情况:
- 第一种情况:TVD 区段是路径的一部分,但不受信号保护(集合 tvd state path)。
- 第二种情况:TVD 区段受信号保护。在这种情况下,需要先将信号的显示设置为可通行,然后才能占用该区段(集合 tvd state signal),此时还需将信号的显示恢复到默认状态,以表明该区段已被占用。ERS 图通过可视化信号设置的系统级过程细节以及它与 TVD 占用的交互,对 iUML - B 模型起到了补充作用。

1.2 相关工作对比

这种结合 iUML - B 和 ERS 的方法与现有的

相关推荐

20、铁路系统形式化验证:方法与挑战

本文探讨了铁路系统形式化验证的方法与挑战,重点介绍了整体形式化证明和中途通用验证(HGV)方法,并分析了其在铁路控制系统中的应用。文章还讨论了验证过程中面临的主要挑战,如状态空间爆炸和反例分析困难,并提出了相应的解决方案。此外,还比较了多种形式化验证方法的优劣,并介绍了Prover iLock工具在铁路系统验证中的实际应用,旨在提升铁路控制系统的安全性和可靠性。

m9n0o的博客 147

6、铁路数据验证与航天领域软件部署的技术探索

本文探讨了铁路数据验证中 PROB 工具的改进与验证方法,以及其在航天领域软件开发中的应用。针对 PROB 工具,改进了解析器、类型检查器和数据结构,引入多种验证手段以提高验证效率和准确性。同时,介绍了航天领域软件开发的挑战,如需求管理、可追溯性和验证,并探讨了形式化建模和验证在航天领域的应用及其优势。通过这些技术探索,为铁路和航天领域的高可靠性系统开发提供了实践经验和理论支持。

s4t5u6v7的博客 52

19、铁路系统安全分析与验证方法解析

本文详细解析了铁路系统的安全分析与验证方法,重点介绍了CBTC系统的安全分析过程以及B-PERFect方法的应用。CBTC系统通过形式化证明验证安全属性,并与领域专家保持紧密互动以识别系统假设。B-PERFect方法则通过将B语言代码转换为HLL语言的形式化模型,为使用B方法开发的系统提供独立的安全验证途径。文章还对比了不同验证方法的优劣,展望了B-PERFect方法在铁路系统及更广泛领域的应用前景。

gitlab7runner的博客 154

19、铁路系统中的整体形式化证明方法解析

本文探讨了一种结合系统级和软件级验证的整体形式化证明方法,用于铁路系统的安全验证。该方法通过属性识别与细化、软件模型构建、现实世界环境建模以及数据集成等步骤,有效应对状态空间爆炸问题,并提高验证的全面性和准确性。文章以CBTC系统的列车跟踪功能为例,展示了该方法论的实际应用,并分析了其优势与局限性,为未来铁路系统的安全验证提供了改进方向。

m9n0o的博客 360

24、地理方案数据验证工具链解析

本文解析了一种针对铁路信号系统地理方案数据验证的高效工具链,介绍了其科学贡献、背景知识、设计规则形式化、验证方法、反例可视化、性能结果以及未来发展方向。该工具链结合了DSL、SMT求解、转换和反例可视化等技术,实现了在节点边模型基础上对安全关键型设计规则的自动验证,并在西门子工程数据准备系统中进行了集成与优化。

m9n0o的博客 128

10、铁路系统场景化认证研究

本文探讨了铁路自动化系统的场景化认证方法,分析了铁路场景的特征属性,并借鉴汽车领域的场景化方法,提出了未来在铁路领域构建本体与标准体系、开展多方面验证与评估、推动行业合作交流的发展方向。研究旨在提升铁路自动化系统的安全性、可靠性与高效性,为未来铁路发展提供技术保障。

m9n0o的博客 143

13、铁路信号数据集成模型检查器与正式方法在商业开发中的应用

本文探讨了铁路信号数据集成模型检查器的设计需求,以及正式方法在商业系统开发中的应用案例。通过分析一个认证机构(CA)系统的开发过程,详细介绍了正式方法在需求、设计、编码和测试阶段的具体应用及其带来的技术优势。同时,讨论了开发过程中面临的挑战与应对策略,并展望了未来模型检查器和正式方法的发展趋势。文章强调了合理选择工具和方法、符号集成、工具语言利用以及测试与形式化结合的重要性,为提高系统的安全性、准确性和可测试性提供了实践经验和建议。

river的博客 216

10、 抽象状态机:理论与应用的深度解析

本文深入探讨了抽象状态机(ASMs)的核心概念、技术细节及其在多个领域的应用案例。从基本概念到实际应用,全面解析了ASMs的灵活性、严谨性以及未来发展方向,帮助读者更好地理解和应用这一强大的工具。

weixin_35094083的博客 133

14、铁路安全相关技术与风险评估研究

本文围绕铁路安全这一核心议题,重点探讨了铁路联锁系统的验证工具集以及铁路平交道口的安全风险评估方法。通过介绍RobustRailS工具集和基于贝叶斯网络的因果推理分析(CRAB)方法,结合法国SAL2平交道口的实际事故数据,构建了风险评估模型并进行了深入分析。研究利用正向和反向推理机制,识别了导致事故的关键因素,并提出了针对性的安全改进建议。研究结果对铁路平交道口的风险预警、事故原因分析及安全管理具有重要意义。

gitlab7runner的博客 74

15、基于人工智能的列车障碍物与标志检测系统研究

本文探讨了基于人工智能的列车障碍物与标志检测系统,重点研究了感知系统的验证、形式化B模型构建、SimB仿真以及系统验证方法。通过案例研究和实验验证,分析了系统在调车作业中的安全性与可靠性,并提出了未来研究方向,以推动人工智能在铁路运输领域的实际应用。

m9n0o的博客 116

【信息科学与工程学】计算机科学与自动化——第二十四篇 编译器10——编译原理与词法分析02

链接时优化:全局DCE(579)、LTO(580)安全编译:CFI(581、586)、ASan(582)、UBSan(583)、MSan(584)、TSan(585)、CET(587)、PAC(588)、MTE(589)、SFI(590)、Wasm沙箱(591)侧信道与秘密:侧信道缓解(592)、常量时间(593)、秘密清理(594)内存安全:ASLR(595)、栈保护(596)、整数溢出检测(597)、除零检测(598)、空指针检测(599)、数组边界检查(600)至此编号达到600。

weixin_49199313的博客 197

20、 抽象状态机在现代软件开发中的应用与优化

本文深入探讨了抽象状态机(ASMs)在现代软件开发中的应用与优化策略,包括其基本概念、特点、理论基础以及工业应用案例。同时,文章分析了ASMs在软件调试器建模、数据库查询优化、API规范和模型驱动开发中的具体应用,并与传统方法进行了对比,展望了ASMs的未来发展方向及其与新兴技术的融合。

weixin_35094083的博客 139

4、算法建模:从问题分析到模型构建

本文详细介绍了算法建模的全过程,从问题分析到模型构建,涵盖了数独问题、旅行商问题、调度问题和汽车制造问题等多个实例。文章阐述了建模的基本概念、关键步骤以及注意事项,同时探讨了如何处理模糊和不确定数据,并提供了模型验证与优化的方法。通过检查清单和流程图帮助读者系统化建模过程,强调了建模与算法设计之间的紧密关系。最后,文章展望了建模在未来复杂问题中的应用和发展趋势。

v5w6x的博客 88

形式化方法在铁路系统中的应用

本文探讨了使用Event-B形式化方法在铁路联锁系统中进行验证与确认的可行性。通过分层建模、不变式定义和事件精化,实现了对功能与安全属性的严格验证,并结合模型检测与动画技术提升可读性。模型支持测试用例自动生成,有助于实现与需求的一致性。

j7k8l的博客 393

逻辑片段的可判定性及其在形式化验证中的应用

本文探讨了多排序逻辑中可判定片段的概念,以及其在形式化验证中的应用。通过对生日簿和铁路交叉问题的示例分析,介绍了如何使用多排序逻辑来形式化现实世界问题。同时,文章详细讨论了可判定性问题的逻辑基础,包括公式的有限可反驳性、有限扩展的可满足性,以及它们在验证安全性属性时的适用性。

weixin_36197669的博客 365

Modelica建模,Modelica语言的学习,技术调研工作

Modelica是由Modelica协会维护、免费开放的物理系统面向对象的统一建模语言规范,为机、电、液、控等多领域复杂工程系统提供了统一的物理建模语言规范。 Modelica作为多学科统一建模仿真的国际标准,被仿真界广泛采用,系统多领域统一建模仿真,已成为世界公认的MBSE和CPS的核心关键支持技术。 Modelica 语法、函数、包、连接器、组件、子系统

xzb5566的专栏 4640

C# 实现 Modbus 通信全教程(支持 TCP 和 RTU,含完整错误处理)

环境准备:安装 NModbus4 库,明确设备参数(IP/串口、地址、数据类型);连接设备:TCP 用 TcpClient,RTU 用 SerialPort,注意超时和参数匹配;读写数据:根据数据类型调用对应方法(读保持寄存器用 ReadHoldingRegisters);错误处理:捕获连接、超时、协议等异常,针对性排查问题。掌握这些后,即可轻松实现与工业设备的 Modbus 通信,为上位机开发提供稳定的数据交互能力。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 2068

断层错动和近断层地震动联合作用下软岩隧洞衬砌损伤分析

摘要 本文提出了一种基于Python的软岩隧洞衬砌损伤分析系统,重点研究断层错动和近断层地震动的联合作用效应。系统采用有限元方法建立隧洞-围岩体系模型,通过非线性动力分析评估衬砌结构损伤。研究内容包括:1)建立考虑应变软化的软岩本构模型;2)基于位错理论模拟断层错动过程;3)合成具有速度脉冲效应的近断层地震动;4)开发完整的动力响应分析流程。结果表明,所提出的方法能有效评估软岩隧洞在复杂地质条件下的抗震性能,为工程设计提供理论依据。 关键词:软岩隧洞、断层错动、近断层地震动、损伤分析、Python、有限元法

max500600的博客 845

声音源定位:利用YOLO与麦克风阵列定位声音来源YOLOv5、YOLOv8、YOLOv10

YOLO(You Only Look Once)是一个用于目标检测的深度学习模型。YOLO的最大特点是其通过一次前向传播即可完成多个目标的检测,速度和精度相对其他目标检测算法具有显著优势。YOLO模型的版本不断更新,从YOLOv1到YOLOv10,算法精度和速度都有了显著的提升。声音源定位是利用多个麦克风阵列收集的声音信号,通过算法计算声音源的位置。声音源定位的关键在于准确估计每个麦克风的声音到达时间,从而确定声音源的空间坐标。基于时延估计(TDOA)

YOLO 673

基于Qt C++开发一套大疆农业无人机的AI飞控系统

如果需要补充**多机协同作业代码**、**农田测绘数据导出**、**作业数据统计大屏**或**移动端地面站适配**功能,可以告知具体需求,我会针对性完善。"开启" : "关闭") << "喷洒,流量:" << flowRate << "L/min";emit errorOccurred(QString("SDK初始化失败,错误码:%1").arg((int)ret));report += QString("问题区域数量:%1\n").arg(info.problemAreas.size());

寒寒豆豆软件公司的博客 387

SCADA|测试KingSCADA4.0信创版采集汇川PLC AC810数据

摘要:雷工分享KingSCADA4.0信创版采集汇川PLC数据的配置过程。由于项目繁忙,笔记更新延迟。信创产业要求采用国产化产品,此次通过ModbusTCP协议连接AC810 PLC。主要步骤包括:新建IOServer应用(需厂家协助从3.8升级至4.0)、安装ModbusTCP驱动、配置设备地址(192.168.1.88:5021)、运行IOServer并通过网页监控变量。尽管信创版操作体验较差,但出于国产化战略需要仍需使用。雷工表示理解产品初期不足,相信未来会逐步优化。2025年4月11日记录于四川绵阳

做有价值的事,积累有价值的笔记! 865

S32K324 Stack异常分析及解决方案

在项目开发过程中,在一次软件变更时,调整了task优先级之后导致应用层软件中的float数据经常性的变为NAN,导致应用层功能失效。本文记录下这个bug的分析及解决过程。该问题排查了好几天,最开始正向排查不出来,差点放弃了,ETAS OS也没有人支持,只能换一种思路,通过反向推,最终定位到问题,能完美解决,还是很欣慰的。遇到问题不可怕,Bug一直都会有,主要是在解决问题中的思路和方法,不断总结积累,总会越来越好的!

赞的博客 598

Quartus II编译时出现Error (119013): Current license file does not support the EP4CE6E22C6 device

Quartus II编译时出现Error (119013): Current license file does not support the EP4CE6E22C6 device, Quartus的安装过程不同于ISE/vivado的安装。“Current license file does not support”这种情况多出现在高版本的quartus中综合很久以前的代码,使用很早型号的FPGA或是CPLD。对于这种情况,就得在官网或是其他网站上下载包含所需Device的库文件。

夜半少年的博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: 8、量子物理:信息科学视角下的探索
下一篇: 9、量子物理与时间旅行:信息视角下的探索
gitlab7runner
博客等级 码龄4年 78粉丝 1747原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值