exponenta event banner

Создание данных с помощью моделирования

Команды для создания данных с помощью моделирования

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

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

Для создания входных данных используйте 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))

(Необязательно) Моделирование выходных данных модели с использованием данных.

% 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

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