Simulink 블록실습

전지현·2024년 7월 15일

MATLAB

목록 보기
4/4

ctrl + d : 새로고침

ctrl 누르고 드래그 하면 복사됨.

매트랩 도움말 사이트를 적극 활용하자! 모르는 건 검색ㄱ

https://kr.mathworks.com/help/

  • 변수 (파일명.m) 파일 만들어서 거기서 변수값 설정해주고 사용하는 게 좋다.

    • 변수 선언하고 run 하면 workspace에 변수값 할당된 게 뜸.
  • switch, multiport switch

  • unit delay : 그 전 timestamp를 잠깐 저장하고 있는 블록. 현재 타임스탬프가 1이라면 얘는 0시점에서의 값을 저장하고 있음.

    • initial condition: 제일 처음에 그 전 값은 존재하지 않으니 이때 어떤 값을 설정해줄거냐를 설정.
  • COUNTER 예제

    • 1씩 값이 증가되는 로직.
    • unit delay 우클릭→ format → 회전 시키면 보기에 깔끔하게 선 정리됨. (ctrl+ i)

- 근데 그냥 이렇게 하면 0.2초에 증가함. 예제에서는 1초마다 1씩 증가하도록 하라고 했기 때문에 solver를 써야 함.
- solver에서 항상 type은 Fixed-step, Solver는 discrete 으로 설정. (거의 이렇게 고정)
    

(문제에서 1초마다 라고 했으니 fixed-step size는 1로 설정)

  • subsystem으로 만든 후 enable 추가하면 enable subsystem이 됨. 얘는 인풋 값이 1이면 작동하게 됨. (enable 상태이면 실행)

  • 1이 들어오면 계속 누적합. 0이 들어오면 0으로 초기화하는 로직

  • Relay 예제
    • 특정 값 이상이면 on, 특정 값 이하면 off, 사이면 이전 스위치로 유지
    • Relational operator 블록 쓸 때, 위에 값이 왼쪽, 아래 값이 오른쪽이라 생각하고 부등호 비교하면 된다.
    • 문제: 0.9 이상이면 On, 04 이하이면 Off, 중간값이면 이전 스위치 유지

- Switch 중첩해서 사용 가능하다!!
  • SR Flip-flop 예제
    • S는 긍정, R은 부정 신호
    • S가 1이고 R이 0이면 1
    • S가 0이고 R이 1이면 0
    • S,R이 모두 0인 경우 이전 상태 유지

  • 블록 설정 시 데이터 타입을 설정할 수 있는데, uint8, boolean 등등임. 근데 이게 잘못 설정되어 있으면 값이 이상하게 나올 수 있음. 확인해야 함!

0개의 댓글