Можно сгенерировать входные данные и затем использовать его с моделью, чтобы создать выходные данные.
Симуляция выходных данных требует, чтобы у вас была модель с известными коэффициентами. Для получения дополнительной информации о командах для построения моделей, смотрите Команды для Построения Линейных Структур модели.
Чтобы сгенерировать входные данные, использовать 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))
(Необязательно) модель Simulate выход с помощью данных.
% 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.