주요 콘텐츠

유체 시뮬레이션 문제 해결하기

Simscape™ 블록은 복잡한 상호 작용을 하므로, 모델을 잘못 설계하거나 잘못 파라미터화하면 시뮬레이션이 완료 전에 하나 이상의 오류 메시지와 함께 중지되거나 실행이 완료되더라도 예기치 않은 결과가 발생할 수 있습니다. 블록 또는 유체 네트워크의 문제점을 해결함으로써, 이러한 문제를 해결할 수 있습니다. 일반적인 Simscape 문제 해결 기법은 Troubleshooting Simulation Errors 항목을 참조하십시오.

모델을 점진적으로 구축하고 테스트하는 것이 좋습니다. 이상화되고 단순화된 시스템을 시뮬레이션하는 것부터 시작해 예상대로 동작하는지 확인하십시오. 그런 다음 디폴트 설정을 변경하고 복잡도를 점차 높여갑니다. 서브시스템을 사용하여 모델 계층 구조를 캡처하고, 전체 모델을 테스트하기 전에 이러한 서브시스템을 개별적으로 테스트할 수 있습니다.

기본 문제 해결 단계

다음 단계는 모델의 기본적인 문제를 식별하는 데 도움이 될 수 있습니다. 고급 문제 해결 단계를 보려면 특정 모델 블록과 관련된 문제 또는 유체 네트워크의 문제 항목을 참조하십시오.

  • Solver Configuration 블록 — 토폴로지가 서로 다른 각각의 유체 네트워크에 정확히 하나의 Solver Configuration 블록이 연결되어 있는지 확인하십시오.

  • 단위 — Simulink® 신호와 Simscape 신호 간에 변환할 때는 단위에 유의하십시오. PS-Simulink ConverterSimulink-PS Converter 블록의 출력 신호 단위 파라미터와 입력 신호 단위 파라미터를 각각 상속1에서 특정 값으로 변경합니다. 단위를 지정할 경우 Simscape는 모든 입력 신호 또는 출력 신호에 대해 단위 변환을 수행합니다. 자세한 내용은 How to Work with Physical Units 항목을 참조하십시오.

  • 네트워크 도메인 — 작동 유체 선택하기 항목을 참조하여 네트워크 유체가 해당 응용 분야에 적합한지 확인하십시오.

  • 유체 물성 블록 — 토폴로지가 서로 다른 각각의 유체 네트워크에 유체 물성 블록이 최대 하나만 연결되어 있는지 확인하십시오. 자세한 내용은 작동 유체 선택하기 항목을 참조하십시오.

  • 변수 — Configure the Variable Viewer 항목을 사용하여 변수 값, 단위, 초기화 상태를 검사하십시오.

  • 절대 변수 — 절대 변수(예: 온도)가 양수 값인지 확인하십시오. 또한, 별도로 명시되지 않는 한 모든 압력은 절대 압력입니다. 압력 변화 또는 온도 변화의 부호에는 제한 사항이 없습니다.

  • 아핀 단위 — 상대 온도 또는 절대 온도일 수 있는 온도를 지정할 경우 아핀 변환을 적용해야 할 수 있습니다. 아핀 변환에 대한 자세한 내용은 How to Apply Affine Conversion 항목을 참조하십시오.

  • 모델 충실도 — 모델 목표에 필요한 만큼의 충실도만 사용하십시오.

특정 모델 블록과 관련된 문제

특정 모델 블록으로 식별되는 오류 메시지를 모델이 반환하는 경우, 이러한 블록에 잘못된 연결이나 의도하지 않은 사용이 있는지 검사하십시오. 개별 블록에 대해 다음을 확인하십시오.

  • 밸브 및 오리피스 누설 면적 — 누설 면적 파라미터를 갖는 블록의 경우 수치 문제를 방지할 정도로 파라미터가 충분히 큰지 확인하십시오. 시뮬레이션 전체에 걸쳐 네트워크의 모든 컴포넌트에 소량의 유체가 존재하지 않으면 시스템의 일부가 격리될 수 있습니다. 누설 면적 파라미터의 값은 최대 밸브 면적에 비해 무시할 수 있을 정도의 작은 값을 선택하되, 가능한 가장 작은 값으로는 설정하지 마십시오.

  • 동적 압축성 — 압력 동역학의 컴포넌트 시정수가 시스템에 대한 입력보다 느린 경우, 내부 부피를 갖는 컴포넌트에서 유체의 동적 압축성이 중요해질 수 있습니다. Isothermal Liquid 라이브러리의 블록은 동적 압축성을 지원하는 블록인 경우 기본적으로 동적 압축성을 모델링합니다.

  • 스코프 및 센서 측정값 — 센서와 스코프는 블록 포트에서의 측정값을 가져옵니다. 내부 유체 부피를 갖는 컴포넌트의 경우, 포트에서의 결과가 예상 응답과 일치하지 않을 수 있습니다. 결과 탐색기를 사용하여 내부 유체 부피의 물성을 포함해 블록의 모든 기록된 값을 검사할 수 있습니다. 자세한 내용은 Simscape 결과 탐색기 항목을 참조하십시오. Probe 블록을 사용하여 블록의 기록된 값을 조사하고 스코프에 신호를 표시할 수도 있습니다.

  • 블록 사용 — 모델에 있는 블록의 블록 문서에 나와 있는 가정 및 제한 사항을 읽고, 설계 시 이러한 제한 사항을 고려하십시오. 예를 들어, Ideal Pressure Source 블록은 압력이 일정할 때만 펌프를 시뮬레이션할 수 있습니다.

  • 블록 연결 — 모델이 시스템으로서 타당한지 확인하십시오. 예를 들어, 다음과 같은 요소를 찾아 보십시오.

    • 서로 반대 방향으로 연결되어, 반대 방향으로의 움직임을 유발하는 액추에이터.

    • 함께 직접 연결된 챔버, 탱크, 어큐뮬레이터와 같은 부피 블록. 이러한 블록 사이에 유동 저항, 파이프, 오리피스 블록과 같은 일종의 유동 저항을 배치하십시오.

    블록 간의 연결은 물리적 부피를 나타내지 않으며, 이러한 연결을 따라 값이 즉시 전달됩니다.

유체 네트워크의 문제

특정 블록으로 식별되지 않는 오류 메시지를 모델이 반환하는 경우에는 유체 네트워크 문제를 해결해야 할 수 있습니다.

  • 솔버 선택 — 모델에 가장 적합한 솔버를 사용하고 있는지 확인하십시오. 유체 시스템에서 방정식은 일반적으로 경직성(Stiff) 비선형 방정식입니다. sscnew 함수를 사용하면 다음과 같은 권장 솔버 설정을 갖는 새 모델이 자동으로 생성됩니다.

    • 솔버 선택에서 유형가변 스텝으로 설정하고, 솔버자동(솔버 자동 선택)으로 설정합니다.

    • 상대 허용오차절대 허용오차1e-3으로 설정합니다.

    • 절대 허용오차 자동 스케일링 체크박스를 선택 해제합니다.

    • 최대 스텝 크기, 최소 스텝 크기초기 스텝 크기자동으로 설정합니다.

  • 대수 루프 — 이산 시스템에 사용하도록 고안된 Memory 또는 Unit Delay 블록을 사용하여 Simscape 모델의 대수 루프를 끊지 마십시오. 대신, 연속 시스템의 대수 루프를 끊으려면 Transfer Fcn 블록을 사용하십시오. 자세한 내용은 Why you should never break a continuous algebraic loop with a Memory block 항목을 참조하십시오.

  • 이산 제어기 — 모델이 이산 제어기를 사용하여 연속 Simscape 플랜트를 구동하는 경우 제어기와 Simscape 모델 사이에 First Order Hold 블록을 삽입하십시오. First Order Hold 블록은 플랜트에 대해 이산 제어기 신호를 연속 신호로 보간합니다. 자세한 내용은 A New First Order Hold 항목을 참조하십시오.

  • 건조 노드 — 네트워크에 밸브와 같은 준정상(quasi-steady) 컴포넌트가 너무 많이 모여 있고 계산이 블록 포트에서만 이루어지는 경우 모델에서 건조(dry) 노드의 발생 위험이 높아질 수 있으며, 이 경우 시뮬레이션 속도가 느려지거나 중단될 수 있습니다. 이와 같은 시나리오에서는 내부 부피를 갖는 블록을 추가하여 시뮬레이션 수렴을 개선할 수 있습니다. 이러한 블록은 네트워크의 동적 변화에 반응할 수 있는 동적 컴포넌트를 추가합니다.

  • 루프 고도 — 파이프와 같은 하나의 컴포넌트에서 고도 변화를 지정하는 경우, 탱크 블록의 입구 높이를 포함하여 시스템의 나머지 부분이 이 고도 변화와 일치하는지 확인해야 합니다. 유체 루프가 있는 경우 순 고도 변화는 루프를 완전히 한 바퀴 순환한 후에 그 합이 0이 되어야 합니다.

  • 그라운드 규칙 — 모든 유체 네트워크는 유체 부피를 모델링하는 블록을 적어도 하나 포함해야 합니다(예: 압축성이 있는 파이프, 챔버 또는 레저버). 이러한 블록에 있는 내부 노드는 유체 부피를 나타내며, 이는 네트워크의 Across 변수에 대한 기준점으로 사용됩니다. 루프에 밸브, 펌프와 같은 준정상 컴포넌트만 포함되어 있으면 솔버가 실패합니다.

참고 항목

도움말 항목