Simulink API (5) 두 종류의 블록 속성과 Simulink 모델의 움직임 1

5265 단어 matlabSimulink

두 종류의 블록 속성이란?



이번에는, "Simulink 블록 파라미터"의 설명을 하면서, Simulink 모델링의 기본·중요한 생각을 2회로 나누어 말하고 싶습니다. (문장력 소중하다...)

Simulink의 블록 속성 값을 얻는 방법으로 get_param 함수가 있습니다.
예를 들어, 그림의 Gain 블록의 게인 값을 얻고 싶다면 다음과 같습니다.

gainValue = get_param(gcbh,'Gain')
gainValue =

    '5'

이 프로그램 자체는 어떤 블록이 어떤 이름의 속성을 가지고 있습니까? 알고 있으면 간단하기 때문에 더 이상 깊은 호리하지 않습니다.

그렇다면 동일한 그림의 Gain 블록의 출력 신호 데이터 유형은 동일한 get_param을 사용하여 어떻게 얻을 수 있습니까?
portType = get_param(gcbh,'CompiledPortDataTypes')
portType = 

  0×0 empty struct array with fields:

    Inport
    Outport
    Enable
    Trigger
    State
    LConn
    RConn
    Ifaction
    Reset

네, 실수입니다. 아무것도 얻지 못했습니다.

Q : Gain 블록의 출력 신호의 데이터형으로 설정한 프로퍼티값은 무엇입니까?
그렇다면 다음 명령으로 정확합니다.
get_param(gcbh,'OutDataTypeStr')

ans =

    'Inherit: Same as input'

「Gain 블록의 출력 신호의 데이터형은」이라고 질문을 하고 있는 곳이 포인트입니다.

Simulink는 "시뮬레이션 실행이 가능한"블록 다이어그램으로 간편하게 실기없는 시뮬레이션 환경을 구축할 수 있습니다. Simulink 블록은 이 시뮬레이션 실행 가능한 블록 라이브러리로, 속성 유형으로 두 가지 유형이 있습니다.
  • 정적 속성
  • 컴파일 유형 속성

  • 1. 정적 속성



    정적 속성은 시뮬레이션 실행에 관계없이 고유하게 결정되는 속성입니다.

    2. 컴파일 유형 속성



    컴파일 타입 프로퍼티란, 시뮬레이션 실행 직전에 resolve 되는 프로퍼티입니다.
    데이터 유형, 단위, 차원, 샘플 시간 등의 속성이 속합니다.
    그럼, 방금 잘못한 커멘드의 전에 「시뮬레이션 직전」의 상태를 작성하고 나서 프로퍼티를 취득해 봅시다.

    절차 1. 컴파일 상태(시뮬레이션 직전 상태)를 만들고 모델을 잠급니다.
    feval(bdroot(gcs),[],[],[],'compile');
    

    Simulink의 캔버스가 회색이 되고 모델의 상태가 "Compiled"가 됩니다.
    데이터형도 갱신되어 Gain 블록의 출력 데이터형은 double이었던 표시가 int16이 됩니다.


    2단계. 컴파일 형식의 속성을 가져옵니다.
    portType = get_param(gcbh,'CompiledPortDataTypes')
    
    portType = 
    
      struct with fields:
    
          Inport: {'int16'}
         Outport: {'int16'}
          Enable: []
         Trigger: []
           State: []
           LConn: []
           RConn: []
        Ifaction: []
           Reset: []
    

    3단계. 컴파일 상태를 해제합니다.
    feval(bdroot(gcs),[],[],[],'term');
    

    네, 할 수 있었습니다! 일건 낙착. . .

    「Simulink라고 시뮬레이션 실행할 수 있다」라고 하는 것이 중요하군요.
    Simulink API를 사용하여 프로그램을 작성할 때도 Simulink 모델은 생물처럼 취급하지 않으면 아픈 눈에 띈다.

    다음에 그 2에 계속됩니다.

    수정 1:
    Gain 블록의 출력 신호의 데이터형으로 설정한 프로퍼티값의 커맨드가 빠져있기 때문에, 추가했습니다.

    좋은 웹페이지 즐겨찾기