Как получить вектор или матричный вывод в рабочую область, используя Simulink? - PullRequest
0 голосов
/ 29 апреля 2019

Это довольно простая вещь, я думаю, но я не могу получить правильный результат, который я ищу. Я использую матрицы для представления моделей пространства состояний в Simulink и пытаюсь вывести свои состояния в рабочую область,

это простой вектор 4x1, и я попытался просто использовать обычный блок "to workspace", но, похоже, он соответствует либо 2d, либо 3d вектору.

Я хочу получить матричный вывод tx4, в котором я смогу сослаться на первое состояние и построить график для всего времени моделирования (t), например x (:, 1), второго состояния x (:, 2) и т. Д. *

1 Ответ

1 голос
/ 29 апреля 2019

Вы можете установить формат сохранения в блоке To Workspace. По умолчанию установлено значение timeseries, но вы можете установить значение Array.

Просмотр документа для настройки массива:

Если входным сигналом является скаляр или вектор, каждый входной сэмпл выводится в виде строки массива. Предположим, что имя выходного массива simout. Затем simout(1,:) соответствует первому образцу, simout(2,:) соответствует второму образцу и т. Д.

Вы хотите, чтобы первое измерение было не временем, а вектором вашего состояния, поэтому транспонирование simout должно помочь.

simout = simout.';    % or tranpose(simout);
...