Сгенерируйте данные Используя симуляцию

Команды для генерации данных Используя симуляцию

Можно сгенерировать входные данные и затем использовать его с моделью, чтобы создать выходные данные.

Симуляция выходных данных требует, чтобы у вас была модель с известными коэффициентами. Для получения дополнительной информации о командах для построения моделей, смотрите Команды для Построения Линейных Образцовых Структур.

Чтобы сгенерировать входные данные, используйте idinput, чтобы создать сигнал с желаемыми характеристиками, такими как случайный Гауссов или двоичный сигнал или синусоида. idinput возвращает матрицу входных значений.

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

Команды для генерации данных

КомандаОписаниеПример
idinputСоздает сигнал с желаемыми характеристиками, такими как случайный Гауссов или двоичный сигнал или синусоида, и возвращает матрицу входных значений.
u = iddata([],...
    idinput(400,'rbs',[0 0.3])); 
simМоделирует данные об ответе на основе существующей линейной или нелинейной параметрической модели в рабочей области MATLAB®.

Чтобы моделировать образцовый вывод y для данного входа, используйте следующую команду:

y = sim(m,data)

m является именем объекта модели, и data является матрицей входных данных или объектом iddata.

Создайте периодические входные данные

Этот пример показывает, как создать периодический случайный Гауссов входной сигнал с помощью 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);

Симуляция данных Используя другие продукты Mathworks

Можно также моделировать данные с помощью программного обеспечения Signal Processing Toolbox™ и Simulink®. Данные, моделируемые вне продукта System Identification Toolbox™, должны быть в рабочем пространстве MATLAB как двойные матрицы. Для получения дополнительной информации об имитационных моделях с помощью программного обеспечения Simulink, смотрите, Моделируют Идентифицированную Модель в Simulink.