SIMTool 모델의 시뮬레이션 실행

Download Report

Transcript SIMTool 모델의 시뮬레이션 실행

시뮬레이션 블록 파라메터 설정
블록 파라미터 설정
모델링 하기 위하여 작업창으로 블록들을 가져와서 연결을 한 후에는 사용자가 원
하는 신호를 만들 수 있도록 블록들마다 기본값으로 설정되어 있는 파라미터를 변
경시켜 주어야 한다. 각 블록을 마우스로 더블클릭 하면 블록들의 정보를 설정할
수 있는 그림과 같은 블록 파라미터 설정 대화상자가 나타난다. 대화상자에서 블록
이름은 블록마다 공통적으로 있는 것이며, 아래쪽의 파라미터 설정은 블록의 기능
에 따라 파라미터의 개수가 달라진다. 사용자가 원하는 기능을 할 수 있도록 적절
하게 파라미터를 기입하고 ‘설정’버튼을 누르게 되면, 설정이 완료된다.
각 블록의 파라미
터에 대한 자세한
설명은 ***를 참조
하세요!
시뮬레이션 실행 설정
각 블록들의 파라미터 설정이 끝나게 되면 시뮬레이션 실행을 위한 파라미터를 설정해야 한다. 메뉴
에서 실행-실행설정을 선택하면 아래그림과 같은 시뮬레이션 파라미터 설정 대화상자가 나오는데,
이 대화상자에서 시뮬레이션에 대한 파라미터들을 설정할 수 있다. 사용자가 원하는 시뮬레이션을
수행하기 위하여 설정해야하는 파라미터들을 살펴보면 다음과 같다.
시뮬레이션을 시작하는 시간으로 단위는
초이며, 초기설정치는 0이다.
시뮬레이션을 끝내는 시간을 말하며, 단위
는 초이며, 초기 설정치는 10초이다.
샘플링 시간으로서, 시뮬레이션
계산의 시간 간격을 말한다. Step
Size를 작게 하면 정밀도를 높아지
나나 시뮬레이션 시간은 길어진다.
초기 설정치는 0.01초이다.
시뮬레이션 계산 알고리즘을 선택할 수 있다. 계산 알고리즘으로는
RK4(Runge-kutta 4차), RK3(Runge-kutta 3차), Adams, Euler의 4가지 중에
하나를 선택한다. RK4 > RK3 > Adams > EULER 순으로 시뮬레이션 시간
이 오래 걸리지만 계산 정밀도는 더 높다.
시뮬레이션의 결과에 포함될 수 있는 오차를 나타내며, 작을수록 오차가 적
게 포함되나 시뮬레이션 시간이 길어진다. 초기 설정치는 1e-005이다.
시뮬레이션이 끝난 뒤, CEMTool의 작업공간(workspace)에 시뮬레이션 계산
이 수행된 시간을 담은 지정된 이름의 변수가 생성되게 된다. 이 변수는 보
통 시뮬레이션 결과를 plot할 경우에 시간 축으로서 사용된다. 기본설정은 t
이다.
사용자가 지정한 시뮬레이션을 시작하는 시간, 끝내는 시간, 간격은 실제 시간이 아니라 계산시 상대적으로 조절된다.
즉 계산 량이 많고 적음에 따라 시뮬레이션에 걸리는 시간이 달라진다. 이들 지정한 시간 파라미터들을 실제 시간으로
하고자 할때가 있다. 이런 경우 이 옵션을 선택하면, 실제의 시간에 맞게 시뮬레이션이 진행 된다.
시뮬레이션 실행
사용자가 원하는 시뮬레이션을 수행하기 위한 파리미터
의 설정이 끝나면, 시뮬레이션을 수행 할 수 있다. 수행
하는 방법은 다음과 같은 세가지 방법이 있다.
메뉴 이용 : 실행-실행을 선택한다.
툴바 이용 : 실행 아이콘
을 클릭한다.
단축키 이용 : F5 키를 누른다.
위와 같은 세 가지 방법으로 시뮬레이션을 수행 할 수 있
으며, 시뮬레이션 수행도중에 사용자가 시뮬레이션을 중
단하고 싶을 때 ESC키를 한번만 누르면 현재까지의 시
뮬레이션 결과를 나타내면서, 시뮬레이션이 중단된다
시뮬레이션 결과 확인:
시간축에 대한 결과 보기 1 (scope)
1) 그래프로 보는 것 : SCOPE블록 혹은 XY Plot을 이용
2) CEMTool로 데이터를 보내서 분석하는 것 : OUT블록 이용
3) 파일로 저장하는 방법 : To_File블록 이용
Scope, Flow Graph type One, Flow Graph type Two 블록은 시간에 대한 블록의 입력 값에 대한 변화를 그래프
로 그려 준다.사용자가 구현한 모델의 파라미터를 설정한 후에 실행시키면 아래그림과 같이 그래프 창(Plot
Window)이 나타나면서 시뮬레이션이 진행되는 상태에 따라 그래프가 그려진다. 초기에 그래프 창에서 그려지는
그래프의 스케일은 블록 설정 대화상자에서 설정된 y축의 최소값과 최대값으로 설정된 상태에서 그려지다가 설
정해준 시뮬레이션 시간이 끝나게 되면, 자동으로 스케일을 정하여 다시 그려준다. 이 그림은 Scope 블록을 작업
창으로 가져와서 y축의 최소값을 0, 최대값을 5로 설정했기 때문에, 그래프가 처음 그려질 때 y축은 0에서 5로 설
정되어 그려지기 시작한다.
시뮬레이션 결과 확인:
시간축에 대한 결과 보기 2 (여러 개 출력보기)
SIMTool 4.0 에서 새롭게 추가된 Flow Graph type One 과 Flow Graph type Two는 블록 파라미터 설정의 Display
interval에서 정해준 만큼의 시간간격으로 구분해서 (Flow Graph type One), 정해준 만큼의 시간간격의 누적으로
(Flow Graph type Two) 보여주는 그래프 이다. 예를 들어 Flow Graph type One 블록의 Display interval을 2로 지
정하고 10초간 시뮬레이션 하면, 처음엔 시간축이 0부터 2초 까지의 결과를 나타내고 2초가 지나면 시간축이 2초에서
4초 까지로 바뀌어 시뮬레이션 결과를 그리는 방법으로 2초 간격으로 구분하여 결과를 보여주고, 10초 까지의 시뮬레
이션이 끝나면 0부터 10초 까지의 스케일로 다시 그려준다. Flow Graph type Two 블록의 Display interval을 2로 지
정하고 10초간 시뮬레이션 하면, 처음엔 0부터 2초 까지의 결과를 나타내고 2초가 지나면 시간축 스케일일 0부터 4초
까지로 바뀌면서 2초 까지의 결과 다음에 계속해서 4초 까지 그려지게 되는 방식으로 10초 까지 2초 간격으로 시간축
이 갱신 되면서 그려지고 시뮬레이션 시간 10초가 지나면 0부터 10초 까지의 결과를 보여준다.
만약에 사용자가 하나의 출력만이 아니라 같
은 블록모델 파일에서 여러개의 출력을 보고
자 하는 경우에 그림과 같이 각 출력블록에
Scope 블록을 따로따로 연결해주면 그림과
같이 각각의 그래프가 하나의 Plot window에
모두 나오게 되므로 같은 시간에 여러개의 출
력을 함께 볼 수 있다.
시뮬레이션 결과 확인
여러 가지 형태의 그래프
XY Plot 블록을 이용해서 결과보기
사용자가 시뮬레이션 하여 결과를 확인하고자 하는 모델이 시간에 대한 값이 아니라 모델의 상태값 만을 보고 싶은
경우에 시뮬레이션의 진행상황을 XY Plot 블록을 이용하여 볼 수 있다. XY Plot 블록을 모델에 연결한 경우 SCOPE
블록을 연결하여 확인하는 경우와 마찬가지로 그래프 창이 뜨면서 시뮬레이션이 진행되는 상황이 확인된다. 이 방
법으로 확인하는 경우도 X, Y 축의 최소, 최대값이 설정된 상태에서 그려지다가 시뮬레이션이 다 끝난후에 자동으로
스케일을 설정하여 보기좋게 표시한다.
그래픽 게이지로 결과보기
시간축으로 그려주는 2차원 그래프와 달리 원하는 결과를 여
러 종류(10개)의 그래픽 게이지를 연결하여 마치 게이지를 보
는듯한 모습으로 시뮬레이션 결과를 확인할 수 있다. 예를
들어, [그림 2.46]과 같이 결과를 보고자 하는 출력단에
Radian Meter 120을 연결하면, [그림 2.47]과 같이 실제 시스
템의 게이지를 보는듯한 시뮬레이션 결과를 볼 수 있다.
시뮬레이션 결과 확인
OUT 블록을 이용한 결과보기
SIMTool에서 시뮬레이션한 결과를 CEMTool 명령어창
에서 호출하여 시뮬레이션 결과를 좀더 자세히 분석하
고 싶을 때 OUT 블록을 이용한다. 다음 그림은 OUT블
록의 블록정보 설정 대화상자이다. Variable name에서
CEMTool에서 호출하고 싶은 변수명을 써 넣고 설정버
튼을 눌러 설정 한 후에 시뮬레이션을 수행하면, 지정된
변수명에 시뮬레이션 계산 간격마다의 사용자가 구현한
모델의 상태값의 변화를 기록하며 CEMTool의 변수로
등록된다.
시뮬레이션시키고 CEMTool 작업 창에서 list라는 명령
어를 입력해 보면 우리가 입력한 적이 없는 변수 ‘t’와
사용자가 설정한 변수명들이 있는 것을 볼 수 있다. 이
변수들은 시뮬레이션 과정에서 생성된 것으로 ‘t’에는
시뮬레이션의 시작시간부터 종료시간까지 지정된 간격
으로 배열된 시간 벡터가 사용자가 입력한 변수명에는
‘t’에 저장된 시간벡터의 각 순간에 해당하는 OUT 블록
으로의 입력 값이 저장되어 있다. 이 변수들의 이름은
SIMTool에서 사용자가 바꿀 수 있는데 시간 벡터를 저
장하는 변수의 이름 ‘t’는 앞서의 시뮬레이션의 파라미
터를 설정하는 대화상자의 메뉴 중 Time Variable에서
정해 줄 수 있고, 결과 값을 저장하는 변수의 이름은
OUT 블록의 블록설정 대화상자를 열어서 정해 줄 수 있
다. 별도의 지정이 없을 경우는 미리 설정된 t와 y이라
는 이름의 변수가 생성된다.
OUT 블록에 의하여 CEMTool의 작업 공간에 생성된
변수들은 CEMTool 상에서 여러 가지로 분석할 수가
있다. 가장 쉬운 예로 CEMTool에서 간단하게 그리
기 명령어를 이용하여 그래프를 그릴 수 있다.
CEMTool에서 다음과 같이 입력해 보자.
CEMTool>> plot(t,y1);
이렇게 하면 사용자가 시뮬레이션한 모델의 결과값
에 대한 그래프가 그려진다. 이 그래프가 SIMTool
에 의해 자동으로 그려진 그래프와 같음을 확인할
수가 있다.
시뮬레이션 결과 확인
To_File 블록을 이용한 결과 보기
To_File블록은 데이터를 주어진 파일로 저장한다. 오른 편
그림의 To File 블록의 블록설정 대화상자에서 File_name은
저장할 파일명으로 var 파일로 생성된다. 저장된 파일은
CEMTool 명령어창에서 Load명령어로 불러 올 수 있으며
PLOT을 이용해서 그릴 수 있다. 그리고 Print_type으로
separated 또는 easy-look을 선택한다.
블록설정대화
상자
To_File 블록
슈퍼블록 (Super Block)/매크로블록(Macro
Block)
슈퍼블록 : 사용자가 연결된 여러 개의 블록들을 하나로 묶어 표현한 계층적 블록이다.
매크로블록 : 복잡한 모델을 여러개의 슈퍼블록으로 여러단계로 연결하여 만들었을 때 가장 상위
의 슈퍼블록에서 그룹 내의 블록들의 파라미터를 값이 아닌 변수로 지정하여 가장 상위의 슈퍼블록
상에서 변수들의 값을 수정할 수 있다.
- 슈퍼블록은 라이브러리로 등록이 안 됨.
- 매크로 블록은 라이브러리 등록 가능.
많은 블록(함수)들을 한 화면에 표시하기 힘드므로 여러 개의 블록을 하나의 블록으로 묶어 표현할
수 있어야 한다. 예를 들어 수백 개의 블록이 들어가는 시뮬레이션 모델을 SIMTool 상에서 만든다고
하면 도저히 SIMTool의 한 화면 내에 전부 포함시킬 수 없을 것이고, 따라서 선을 연결하는 등의 작
업이 거의 불가능하므로 부분 부분을 묶어 하나의 블록으로 만든다몀 작업이 훨씬 쉬워질 것이다.
기본 블록들을 이용하여 사용자가 새로운 기능의 블록을 구성하고 이것을 재 사용할 수 있어야 한다.
SIMTool의 매크로 블록(Macro Block)기능을 함께 사용하여 매크로 블록으로 만들면 매크로 블록
라이브러리에 등록되어 다른 작업할 때에 가져와서 사용할 수 있다. 예를 들어 PID 제어기는
SIMTool에서 하나의 블록으로 제공되지 않고 이것을 SIMTool의 기본 블록들로 만들어 매크로 블
록으로 등록해 놓으면 SIMTool의 표준 블록들과 마찬가지로 작업창으로 가져와서 사용할 수 있다.
매크로 블록(Macro Block)기능과 함께 사용하면 몇 단계 아래의 블록들의 파라미터들을 가장 상위
의 블록에서 변경하여 시뮬레이션 할 수 있는 기능도 함께 사용할 수 있으므로 복잡한 모델을 몇 단
계의 슈퍼블록들을 조합하여 만들어도 모델의 계수변경을 하는데 있어서 불편함이 전혀 없다. 또
SIMTool 왼쪽의 블록정보 표시 창에서는 현재 작업창에 있는 슈퍼블록의 구성상태를 나타내 주므로,
몇 단계아래의 블록을 중간 계층의 슈퍼블록들을 거치지 않고도 불러올 수 있다.
슈퍼블록 만들기
작업창에서 여러개의 블록들을 하나의 슈퍼
블록으로 만드는 방법은 세가지가 있다. 슈퍼
블록으로 만들기 전에 슈퍼블록으로 만들고
자 하는 블록들을 선택한 후 다음과 같은 방
법을 사용해야 한다.
메뉴이용 : 메뉴에서 블록그룹-블록그룹 설
정을 선택한다.
툴바 이용 : 툴바의
아이콘을 누른다.
단축키 이용 : Ctrl+G 키를 누른다.
슈퍼블록으로 만들고자 하는 블록들을 선택
한 후 위의 방법을 사용하면 그림과 같은 대
화상자가 나온다. 이 대화상자에서 사용자가
정하고 싶은 이름을 입력하고 생성 버튼을 누
르면 선택되었던 블록들이 하나의 블록으로
변한다.
슈퍼블록을 만들고나서 슈퍼블록위에서 마우스 오른쪽
을 클릭하거나 메뉴의 블록그룹의 슈퍼블록 내부보기
를 선택하거나 Ctrl+I 키를 누르면 새로운 창이 생기면
서 슈퍼블록안의 내용을 보여준다.
슈퍼블록의 Inport & Outport
슈퍼블록에서 주목해야 할 것은 사용자가 선택한 블록이 아닌 Inport 블록과 Outport
블록이 있다는 것이다. 이것은 슈퍼블록 생성시에 SIMTool에서 슈퍼블록의 주변 블
록과 연결을 위해서 자동으로 생긴 것이며, Inport 블록은 슈퍼블록에 신호를 넣을 수
있고 Outport 블록은 슈퍼블록으로부터 신호를 뽑아 낼 수 있는 역할을 한다. 슈퍼블
록을 만들면 항상 이렇게 Inport 블록과 Outport 블록에 번호가 붙어서 생기는 것은
아니며, 다음 그림과 같이 선택된 블록 앞,뒤로 다른 블록이 연결되지 않은 전체 블록
을 슈퍼블록으로 만들면, Inport 나 Outport의 글자는 보이지 않게 된다.
Outport만 있는 슈퍼블록
만약에 여러 가지 입력블록들의
조합으로 새로운 신호를 만드는
블록들을 구성할 경우에, 이 블
록들을 하나의 "source"라는 이
름의 슈퍼블록으로 구현하면 슈
퍼블록으로 부터는 2개의 신호
가 Outport로부터 나dhs다. 블
록들에서는 나오는 신호만 있으
므로, Inport는 만들어지지 않는
다.
Iutport만 있는 슈퍼블록
출력블록들 만을 하나의 ‘sink’
라는 하나의 슈퍼블록으로 만들
었을 경우에 sink라는 슈퍼블록
에는 Inport만이 존재하게 되는
것을 알 수있다.
슈퍼블록 해제
슈퍼블록 해제
슈퍼블록을 만든 다음 해제하는
방법은 슈퍼블록을 선택한 다음
다음의 세가지 방법을 사용한다.
메뉴 이용 : 블록그룹의 슈퍼
블록 해제를 선택한다.
툴바 이용 : 툴바에서
아이
콘을 마우스 왼쪽 버튼으로 클
릭한다.
단축키 이용 : Ctrl+U 키를 누
른다.
다음 그림에서 “sink"라는 슈퍼
블록을 위의 방법중 하나를 사
용하여 해제하면 그림과 같이
해제되어 나타난다.