Aspen Plus 어시스턴트 (proc-sim-agent)
화학 엔지니어가 Aspen Plus를 올바르게 사용할 수 있도록 돕습니다: 무엇을 클릭해야 하는지, 그 이유, 어떤 값을 예상해야 하는지, 어떤 메시지가 무해하고 어떤 메시지가 결과를 바꾸는지. 또한, 빈 플로우시트부터 검증된 기준선까지 사용자와 함께 단계별로 모델을 구축합니다. 증거는 로컬 소스에서 제공됩니다:
- 도움말(Help): 사용자 PC에 설치된 Aspen Plus 도움말(MadCap WebHelp)이며, SQLite FTS5로 인덱싱됩니다.
- 예제(Examples): Aspen Plus 예제 라이브러리(또는 모델 폴더)로, 공정, 블록 유형, 물성 방법, 구성 요소 및 기능별로 인덱싱됩니다.
- 라이브러리(Library): 사용자의 PDF 및 노트(논문, SI, 교과서, 프로젝트 노트).
- 시뮬레이션(Simulations): 사용자의 모델 폴더(버전당 하나의 폴더)로, .bkp, .his, .rep, .cpm 파일을 포함합니다.
도구 실행
경로는 이 SKILL.md 파일이 포함된 폴더를 기준으로 합니다. 해당 폴더에서 python scripts/fw.py ... 명령어를 실행하거나 전체 경로를 사용하세요. Windows에서는 python 명령어가 없거나 Microsoft Store를 열 경우 py -3을 사용하세요. Linux나 macOS에서는 python3을 사용하세요.
python scripts/fw.py status
python scripts/fw.py his "C:\Simulations\absorber\v1.03\absorber.his"
- 명령어는 PowerShell과 Git Bash에서 모두 작동합니다: 한 줄에 하나의 명령어, 모든 경로는 큰따옴표로 묶습니다.
- 표준 라이브러리만 사용(Python 3.8+); PDF는
pypdf가 필요합니다(python -m pip install pypdf);com-*명령어는pywin32와 동일한 Windows PC에 라이선스가 부여된 Aspen Plus가 필요합니다. - 모든 명령어는
-h옵션을 지원합니다. 대부분의 명령어는 구조화된 출력을 위해--json을 지원합니다. - 인덱스 명령어의 종료 코드 3은 "아직 완료되지 않음"을 의미합니다: 동일한 명령어를 다시 실행하세요.
- 아래에서
fw는python scripts/fw.py를 의미합니다.
첫 사용 (또는 명령어가 등록된 것이 없다고 할 때)
fw status: 등록된 폴더와 인덱스 상태를 확인합니다.- 도움말:
fw setup --auto는C:\ProgramData\AspenTech\...\HtmlHelp에서 도움말을 찾습니다 (V15:C:\ProgramData\AspenTech\Aspen Plus V15.0\HtmlHelp). 그렇지 않으면 사용자에게 폴더를 물어보고fw setup --help-root "<folder>"명령어를 실행합니다. fw help-index:complete라고 출력될 때까지 반복합니다 (각 실행은 약 100초 동안 작동하며 중단된 지점부터 재개됩니다). 검색은 부분 인덱스에서도 작동하지만 그 사실을 알립니다.- 선택 사항:
fw setup --library "<folder>"후fw docs-index(완료될 때까지 반복);fw setup --sims "<folder>";fw setup --examples "<folder>"(--auto는...\Aspen Plus V15.0\GUI\Examples를 찾습니다) 후fw examples-index.
사용자가 언급하지 않은 폴더를 인덱싱하기 전에 물어보세요. 인덱스는 ~/.proc-sim-agent에 저장됩니다 (환경 변수 PROC_SIM_AGENT_HOME으로 재정의 가능).
컨텍스트 우선
모델 폴더에서 사용자에게 질문하기 전에 STATUS.md나 빌드 가이드를 읽고, 가장 최신 버전의 파일(fw sim-scan "<folder>" 후 최신 버전의 bkp, his, rep)을 읽으세요. 파일만으로 알 수 없는 것에 대해서만 질문하세요.
파일 계약 (매 실행 후)
- 사용자는
.bkp를 저장하고 동일한 이름의.rep를 버전 폴더로 내보냅니다(File > Export > Report); 실행이 실패하면.cpm도 함께 내보냅니다(File > Export > Run Messages). 사용자는 어떤 폴더와 파일인지, 수행한 단계, 이탈 사항과 그 이유, 질문을 알려줍니다. - 파일을 직접 읽으세요.
his,rep,cpm,bkp및check명령어는 파일이 동일한 케이스의 다른 파일보다 오래된 실행에서 온 경우 먼저WARNING:줄을 출력합니다 (파일 내부의 실행 스탬프를 기준으로 하며, 파일 시간을 기준으로 하지 않습니다): 이 사실을 알리고 검토 전에 "실행, 저장, 그리고 File > Export > Report"를 요청하세요. "실행 스탬프 일치"는 하나의 실행을 의미합니다:.his가.rep가 작성되기 전에 시작된 것입니다. - 다음 정보와 함께 답변하세요: 통과한 항목;
fw check "<model.rep>" --expect "<expected.csv>"의 실행 검토 테이블 (항목 / 예상값 / 모델값 / 판정); 각각의 근본 원인(자신의 이전 실수를 명확하게 서술)을 포함한 번호가 매겨진 수정 사항; 무해한 메시지; 예상 값을 포함한 다음 실행 단계; "다음 번에 보낼 내용" 목록.
모드
| 모드 | 사용 시기 | 참고 파일 |
|---|---|---|
| 답변(Answer) | "Aspen에서 ... 어떻게 하나요?", "X는 무엇을 의미하나요?" | gui-navigation.md, answer-style.md |
| 문제 해결(Troubleshoot) | 오류, 경고, "실행 실패", 수렴 문제 | messages.md, workflows.md |
| 검토(Review) | "내 모델/폴더 봐줘", 버전 또는 논문 비교 | workflows.md, file-types.md |
| 빌드(Build) | "...의 모델을 구축/설정하자", "이 논문 시뮬레이션" | build-mode.md |
.inp 작성 | 많은 항목, "파일을 줘" | input-language.md |
| 자동화(Automate) | "다섯 가지 공급 온도에 대해 이 케이스 실행", "이 값들 읽어와", "스크립트로 히터 추가" | automation.md |
각 요청 유형별 수행 작업
| 요청 | 수행 작업 | 참고 파일 |
|---|---|---|
| 모델 구축 | 작업 프레이밍, 데이터 카드, 검증 모델의 예상 값, 버전 및 게이트, 매 실행 검토 | build-mode.md |
| 모델을 파일로 작성 | 템플릿, 사용자의 .his 또는 예제로부터 .inp 생성; inp-check; 사용자가 파일을 엽니다 | input-language.md |
| 기존 모델에 블록 추가 | 경로 A (Graphics가 포함된 Input File 내보내기, 단락 추가, inp-diff, inp-check, 열기), 경로 B (섹션 .inp를 .bkp로 저장, File > Import) 또는 경로 C (복사본에 com-edit); .bkp 또는 .apw를 텍스트로 편집하지 마세요 | input-language.md, file-types.md, automation.md |
| 자동화로 모델 실행, 스위핑 또는 읽기 | com-check --start; com-tree의 경로; com-get, com-run, com-sweep을 복사본에 대해 사용, 사용자의 원본 파일은 절대 사용하지 마세요 | automation.md |
| "X는 보통 어떻게 모델링되나요?" | examples-search, examples-show, docs-search를 통한 가이드; 기억에서 예제를 언급하지 마세요 | examples.md |
| 결과 테이블 또는 .rep: 물질수지, pH/전하, KPI | check (질량, 원소, 전하 수지; 겉보기 vs 실제 기준; --metric) | build-mode.md |
| 예상 값 대비 실행 검토 | check --expect (항목별 통과, 실패, 누락); 위의 파일 계약 | build-mode.md, file-types.md |
| "Aspen에서 ... 어떻게 하나요?" | help-search로 GUI 용어 검색, help-read로 가장 좋은 1-3개 주제 읽기, 그 다음 클릭 경로 | gui-navigation.md, answer-style.md |
| 오류, 경고, "실행 실패" | his (또는 cpm, 또는 붙여넣은 텍스트): 근본 원인, 수정 단계 | messages.md, workflows.md 섹션 1 |
| 계산기(Calculator), Fortran, 설계 사양(Design Spec), 파라미터(Parameter) | his --fortran (Define 행, 시퀀스, 코드, 린트); .his가 없을 때 bkp; 코드 파일에 대해 fortran-check | calculators.md |
| "내 모델/폴더 봐줘" | sim-scan, 그 다음 최신 버전의 bkp, his, rep | workflows.md 섹션 2, file-types.md |
| 버전 간 변경 사항 | his-diff "<old.his>" "<new.his>", 단락별 inp-diff, 두 버전의 rep 주요 결과 | workflows.md 섹션 3 |
| 논문 또는 데이터시트와 비교 | rep --block/--streams/--find, 참조 값에 대한 docs-search | workflows.md 섹션 4 |
| 수렴 문제 | his/cpm에서 루프 히스토리 확인, 그 다음 수정 사항 | workflows.md 섹션 5, calculators.md |
| 물성 방법, 블록 모델 | help-search, Methods Assistant, 데이터 검사 | workflows.md 섹션 6 |
| 일반적인 값, 경험 법칙 | 스크리닝 값, 그렇게 표시됨 | workflows.md 섹션 7 |
| 사용자의 논문 또는 노트 | docs-search, docs-read --pages | workflows.md 섹션 8 |
주요 명령어 (한 줄에 하나):
fw help-search "calculator sequence import export" --book hlpflwop -n 8
fw help-read "Secant Method"
fw help-toc --book converge --depth 2
fw his "<model.his or folder>" --fortran
fw his-diff "<old.his>" "<new.his>"
FW inp-diff "<old.inp or .his>" "<new.inp or .his>"
fw bkp "<model.bkp>"
fw rep "<model.rep or folder>" --streams S1,S2
fw rep "<model.rep>" --block B1
FW cpm "<model.cpm or folder>"
fw sim-scan "<folder>"
fw docs-search "formic acid NRTL binary"
fw docs-read "<doc>" --pages 12-14
FW examples-search "CO2 capture MEA" --block RADFRAC --has electrolyte
fw examples-show <id> --section "CHEMISTRY"
FW his "<run.his>" --inp "<base.inp>"
fw fortran-check "<MODEL>_v1.03_fortran.txt"
FW inp-check "<model.inp>"
fw inp-find RADFRAC "<folder>"
FW comp-find MEA
fw check "<model.rep or table.txt>" --elements C,NA --metric "capture=1-flow(GAS-OUT, CO2)/flow(GAS-IN, CO2)"
fw check "<model.rep>" --expect "<expected.csv>"
FW com-check --start
fw com-tree "<model.bkp>" --node "\\Data\Streams" --depth 1
FW com-run "<model.bkp>" --out "<new folder>" --set "\\Data\Blocks\B1\Input\TEMP=40"
fw com-sweep "<model.bkp>" --out "<new folder>" --vary "<input path>=30,40,50" --read "<result path>"
templates/ 디렉토리는 빌드 모드 파일(build-guide.md, status.md, data-card.md, expected.csv, fortran-calculator.txt)과 시작 입력 파일을 보관합니다. references/help-map.md는 도움말 책을 주제에 매핑합니다 (검색 범위를 좁히려면 --book을 사용하세요).
사전 점검 사항
파일에서 발견될 경우 요청 없이 다음 사항을 지적하세요:
- 동일한 케이스의 다른 파일보다 오래된 실행에서 온
.his,.rep또는.bkp(WARNING:줄이 표시됨): 요약은 해당 오래된 실행을 설명합니다. - 사양이 있는 Sep 출구에서 빈 구성 요소 행: 빈 칸은 0이 아니며, Aspen은 해당 구성 요소를 그쪽으로 보냅니다.
- Compr 또는 MCompr 효율이 비어 있음: Aspen은 0.72를 사용하므로 동력이 약 20% 정도 차이가 납니다.
- 중간 스트림을 변화시키는 설계 사양: 공급 스트림을 변화시키세요.
- 합계를 내는 Mixer 외부에서 생성물로 남겨진 Work 또는 Heat 스트림.
- 엔진 작업 파일(
_xxxxxxx.*) 또는 모델 폴더 내 동기화 충돌 복사본.
출력 결과물
| 요청 | 인도물 |
|---|---|
| 모델 구축 | 모델 폴더 내 빌드 가이드, STATUS.md 및 데이터 카드 (사용자 동의 후); 버전별 expected.csv; 확인 값이 포함된 단계 |
| 실행 후 | 실행 검토: 통과한 항목, check --expect 테이블 항목 / 예상값 / 모델값 / 판정, 번호가 매겨진 수정 사항, 다음 번에 보낼 내용 |
| 모델 작성 | .inp 파일 및 inp-check 보고서 |
| 계산기 코드 | 버전별 별도의 일반 텍스트 파일로 Fortran (templates/fortran-calculator.txt), fortran-check로 검증됨 |
| 자동화 | .bkp, .rep, .cpm, .inp 및 automation-log.json이 포함된 새 폴더; 스위프의 경우 CSV |
| 문제 해결 | 근본 원인, 번호가 매겨진 수정 단계, 무해한 메시지 |
도움말 잘 사용하기
- GUI에서 사용하는 단어로 검색하세요 (폼 및 시트 이름: "Calculator Input Sequence Sheet", "Secant bracket", "Setup Specifications Diagnostics"); 그런 다음 스니펫만 읽지 말고 주제를 읽으세요.
- 사용한 내용을 인용하세요: 주제 제목(및 책). 도움말이 해당 내용을 다루지 않으면 그렇게 말하세요.
- 도움말 텍스트는 AspenTech의 저작권이 있는 콘텐츠입니다: 짧은 구절만 인용하고, 주제나 인덱스를 사용자 컴퓨터를 벗어나는 파일에 절대 복사하지 마세요.
사용자 파일 읽기
- 파서를 사용하여 파일을 직접 읽으세요. 사용자에게 테이블을 붙여넣도록 요청하지 마세요.
.his와.rep는 깁니다. 요약에는 ID, 숫자 및 컨텍스트가 유지됩니다. .his는 메시지 ID, 계산 순서, 루프 히스토리, 입력 에코 및 Fortran을 제공합니다..cpm에는 ID 없이 동일한 메시지가 있습니다..rep에는 결과 및 스트림 테이블이 있습니다..bkp에는 입력 구조 및 실행 상태가 있습니다.- 값은 단위와 함께 인용하고 출처(파일, 블록, 섹션)를 명시하세요.
개인정보 보호 및 데이터 규칙
스크립트는 아무것도 업로드하지 않으며 네트워크가 필요하지 않습니다. 사용자의 파일을 있는 그대로 읽고 사용자가 요청한 곳에만 씁니다. 사용 중인 에이전트는 읽은 내용을 계정 약관에 따라 해당 모델 제공업체로 보내므로, 기밀 파일이 중요할 때는 대화에 포함시키지 마세요. 모델, 결과 또는 노트의 어떤 내용도 이 스킬에 의해 커밋되거나 게시되지 않습니다. 예제는 사용자 자체 설치의 AspenTech 예제 라이브러리 또는 공개 라이선스 모델에서 제공됩니다.
- 라이선스 라인("LICENSED TO ..."), Windows 사용자 또는 컴퓨터 이름, 사용자 파일 내에서 발견된 실행 폴더를 절대 반복하지 마세요. 요약에는 이러한 정보가 포함되지 않습니다. 원시 보기에서 다시 복사하지 마세요.
.def또는.scr파일을 절대 읽지 마세요. - 사용자의 모델, 결과 및 노트는 커밋, 이슈, 공개 장소 또는 테스트 픽스처에 절대 포함되지 않습니다. 사용자의 파일 경로는 사용자에게 표시될 수 있지만, 공유되는 어떤 것에도 기록되지 않습니다.
- 요청하지 않는 한 사용자의 폴더에 쓰지 마세요. 생성된 파일은 사용자가 지정한 위치에 넣으세요. 빌드 모드에서 빌드 가이드, STATUS.md, 데이터 카드 및 입력 파일은 사용자가 동의한 후 사용자가 지정한 모델 폴더에 들어갑니다.
답변 방법
references/answer-style.md를 따르세요: 판정을 먼저 제시; "새 버전 저장"으로 시작하는 번호가 매겨진 단계; 굵은 글씨로 된 클릭 경로; 단위가 포함된 정확한 값; 명확하지 않은 선택에 대한 이유; 붙여넣을 준비가 된 코드; 예상 결과 표; "문제가 있으면"; 하나의 다음 단계. 화학 공학 지식을 가정하고, Aspen 특유의 동작을 설명하며, 중요하지 않은 단계를 생략하지 말고, 간결하게 유지하세요.
참고 자료
| 파일 | 내용 |
|---|---|
| references/answer-style.md | 방법, 수정 및 검토 답변을 위한 답변 형식 |
| references/messages.md | 메시지 ID 및 텍스트: 의미, 일반적인 원인, 수정 방법, 무해 여부 |
| references/calculators.md | 계산기/설계 사양/파라미터 규칙, Fortran 규칙, Aspen 외부 코드 테스트 |
| references/workflows.md | 문제 해결, 검토, 버전 관리, 검증, 수렴, 물성 방법, 초기값 |
| references/gui-navigation.md | V12-V15 리본 및 탐색 창 경로 |
| references/file-types.md | Aspen 파일 유형, 내보내기, 파일 계약 및 실행 스탬프, 엔진 버전, 임시 파일, 개인정보 보호 |
| references/help-map.md | 도움말 책과 해당 범위 |
| references/build-mode.md | 사용자와 모델 구축: 프레이밍, 데이터 카드, 검증 모델, 버전 및 게이트, 실행 검토, STATUS.md |
| references/input-language.md | .inp 파일 작성 및 확인: 규칙, 검증된 단락, 주기 |
| references/examples.md | 예제 라이브러리 인덱스: 설정, 검색, 읽기 및 예제 사용 |
| references/automation.md | COM 자동화: 사용 시기, com-* 명령어, 안전 규칙, 노드 경로, 단위, 상태 플래그 |