1 minute read



1.4.1 Transform Sensor

실제 환경에서 데이터를 얻기 위해서는 센서가 필요. 시뮬레이션도 마찬가지.

Simscape > Multibody > Frames and Transforms > Transform Sensor

Transform Sensor는 backward에서 forward 방향으로 데이터를 측정한다.

World 기준으로, trajectory에 관한 정보를 얻기 위해 Translation의 $x$, $y$, $z$를 모두 체크한다.


Backward는 world frame에, forward는 우리가 알고자하는 위치에 연결한다.

그런데, 이렇게 얻은 데이터는 Physical Data이므로, 이를 Simulink 상에서 확인하기 위해서는 PS-Simulink Converter가 필요하다.




1.4.2 Workspace에 데이터 기록

Scope > 속성 > 기록 > 작업 공간에 데이터 기록

위 항목을 체크하고, 변수 이름을 설정한다. 저장 형식은 Structure with Time을 택한다.





1.4.3 Communication with MATLAB

이렇게 얻은 데이터를 MATLAB으로 가져와 출력하고자 한다.

적당한 .m 파일을 만든다. 단, .slx 파일과 같은 작업공간 내에 있어야 한다.


%Set the length of each link
l1 = 1;
l2 = 0.4;
l3 = 0.8;
l4 = 0.8;

%Run simulation to get the result
result = sim('Getting_data') %the name of simulink model
x = result.xyz_pos.signals(1).values;
y = result.xyz_pos.signals(2).values;
z = result.xyz_pos.signals(3).values;

%Get the trajectory of the coupler
plot(x,z)
hold on
title Trajectory
xlabel 'X position'
ylabel 'Y position'
grid on
axis equal

%Save it


위 코드는 simulink model로부터 position 데이터를 얻어와 플로팅하는 내용을 담고 있다. 실행하기에 앞서, simulink의 모든 링크 길이를 $l1$, $l2$, $l3$, $l4$로 수정해야 한다. 또한 Rigid Transform 역시 수정.

저장한 뒤 MATLAB을 실행한다.


이렇게 환경이 다양하게 변하는 시스템을 MATLAB과 communication하며 실행할 수 있다.



1.4.4 Simulation 녹화

Mechanics Explorers > Tools > Video Creator