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

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

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

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

Чтобы сгенерировать входные данные, использовать 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);

Figure contains an axes. The axes contains 2 objects of type line. These objects represent iodata (y1), me: 53.56%.

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

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