단위 10 / 11

Python을 사용한 엔지니어링 계산 자동화

이득:

  • AI 기반 Python 코드를 사용하여 엔지니어링 계산, 단위 관리 및 데이터 처리를 자동화하는 기능
  • 단위 확인, 알려진 결과 테스트 및 엣지 케이스를 통해 AI 코드를 검증하는 기능
  • 반복 가능하고 추적 가능하며 버전 관리가 가능한 계정 문서를 생성하는 습관을 들이는 능력

기계 공학에서는 동일한 계산이 반복해서 수행됩니다. 즉, 부품군의 응력, 작동 지점 범위에 대한 펌프 전력, 다양한 온도에서의 특성 표입니다. 수동으로 수행하는 것은 느리고 오류가 발생하기 쉽습니다. Python(엔지니어링을 위한 풍부한 라이브러리를 갖춘 배우기 쉬운 프로그래밍 언어)은 이러한 반복을 자동화합니다. 이를 통해 계정을 반복, 추적 및 버전 관리할 수 있습니다. 인공 지능(AI) Python은 수식을 함수로 변환하고, 단위 관리를 추가하고, 데이터를 읽고, 그래프를 그리는 등 코드 생성 속도가 놀라울 정도로 빠릅니다. 그러나 여기에는 위험한 오해가 있습니다. 코드가 오류 없이 작동한다고 해서 코드가 올바르게 계산된다는 의미는 아닙니다. AI 코드는 잘못된 단위 변환, 잘못된 수식 또는 극단적인 경우로 인해 잘못된 결과를 자동으로 반환할 수 있으며, 프로그램은 오류 없이 계속 실행됩니다. 그렇기 때문에 모든 엔지니어링 코드가 AI로 생성됩니다. 알려진 결과가 있는 테스트 입력은 단위(크기) 확인 및 엣지 케이스 시험을 통한 검증 없이는 신뢰할 수 없습니다. 이번 단원에서는 AI를 사용하여 Python 계정 자동화를 안전하게 설정하는 방법을 알아봅니다.

왜 코드 계정인가? 추적성 및 재현성

수동 계산은 일회성입니다. 입력이 변경되면 처음부터 수행되고 중간 단계가 손실됩니다. 코드에서 수행되는 계산은 문서와 같습니다. 입력, 수식 및 출력이 명확하게 작성됩니다. 입력을 변경하면 몇 초 안에 새로운 결과를 얻을 수 있습니다. 버전 관리(git 등)를 사용하면 "어느 날짜에 어떤 값으로 계산했는지"를 추적할 수 있습니다. 이는 통제와 책임 측면에서 매우 중요합니다. 그러나 이 힘은 코드의 정확성에 달려 있습니다. 잘못된 코드는 잘못된 결과를 재현 가능하고 빠르게 생성합니다.

팁: 알려진 참 결과를 옆에 두고 각 계산 함수에 대한 테스트를 작성하세요(Python에서는 어설션). 예를 들어, 응력 함수는 알려진 샘플에서 28.1MPa를 제공해야 합니다. 이 테스트는 나중에 코드를 변경할 때 문제가 발생하면 즉시 경고합니다. 테스트되지 않은 엔지니어링 코드는 확인되지 않은 계정입니다.

볼륨 관리: 가장 일반적인 오류 원인

엔지니어링 코드에서 대부분의 오류는 단위에서 발생합니다. N은 kN, m은 mm, Pa는 MPa와 같이 1000 또는 1,000,000 계수로 혼동될 수 있습니다. 방어에는 두 가지가 있습니다. 첫 번째는 규율입니다. 처음부터 단일 단위 시스템(예: N, mm, MPa)을 선택하고 모든 입력을 이에 변환하고 변수 이름(length_mm, force_N)에 단위를 추가합니다. 두 번째는 도구입니다. pint와 같은 라이브러리는 코드 내에서 단위를 전달하고 일관되지 않은 작업을 오류로 포착합니다.

접근

어떻게 작동하나요?

장점

명명 분야

force_N, length_mm 등

단순하고 종속성이 없음

단일 유닛 시스템

모두 N-mm-MPa로 변환

단순성, 속도

파인트 도서관

변수별로 단위를 이동합니다.

불일치를 자동으로 포착합니다.

알려진 결과 테스트

Assert를 사용한 참조

수식/단위 오류를 포착합니다.

주의: AI 생성 코드에서 단위 변환이 누락되거나 정확하지 않을 수 있으며 코드는 여전히 "작동"합니다. 예를 들어 직경이 mm이고 면적이 m²로 예상되는 경우 결과는 1,000,000배만큼 벗어나지만 프로그램에서는 오류가 발생하지 않습니다. 코드를 실행하기 전에 입력 및 출력 단위를 주석 처리하세요. 그런 다음 알려진 예를 사용하여 결과를 제공하십시오.

단계별: AI 검증 가능한 계정 코드

  1. 문제와 단위체계를 명확히 한다. 입력, 출력, 단위.
  2. 함수를 생성합니다. 단일 책임, 해석, 통합.
  3. 알려진 결과 테스트를 추가합니다. 참조 예제를 사용하여 주장합니다.
  4. 극단적인 경우를 시도해 보세요. 0, 음수, 매우 크거나 작은 입력.
  5. 단위 점검을 해보세요. 출력 단위가 예상한 것과 일치합니까?
  6. 문서 및 버전. 가정, 출처, 날짜 git을 이용한 추적성

함수 및 테스트를 생성하는 프롬프트

역할: 엔지니어링 계산을 작성하는 숙련된 Python 개발자입니다. 과제: 직사각형 단면 캔틸레버 빔의 최대 굽힘 응력을 계산하는 함수를 작성하세요. 입력: F(N), L(mm), b(mm), h(mm). 출력: 시그마(MPa).규칙: 단위계 N-mm-MPa; 각 항목의 단위를 주석 처리합니다. 규칙: I = b*h^3/12 및 시그마 = M*c/I를 사용합니다. 규칙에 주석을 추가합니다. 알려진 결과를 사용하여 테스트를 추가합니다: F=500,L=300,b=20,h=40에 대해 시그마 ~28.1MPa; Assert로 확인합니다(작은 허용 오차).

엣지 상태 프롬프트

위 함수에 극단적인 경우 검사를 추가합니다. - b, h 또는 L이 0이거나 음수인 경우 심각한 오류를 발생시킵니다(ValueError 발생). - 매우 크거나 작은 입력에 오버플로/정밀도 문제가 있는 경우 설명합니다. 또한 3가지 다른 테스트 입력을 더 추가하고 예상 결과를 작성합니다. 내가 수동으로 확인할 수 있는 방식으로 결과를 설명합니다.

유닛 보안(파인트) 프롬프트

'파인트' 라이브러리와 동일한 계정으로 안전하게 보호됩니다. 입력을 단위(예: 500 * ureg.newton)로 정의합니다. 출력을 MPa로 변환하여 인쇄합니다. 잘못된 단위로 입력이 주어졌을 때 파인트가 어떻게 실패하는지 보여주는 작은 예를 추가하세요.

코드 확인 프롬프트

코드 검토 관점에서 아래의 엔지니어링 계산 코드를 비판해 보세요. 제 의견에 동의하지 않습니다. 특히: 단위 변환이 정확합니까, 공식이 정확합니까, 극단적인 경우(0, 음수)가 고려되었습니까? 테스트가 실제로 확증됩니까? 각 결과에 대해 해결 방법을 작성하세요.[코드]

약한 프롬프트 / 강한 프롬프트

약한 프롬프트:

스트레스 계산을 위한 Python 코드를 작성합니다.

단위, 공식, 입력 정의 및 테스트를 선택할 수 없습니다. AI는 작동하지만 검증되지 않았고 단위도 알 수 없는 코드를 생성합니다.

강력한 프롬프트:

캔틸레버 빔의 굽힘 응력 함수를 작성합니다. 입력 F(N), L(mm), b(mm),h(mm); 출력 시그마(MPa). N-mm-MPa 시스템의 경우 주석에 각 단위를 지정하십시오. 알려진 결과가 있는 테스트를 추가합니다(F=500, L=300, b=20, h=40 → ~28.1 MPa, 어설션). 0/음수 입력 시 오류를 표시합니다. 극단적인 경우를 해석합니다.

두 번째 프롬프트에는 단위 체계, 공식, 입력, 테스트 및 특수 사례가 필요합니다. 코드를 검증 가능하게 만듭니다.

미니 케이스 3개(숫자순)

사례 1 - 자동 볼륨 오류. AI가 생성한 면적 계산은 직경을 mm 단위로 사용하고 pi*d**2/4로 mm²를 제공하지만 다음 줄에서는 이를 m²를 예상하는 공식에 넣습니다. 코드는 오류 없이 작동하며 스트레스를 1,000,000배 더 낮춥니다. 엔지니어가 알려진 결과(abs(sigma-28.1)<0.5를 주장)로 테스트를 실행하면 테스트가 폭발적으로 진행되고 오류가 포착됩니다. 테스트가 없었다면 잘못된 결과가 눈에 띄지 않게 보고서에 입력되었을 것입니다. 교훈: 작업 코드 ≠ 올바른 코드.

사례 2 - Edge 상태 충돌. 부품군을 반복하는 코드에서는 두께 h=0이 한 줄에 입력됩니다. I = b*h**3/12 = 0일 때 sigma = M*c/I는 0으로 나누기 오류를 제공합니다. AI가 추가한 if h<=0: raise ValueError 컨트롤 덕분에 코드는 의미 있는 메시지와 함께 중지되고 자동으로 inf를 생성하지 않습니다. 교훈: 극단적인 경우를 미리 처리하세요.

사례 3 - 반복성 이득. 엔지니어가 40개 작동 지점에 대한 펌프 출력을 수동으로 계산하는 데 반나절이 걸렸습니다. AI로 작성된 스크립트는 CSV를 읽고, 각 라인의 전력을 계산하고, Assert로 알려진 지점을 확인하여 작업을 최대 2분으로 줄이고 결과를 추적 가능한 파일에 기록합니다. 항목이 변경되면 전체 테이블이 매초 업데이트됩니다. 교훈: 검증된 자동화는 빠르고 안정적입니다.

일반적인 실수

  • "작동한 = 올바른" 오류: 오류 없이 작동하는 코드가 옳다고 생각하는 오류입니다.
  • 테스트를 작성하지 않음: 결과가 알려진 참조 테스트 없이 코드에 의존합니다.
  • 단위 모호성: 입력/출력 단위를 해석하지 않고 그대로 두고 변환을 건너뜁니다.
  • 엣지 케이스 무시: 0/음수 입력 시 자동 오류 또는 충돌이 발생합니다.
  • 출처/가정을 문서화하지 않음: 사용된 공식의 출처 및 가정을 기록하지 않습니다.
  • 버전 관리 안함: 계정을 추적 가능하게 만들지 않고(git) 일회성 파일로 남겨둡니다.

요약하면

  • Python을 사용하면 엔지니어링 계산을 반복 가능하고 추적 가능하며 버전 제어할 수 있습니다.
  • AI는 코드 생성 속도가 매우 빠릅니다. 그러나 코드가 오류 없이 작동한다고 해서 올바르게 계산된다는 의미는 아닙니다.
  • 모든 코드는 알려진 결과 테스트, 단위 확인 및 극단적 사례를 통해 검증되어야 합니다.
  • 단위 오류는 가장 빈번하고 가장 교활한 오류 원인입니다. 단일 단위 시스템, 명명법 또는 파인트로 방어합니다.
  • 검증된 자동화는 시간을 절약하고 자신감을 줍니다. 확인되지 않은 코드는 위험합니다.

응용과제

반복되는 엔지니어링 계산(예: 응력, 펌프 전력, 열 부하)을 선택합니다. 이 계산을 수행하는 AI에 Python 함수를 작성합니다. 각 입력 및 출력의 단위를 주석 처리하고 알려진 결과를 사용하여 어설션 테스트를 추가합니다. 테스트를 실행하고 통과하는지 확인하세요. 그런 다음 두 가지 검증을 더 수행합니다. 코드가 심각한 오류를 반환하는지 확인하기 위해 극단적인 경우(0 또는 음수 입력)를 시도하고 예제에서 출력 단위를 수동으로 제공합니다. 가능하다면 파인트 단위로 생산되는 안전 버전도 준비하십시오. 마지막으로 계산의 가정, 수식 소스 및 날짜를 ​​코드에 짧은 제목으로 추가하고 이 코드에 여전히 엔지니어 승인이 필요한 이유를 작성합니다.

체크리스트

  • [ ] 입력 및 출력 단위가 코드에 명확하게 문서화되어 있습니다. 단일 유닛 시스템이 선택되었습니다.
  • [ ] 결과가 알려진 테스트(어설션)가 추가되어 통과되었습니다.
  • [ ] 최소한 하나의 극단적인 경우(0/음수)가 시도되었습니다. 코드에 심각한 오류가 발생했습니다.
  • [ ] 출력 단위는 수동 예제에서 제공되었습니다("작업됨 = 정확함"이라고 가정하지 않음).
  • [ ] 코드에 명시된 공식 소스, 가정 및 날짜.
  • [ ] 계정은 계속 추적 가능합니다. 최종 승인은 엔지니어에게 맡겨졌습니다.