Technote

Simcenter Flomaster - Controller Script 함수 및 Liquid Level Control Valve 예시

작성자
최종인
작성일
2024-08-14 15:49
조회
214
keyword: Controller, Script, Liquid level

version: v2407

 

Simcenter Flomaster는 다양한 Controller component를 제공하고 있습니다.

시간에 따른 값과 선형보간으로 제어되는 General Tabular Controller, 각종 논리연산을 제공하는 Signals component, PID controller 등 여러 제어 방법을 제공하고 있습니다.

일부 복잡한 제어 로직의 경우, Tabular Controller, Signals component 등으로는 구현이 어려운 경우가 발생합니다.

이 경우, Controller Script를 구성하여 해결할 수 있습니다.

 

Controller Script

먼저 Project View 창에서 Script를 생성합니다.

         

Script Type은 Controller, Gauge or Cam Correlation으로 선택하고, Script 언어는 편한 것으로 선택합니다. 이번 테크노트에서는 C#을 선택하였습니다.

Script Name을 정의하고 OK를 누르면 Script를 구성하는 창이 나타납니다.

자주 사용되는 함수들은 아래와 같습니다.



 

Controller.InputValue(#)은 Controller Template의 input signal port #번에 연결되어 읽어들이는 값을 의미합니다.

Controller.DataValue(#)은 Controller Template의 입력 데이터 Real Data #의 값을 의미합니다.

Manager.DeltaT는 현재 해석에서의 time step입니다.

Controller.OutputValue는 Script 동작 후 Controller Template의 output 값입니다.





 

Manager.IsSteadyStateCalc은 현재 해석 상태가 Steady State 해석 상태인지 판별해주는 값으로 1이면 steady, 0이면 transient 해석을 의미합니다.

Manager.IsFirstIteration은 현재 계산 중인 iteration이 현 time step 에서 제일 처음 iteration인지 판별해주는 값으로 1이면 처음 iteration이고, 0이면 그 이후 iteration입니다.

 

Script 구성시 주의사항으로는,

1. Script는 SI unit으로 동작됩니다.

2. Script에 정의된 변수들은 모두 지역변수이며, script에 재진입할 때 초기화됩니다.

3. 모든 iteration 마다 script에 진입하고 동작하고 종료됩니다.

특히, 3번 모든 iteration 마다 script가 동작한다는 점은 큰 주의가 필요합니다.

한번의 time step에서도 압력, 유량을 수렴시키기 위한 수십번의 iteration이 계산됩니다.

이로 인해 한번의 time step 동안 script가 수십번 동작하여 원하는 제어가 구현되지 않을 수 있습니다.

한번의 time step 동안 한번의 script를 동작하기 위한 쉬운 방법은 Manager.IsFirstIteration 함수를 사용하는 것입니다.

또한, 모든 iteration마다 동작함으로써 for문과 같은 반복 함수가 필요없을 수 있습니다.

 

Liquid Level Control Valve 예시

script를 이용하여 Reservoir liquid level이 특정 수위에 도달하면 valve를 닫는 예시입니다.





Real Data 1 에는 밸브가 닫히기 시작하는 수위(5m)를 입력하였습니다. 

Real Data 2에는 밸브가 완전히 닫히기 까지 걸리는 시간(15초)을 입력하였습니다.





liquid level 5m 도달 시 밸브가 닫히기 시작하며, 15초 동안 닫힙니다.

Flowmaster Korea

● 사업자 번호 : 117-81-48975
● 대표자 : 이웅기
● 주소 : 서울 강서구 양천로 583, B-1908
● 대표번호 : 02-2093-2689
● 이메일
○기술지원 : Support@flowsystem.co.kr
○기타문의 : Mktg@flowsystem.co.kr

top
error: