exponenta event banner

sim

Моделирование ответа идентифицированной модели

Описание

пример

y = sim(sys,udata) возвращает смоделированный отклик идентифицированной модели с использованием входных данных, udata. По умолчанию нулевые начальные условия используются для всех типов моделей, кроме idnlgrey, в этом случае используются исходные условия, хранящиеся внутри модели.

пример

y = sim(sys,udata,opt) использует набор опций, opt, для конфигурирования опции моделирования, включая спецификацию начальных условий.

пример

[y,y_sd] = sim(___) возвращает расчетное стандартное отклонение, y_sd, смоделированного ответа.

пример

[y,y_sd,x] = sim(___) возвращает траекторию состояния, x, для моделей пространства состояний.

пример

[y,y_sd,x,x_sd] = sim(___) возвращает стандартное отклонение траектории состояния, x_sd, для моделей пространства состояний.

пример

sim(___) строит график смоделированного отклика идентифицированной модели.

Примеры

свернуть все

Загрузите оценочные данные.

load iddata2 z2

Оценка модели пространства состояния третьего порядка.

sys = ssest(z2,3);

Моделирование идентифицированной модели с использованием входных каналов из данных оценки.

y = sim(sys,z2);

Загрузите данные и получите идентифицированную модель.

load iddata2 z2
sys = n4sid(z2,3);

sys - модель состояния-пространства третьего порядка, оцененная методом подпространства.

Создайте набор опций моделирования, чтобы добавить шум к отклику моделируемой модели.

opt1 = simOptions('AddNoise',true);

Моделирование модели.

y = sim(sys,z2,opt1);

По умолчанию гауссовский белый шум фильтруется функцией передачи шума модели и добавляется к отклику моделируемой модели.

Также можно добавить собственный шумовой сигнал, e, с использованием NoiseData вариант.

e = randn(length(z2.u),1);
opt2 = simOptions('AddNoise',true,'NoiseData',e);

Моделирование модели.

y = sim(sys,z2,opt2);

Загрузить данные.

load iddata1 z1

Укажите опцию оценки для оценки начального состояния.

estimOpt = ssestOptions('InitialState','estimate');

Оцените модель «состояние-пространство» и верните значение расчетного начального состояния.

[sys,x0] = ssest(z1,2,estimOpt);

Укажите исходные условия для моделирования

simOpt = simOptions('InitialCondition',x0);

Смоделировать модель и получить отклик модели и стандартное отклонение.

[y,y_sd] = sim(sys,z1,simOpt);

Загрузить данные оценки и оценить модель состояния-пространства.

load iddata1 z1
sys = ssest(z1,2);

Верните стандартное отклонение и траекторию состояния.

[y,y_sd,x] = sim(sys,z1);

Загрузить данные оценки и оценить модель состояния-пространства.

load iddata1 z1
sys = ssest(z1,2);

Создайте набор опций моделирования и укажите начальные состояния.

opt = simOptions('InitialCondition',[1;2]);

Укажите ковариацию начальных состояний.

opt.X0Covariance = [0.1 0; 0 0.1];

Рассчитать стандартные отклонения смоделированной реакции, y_sdи траектория состояния, x_sd.

[y,y_sd,x,x_sd] = sim(sys,z1,opt);

Получение идентифицированной модели.

load iddata2 z2
sys = tfest(z2,3);

sys является idtf модель, которая инкапсулирует функцию переноса третьего порядка, оцененную для измеренных данных z2.

Моделирование модели.

sim(sys,z2)

Figure Estimated using TFEST contains an axes. The axes with title Simulated output #1: y1 contains an object of type line. This object represents y1.

Моделирование одновходовой нелинейной модели ARX вокруг известной точки равновесия с входным уровнем 1 и уровень выпуска 10.

Загрузите образцы данных.

load iddata2

Оцените нелинейную модель ARX на основе данных.

M = nlarx(z2,[2 2 1],'treepartition');

Оценка текущего состояния модели на основе прошлых данных. Укажите столько прошлых выборок, сколько имеется лагов во входных и выходных переменных (2 здесь).

x0 = data2state(M,struct('Input',ones(2,1),'Output',10*ones(2,1)));

Моделирование модели с использованием начальных состояний, возвращаемых data2state.

opt = simOptions('InitialCondition',x0);
sim(M,z2,opt)

Figure Estimated using NLARX with prediction focus contains an axes. The axes with title Simulated output #1: y1 contains an object of type line. This object represents y1.

Продолжите моделирование нелинейной модели ARX с конца предыдущего прогона моделирования.

Оцените нелинейную модель ARX на основе данных.

load iddata2
M = nlarx(z2,[2 2 1],'treepartition');

Моделирование модели с использованием первой половины входных данных z2. Начните моделирование с нулевых начальных состояний.

u1 = z2(1:200,[]); 
opt1 = simOptions('InitialCondition','zero');
ys1 = sim(M,u1,opt1);

Запуск другого моделирования с использованием второй половины входных данных z2. Используйте те же состояния модели, что и в конце первого моделирования.

u2 = z2(201:end,[]);

Чтобы правильно установить начальные состояния для второго моделирования, введите пакет u1 и выходные данные ys1 из первого моделирования в одно iddata объект. Передайте эти данные в качестве начальных условий для следующего моделирования.

firstSimData = [ys1,u1];
opt2 = simOptions('InitialCondition',firstSimData);
ys2 = sim(M,u2,opt2);

Проверка двух моделей путем сравнения с полным моделированием с использованием всех входных данных z2. Сначала извлеките весь набор входных данных.

uTotal = z2(:,[]); 
opt3 = simOptions('InitialCondition','zero'); 
ysTotal = sim(M,uTotal,opt3);

Постройте график трех ответов ys1, ys2 и ysTotal. ys1 должно быть равно первой половине ysTotal. ys2 должно быть равно второй половине ysTotal.

plot(ys1,'b',ys2,'g',ysTotal,'k*')

Figure contains an axes. The axes with title y1 contains 3 objects of type line. These objects represent ys1, ys2, ysTotal.

На графике видно, что три ответа ys1, ys2, и ysTotal перекрытие, как и ожидалось.

Оценка начальных состояний модели M таким образом, ответ лучше всего соответствует выходному сигналу в наборе данных z2.

Загрузите образцы данных.

load iddata2;

Оцените нелинейную модель ARX на основе данных.

M = nlarx(z2,[4 3 2],wavenet('NumberOfUnits',20));

Оценка начальных состояний M для наилучшего вписывания z2.y в смоделированном ответе.

x0 = findstates(M,z2,Inf);

Моделирование модели.

opt = simOptions('InitialCondition',x0);
ysim = sim(M,z2.u,opt);

Сравнение выходных данных моделируемой модели ysim с выходным сигналом в z2.

time = z2.SamplingInstants;
plot(time,ysim,time,z2.y,'.')

Figure contains an axes. The axes contains 2 objects of type line.

Начало моделирования модели в установившемся состоянии, где известно, что входной сигнал 1, но выход неизвестен.

Загрузите образцы данных.

load iddata2

Оцените нелинейную модель ARX на основе данных.

M = nlarx(z2,[4 3 2],'wavenet');

Определение значений состояния равновесия для ввода 1 и неизвестные целевые выходные данные.

x0 = findop(M,'steady',1, NaN);

Моделирование модели с использованием начальных состояний x0.

opt = simOptions('InitialCondition',x0);
sim(M,z2.u,opt)

Figure Estimated using NLARX with prediction focus contains an axes. The axes with title Simulated output #1: y1 contains an object of type line. This object represents y1.

Загрузите образцы данных.

load iddata2

Создайте модель Хаммерштейна-Винера.

M = nlhw(z2,[4 3 2],[],'pwlinear');

Вычисление значений установившейся рабочей точки, соответствующих входному уровню 1 и неизвестный уровень вывода.

x0 = findop(M,'steady',1,NaN);

Моделирование модели с использованием расчетных начальных состояний.

opt = simOptions('InitialCondition',x0);
sim(M,z2.u)

Figure Estimated using NLHW contains an axes. The axes with title Simulated output #1: y1 contains an object of type line. This object represents y1.

Загрузка данных временных рядов и оценка модели AR с использованием метода наименьших квадратов.

load iddata9 z9
sys = ar(z9,6,'ls');

Для данных временных рядов укажите требуемую длину моделирования N = 200, используя N-by-0 набор входных данных.

data = iddata([],zeros(200,0),z9.Ts);

Установите начальные условия для использования начальных выборок временного ряда в качестве выборок исторических выходных данных.

IC = struct('Input',[],'Output',z9.y(1:6));
opt = simOptions('InitialCondition',IC);

Моделирование модели.

sim(sys,data,opt)

Figure Estimated using AR contains an axes. The axes with title Simulated output #1: y1 contains an object of type line. This object represents y1.

Используйте исторические данные ввода-вывода в качестве прокси для начальных условий при моделировании модели. Сначала необходимо смоделировать с помощью sim и укажите исторические данные с помощью simOptions набор опций. Затем смоделированные выходные данные воспроизводятся путем сопоставления исторических данных с начальными состояниями вручную.

Загрузите набор данных с двумя входами и одним выходом.

load iddata7 z7

Определение модели пространства состояния пятого порядка с использованием данных.

sys = n4sid(z7,5);

Разбейте набор данных на две части.

zA = z7(1:15);
zB = z7(16:end);

Моделирование модели с использованием входного сигнала в zB.

uSim = zB;

Для моделирования требуются начальные условия. Значения сигнала в zA являются историческими данными, то есть они являются входными и выходными значениями для времени, непосредственно предшествующего данным в zB. Использовать zA в качестве прокси для требуемых начальных условий.

IO = struct('Input',zA.InputData,'Output',zA.OutputData);
opt = simOptions('InitialCondition',IO);

Моделирование модели.

ysim = sim(sys,uSim,opt);

Теперь воспроизведите выходные данные, вручную сопоставив исторические данные начальным состояниям sys. Для этого используйте data2state команда.

xf = data2state(sys,zA);

xf содержит значения состояния sys в момент непосредственно после последней выборки данных в zA.

Моделирование системы с помощью xf в качестве начальных состояний.

opt2 = simOptions('InitialCondition',xf);
ysim2 = sim(sys,uSim,opt2);

Постройте график выходных данных sim команда ysim и вычисленные вручную результаты ysim2.

plot(ysim,'b',ysim2,'--r')

Figure contains an axes. The axes with title y1 contains 2 objects of type line. These objects represent ysim, ysim2.

ysim2 является таким же, как ysim.

Входные аргументы

свернуть все

Идентифицированная модель, заданная как один из следующих объектов модели:

 Тип моделиОбъект модели
Идентифицированная линейная модельПолиномиальная модельidpoly
Модель процессаidproc
Модель пространства состоянийidss
Модель передаточной функцииidtf
Линейная серая модельidgrey
Идентифицированная нелинейная модельНелинейная модель ARXidnlarx
Нелинейная модель Хаммерштейна-Винераidnlhw
Нелинейная серая модельidnlgrey

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

Если sys является линейной моделью, можно использовать данные временной или частотной области. Если sys является нелинейной моделью, можно использовать только данные временной области.

Если sys является моделью временного ряда, то есть моделью без входных данных, укажите udata в качестве Ns-by-0 сигнала, где Ns - требуемое количество выходных выборок моделирования. Например, для моделирования 100 выходные образцы, укажите udata следующим образом.

udata = iddata([],zeros(100,0),Ts);

Если у вас нет данных из эксперимента, используйте idinput генерировать сигналы с различными характеристиками.

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

  • Исходные условия

  • Смещения ввода/вывода

  • Аддитивный шум

Выходные аргументы

свернуть все

Смоделированный ответ для sys, возвращено как iddata объект или матрица, в зависимости от способа указания udata. Например, если udata является iddata объект, то так и есть y.

Если udata представляет данные временной области, затем y - смоделированный отклик для вектора времени, соответствующего udata.

Если udata представляет данные в частотной области, U (λ), затемy содержит преобразование Фурье соответствующего дискретизированного выходного сигнала временной области. Этот сигнал является произведением частотной характеристики sys, G (λ) и U (λ).

Для данных нескольких экспериментов, y является соответствующим мультиэкспериментом iddata объект.

Оцененное стандартное отклонение моделируемого отклика для линейных моделей или нелинейных серых моделей, возвращаемое в виде матрицы Ns-by-Ny, где Ns - количество выборок, а Ny - количество выходов. Программное обеспечение вычисляет стандартное отклонение с учетом ковариации параметра модели, ковариации начального состояния и ковариации аддитивного шума. Ковариация аддитивного шума хранится в NoiseVariance свойство модели.

y_sd выводится с использованием соображений чувствительности первого порядка (формула приближения Гаусса).

Для нелинейных моделей y_sd является [].

Расчетная траектория состояния для моделей состояния-пространства, возвращаемая в виде матрицы Ns-by-Nx, где Ns - количество выборок, а Nx - количество состояний.

x релевантно только в том случае, если sys является idss, idgrey, или idnlgrey модель. Если sys не является моделью пространства состояний, x возвращается как [].

Оцененное стандартное отклонение траектории состояния для моделей состояния-пространства, возвращаемое в виде матрицы Ns-by-Nx, где Ns - количество выборок, а Nx - число состояний. Программное обеспечение вычисляет стандартное отклонение с учетом ковариации параметра модели, ковариации начального состояния и ковариации аддитивного шума. Ковариация аддитивного шума хранится в NoiseVariance свойство модели.

x_sd релевантно только в том случае, если sys является idss, idgrey, или idnlgrey модель. Если sys не является моделью пространства состояний, x_sd возвращается как [].

Совет

  • Когда исходные условия оцененной модели и системы, которая измеряла набор данных проверки, различны, смоделированные и измеренные ответы также могут отличаться, особенно в начале ответа. Чтобы минимизировать эту разницу, оцените начальные значения состояния с помощью findstates и используйте оценочные значения для установки InitialCondition опция с использованием simOptions. Пример см. в разделе Сопоставление ответа модели с выходными данными.

Алгоритмы

Моделирование означает вычисление отклика модели с использованием входных данных и исходных условий. sim моделирует следующую систему:

Здесь,

  • u (t) - входные данные моделирования ,udata.

  • y (t) - смоделированный выходной отклик.

  • G - передаточная функция от входа к выходу и определяется в sys. Исходные условия моделирования, указанные с помощью simOptions, установить исходное состояние G.

  • e (t) является необязательным шумовым сигналом. Добавление шума в моделирование путем создания simOptions набор опций и установка AddNoise опция для true. Кроме того, можно изменить шумовой сигнал по умолчанию, указав NoiseData вариант.

  • H является функцией передачи шума и определяется в sys.

  • δu - необязательный входной сдвиг, вычитаемый из входного сигнала u (t) до того, как вход будет использован для моделирования модели. Задайте смещение ввода, задав значение InputOffset опция с использованием simOptions.

  • δy - необязательный выходной сдвиг, добавляемый к выходному отклику y (t) после моделирования. Задайте смещение вывода, задав значениеOutputOffset опция с использованием simOptions.

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

Альтернативы

  • Использовать simsd для метода Монте-Карло вычисления стандартного отклонения отклика.

  • sim простирается lsim для облегчения дополнительных функций, относящихся к определенным моделям:

    • Моделирование нелинейных моделей

    • Моделирование с аддитивным шумом

    • Включение смещений сигналов

    • Вычисление стандартного отклонения отклика (только линейные модели)

    • Моделирование частотной области (только линейные модели)

    • Моделирование с использованием различных методов интерсамплирования для различных входных данных

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

Представлен до R2006a