Линейная ОДУ (модель серого ящика) с идентифицируемыми параметрами
sys = idgrey(odefun,parameters,fcn_type)
sys = idgrey(odefun,parameters,fcn_type,optional_args)
sys = idgrey(odefun,parameters,fcn_type,optional_args,Ts)
sys = idgrey(odefun,parameters,fcn_type,optional_args,Ts,Name,Value)
создает линейную модель «серый ящик» с идентифицируемыми параметрами, sys
= idgrey(odefun
,parameters
,fcn_type
)sys
. odefun
задает пользовательскую функцию, которая связывает параметры модели, parameters
, в представление пространства состояний.
создает линейную модель «серый ящик» с идентифицируемыми параметрами с помощью необязательных аргументов, требуемых sys
= idgrey(odefun
,parameters
,fcn_type
,optional_args
)odefun
.
создает линейную модель «серый ящик» с идентифицируемыми параметрами с заданным шагом расчета, sys
= idgrey(odefun
,parameters
,fcn_type
,optional_args
,Ts
)Ts
.
создает линейную модель «серый ящик» с идентифицируемыми параметрами с дополнительными опциями, заданными одной или несколькими sys
= idgrey(odefun
,parameters
,fcn_type
,optional_args
,Ts
,Name,Value
)Name,Value
аргументы в виде пар.
Один idgrey
модель представляет систему как модель пространства состояний в непрерывном времени или дискретном времени с идентифицируемыми (оцениваемыми) коэффициентами.
Модель пространства состояний системы с входным вектором, u, выходным вектором, y и нарушением порядка, e, принимает следующую форму за непрерывное время:
В дискретном времени модель пространство состояний принимает форму:
Для idgrey
модели, матрицы A, B, C и D пространства состояний выражаются как функция пользовательских параметров с помощью MATLAB® функция. Вы получаете доступ к предполагаемым параметрам, используя sys.Structures.Parameters
, где sys
является idgrey
модель.
Используйте idgrey
модель, когда вы знаете систему уравнений, управляющих динамикой системы явно. Вы должны уметь выразить эту динамику в виде обыкновенных дифференциальных или разностных уравнений. Вы задаете сложные связи и ограничения среди параметров, которые не могут быть сделаны через структурированные модели пространства состояний (idss
).
Вы можете создать idgrey
модель с использованием idgrey
команда. Для этого запишите функцию MATLAB, которая возвращает A, B, C и матрицы D для заданных значений оценочных параметров и шага расчета. Функция MATLAB может также вернуть матрицу K и принять необязательные входные параметры. Возвращенные матрицы могут представлять модель в непрерывном времени или дискретном времени, как показано шагом расчета.
Используйте функции оценки pem
или greyest
для получения оценочных значений неизвестных параметров idgrey
модель.
Вы можете преобразовать idgrey
моделировать в другие динамические системы, такие как idpoly
, idss
, tf
, ss
и т.д. Вы не можете преобразовать динамическую систему в idgrey
модель.
|
Функция MATLAB, которая связывает параметры модели с ее представлением пространства состояний.
Если функции нет в пути MATLAB, задайте полное имя файла, включая путь. Синтаксис для [A,B,C,D] = odefun(par1,par2,...,parN,Ts,optional_arg1,optional_arg2,...) Выходы функции описывают модель в следующей форме линейных инноваций в пространстве состояний: В дискретном времени xn (t) = x (t + Ts) и за непрерывное время,.
Матрица нарушения порядка, K и начальные значения состояний x0 не параметризованы. Вместо этого эти значения определяются отдельно, используя Хорошим выбором для достижения лучших результатов симуляции является установка (Необязательно) Параметризация нарушения порядка: [A,B,C,D,K] = odefun(par1,par2,...,parN,Ts,optional_arg1,optional_arg2,...) Если (Необязательно) Параметризация начальных значений состояния: Чтобы сделать начальные состояния модели X0, зависимыми от параметров модели, используйте следующий синтаксис для [A,B,C,D,K,X0] = odefun(par1,par2,...,parN,Ts,optional_arg1,optional_arg2,...) Если |
|
Начальные значения параметров, требуемых Задайте Можно также задать имена параметров, используя массив ячеек N -by-2, где N количество параметров. Первый столбец задает имена, а второй - значения параметров. Для примера: parameters = {'mass',par1;'stiffness',par2;'damping',par3} |
|
Указывает, параметризирована ли модель в непрерывном времени, дискретном времени или в обоих случаях.
|
|
Необязательные входные параметры, требуемые Задайте Если |
|
Моделируйте шаг расчета. Если
|
|
Задайте необязательные разделенные разделенными запятой парами Использование |
idgrey
свойства объекта включают:
|
Значения матриц пространства состояний.
Значения |
|
Значение матрицы нарушения порядка состояния, K
Чтобы создать набор опций оценки для |
|
Имена состояний, заданные как одно из следующих:
По умолчанию: |
|
Состояние модулей, заданное как одно из следующих:
Использование По умолчанию: |
|
Информация об оценочных параметрах
|
|
Отклонение (ковариационная матрица) инноваций модели, e. Идентифицированная модель включает белый, Гауссов шумовой компонент, e (t). Для моделей SISO, |
|
Сводный отчет, который содержит информацию об опциях оценки и результатах, когда модель «серый ящик» получена с помощью
Содержимое odefun = 'motorDynamics'; m = idgrey(odefun,1,'cd',0.25,0); m.Report.OptionsUsed ans = [] Если вы получаете модель серого ящика с помощью команд оценки, поля load(fullfile(matlabroot,'toolbox','ident','iddemos','data','dcmotordata')); data = iddata(y,u,0.1,'Name','DC-motor'); odefun = 'motorDynamics'; init_sys = idgrey('motorDynamics',1,'cd',0.25,0); m = greyest(data,init_sys); m.Report.OptionsUsed InitialState: 'auto' DisturbanceModel: 'auto' Focus: 'prediction' EstimateCovariance: 1 Display: 'off' InputOffset: [] OutputOffset: [] Regularization: [1x1 struct] OutputWeight: [] SearchMethod: 'auto' SearchOptions: [1x1 idoptions.search.identsolver] Advanced: [1x1 struct]
Для получения дополнительной информации об этом свойстве и о том, как его использовать, смотрите раздел Выходные аргументы соответствующей страницы с описанием команды оценки и отчета по оценке. |
|
Входная задержка для каждого входного канала, заданная как скалярное значение или числовой вектор. Для систем непрерывного времени задайте задержки на входе в модуле времени, сохраненной в Для системы с Можно также задать По умолчанию: 0 |
|
Выходные задержки. Для идентифицированных систем, таких как |
|
Шаг расчета. Для моделей в непрерывном времени, Изменение этого свойства не дискретизирует и не переопределяет модель. Для |
|
Модули измерения для временной переменной, шага расчета
Изменение этого свойства не влияет на другие свойства и, следовательно, изменяет общее поведение системы. Использовать По умолчанию: |
|
Входные имена каналов, заданные как одно из следующих:
Кроме того, используйте автоматическое расширение вектора, чтобы назначить входные имена для мультивходов. Для примера, если sys.InputName = 'controls'; Имена входа автоматически расширяются на Когда вы оцениваете модель, используя Можно использовать сокращённое обозначение Входные имена каналов имеют несколько применений, включая:
По умолчанию: |
|
Входные модули канала, заданные как один из следующих:
Использование По умолчанию: |
|
Входные группы каналов. The sys.InputGroup.controls = [1 2]; sys.InputGroup.noise = [3 5]; создает входные группы с именем sys(:,'controls') По умолчанию: Struct без полей |
|
Выходы каналов, заданные как одно из следующих:
Кроме того, используйте автоматическое расширение вектора, чтобы назначить имена выходов для мультивыходов. Для примера, если sys.OutputName = 'measurements'; Выходы данных автоматически расширяются на Когда вы оцениваете модель, используя Можно использовать сокращённое обозначение Имена выходных каналов имеют несколько применений, включая:
По умолчанию: |
|
Выход модулей канала, заданный как один из следующих:
Использование По умолчанию: |
|
Выходы каналов. The sys.OutputGroup.temperature = [1]; sys.InputGroup.measurement = [3 5]; создает выходные группы с именем sys('measurement',:) По умолчанию: Struct без полей |
|
Имя системы, заданное как вектор символов. Для примера, По умолчанию: |
|
Любой текст, который вы хотите связать с системой, сохраненный как строка или массив ячеек из векторов символов. Свойство сохраняет любой тип данных, которые вы предоставляете. Для образца, если sys1.Notes = "sys1 has a string."; sys2.Notes = 'sys2 has a character vector.'; sys1.Notes sys2.Notes ans = "sys1 has a string." ans = 'sys2 has a character vector.' По умолчанию: |
|
Любой тип данных, которые вы хотите связать с системой, заданный как любой тип данных MATLAB. По умолчанию: |
|
Сетка дискретизации для массивов моделей, заданная как структура данных. Для массивов идентифицированных линейных (IDLTI) моделей, которые получают путем выборки одной или нескольких независимых переменных, это свойство отслеживает значения переменных, сопоставленные с каждой моделью. Эта информация появляется при отображении или построении графика массива моделей. Используйте эту информацию для отслеживания результатов к независимым переменным. Установите имена полей структуры данных в имена переменных выборки. Установите значения полей к выборочным значениям переменных, сопоставленным с каждой моделью в массиве. Все переменные выборки должны быть числовыми и скалярными, а все массивы выборочных значений должны совпадать с размерностями массива моделей. Например, если вы собираете данные в различных рабочих точках системы, можно идентифицировать модель для каждой рабочей точки отдельно, а затем сложить результаты в один системный массив. Можно пометить отдельные модели в массиве информацией, касающейся рабочей точки: nominal_engine_rpm = [1000 5000 10000];
sys.SamplingGrid = struct('rpm', nominal_engine_rpm) где Для массивов моделей, сгенерированных линеаризацией Simulink® моделируйте в нескольких значениях параметров или рабочих точках, программное обеспечение заполняет По умолчанию: |