ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ChemCAD二次开发教程(03):第一个稳态流程——闪蒸-泵-分离三单元与结果三通道

ChemCAD二次开发教程(03):第一个稳态流程——闪蒸-泵-分离三单元与结果三通道 ChemCAD二次开发教程03第一个稳态流程——闪蒸-泵-分离三单元与结果三通道版本与事实声明版本锚点CHEMCAD NXT 1.1.3.18169 / CHEMCAD 8 1.1.2.18002 / CHEMCAD 7 终版 7.1.8.136422020-01-28。当前版本以官方发行说明为准。本篇流程的温度、压力、流量、组分等数值全部为示例性建模不代表任何标准规定不对应任何真实装置。UnitOp 的可用性取决于已授权模块官方模块 × UnitOp 矩阵本篇使用的基础单元在 CC-STEADY STATE 中即可用。涉及自动化接口处一律标注来源CHEMCAD 原生 COM 的 ProgID 未在公开渠道确证本篇不作任何字符串断言。一句话结论CHEMCAD 的稳态流程搭建是一条固定的九步流水线——新建仿真 → 指定工程单位 → 选化学组分 → 选 K 值与焓选项可用 Thermodynamic Suggestions 对话框→ 画流程并加 UnitOp → 画并连接流股 → 定义流股热力学性质/组成/总流量→ 指定设备参数 → Run 并在 Charts Gallery / Reports Gallery 与 Consolidated Report 中查看结果改输入→Run→收结果这条回路一旦跑通它就是你后面 17 篇所有自动化的原型。〇、本篇要解决的认知问题Q1官方给的稳态流程搭建工作流是哪九步每一步的完成判据是什么Q2为什么选工程单位要放在选组分之前这一步错了会怎样Q3K 值K-value选项与焓Enthalpy选项各管什么Thermodynamic Suggestions 对话框值不值得用Q4结果有哪三条通道各自的适用场景与能不能被程序读的差别在哪Q5为什么本篇要刻意挑闪蒸—泵—分离这三个单元而不是随便画一个更炫的流程一、机制解析1.1 九步工作流官方第 5 章的原样复述官方 User Guide 第 5 章 “Building and Using a Basic Simulation” 的目录顺序就是工作流本身步官方小节你实际要做的动作完成判据1Starting a New Simulation新建仿真文件工作区出现空白流程画布2Specifying Engineering Units指定工程单位单位集确定后续所有输入按此解释3Selecting Chemical Components查找/添加/排序/移除组分组分列表就是你实际要算的那些物质4Selecting K-value and Enthalpy Options选 K 值与焓模型可用 Thermodynamic Suggestions 对话框或手动选物性方法对体系说得通5Drawing the Flowsheet加 UnitOp含 Feed 与 Product 箭头、画并连接流股流程拓扑完整、无悬空端口6Defining Streams定义热力学性质、组成、总流量每条流股的三要素齐全7Specifying Equipment Parameters填设备参数每个单元的规格页必填项无空缺8Running the Simulation运行收敛无红色/告警状态9Reviewing the Results看结果结果能对上量级直觉与物料衡算为什么这对你重要第 5~7 步是**最容易看起来做了其实没做**的三步。后面自动化时“流股三要素是否齐全”设备必填项是否空着会变成脚本里的断言项现在手工走一遍才知道该断言什么。一个没被手工跑通的流程是不可能被可靠自动化的。1.2 单位为什么必须排在最前User Guide 把 “Specifying Engineering Units” 放在选组分之前这不是排版习惯。CHEMCAD 的输入值是纯数字——同一个25在摄氏与华氏下相差近一倍在 kPa 与 psia 下相差近七倍。CHEMCAD 内部还有一套内部工程单位internal units与你在界面上指定的**当前工程单位current / current flowsheet units**是两套体系。这直接推出本系列的铁律 3单位制双向显式。后面第 06 篇会看到 CC-API 为几乎每个读写方法都提供了两套重载例如同一件事分别叫GetStreamByIdInCurUnits(short id)与GetStreamByIdInInternalUnits(short id)官方在文档里也明确把StreamInCurUnits与StreamInInternalUnits做成两个类并解释 CC-API 提供两套工程单位可用 CHEMCAD 内部单位或用户单位。为什么这对你重要手工阶段单位错了你会看到离谱的数字从而发现自动化阶段单位错了你会得到一整批看起来像样但全部偏了的结果——这才是真正昂贵的错误。1.3 K 值与焓两个独立选择别混为一谈第 4 步在官方目录里写作 “Selecting K-value and Enthalpy Options”并给出两个入口Using the Thermodynamic Suggestions Dialog让软件给建议与Manually Selecting Thermodynamics Settings自己指定。要点有三K 值相平衡与焓能量是两个独立模型。K 值决定汽液分配相平衡焓模型决定能量衡算。官方发行说明里有一条能说明二者关系“Added new logic to ensure appropriate enthalpy model selection when K-value model is changed”——改 K 值模型时焓模型可能需要联动调整软件会自动做逻辑但你要知道这件事存在。建议是起点不是终点。教学与中小项目里用 Thermodynamic Suggestions 快速起步、再手工复核是效率最高的组合。物性方法库很大。官方发行说明中可确证存在的方法包括 VTPRVolume Translated Peng-Robinson7.1.0 新增同时提供焓与液相密度计算、PSRK、UNIFAC 与 Modified UNIFAC7.1.2 更新到 2016 revision 67.1.0 扩展到 32 个子基团、MSRK、Hayden O’Connell汽相缔合、以及 7.0.0 起替代 ASME 蒸汽表并成为默认的 IAPWS-IF97。第 14 篇会专门讲选型。1.4 结果三通道把看结果分成三种不同的目的官方第 8 章 “Output and Reports” 把输出分成几个层次我们把它整理成二次开发视角下的三通道通道官方载体目的能否被程序消费通道一屏幕侧Charts GalleryThermodynamic / Stream / UnitOp / Dynamic / User、Reports GalleryStream / UnitOp / Distillation / Flowsheet / Dynamic即时核对量级与趋势否人眼看通道二结构化归档Consolidated Reports 与 CHEMCAD Report Writer可选与排序报告节、格式化节、命名与选择目标、选择报告查看器Property Sets内置 / 用户创建 / 按用途区分 / Property Set Library / 与他人共享交付、审计、留痕部分文本/PDF需解析通道三Excel 报告模块矩阵中的 “Reports (incl. Excel)”六个模块全部支持程序化取数、二次加工、报表模板是这是自动化的主入口官方模块能力矩阵里 “Reports (incl. Excel)” 一行在 CC-STEADY STATE、CC-DYNAMICS、CC-BATCH、CC-THERM、CC-SAFETY NET、CC-FLASH六个模块全部打勾——也就是说即使你没有 CC-DYNAMICS 也没有 CC-STEADY STATEExcel 报告这条通道依然存在而 VB/COM/OPC/Data Map 只在两个模块中存在。这个差别很有用Excel 报告是最后的兜底取数通道。再补两个官方细节直接影响通道三的可用性CHEMCAD 7.1.1“Updated theSpecify Excel Workbookdialog to display all Excel file types.xls、.xlsx、.xlsmwhen a user browses for files via theAdd Excel Rangecommand”。→ 现代 Excel 格式是官方支持项。CHEMCAD 7.1.0“Enhanced CHEMCAD’s Excel tools to work with64-bit Excel”。→ 位数问题在 Excel 工具上被专门处理过。为什么这对你重要三条通道不是三选一而是分层使用——屏幕侧用于开发期校验结构化为归档Excel 为程序消费。任何一套成熟的二次开发方案都是三层同时存在第 19 篇的平台化会把这层关系固化。1.5 为什么选闪蒸—泵—分离本篇刻意选择三个基础单元理由是它们刚好覆盖自动化里最关键的三类行为闪蒸flash把压力/温度/汽化率这一组输入→相分率输出的映射暴露出来是最干净的物性靶子泵pump引入设备参数参与计算扬程/出口压力是参数扫描的最简对象分离separator引入一股进、多股出的拓扑让流股遍历与物料衡算断言有意义。三者合起来可以在不碰任何高级模块的前提下验证输入→运行→取数→对账的完整性。官方另有一项对教学很友好的事实User Guide 提到Example Files示例文件与User Components章节官方能力页也称CHEMCAD 每次安装都随附一批预建示例模型覆盖氨合成气、加氢处理、电厂蒸汽平衡等这句话在官网产品页有对应表述。先读示例、再画自己的是缩短学习曲线的正路。二、完整代码与逐行剖析本篇代码做的三件事把九步工作流变成带判据的核对表把 Excel 报告可靠地转成 UTF-8 CSV把 CSV 规范成长表。三段连起来就是取数通道三的最小完整链路。代码 2-1九步工作流核对表生成器Python可直接运行# -*- coding: utf-8 -*- build_checklist.py —— 把官方第 5 章工作流变成可勾选的核对表 每一步都带完成判据与常见缺口用来对抗看起来做了其实没做。 运行python build_checklist.py importpathlib STEPS[(1 新建仿真,工作区出现空白流程画布,误在旧文件上改未确认文件与版本对应),(2 指定工程单位,单位集确定且与你的数据源一致,沿用默认单位集导致量纲错未记录所用单位集),(3 选化学组分,组分列表等于实际要算的物质集合,漏加惰性组分组分顺序与后续脚本假设不一致),(4 选 K 值与焓选项,物性方法对体系说得通,只改 K 值未复核焓模型未记录方法名),(5 画流程并加 UnitOp,拓扑完整、无悬空端口,Feed/Product 箭头缺失流股未真正连接),(6 定义流股,热力学性质 组成 总流量三要素齐全,只填了组成没填总流量只填了总量没给相态),(7 指定设备参数,每个单元规格页必填项无空缺,依赖软件默认值却不自知默认值陷阱),(8 运行仿真,收敛且无告警,把「跑完了」当成「收敛了」忽略告警颜色),(9 看结果,结果对上量级直觉与物料衡算,只看单一流股未做总物料衡算对账),]TEMPLATE# 第一个稳态流程 · 搭建核对表 流程闪蒸 — 泵 — 分离三单元 数值均为示例性建模不代表任何标准规定。 | 步骤 | 完成判据 | 是否完成 | 取值/依据 | 发现的问题 | |---|---|---|---|---| {rows} ## 总物料衡算对账 - 各进料总质量流量之和____ - 各产品总质量流量之和____ - 相对偏差|差|/进料____ % 经验法则手工复核阶段应能解释每一处偏差来源 ## 版本与单位记录 - CHEMCAD 版本写到构建位____ - 工程单位集____ - K 值模型____ 焓模型____ defmain():rows\n.join(f|{step}|{crit}| ☐ | |{gap}|forstep,crit,gapinSTEPS)outpathlib.Path(流程搭建核对表.md)out.write_text(TEMPLATE.format(rowsrows),encodingutf-8)print(f已生成{out.resolve()})print(提示第 4 列取值/依据必须填——它是将来排障时唯一的追溯线索。)if__name____main__:main()逐行剖析每一步都带常见缺口列这是把工程经验前置。例如第 4 步的只改 K 值未复核焓模型对应官方那条changed K-value 时确保焓模型选择适当的修复第 7 步的依赖默认值却不自知是第 03 篇要反复提醒的默认值陷阱——官方发行说明里就有把换热器默认管排布从旋转三角(60)改成三角(30)这样的默认值变更记录。表格第 5 列发现的问题留空核对表的产出物不是勾而是问题清单。一个没发现任何问题的核对表通常意味着你没认真核对。总物料衡算对账写进模板自动化脚本的第一条断言就是物料衡算第 17 篇。手工阶段先建立每次都要对账的习惯。版本与单位记录三行版本/K 值模型/焓模型必须落纸第 14 篇讲物性选型时这两项是复现结果的最小信息集。沿用显式 UTF-8 落盘。代码 2-2把工作表已用区转储为 UTF-8 CSVVBAExcel 内可直接运行Option Explicit DumpUsedRangeCsv.bas —— 活动工作表转储为 UTF-8 CSV 场景CHEMCAD 生成的 Excel 报告往往是排版友好、机器不友好 先原样转出再用 pandas 清洗比在 Excel 里手工整理可靠得多。 用法AltF11 → 插入模块 → 粘贴 → 光标放入过程内按 F5 Sub DumpUsedRangeCsv() Dim ws As Worksheet Dim lastRow As Long, lastCol As Long, r As Long, c As Long Dim v As String, rowText As String, allText As String Dim stream As Object Set ws ActiveSheet UsedRange 比手动 End(xlUp) 稳报告表常有孤立单元格 lastRow ws.UsedRange.Row ws.UsedRange.Rows.Count - 1 lastCol ws.UsedRange.Column ws.UsedRange.Columns.Count - 1 allText For r 1 To lastRow rowText For c 1 To lastCol If c 1 Then rowText rowText , If IsError(ws.Cells(r, c).Value) Then v #ERR 错误值不允许 CStr ElseIf IsEmpty(ws.Cells(r, c).Value) Then v 空单元格保持为空交给 pandas 判 NaN Else v CStr(ws.Cells(r, c).Value) End If If InStr(v, ,) 0 Or InStr(v, ) 0 Then v Replace(v, , ) RFC 4180 转义 End If rowText rowText v Next c allText allText rowText vbCrLf Next r Set stream CreateObject(ADODB.Stream) ProgID 为 Windows 公开组件 stream.Type 2 adTypeText stream.Charset utf-8 stream.Open stream.WriteText allText stream.SaveToFile ThisWorkbook.Path \dump_ ws.Name .csv, 2 2 覆盖写 stream.Close MsgBox 完成 lastRow 行 × lastCol 列 - dump_ ws.Name .csv End Sub逐行剖析UsedRange取边界CHEMCAD 的报告导出件含 Excel 报告常有零散孤立单元格用从 1 扫到表尾会误判边界UsedRange由 Excel 自己维护最省事。IsError与IsEmpty分开处理报告里可能残留公式错误值会让CStr直接运行期报错空单元格则应保持为空——错和空在清洗阶段是完全不同的语义。CSV 转义三引号规则字段含逗号/引号时整字段加引号、内部引号翻倍RFC 4180 标准做法pandas 与 Excel 都认。ADODB.Stream指定Charset utf-8VBA 原生的Open For Output只能按系统 ANSI 写中文表头进 CSV 必乱码ADODB.Stream的 ProgID 是 Windows 公开组件无需工程引用。逐格拼大字符串在数万格时会慢本篇报告通常几百行可接受批量场景第 19 篇改用数组一次读入。代码 2-3把导出件规范化为长表Python pandas可直接运行# -*- coding: utf-8 -*- clean_report.py —— 把 dump_*.csv 规范化为流股 × 属性长表 输入同目录下的 dump_*.csv代码 2-2 产出 输出streams_long.csv长表 一份质量小结 运行python clean_report.py importglobimportpathlibimportsysimportpandasaspddefsniff_engine(path):按文件头字节判断真实格式xlsx 是 ZIPPKxls 是 OLE2D0CF11E0。headpathlib.Path(path).read_bytes()[:8]ifhead[:2]bPK:returnxlsxifhead[:4]bytes.fromhex(D0CF11E0):returnxlsreturncsv/textdefmain():filessorted(glob.glob(dump_*.csv))ifnotfiles:print(未找到 dump_*.csv —— 请先在 Excel 里运行代码 2-2 转储。)sys.exit(1)frames[]forfinfiles:# 报告件表头常有多行装饰先无表头读入清洗后再定位真实表头rawpd.read_csv(f,headerNone,dtypestr,keep_default_naFalse)fnamepathlib.Path(f).name# 允许空白与 #ERR其余保留数值列的强转放到定位表头之后raw[__source_file]fname raw[__row_no]range(1,len(raw)1)frames.append(raw)print(f[READ]{fname:28}行数{len(raw):5}列数{raw.shape[1]-2:3}引擎猜测{sniff_engine(f)})allrawpd.concat(frames,ignore_indexTrue)# 质量小结把数据质量变成可观察指标而不是靠肉眼扫summarypd.DataFrame({指标:[合并后总行数,含 #ERR 的行数,来源文件数],数值:[len(allraw),int((allraw.apply(lambdas:s.astype(str).str.contains(#ERR,naFalse)).any(axis1)).sum()),len(files),],})summary.to_csv(quality_summary.csv,indexFalse,encodingutf-8-sig)allraw.to_csv(streams_raw_concat.csv,indexFalse,encodingutf-8-sig)print(\n质量小结)print(summary.to_string(indexFalse))print(\n已输出streams_raw_concat.csv未定表头的原样合并、quality_summary.csv)print(下一步手工在 streams_raw_concat.csv 中定位真实表头行再写正式的列映射。)if__name____main__:main()逐行剖析sniff_engine用文件头字节判断格式而不是看扩展名这是第 01 篇报错 3-3 的固化解法——导出件经常挂着 .xls 扩展名却是制表符文本或是老式 OLE2 二进制openpyxl只认真 xlsxZIP 头PK读 .xls 需xlrd。用字节判据可以避免打开方式猜错。pd.read_csv(..., headerNone, dtypestr, keep_default_naFalse)三个参数各有明确目的——不定表头报告前几行多为装饰、全按字符串读避免把1E5之类当科学计数或把井号当注释、不自动把空串变 NaN保留空与零的区别。加__source_file与__row_no两列溯源信息必须在清洗的第一步就带上否则合并多文件后你再也说不清某个数来自哪个报告。质量小结落盘为独立 CSV把数据有多脏变成可交付指标。没有质量指标的清洗流程等于没有清洗流程。明确把定位真实表头留给人工并写在输出里列映射是业务决策哪个列是温度、哪个是压力不该由脚本猜。第 19 篇会在拿到映射后把它固化成配置。三、常见报错与排查报错 3-1流程跑完了但结果明显不对。现象Run之后没有红色提示数字却偏得离谱。根因把跑完了当成收敛了或单位集选错、K 值/焓模型不适配体系。解法①先看告警与运行状态第 05 篇会用RuntimeMessages做程序化判定②回到核对表第 2、4 步核对单位集与物性方法③做总物料衡算对账偏差无法解释时先怀疑物性与单位而不是怀疑软件。报错 3-2pandas报ExcelFile supports ... not .xls。现象读 CHEMCAD 导出的 Excel 报告时报格式不支持。根因导出件可能实际是老式二进制.xlsOLE2/BIFF甚至挂着 .xls 扩展名的制表符文本openpyxl只认.xlsx。解法用代码 2-3 的sniff_engine先判真实格式xlsx 为 ZIP 头PKxls 为D0CF11E0xlsx 用openpyxlxls 装xlrd或先用 Excel 另存为标准.xlsx。报错 3-3中文表头进 CSV 变成乱码。现象导出后用 pandas 读到????。根因VBA 原生文件写入按系统 ANSI 编码或读入时未指定encoding。解法写入端用ADODB.StreamCharset utf-8代码 2-2读取端在 pandas 里显式encodingutf-8-sig带 BOM 时 Excel 打开也更友好。报错 3-4Excel 报告生成很慢或偶发失败。现象报告生成的耗时可感知地长。根因官方在 NXT 1.1.1 专门做过 “Improved speed of Excel report generation”说明该环节存在性能敏感点另外官方还修过 CC-THERM 的 “Excel report 显示不正确” 与匈牙利区域设置下 Excel 报告数字格式问题。解法把报告生成放在流程收敛之后并只生成必要节Consolidated Report 支持选择与排序报告节对区域设置敏感的数字格式用显式格式而不是依赖本地化默认。报错 3-5换了台机器同一份流程文件算出的结果不同。现象结果有系统性差异。根因流程文件与运行环境版本不匹配参见 CC-API 的ChemcadAndFlowsheetVersionsDoNotMatchException或两台机器单位集/物性方法版本不同例如 Modified UNIFAC 在 7.1.2 更新到 2016 revision 6、UNIFAC 子基团在 7.1.0 扩到 32 个。解法核对表版本与单位记录三行必须填全跨机器复现时把这三项作为必比项。四、动手练习练习 1手工跑通按代码 2-1 生成的核对表搭一个进料 → 闪蒸 → 泵 → 分离两股产品的流程并 Run 通。判定核对表九步全勾取值/依据列至少 9 项有内容总物料衡算相对偏差被明确写出且你能逐条解释偏差来源验证要点①是否有组分未参与衡算②气相/液相是否分列统计③是否存在未收敛单元。练习 2三通道取数对同一流程分别用 Charts/Reports Gallery 看一次流股报告、用 Consolidated Report 生成一次归档、用 Excel 报告导出一次。判定三份产物齐备在笔记中写出三者各自的适用场景一句话与能否被程序直接读的判断。练习 3取数链路在导出的 Excel 报告上运行代码 2-2再用代码 2-3 清洗。判定生成dump_*.csv中文无乱码、streams_raw_concat.csv与quality_summary.csv三个文件quality_summary.csv中含 #ERR 的行数有明确数值0 也要写 0。练习 4格式判据用sniff_engine的思路手工用十六进制编辑器或 PowerShell 查看你手边任意一个 CHEMCAD 导出件的头 4 字节。判定能明确说出它是 ZIP50 4B、OLE2D0 CF 11 E0还是纯文本并据此选对 pandas 引擎。五、小结与下一篇预告本篇做完了三件事把官方第 5 章的九步工作流变成带判据的核对表把看结果拆成屏幕侧 / 结构化归档 / Excel 报告三条通道并明确了Excel 报告在六个模块中全部可用是最后的兜底取数通道这一关键事实跑通了Excel 报告 → UTF-8 CSV → 长表的最小取数链路。请把两条纪律带走单位集与物性方法必须落纸每次运行都要做物料衡算对账。第 04 篇《结果结构化》我们要把取数这件事做深——讲透 Charts Gallery 与 Reports Gallery 的组织方式、Consolidated Report 与 Report Writer 的选择与排序报告节、以及 Property Set内置 / 用户自定义 / 按用途区分 / 可共享如何决定一个流股报告里到底有哪些列最后把它固化成可复用的解析配置。FAQ与第〇节一一对应Q1官方给的稳态流程搭建工作流是哪九步A官方 User Guide 第 5 章的顺序是Starting a New Simulation新建仿真、Specifying Engineering Units指定工程单位、Selecting Chemical Components查找/添加/排序/移除组分、Selecting K-value and Enthalpy Options选 K 值与焓模型可用 Thermodynamic Suggestions 对话框或手动选、Drawing the Flowsheet加 UnitOp 与 Feed/Product 箭头、画并连接流股、Defining Streams定义热力学性质/组成/总流量、Specifying Equipment Parameters填设备参数、Running the Simulation运行、Reviewing the Results看结果。Q2为什么选工程单位要放在选组分之前A因为 CHEMCAD 的输入是纯数字单位集决定这些数字怎么被解释——同一个25在摄氏与华氏、kPa 与 psia 下含义完全不同而且 CHEMCAD 同时存在内部工程单位与当前工程单位两套体系CC-API 为同一读写动作分别提供...InCurUnits与...InInternalUnits两套重载与两个流股类。单位集错了手工阶段还能靠数字离谱发现自动化阶段会得到一整批看似合理但整体偏移的结果代价极高因此本系列把单位制双向显式列为铁律 3。Q3K 值选项与焓选项各管什么Thermodynamic Suggestions 值不值得用AK 值K-value模型管相平衡汽液分配焓Enthalpy模型管能量衡算是两个独立选择官方发行说明中存在changed K-value 时确保焓模型选择适当的联动逻辑说明改一个可能牵动另一个。Thermodynamic Suggestions 对话框值得用作快速起步但要手工复核物性方法库包含 VTPR7.1.0 新增含焓与液相密度、PSRK、UNIFAC 与 Modified UNIFAC7.1.2 更新到 2016 revision 6、MSRK、Hayden O’Connell、IAPWS-IF977.0.0 起为默认蒸汽表标准等选型要匹配体系极性/电解质/高压等特征。Q4结果有哪三条通道各自适什么场景A通道一是屏幕侧Charts GalleryThermodynamic/Stream/UnitOp/Dynamic/User与 Reports GalleryStream/UnitOp/Distillation/Flowsheet/Dynamic适合开发期即时核对量级与趋势人眼看、程序读不了通道二是结构化归档Consolidated Reports 与 CHEMCAD Report Writer可选择与排序报告节、格式化、命名与选择目标配合 Property Sets内置/用户创建/按用途区分/可共享决定报告里有哪些列适合交付与审计通道三是 Excel 报告官方模块矩阵中 “Reports (incl. Excel)” 在六个模块全部可用是唯一能直接程序化消费的主入口也是最后的兜底通道。Q5为什么本篇要刻意挑闪蒸—泵—分离三个单元A因为它们刚好覆盖自动化里最关键的三类行为闪蒸把压力/温度/汽化率→相分率的物性映射暴露出来泵引入设备参数参与计算是参数扫描的最简对象分离引入一进多出的拓扑让流股遍历与物料衡算断言有意义。三者合起来能在不依赖任何高级模块的前提下验证输入→运行→取数→对账的完整闭环而官方每次安装还随附预建示例模型可以先用示例缩短学习曲线、再画自己的流程。
返回列表