Линейное ОДУ (модель серого ящика) идентифицируемыми параметрами
idgrey
модель представляет линейную систему как модель в пространстве состояний непрерывного времени или дискретного времени с идентифицируемыми (допускающими оценку) коэффициентами. Используйте idgrey
модель, когда это необходимо, чтобы получить комплексные отношения, ограничения и предварительные знания, которые структурировали пространство состояний (idss
) модели не могут инкапсулировать. Создать idgrey
модель, необходимо знать явным образом систему уравнений (обыкновенные дифференциальные уравнения или разностные уравнения), которые управляют системной динамикой.
idgrey
модель позволяет вам включать условия, такие как следующее:
Ограничения параметра, что idss
/ssest
среда не может обработать, такие как линейные или ограничения равенства на параметры или предварительные знания об отклонении состояний, входных параметров, выходных параметров или любой комбинации этих трех, которые вы хотите включать как известную информацию
Линейная модель произвольной формы, такой как передаточная функция или полиномиальная модель, с ограничениями параметра, такими как известное усиление DC, ограничивает на местоположениях полюса, разделяемом знаменателе через несколько входных параметров или ненулевых задержках ввода/вывода моделей MIMO
Дифференциальные или разностные уравнения с известными и неизвестными коэффициентами
В этих и подобных случаях можно создать ОДУ (обыкновенное дифференциальное уравнение или разностное уравнение) функция в MATLAB® это реализует реализацию пространства состояний линейной модели, и это задает ограничения и предварительные знания.
Простой пример создания ОДУ для idgrey
использует следующие уравнения, чтобы описать моторную динамику.
В этих уравнениях τ является одним допускающим оценку параметром, и G представляет известное статическое усиление.
Эти уравнения соответствуют форме пространства состояний:
Для этого случая и A и матрицы B содержат допускающий оценку параметр τ, и B также включает известное усиление G. Можно записать функцию MATLAB, которая принимает τ и G как входные параметры и возвращает матрицы пространства состояний A, B и C как его выходные аргументы. Например, можно закодировать функциональный motorFcn
можно следующим образом.
function [A,B,C] = motorFcn(tau,G) % ODE function for computing state-space matrices as functions of parameters A = [0 1; 0 -1/tau]; B = [0; G/tau]; C = eye(2);
После создания функции, такой как motorFcn
, создайте idgrey
модель путем определения этой функции как значения ее odefun
входной параметр, когда следующая команда показывает.
sys = idgrey(@motorFcn,tau0,'c',G)
tau0
исходное предположение для параметра τ и G
задает фиксированную постоянную. Кроме того, 'c'
указывает к idgrey
тот odefun
возвращает матрицы, соответствующие системе непрерывного времени. Для получения дополнительной информации смотрите function_type
.
Для исполняемого примера, который создает idgrey
модель от этих моторных уравнений динамики, смотрите, Создают Модель Серого ящика Допускающими оценку Параметрами.
В более общем плане следующие уравнения описывают формы пространства состояний для систем непрерывного времени и дискретного времени.
Модель в пространстве состояний системы с входным вектором u, выходной вектор y и воздействие e, принимает следующую форму в непрерывное время:
В дискретное время модель в пространстве состояний принимает форму:
Ваша функция ОДУ MATLAB включает пользовательские параметры в A, B, C и матрицы D, которые возвращает функция. Связанный idgrey
модели - ссылки эта функция и функции оценки greyest
и pem
используйте эти матричные определения при оценке параметров.
Для получения дополнительной информации о создании ОДУ функционируют для idgrey
, смотрите Оценку Линейные Модели Серого ящика.
Создайте idgrey
модель с помощью idgrey
команда. Для этого запишите функцию MATLAB, которая возвращает A, B, C и матрицы D для данных значений допускающих оценку параметров и шага расчета. Можно передать дополнительные входные параметры, такие как постоянная времени или усиление, которые не являются параметрами, но что ОДУ использует в выражениях для выходных аргументов.
В дополнение к A, B, C и матрицам D, ваша функция MATLAB может возвратить матрицу K, если вы хотите, чтобы значения K были функциями ваших входных параметров. Ваша функция может также возвратить вектор начального состояния x0. Однако альтернативный и рекомендуемый подход для параметризации x0 должен использовать InitialState
опция оценки greyestOptions
.
Обратите внимание на то, что можно записать функцию ОДУ, чтобы представлять или непрерывную динамику времени или динамику дискретного времени независимо от природы idgrey
сама модель. Например, можно задать дискретное время idgrey
модель (sys.Ts>0
) это использует параметризацию непрерывного времени функции ОДУ. Точно так же можно задать параметризацию дискретного времени функции ОДУ и использовать ее с непрерывным временем idgrey модель (sys.Ts=0
). idgrey
входной параметр fcn_type
сообщает idgrey модели, какая параметризация ОДУ функционирует использование. Для получения дополнительной информации смотрите Оценку Линейные Модели Серого ящика.
Используйте функции оценки pem
или greyest
получить ориентировочные стоимости для неизвестных параметров idgrey
модель. В отличие от другой оценки функционирует такой как ssest
, который может создать новый объект модели, greyest
может оценить параметры только для idgrey
модель, которая уже существует и задана как входной параметр. Можно получить доступ к оцененным параметрам с помощью sys.Structures.Parameters
, где sys
idgrey
модель.
Можно преобразовать idgrey
модель в другие динамические системы, такой как idpoly
, idss
, tf
, или ss
. Вы не можете преобразовать динамическую систему в idgrey
модель.
создает линейную модель sys
= idgrey(odefun
,parameters
,fcn_type
)sys
серого ящика идентифицируемыми параметрами.
odefun
задает пользовательскую функцию, которая связывает параметры модели parameters
к их представлению пространства состояний. fcn_type
задает, параметрируется ли модель в непрерывное время, дискретное время или обоих.
задает дополнительные аргументы sys
= idgrey(odefun
,parameters
,fcn_type
,extra_args
)extra_args
тот odefun
требует.
задает шаг расчета sys
= idgrey(odefun
,parameters
,fcn_type
,extra_args
,Ts)Ts
.
включает дополнительные опции, заданные одними или несколькими аргументами name-value.sys
= idgrey(odefun
,parameters
,fcn_type
,extra_args
,Ts
,Name,Value
)
Для получения информации о функциях, которые применимы к idgrey
возразите, см. Линейные Модели Серого ящика.