Как получить векторный или матричный вывод в рабочую область с помощью simulink?

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

это простой вектор 4x1, и я пытался просто использовать обычный блок «в рабочую область», но, похоже, он объединяется либо с 2d, либо с 3d вектором.

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


person ChrisM    schedule 29.04.2019    source источник


Ответы (1)


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

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

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

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

simout = simout.';    % or tranpose(simout);
person rinkert    schedule 29.04.2019