Документация Engee

Идентификационные данные

Все методы оценки в этом пакете принимают объект типа AbstractIdData, созданный функцией iddata. Этот объект обычно содержит данные входа и выхода, а также интервал выборки.

# ControlSystemIdentification.iddataFunction

iddata(y,       Ts = nothing)
iddata(y, u,    Ts = nothing)
iddata(y, u, x, Ts = nothing)

Создает объект идентификационных данных временной области.

Аргументы

  • y::AbstractArray: выходные данные (обязательно)

  • u::AbstractArray: входные данные (если доступны)

  • x::AbstractArray: данные состояния (если доступны)

  • Ts::Union{Real,Nothing} = nothing: дополнительный интервал выборки

Если временные ряды являются многомерными, время находится в последнем измерении, то есть размеры массивов равны (num_variables, num_timepoints) (см. примеры ниже).

Операции с iddata

  • detrend

  • prefilter

  • resample

  • Добавление двух к временному измерению [d1 d2] (это делается только в том случае, если состояние системы в конце d1 близко к состоянию в начале d2)

  • Индексирование временных рядов d[output_index, input_index]

  • Индексирование оси времени с помощью индексов d[time_indices]

  • Индексирование оси времени с помощью секунд d[3Sec:12Sec] (using ControlSystemIdentification: Sec)

  • Доступ к количеству входных данных, выходных данных и времени выборки: d.nu, d.ny, d.Ts

  • Доступ к вектору времени d.t

  • Умножение в обычном порядке для масштабирования выходных данных C * d. Перед оценкой модели обычно рекомендуется масштабировать выходные данные системы с несколькими выводами так, чтобы они имели примерно одинаковый размер, в случае если они имеют разную величину.

  • Умножение в обычном порядке для масштабирования входных данных d * B

  • writedlm

  • ramp_in, ramp_out

  • plot

  • specplot

  • crosscorplot

Примеры

julia> iddata(randn(10))
Output data of length 10 with 1 outputs, Ts = nothing

julia> iddata(randn(10), randn(10), 1)
InputOutput data of length 10, 1 outputs, 1 inputs, Ts = 1

julia> d = iddata(randn(2, 10), randn(3, 10), 0.1)
InputOutput data of length 10, 2 outputs, 3 inputs, Ts = 0.1

julia> [d d] # Конкатенация по времени
InputOutput data of length 20, 2 outputs, 3 inputs, Ts = 0.1

julia> d[1:3]
InputOutput data of length 3, 2 outputs, 3 inputs, Ts = 0.1

julia> d.nu
3

julia> d.t # доступ к вектору времени
0.0:0.1:0.9

Использование нескольких наборов данных

Некоторые методы оценки поддерживают использование нескольких наборов данных для оценки модели. В этом случае наборы данных предоставляются в виде вектора объектов iddata. Вот эти методы:

Некоторые другие методы оценки можно адаптировать для использования нескольких наборов данных с минимальными изменениями.

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

iddata(y::AbstractArray, u::AbstractArray, w::AbstractVector)

Создает объект входных-выходных данных частотной области. w должен быть указан в рад/с.

iddata(res::ControlSystemsBase.SimResult)

Создает объект идентификационных данных непосредственно из результатов моделирования.

# ControlSystemIdentification.predictiondataFunction

predictiondata(d::AbstractIdData)

Добавляет выходное значение y к входному u_new = [u; y]

Некоторые методы для частотной области принимают или возвращают объекты типа FRD, который представляет данные частотной характеристики. Объект FRD можно создать напрямую с помощью конструктора или посредством соответствующего метода iddata.

Видеоруководства

Соответствующие видеоруководства доступны здесь: