Можно создать входные данные, а затем использовать их с моделью для создания выходных данных.
Моделирование выходных данных требует наличия модели с известными коэффициентами. Дополнительные сведения о командах для построения моделей см. в разделе Команды для построения структур линейных моделей.
Для создания входных данных используйте 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™. Данные, смоделированные вне продукта Toolbox™ идентификации системы, должны находиться в рабочем пространстве MATLAB в виде двойных матриц. Дополнительные сведения о моделировании моделей с помощью программы Simulink см. в разделе Моделирование идентифицированной модели в Simulink.