Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

To Workspace

Simulink 모델의 작업 공간에 데이터 기록

  • To Workspace block

라이브러리:
Simulink / Sinks
DSP System Toolbox / Sinks
HDL Coder / Sinks

설명

To Workspace 블록은 입력 포트에 연결된 데이터를 Simulink® 모델의 작업 공간에 기록합니다. 일반적으로, 기록된 데이터는 기본 작업 공간에 반환됩니다. 함수 내에서 프로그래밍 방식으로 모델을 시뮬레이션하면 기록된 데이터는 해당 함수에 대한 작업 공간에 반환됩니다. 시뮬레이션 동안, 기록된 데이터는 시뮬레이션 데이터 인스펙터로 스트리밍됩니다. 기록된 데이터는 시뮬레이션이 일시 중지되거나 중지될 때 작업 공간에 작성됩니다.

To Workspace 블록을 사용하여 신호, 버스 또는 버스로 구성된 배열에 대한 데이터를 기록할 수 있습니다. To Workspace 블록은 가변 크기 신호에 대한 데이터를 포함하여 스칼라 및 다차원 데이터 기록을 지원합니다.

To Workspace 블록이 기록하는 데이터를 저장하는 변수의 이름을 구성할 수 있으며, 기록된 데이터의 형식을 지정할 수 있습니다. 블록 파라미터 또는 모델 파라미터를 지정하여, To Workspace 블록이 기록하는 값을 제어할 수도 있습니다. 자세한 내용은 Specify Signal Values to Log 항목을 참조하십시오.

기록된 데이터에 액세스하기

시뮬레이션 결과가 작업 공간으로 반환되는 방식은 모델의 시뮬레이션 방식과 구성 방식에 따라 다릅니다. 다음 상황에서 시뮬레이션 결과는 단일 Simulink.SimulationOutput 객체로 반환됩니다.

  • 단일 시뮬레이션 출력 파라미터를 활성화합니다.

    기본적으로 모델을 생성할 때 단일 시뮬레이션 출력 파라미터가 활성화되어 있습니다. 구성 파라미터 대화 상자를 사용하여 파라미터를 활성화할 수 있습니다. 모델링 탭의 설정 아래에서 모델 설정을 클릭합니다. 그런 다음, 구성 파라미터 대화 상자에서 데이터 가져오기/내보내기를 선택하고 단일 시뮬레이션 출력을 선택합니다.

  • 다중 시뮬레이션 창을 사용하여 시뮬레이션 세트를 실행합니다.

  • 하나 이상의 Simulink.SimulationInput 객체를 사용하여 프로그래밍 방식으로 모델을 시뮬레이션합니다.

    sim, parsim, batchsim 함수를 사용하여 시뮬레이션을 실행하는 경우 SimulationInput 객체를 사용하여 시뮬레이션을 구성할 수 있습니다.

  • 결과를 단일 시뮬레이션 출력으로 반환하는 sim 함수 구문을 사용하여 모델을 시뮬레이션합니다.

    자세한 내용은 sim 항목을 참조하십시오.

시뮬레이션 결과가 단일 출력으로 반환되면 SimulationOutput 객체에는 모델의 각 To Workspace 블록에 대한 변수가 포함됩니다. To Workspace 블록이 기록한 데이터에 액세스하려면 다음을 수행하십시오.

  • 블록의 변수 이름 파라미터를 사용하여 지정한 변수 이름과 함께 점을 사용하십시오. 기본적으로 모델은 변수 이름 out을 사용하여 단일 시뮬레이션 출력을 반환하도록 구성되며, To Workspace 블록은 simout이라는 이름의 변수에 데이터를 저장합니다.

    toWksData = out.simout;
  • 기록된 데이터가 포함된 변수의 이름과 함께 get 함수를 사용하십시오.

    toWksData = get(out,simout);

모델에서 To Workspace 블록은 작업 공간의 데이터에 액세스하는 방식을 나타냅니다. 기본적으로 블록은 out.simout을 표시합니다. 다음의 경우에 블록 모양이 업데이트됩니다.

  • 블록의 변수 이름 파라미터에 다른 값을 지정하는 경우.

  • 단일 시뮬레이션 출력에 대해 다른 변수 이름을 지정하는 경우.

  • 단일 시뮬레이션 출력 구성 파라미터의 선택을 해제하는 경우.

예제

모두 확장

To Workspace 블록은 시뮬레이션 데이터를 작업 공간에 기록합니다.

예를 들어 SineToWorkspace 모델을 시뮬레이션해 보겠습니다.

The SineToWorkspace model

mdl = "SineToWorkspace";
out = sim(mdl);

모델의 시뮬레이션 결과는 out이라는 단일 Simulink.SimulationOutput 객체로 반환됩니다. To Workspace 블록으로 저장된 결과에 액세스하려면 점 표기법을 사용하십시오.

toWksData = out.simout
  timeseries

  Common Properties:
            Name: 'Sine Wave'
            Time: [51x1 double]
        TimeInfo: tsdata.timemetadata
            Data: [51x1 double]
        DataInfo: tsdata.datametadata

포트

입력

모두 확장

작업 공간에 기록할 데이터를 수신하는 입력 포트입니다. To Workspace 블록은 내장 데이터형 또는 버스, 열거형 및 고정소수점 데이터와 같은 사용자 정의 데이터형의 실수 데이터와 복소수 데이터 기록을 지원합니다.

고정소수점 데이터를 기록하려면 Fixed-Point Designer™ 라이선스가 필요합니다.

데이터형: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | string | fixed point | enumerated | bus | image
복소수 지원 여부:

파라미터

모두 확장

기록된 데이터를 포함하는 변수의 이름을 지정합니다. 기본적으로 To Workspace 블록은 기록된 데이터를 simout이라는 변수에 저장합니다. 모델이 여러 개의 To Workspace 블록을 포함하는 경우 각 블록에 대한 변수 이름 파라미터 값은 고유해야 합니다.

MATLAB® 변수 명명에 대한 자세한 내용은 변수 이름 항목을 참조하십시오.

프로그래밍 방식의 사용법

블록 파라미터: VariableName
유형: string형 | 문자형 벡터
값: 유효한 MATLAB 변수 이름
디폴트 값: 'simout'

시뮬레이션 끝의 데이터만 저장하거나 분석하려면 기록할 샘플 수를 0보다 큰 양의 정수로 지정하십시오. 기본적으로 To Workspace 블록은 전체 시뮬레이션에 대한 데이터를 기록하고, 다음 개수의 마지막 점으로 제한 파라미터의 값은 inf입니다.

시뮬레이션 중에 기록되는 샘플 제어 방법에 대한 자세한 내용은 Specify Signal Values to Log 항목을 참조하십시오.

프로그래밍 방식의 사용법

블록 파라미터: MaxDataPoints
유형: string형 | 문자형 벡터
값:'inf' | 0보다 큰 양의 정수
디폴트 값: 'inf'

기록된 데이터의 유효 샘플 레이트를 줄이기 위한 데시메이션 인자를 지정합니다. 데시메이션 인자가 n이면 To Workspace 블록은 매 n번째 샘플 값을 기록합니다. 예를 들어, 데시메이션 값을 2로 지정하면 To Workspace 블록은 데이터 점을 하나씩 건너뛰며 기록합니다.

시뮬레이션 중에 기록되는 샘플 제어 방법에 대한 자세한 내용은 Specify Signal Values to Log 항목을 참조하십시오.

프로그래밍 방식의 사용법

블록 파라미터: Decimation
유형: string형 | 문자형 벡터
값: 스칼라
디폴트 값: '1'

작업 공간에 기록되는 데이터의 형식을 지정합니다. 버스 입력 또는 버스 입력으로 구성된 배열에 대한 데이터를 기록하려면 timeseries 형식을 사용하십시오.

저장 형식작업 공간 데이터 형식시뮬레이션 워크플로 지원
timeseries

비 버스 입력은 timeseries 객체로 기록됩니다.

버스 입력은 timeseries 객체의 구조체로 기록됩니다. 구조체의 필드에 대한 계층 구조와 이름은 버스를 정의하는 Simulink.Bus 객체에 지정된 계층 구조와 이름과 일치합니다.

버스 입력으로 구성된 배열은 timeseries 객체의 구조체로 구성된 배열로 기록됩니다.

다음이 지원됩니다.

  • 표준 모드 시뮬레이션

  • 액셀러레이터 모드 시뮬레이션

  • 고속 액셀러레이터 모드 시뮬레이션 (R2022a 이후)

  • StreamToWks'on'으로 설정되고 MATFileLogging'off'로 설정된 경우 XCP 통신을 사용하는 외부 모드 시뮬레이션

다음은 지원되지 않습니다.

  • TCP/IP 또는 직렬 통신을 사용하는 외부 모드 시뮬레이션

  • SIL(Software-in-the-Loop) 시뮬레이션

  • PIL(Processor-in-the-Loop) 시뮬레이션

  • Simulink Coder™ 타깃에 대한 코드 생성

시간값을 갖는 구조체

비 버스 입력은 다음 필드를 포함하는 구조체로 기록됩니다.

  • time — 입력값이 기록된 시뮬레이션 적중 시간으로 구성된 열 벡터.

  • signals — 다음 필드를 포함하는 샘플 값이 있는 구조체

    • values — 샘플 값으로 구성된 배열.

    • dimensions — 샘플 차원.

    • label — 모델 내 신호 선의 이름.

  • blockNameTo Workspace 블록의 이름.

다음은 항상 지원됩니다.

  • 표준 모드 시뮬레이션.

  • StreamToWks'on'으로 설정되고 MATFileLogging'off'로 설정된 경우 XCP 통신을 사용하는 외부 모드 시뮬레이션

다음은 To Workspace 블록이 참조된 모델에 있는 경우를 제외하고 지원됩니다.

  • 액셀러레이터 모드 시뮬레이션

  • 고속 액셀러레이터 모드 시뮬레이션

  • TCP/IP 또는 직렬 통신을 사용하는 외부 모드 시뮬레이션

다음은 To Workspace 블록이 참조된 모델에 있는 경우를 제외하고, 생성 코드에 대해 MAT 파일 기록 (Simulink Coder)이 활성화된 경우 지원됩니다.

  • SIL(Software-in-the-Loop) 시뮬레이션

  • PIL(Processor-in-the-Loop) 시뮬레이션

  • Simulink Coder 타깃에 대한 코드 생성

구조체

비 버스 입력은 시간값을 갖는 구조체 형식과 일치하는 구조체로 기록되지만, 구조체의 time 필드는 비어 있습니다.

배열

비 버스 입력에 대한 샘플 값은 N차원 배열로 저장됩니다. 여기서 N은 입력의 차원보다 하나가 더 큽니다. 예를 들면 다음과 같습니다.

  • 스칼라 신호 데이터는 열 벡터로 기록됩니다.

  • 벡터 신호 데이터는 행렬로 기록됩니다.

  • 행렬 신호 데이터는 3차원 배열로 기록됩니다.

배열의 값으로 구성된 구조체는 입력 신호 데이터의 차원에 따라 다릅니다.

  • 스칼라 신호 및 벡터 신호의 경우 각 샘플 값은 출력 배열의 행입니다. simout(1,:)이 첫 번째로 기록된 신호 값을 반환하도록 배열의 첫 번째 차원이 시간값에 맞춰집니다.

  • 행렬 신호의 경우 simout(:,:,1)이 첫 번째로 기록된 신호 값을 반환하도록 출력 배열의 세 번째 차원이 시간값에 맞춰집니다.

  • N차원 신호의 경우 마지막 차원의 요소 개수가 시뮬레이션에서 기록된 샘플 수와 동일하도록 마지막 차원이 시간값에 맞춰집니다.

출력 배열은 신호 값만 포함하고 시간 데이터는 포함하지 않습니다.

  • 데이터를 샘플 기반 대신 프레임 기반으로 기록하려면 다음을 수행하십시오.

    • 구조체 형식 또는 배열 형식을 사용하여 데이터를 기록하도록 저장 형식 파라미터를 구성합니다.

    • 2차원 신호를 다음으로 저장 파라미터를 2차원 배열(첫 번째 차원을 따라 결합)으로 지정합니다.

  • From Workspace 블록을 사용하여 기록된 데이터를 불러오려면 timeseries 형식 또는 시간값을 갖는 구조체 형식을 사용해 보십시오. 배열 형식을 사용하여 데이터를 기록하는 경우 데이터를 불러오기 전에 샘플 시간 값을 배열에 포함시켜야 합니다.

프로그래밍 방식의 사용법

블록 파라미터: SaveFormat
유형: string형 | 문자형 벡터
값: 'Timeseries' | 'Structure with Time' | 'Structure' | 'Array'
디폴트 값: 'Timeseries'

2차원 입력 데이터를 3차원 배열로 기록할지 2차원 배열로 기록할지 지정합니다.

3차원 배열로 기록하는 것은 샘플 기반 입력 데이터에 매우 적합합니다. 샘플이 세 번째 차원을 따라 결합되어 2차원 샘플 데이터에 쉽게 액세스할 수 있습니다.

2차원 배열로 기록하는 것은 프레임 기반 입력 데이터에 적합합니다. 샘플이 첫 번째 차원을 따라 결합되므로 사실상 첫 번째 차원에서 프레임 버퍼링이 제거됩니다.

입력 데이터 차원2차원 신호를 다음으로 저장...작업 공간 데이터 차원
M×N2차원 배열(첫 번째 차원을 따라 결합)

K×N 행렬로, 여기서 K는 M에 시뮬레이션에서 기록된 샘플 수를 곱한 값과 같습니다.

예를 들어, 2×4 행렬 입력의 샘플을 10개 기록하면 20×4 행렬이 생성됩니다.

3차원 배열(첫 번째 차원을 따라 결합)

M×N×K 배열로, 여기서 K는 시뮬레이션에서 기록된 샘플 수와 같습니다.

예를 들어, 2×4 행렬 입력의 샘플을 10개 기록하면 2×4×10 배열이 생성됩니다.

종속성

이 파라미터를 활성화하려면 저장 형식배열 또는 구조체로 설정하십시오.

프로그래밍 방식의 사용법

블록 파라미터: Save2DSignal
유형: string형 | 문자형 벡터
값: '2-D array (concatenate along first dimension)' | '3-D array (concatenate along third dimension)'
디폴트 값: '3-D array (concatenate along third dimension)'

고정소수점 입력 데이터를 기록하는 방식을 지정합니다. 기본적으로 To Workspace 블록은 고정소수점 데이터를 fi (Fixed-Point Designer) 객체로 기록합니다. 이 파라미터를 선택 해제하면 To Workspace 블록은 고정소수점 입력 데이터를 double형으로 기록합니다.

To Workspace 블록은 다음과 같은 경우 항상 고정소수점 데이터를 fi 객체로 기록합니다.

  • 고속 액셀러레이터 모드에서 모델을 시뮬레이션하는 경우.

  • 저장 형식 파라미터를 timeseries로 지정하는 경우.

To Workspace 블록을 사용하여 고정소수점 데이터를 기록하려면 Fixed-Point Designer 라이선스가 필요합니다.

프로그래밍 방식의 사용법

블록 파라미터: FixptAsFi
유형: string형 | 문자형 벡터
값: 'off' | 'on'
디폴트 값: 'off'

블록이 시뮬레이션 중에 입력값을 기록하는 시점을 지정합니다. 기본적으로 샘플 시간은 상속됩니다(-1). 연속 샘플 시간에는 값을 0으로 지정하십시오. 이산 샘플 시간을 사용하려면 샘플 시간 파라미터를 스칼라로 지정하십시오. 자세한 내용은 샘플 시간 지정하기 항목을 참조하십시오.

프로그래밍 방식의 사용법

블록 파라미터: SampleTime
유형: string형 | 문자형 벡터
값: 스칼라
디폴트 값: '-1'

블록 특성

데이터형

Boolean | bus | double | enumerated | fixed point | half | integer | single | string

직접 피드스루

아니요

다차원 신호

가변 크기 신호

영점교차 검출

아니요

  • To Workspace 블록을 사용하여 기록된 데이터를 Dataset 형식으로 변환할 수 있습니다. 신호 기록과 같이 Dataset 형식을 사용하는 다른 기록 기법을 사용하는 경우 데이터를 변환하면 후처리가 더 쉬워질 수 있습니다. 자세한 내용은 Convert timeseries object to Dataset object 항목을 참조하십시오.

  • 모델을 시뮬레이션하는 함수를 호출할 경우 시뮬레이션에 기록된 데이터는 함수 작업 공간에 반환됩니다. 함수를 통한 시뮬레이션에서 기록된 데이터를 기본 작업 공간에 반환하려면 assignin 함수를 사용하십시오. 예를 들어, myfunc라는 다음 함수는 데이터를 변수 simout에 기록하는 To Workspace 블록이 포함된 모델 myModel을 시뮬레이션한 다음, To Workspace 블록에 의해 기록된 데이터를 기본 작업 공간으로 보냅니다.

    function myfunc
        out = sim("myModel");
        toWksData = get(out,"simout");
        assignin("base","toWksData",toWksData);
    end
    

확장 기능

PLC 코드 생성
Simulink® PLC Coder™를 사용하여 Structured Text 코드를 생성할 수 있습니다.

고정소수점 변환
Fixed-Point Designer™를 사용하여 고정소수점 시스템을 설계하고 시뮬레이션할 수 있습니다.

버전 내역

R2006a 이전에 개발됨

모두 확장