Как извлечь элементы данных из вывода stepinfo в MATLAB? - PullRequest
2 голосов
/ 21 февраля 2011

Когда функция stepinfo запущена для передаточной функции (т. Е. stepinfo(tf)), типичным результатом является:

    RiseTime: 52.2052
SettlingTime: 85.4916
 SettlingMin: 0.9041
 SettlingMax: 1.0012
   Overshoot: 0.1192
  Undershoot: 0
        Peak: 1.0012
    PeakTime: 132.8773

Я провел некоторое исследование stepinfo. Похоже, это возвращает структуру. Поэтому я присвоил приведенный выше результат переменной и проверил ее размер, используя size(). Это матрица 1x1.

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

Мне нужны значения Overshoot и PeakTime. Кто-нибудь знает лучший способ получить эти значения без использования P.O. и формулы Tp - и без огромного беспорядка строки?

1 Ответ

4 голосов
/ 21 февраля 2011

Все в MATLAB считается матрицей. Единственный элемент структуры (который в нашем примере возвращает stepinfo) - это матрица 1 на 1 типа struct. Вы можете получить доступ к полям вашей структуры следующим образом:

S = stepinfo(sys);        %# Returns a structure, stored in variable S
overShoot = S.Overshoot;  %# Get the value in the Overshoot field
peakTime = S.PeakTime;    %# Get the value in the PeakTime field

Для получения дополнительной информации о работе со структурами, прочитайте эту страницу документации .

...