当前位置: 首页 > news >正文

CANN/mat-chem-sim-pred IPDT批量闭环评分

PidIpdtBatchRolloutScore

【免费下载链接】mat-chem-sim-pred面向工业领域,聚焦计算仿真、预测两大核心场景,构建面向流程工业"机理+数据"双轮驱动的领域计算层,推动AI for Science在材料化学领域的深度应用。项目地址: https://gitcode.com/cann/mat-chem-sim-pred

Overview

PidIpdtBatchRolloutScoreis an independent IPDT batch closed-loop rollout operator for PID candidate scoring. It evaluates a batch of IPDT process models against a shared PID candidate set on NPU and returns the best candidate per loop.

This operator is used in the tuning stage as the IPDT candidate simulation and selection kernel:

  • input is process model parameters plus PID candidate arrays
  • output is per-loop best score and best PID gains
  • implementation is independent from the earlier model-fit operators

The plant dynamics are a pure integrator plus dead time:

y[k+1] = y[k] + b * u[k - delay]

This is thea = 1(no self-regulation) special case of the FOPDT rollout, so there is noacoefficient input. The PID control law, scoring, candidate-axis SIMD, delay ring and tiling are identical toPidFopdtBatchRolloutScore.

工程语义

IPDT rollout 与 FOPDT/SOPDT rollout 的候选评估框架相同:输入已辨识出的模型参数和一批 PID 候选,kernel 内部闭环递推,累计IAE/ISE/overshoot/settling_time/control_energy,计算固定 score 并选出每条回路的最优候选。

区别只在被控对象动态。IPDT 是积分对象:

y[k+1] = y[k] + b * u[k - delay]

它没有 FOPDT 的自回归衰减项a*y[k],因此过程本身没有自稳能力,输入作用会持续累积到输出上。对于液位、库存、积分型热量累积等对象,这类模型比一阶自稳模型更贴近。

PID 候选不由本算子生成;本算子只接收kp[M]ki[M]kd[M]并评估。候选可以来自整定规则、规则附近扰动、人工网格或外部优化器。

当前 batch rollout 已经融合了候选特征、候选评分和候选选优;如果使用本算子直接输出best_result/best_idx,通常不需要再接独立候选评分/选优算子。pid_step_response_features仅用于需要保留完整候选轨迹特征表的另一条模块化链路。

Current status:

  • correctness is validated against the in-process CPU reference (thebenchmarkprogram), max quality rel-err< 1e-3
  • the rollout is a serial time recurrence; the candidate axis is evaluated with a wide vector SIMD lane (kLane=768) so the inner loop is throughput-bound rather than latency-bound

See benchmark report for the measured results.

Inputs And Outputs

TensorDtypeShapeMeaning
bfloat32[B]per-step integration gain (y[k+1] = y[k] + b*u[k-delay])
delayint32[B]input delay, clamped to0..31in kernel
y0float32[B]initial output
spfloat32[B]setpoint
kpfloat32[M]PID candidate Kp
kifloat32[M]PID candidate Ki
kdfloat32[M]PID candidate Kd
best_resultfloat32[B, 8]best candidate metrics per loop
best_idxint32[B]best candidate index per loop

best_resultlayout:

best_score,best_kp,best_ki,best_kd,best_iae,best_ise,best_overshoot,best_settling_time

Build

cd prediction/ProcessControl/PIDModelFit/pid_ipdt_batch_rollout_score cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DSOC_VERSION=Ascend910B3 cmake --build build -j$(nproc)

Note:

  • this project now defaults toReleaseifCMAKE_BUILD_TYPEis not specified
  • onnode202, runtime typically needs:
export LD_LIBRARY_PATH=/usr/local/Ascend/ascend-toolkit/latest/lib64:$PWD/build:$PWD/build/lib:${LD_LIBRARY_PATH}

Test

Python reference test:

python tests/test_pid_ipdt_batch_rollout_score.py

NPU smoke:

./build/test_aclnn_pid_ipdt_batch_rollout_score 0

NPU / CPU benchmark:

./build/benchmark_pid_ipdt_batch_rollout_score 0 64 1024 1024 0 2 0 64 # candidate_tile=0 => auto (min(C, kLane=768))

Documents

  • Algorithm
  • API Reference
  • Benchmark Report

【免费下载链接】mat-chem-sim-pred面向工业领域,聚焦计算仿真、预测两大核心场景,构建面向流程工业"机理+数据"双轮驱动的领域计算层,推动AI for Science在材料化学领域的深度应用。项目地址: https://gitcode.com/cann/mat-chem-sim-pred

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

http://www.jsqmd.com/news/1120219/

相关文章:

  • PoseDiffusion实战应用:如何使用自定义数据集进行姿态估计的完整指南
  • CANN/asc-devkit Conv3DBackpropFilter Tiling使用说明
  • Laravel Vonage Notification Channel源码解析:短信发送的实现原理与流程
  • CANN/mat-chem-sim-pred FOPDT批量闭环评分API
  • 如何免费下载E-Hentai漫画档案:E-Hentai-Downloader完整使用指南 [特殊字符]
  • Gradle Docker插件版本管理:如何处理镜像标签和版本冲突的完整指南
  • ANSI转义序列实战:从终端色彩到动态界面
  • 如何用VisProg解决四大视觉任务?GQA/NLVR/图像编辑/目标标记实战教程
  • SENet-Tensorflow数据预处理详解:CIFAR-10数据集加载与增强技巧
  • jqjq REPL使用指南:交互式JSON查询与处理的终极技巧
  • 文本嵌入实战指南:TF-IDF、word2vec与BERT选型避坑手册
  • 昇腾AI处理器GlobalTensor形状获取
  • CANN/GE自定义算子开发指南
  • CANN/cannbot-skills:环境快照
  • Obsidian-zola社区指南:如何贡献代码和参与开发
  • AI 图标生成入库:漂亮图标还要过语义和网格检查
  • Packtpub-crawler通知系统详解:邮件、IFTTT、Pushover多平台提醒设置指南
  • CANN/asc-devkit SIMD数据加载API
  • CANN/Ascend C Conv3D Tiling构造函数
  • MCPJungle与Context7集成教程:获取开源库文档从未如此简单
  • 如何免费高效浏览E-Hentai?Android平台终极神器EhViewer使用指南
  • Juggl:Obsidian终极图视图插件 - 革命性知识图谱可视化工具完全指南
  • svu与CI/CD集成实战:自动化发布流程的终极解决方案
  • 大一数学竞赛备赛终极指南:nwpu-cram题型与技巧全解析
  • jinjava错误处理:调试和修复模板问题的完整指南
  • SENet-Tensorflow实战教程:在CIFAR-10数据集上训练ResNeXt模型
  • BigFunctions贡献指南:如何为开源社区添加新的函数
  • Instatic与AI写作:内容生成与优化工具集成指南
  • GhostDB核心架构揭秘:从LRU缓存到AOF持久化的完整实现
  • 如何快速下载E-Hentai画廊:E-Hentai Downloader完整使用指南