Можно сгенерировать входные данные, а затем использовать их с моделью для создания выходных данных.
Симуляция выходных данных требует, чтобы у вас была модель с известными коэффициентами. Для получения дополнительной информации о командах для построения моделей смотрите Команды для построения структур линейной модели.
Чтобы сгенерировать входные данные, используйте idinput
создать сигнал с желаемыми характеристиками, такой как случайный Гауссов или двоичный сигнал или синусоида. idinput
возвращает матрицу входа значений.
В следующей таблице перечислены команды, которые можно использовать для моделирования выходных данных. Для получения дополнительной информации об этих командах см. соответствующие страницы с описанием.
Команды для генерации данных
Команда | Описание | Пример |
---|---|---|
idinput | Создает сигнал с желаемыми характеристиками, такими как случайный Гауссов или двоичный сигнал или синусоида, и возвращает матрицу входа значений. |
u = iddata([],... idinput(400,'rbs',[0 0.3])); |
sim | Моделирует данные отклика на основе существующей линейной или нелинейной параметрической модели в MATLAB® рабочей области. |
Чтобы симулировать вывод модели y = sim(m,data)
|
Этот пример показывает, как создать периодический случайный входной сигнал Гауссова с помощью idinput
.
Создайте периодический вход для одного входа и состоящий из пяти периодов, где каждый период составляет 300 выборок.
per_u = idinput([300 1 5]);
Создайте iddata
объект использует периодический вход и оставляет выход пустым.
u = iddata([],per_u,'Period',.300);
Смотрите характеристики данных во временной и частотной областях.
% Plot data in time-domain. plot(u) % Plot the spectrum. spectrum(spa(u))
(Необязательно) Моделируйте выход модели с помощью данных.
% Construct a polynomial model. m0 = idpoly([1 -1.5 0.7],[0 1 0.5]); % Simulate model output with Gaussian noise. sim_opt = simOptions('AddNoise',true); sim(m0,u,sim_opt)
Этот пример показывает, как сгенерировать выходные данные путем симуляции модели с помощью входного сигнала, созданного с помощью idinput
.
Сгенерированные данные используются для оценки модели того же порядка, что и модель, используемая для генерации данных. Затем вы проверяете, насколько точно обе модели совпадают, чтобы понять эффекты характеристик входных данных и шума на оценку.
Создайте модель ARMAX с известными коэффициентами.
A = [1 -1.2 0.7];
B = {[0 1 0.5 0.1],[0 1.5 -0.5],[0 -0.1 0.5 -0.1]};
C = [1 0 0 0 0];
Ts = 1;
m0 = idpoly(A,B,C,'Ts',1);
Начальные нули в B
матрица указывает на входную задержку (nk
), что 1
для каждого входного канала.
Создайте псевдослучайные двоичные входные данные.
u = idinput([255,3],'prbs');
Симулируйте выход модели с шумом с помощью входных данных.
y = sim(m0,u,simOptions('AddNoise',true));
Представьте данные моделирования как iddata
объект.
iodata = iddata(y,u,m0.Ts);
(Необязательно) Оцените модель того же порядка, как m0
использование iodata
.
na = 2; nb = [3 2 3]; nc = 4; nk = [1 1 1]; me = armax(iodata,[na,nb,nc,nk]);
Использование bode(m0,me)
и compare(iodata,me)
чтобы проверить, как тесно me
и m0
соответствовать.
compare(iodata,me);
Можно также симулировать данные с помощью Simulink® и программное обеспечение Signal Processing Toolbox™. Данные, моделируемые вне продукта System Identification Toolbox™, должны быть в рабочем пространстве MATLAB в виде двойных матриц. Для получения дополнительной информации об симуляции моделей с помощью программного обеспечения Simulink, см. «Моделирование идентифицированной модели в Simulink».