В этом примере показано, как использовать блок Unwrap для восстановления массива 3 на 2 на 3 с разрывом.
Каждый кадр 3 на 2 сигнала имеет прерывистый характер. В первом кадре имеется разрыв между вторым и третьим элементами, превышающий допуск
, установленный в параметрах блока. Во втором кадре разрыв между вторым и третьим элементами меньше,
а в третьем кадре разрыв равен.
Поскольку мы ожидаем, что блок будет оборачивать сигналы с разрывами, превышающими допуск, разворачивание сигнала не влияет на второй или третий кадр.
Откройте модель Simulink.
model = "ex_unwrap";
open_system(model);
frame1 = [0 0; 2*(pi)/3 0; -2*(pi)/3 0];
frame2 = [2*pi 0; 8*pi/3 0; 9.5*pi/3 0];
frame3 = [4*pi 0; 13*pi/3 0; 16*pi/3 0];
signal = cat(3,frame1,frame2,frame3)
signal(:,:,1) =
0 0
2.0944 0
-2.0944 0
signal(:,:,2) =
6.2832 0
8.3776 0
9.9484 0
signal(:,:,3) =
12.5664 0
13.6136 0
16.7552 0

Tolerance параметр блока Unwrap имеет значение.
Поэтому блок разматывает разрывы, которые больше, чем.
Запустите модель.
output = sim(model);
Посмотрите, что выходные данные, output.unwrapped_signal не имеет первого разрыва, но остальные два остаются.
output.unwrapped_output
ans =
0 0
2.0944 0
4.1888 0
6.2832 0
8.3776 0
9.9484 0
12.5664 0
13.6136 0
16.7552 0