<< ModelingSystemDynamicTimeGrid computing_experiment SetDiagramParameters >>

computing_experiment >> computing_experiment > ModelingSystemIdentificationDynamic

ModelingSystemIdentificationDynamic

Реализует вычислительный эксперимент пользовательской системы, заданной в виде xcos-диаграммы, на основе идентификации параметров этой системы из экспериментальных данных

Синтаксис

[SystemOutputChatacteristics,..
SystemIdentificationParametersValues..
]=ModelingSystemIdentificationDynamic(SystemIdentificateShema,..
SystemIdentificateOutputCharacteristicsNames,..
SystemIdentificateOutputCharacteristicsIndexes,..
SystemIdentificateOutputCharacteristicsCompressionFunctions,..
SystemIdentificateModesParametersNames,..
SystemIdentificateModesParametersValues,..
SystemIdentificationParametersNames,..
SystemIdentificationParametersMinValues,..
SystemIdentificationParametersMaxValues,..
IdentificationFunction,SystemShema,..
SystemOutputCharacteristicsNames,..
SystemOutputCharacteristicsIndexes,..
"Evidence",SystemOutputCharacteristicsCompressionFunctions,..
SystemModesParametersNames,SystemModesParametersValues,..
[SystemHyperParametrsNames,SystemHyperParametrsValues,..
[identificationAbsolutTolErr,[absolutTolErr,..
[identificationRelativeTolErr,[relativeTolErr,..
[identificationSimulationTime,[simulationTime,..
[identificationTimeStepMax,[timeStepMax,..
[identificationSolver,[Solver,..
[identificationToleranceTime,[toleranceTime]]]]]]]]]]]]])
[SystemOutputChatacteristics,..
SystemIdentificationParametersValues..
]=ModelingSystemIdentificationDynamic(SystemIdentificateShema,..
SystemIdentificateOutputCharacteristicsNames,..
SystemIdentificateOutputCharacteristicsIndexes,..
SystemIdentificateOutputCharacteristicsCompressionFunctions,..
SystemIdentificateModesParametersNames,..
SystemIdentificateModesParametersValues,..
SystemIdentificationParametersNames,..
SystemIdentificationParametersMinValues,..
SystemIdentificationParametersMaxValues,..
IdentificationFunction,SystemShema,..
SystemOutputCharacteristicsNames,..
SystemOutputCharacteristicsIndexes,..
"Evidence",SystemOutputCharacteristicsCompressionFunctions,..
SystemModesParametersNames,SystemModesParametersValues,..
[identificationAbsolutTolErr,[absolutTolErr,..
[identificationRelativeTolErr,[relativeTolErr,..
[identificationSimulationTime,[simulationTime,..
[identificationTimeStepMax,[timeStepMax,..
[identificationSolver,[Solver,..
[identificationToleranceTime,[toleranceTime]]]]]]]]]]]])
[SystemOutputChatacteristics,..
SystemIdentificationParametersValues,..
SystemModesParametersIndexes,..
SystemModesParametersValues,..
TimesMomemts..
]=ModelingSystemIdentificationDynamic(SystemIdentificateShema,..
SystemIdentificateOutputCharacteristicsNames,..
SystemIdentificateOutputCharacteristicsIndexes,..
SystemIdentificateOutputCharacteristicsCompressionFunctions,..
SystemIdentificateModesParametersNames,..
SystemIdentificateModesParametersValues,..
SystemIdentificationParametersNames,..
SystemIdentificationParametersMinValues,..
SystemIdentificationParametersMaxValues,..
IdentificationFunction,SystemShema,..
SystemOutputCharacteristicsNames,..
SystemOutputCharacteristicsIndexes,..
"TimeGrid",TimeMoments,..
SystemModesParametersNames,SystemModesParametersValues,..
[SystemHyperParametrsNames,SystemHyperParametrsValues,..
[identificationAbsolutTolErr,[absolutTolErr,..
[identificationRelativeTolErr,[relativeTolErr,..
[identificationSimulationTime,[simulationTime,..
[identificationTimeStepMax,[timeStepMax,..
[identificationSolver,[Solver,..
[identificationToleranceTime,[toleranceTime]]]]]]]]]]]]])
[SystemOutputChatacteristics,..
SystemIdentificationParametersValues,..
SystemModesParametersIndexes,..
SystemModesParametersValues..
]=ModelingSystemIdentificationDynamic(SystemIdentificateShema,..
SystemIdentificateOutputCharacteristicsNames,..
SystemIdentificateOutputCharacteristicsIndexes,..
SystemIdentificateOutputCharacteristicsCompressionFunctions,..
SystemIdentificateModesParametersNames,..
SystemIdentificateModesParametersValues,..
SystemIdentificationParametersNames,..
SystemIdentificationParametersMinValues,..
SystemIdentificationParametersMaxValues,..
IdentificationFunction,SystemShema,..
SystemOutputCharacteristicsNames,..
SystemOutputCharacteristicsIndexes,..
"TimeGrid",TimeMoments,..
SystemModesParametersNames,SystemModesParametersValues,..
[SystemHyperParametrsNames,SystemHyperParametrsValues,..
[identificationAbsolutTolErr,[absolutTolErr,..
[identificationRelativeTolErr,[relativeTolErr,..
[identificationSimulationTime,[simulationTime,..
[identificationTimeStepMax,[timeStepMax,..
[identificationSolver,[Solver,..
[identificationToleranceTime,[toleranceTime]]]]]]]]]]]]])
[SystemOutputChatacteristics,..
SystemIdentificationParametersValues,..
SystemModesParametersIndexes..
]=ModelingSystemIdentificationDynamic(SystemIdentificateShema,..
SystemIdentificateOutputCharacteristicsNames,..
SystemIdentificateOutputCharacteristicsIndexes,..
SystemIdentificateOutputCharacteristicsCompressionFunctions,..
SystemIdentificateModesParametersNames,..
SystemIdentificateModesParametersValues,..
SystemIdentificationParametersNames,..
SystemIdentificationParametersMinValues,..
SystemIdentificationParametersMaxValues,..
IdentificationFunction,SystemShema,..
SystemOutputCharacteristicsNames,..
SystemOutputCharacteristicsIndexes,..
"TimeGrid",TimeMoments,..
SystemModesParametersNames,SystemModesParametersValues,..
[SystemHyperParametrsNames,SystemHyperParametrsValues,..
[identificationAbsolutTolErr,[absolutTolErr,..
[identificationRelativeTolErr,[relativeTolErr,..
[identificationSimulationTime,[simulationTime,..
[identificationTimeStepMax,[timeStepMax,..
[identificationSolver,[Solver,..
[identificationToleranceTime,[toleranceTime]]]]]]]]]]]]])
[SystemOutputChatacteristics,..
SystemIdentificationParametersValues..
]=ModelingSystemIdentificationDynamic(SystemIdentificateShema,..
SystemIdentificateOutputCharacteristicsNames,..
SystemIdentificateOutputCharacteristicsIndexes,..
SystemIdentificateOutputCharacteristicsCompressionFunctions,..
SystemIdentificateModesParametersNames,..
SystemIdentificateModesParametersValues,..
SystemIdentificationParametersNames,..
SystemIdentificationParametersMinValues,..
SystemIdentificationParametersMaxValues,..
IdentificationFunction,SystemShema,..
SystemOutputCharacteristicsNames,..
SystemOutputCharacteristicsIndexes,..
"TimeGrid",TimeMoments,..
SystemModesParametersNames,SystemModesParametersValues,..
[SystemHyperParametrsNames,SystemHyperParametrsValues,..
[identificationAbsolutTolErr,[absolutTolErr,..
[identificationRelativeTolErr,[relativeTolErr,..
[identificationSimulationTime,[simulationTime,..
[identificationTimeStepMax,[timeStepMax,..
[identificationSolver,[Solver,..
[identificationToleranceTime,[toleranceTime]]]]]]]]]]]]])
[SystemOutputChatacteristics,..
SystemIdentificationParametersValues,..
SystemModesParametersIndexes,..
SystemModesParametersValues,..
TimesMomemts..
]=ModelingSystemIdentificationDynamic(SystemIdentificateShema,..
SystemIdentificateOutputCharacteristicsNames,..
SystemIdentificateOutputCharacteristicsIndexes,..
SystemIdentificateOutputCharacteristicsCompressionFunctions,..
SystemIdentificateModesParametersNames,..
SystemIdentificateModesParametersValues,..
SystemIdentificationParametersNames,..
SystemIdentificationParametersMinValues,..
SystemIdentificationParametersMaxValues,..
IdentificationFunction,SystemShema,..
SystemOutputCharacteristicsNames,..
SystemOutputCharacteristicsIndexes,..
"TimeGrid",TimeMoments,..
SystemModesParametersNames,SystemModesParametersValues,..
[identificationAbsolutTolErr,[absolutTolErr,..
[identificationRelativeTolErr,[relativeTolErr,..
[identificationSimulationTime,[simulationTime,..
[identificationTimeStepMax,[timeStepMax,..
[identificationSolver,[Solver,..
[identificationToleranceTime,[toleranceTime]]]]]]]]]]]])
[SystemOutputChatacteristics,..
SystemIdentificationParametersValues,..
SystemModesParametersIndexes,..
SystemModesParametersValues..
]=ModelingSystemIdentificationDynamic(SystemIdentificateShema,..
SystemIdentificateOutputCharacteristicsNames,..
SystemIdentificateOutputCharacteristicsIndexes,..
SystemIdentificateOutputCharacteristicsCompressionFunctions,..
SystemIdentificateModesParametersNames,..
SystemIdentificateModesParametersValues,..
SystemIdentificationParametersNames,..
SystemIdentificationParametersMinValues,..
SystemIdentificationParametersMaxValues,..
IdentificationFunction,SystemShema,..
SystemOutputCharacteristicsNames,..
SystemOutputCharacteristicsIndexes,..
"TimeGrid",TimeMoments,..
SystemModesParametersNames,SystemModesParametersValues,..
[identificationAbsolutTolErr,[absolutTolErr,..
[identificationRelativeTolErr,[relativeTolErr,..
[identificationSimulationTime,[simulationTime,..
[identificationTimeStepMax,[timeStepMax,..
[identificationSolver,[Solver,..
[identificationToleranceTime,[toleranceTime]]]]]]]]]]]])
[SystemOutputChatacteristics,..
SystemIdentificationParametersValues,..
SystemModesParametersIndexes..
]=ModelingSystemIdentificationDynamic(SystemIdentificateShema,..
SystemIdentificateOutputCharacteristicsNames,..
SystemIdentificateOutputCharacteristicsIndexes,..
SystemIdentificateOutputCharacteristicsCompressionFunctions,..
SystemIdentificateModesParametersNames,..
SystemIdentificateModesParametersValues,..
SystemIdentificationParametersNames,..
SystemIdentificationParametersMinValues,..
SystemIdentificationParametersMaxValues,..
IdentificationFunction,SystemShema,..
SystemOutputCharacteristicsNames,..
SystemOutputCharacteristicsIndexes,..
"TimeGrid",TimeMoments,..
SystemModesParametersNames,SystemModesParametersValues,..
[identificationAbsolutTolErr,[absolutTolErr,..
[identificationRelativeTolErr,[relativeTolErr,..
[identificationSimulationTime,[simulationTime,..
[identificationTimeStepMax,[timeStepMax,..
[identificationSolver,[Solver,..
[identificationToleranceTime,[toleranceTime]]]]]]]]]]]])
[SystemOutputChatacteristics,..
SystemIdentificationParametersValues..
]=ModelingSystemIdentificationDynamic(SystemIdentificateShema,..
SystemIdentificateOutputCharacteristicsNames,..
SystemIdentificateOutputCharacteristicsIndexes,..
SystemIdentificateOutputCharacteristicsCompressionFunctions,..
SystemIdentificateModesParametersNames,..
SystemIdentificateModesParametersValues,..
SystemIdentificationParametersNames,..
SystemIdentificationParametersMinValues,..
SystemIdentificationParametersMaxValues,..
IdentificationFunction,SystemShema,..
SystemOutputCharacteristicsNames,..
SystemOutputCharacteristicsIndexes,..
"TimeGrid",TimeMoments,..
SystemModesParametersNames,SystemModesParametersValues,..
[identificationAbsolutTolErr,[absolutTolErr,..
[identificationRelativeTolErr,[relativeTolErr,..
[identificationSimulationTime,[simulationTime,..
[identificationTimeStepMax,[timeStepMax,..
[identificationSolver,[Solver,..
[identificationToleranceTime,[toleranceTime]]]]]]]]]]]])

Аргументы

SystemIdentificateShema

Xcos-диаграмма пользовательской системы (тип Xcos diagram structure) или имя файла Xcos-диаграммы пользовательской системы (расширение .zcos, .xcos) для идентификации параметров

SystemIdentificateOutputChatacteristicsNames

Массив имен выходных характеристик системы, по которым осуществляется идентификация системы, в xcos-диаграмме (блок TOWS_c). Размерность массива 1xM

SystemIdentificateOutputCharacteristicsIndexes

Массив индексов динамик выходных характеристик в именах выходных характеристик системы, по которым осуществляется идентификация системы, в xcos-диаграмме (блок TOWS_c). Размерность массива 1xM

SystemIdentificateOutputCharacteristicsCompressionFunctions

Cell-массив (см. cell-массивы) функций или массив строк имен функций получения параметров вычисленных динамик, задаваемых индексами SystemOutputCharacteristicsIndexes, по которым осуществляется идентификация системы

SystemIdentificateModesParametrsNames

Имена параметров системы в xcos-диаграмме (см. свойство context в Xcos diagram structure), которые определяют контрольные режимы работы системы, в которых осуществляется идентификация ее характеристик. Массив строк размерности 1xM

SystemIdentificateModesParametrsValues

Значения параметров системы в xcos-диаграмме (см. свойство context в Xcos diagram structure), заданных соответсвующими именами SystemIdentificateModesParametrsNames, которые определяют контрольные режимы работы системы, в которых осуществляется идентификация ее характеристик. Массив вещественных чисел, строк, логических значений размерности NxM (каждая n-я строка из N строк в матрице - соответсвующая n-я динамика).

SystemIdentificationParametersNames

Имена идентифицируемых параметров системы в xcos-диаграмме (см. свойство context в Xcos diagram structure). Массив строк размерности 1xM

SystemIdentificationParametersMinValues

Минимальные значения идентифицируемых параметров системы в xcos-диаграмме (см. свойство context в Xcos diagram structure), заданных соответсвующими именами SystemIdentificationParametersNames. Массив вещественных чисел, строк, логических значений размерности NxM (каждая n-я строка из N строк в матрице - соответсвующая n-я динамика).

SystemIdentificationParametersMaxValues

Максимальные значения идентифицируемых параметров системы в xcos-диаграмме (см. свойство context в Xcos diagram structure), заданных соответсвующими именами SystemIdentificationParametersNames. Массив вещественных чисел, строк, логических значений размерности NxM (каждая n-я строка из N строк в матрице - соответсвующая n-я динамика).

IdentificationFunction

Функция для идентификации параметров пользовательской системы, задаваемой идентификационной Xcos-диаграммой пользовательской системы (тип Xcos diagram structure) или именем файла Xcos-диаграммы пользовательской системы (расширение .zcos, .xcos)

SystemShema

Xcos-диаграмма пользовательской системы (тип Xcos diagram structure) или имя файла Xcos-диаграммы пользовательской системы (расширение .zcos, .xcos)

SystemOutputChatacteristicsNames

Массив имен выходных характеристик системы в xcos-диаграмме (блок TOWS_c). Размерность массива 1xM

SystemOutputCharacteristicsIndexes

Массив индексов динамик выходных характеристик в именах выходных характеристик системы в xcos-диаграмме (блок TOWS_c). Размерность массива 1xM

SystemOutputCharacteristicsCompressionFunctions

Cell-массив (см. cell-массивы) функций или массив строк имен функций получения параметров вычисленных динамик, задаваемых индексами SystemOutputCharacteristicsIndexes

TimeMoments

Cell-массив (см. cell-массивы) массивов (размерность каждого массива 1xN, N - разная для каждой динамики) дискретных моментов времени по каждой динамике выходных характеристик, задаваемых индексами SystemOutputCharacteristicsIndexes

SystemModesParametrsNames

Имена параметров режима работы системы системы в xcos-диаграмме (см. свойство context в Xcos diagram structure). Массив строк размерности 1xM

SystemModesParametrsValues

Значения параметров режима работы системы в xcos-диаграмме (см. свойство context в Xcos diagram structure), заданных соответсвующими именами SystemParametrsNames. Массив вещественных чисел, строк, логических значений размерности NxM (каждая n-я строка из N строк в матрице - соответсвующая n-я динамика).

SystemHyperParametrsNames

Имена гиперпараметров системы в xcos-диаграмме (основной и идентификационной) (см. свойство context в Xcos diagram structure). Массив строк размерности 1xM

SystemHyperParametrsValues

Значения гиперпараметров системы в xcos-диаграмме (основной и идентификационной) (см. свойство context в Xcos diagram structure), заданных соответсвующими именами SystemParametrsNames. Массив вещественных чисел, строк, логических значений размерности 1xM.

identificationAbsolutTolErr

Абсолютные погрешности интегрирования в xcos (в идентификационной диаграмме) (см. свойство tol(1) atol в Xcos diagram structure) каждой динамики. Массив положительных вещественных чисел размерности 1xN

absolutTolErr

Абсолютные погрешности интегрирования в xcos (см. свойство tol(1) atol в Xcos diagram structure) каждой динамики. Массив положительных вещественных чисел размерности 1xN

identificationRelativeTolErr

Относительные погрешности интегрирования в xcos (в идентификационной диаграмме) (см. свойство tol(2) rtol в Xcos diagram structure) каждой динамики. Массив положительных вещественных чисел размерности 1xN

relativeTolErr

Относительные погрешности интегрирования в xcos (см. свойство tol(2) rtol в Xcos diagram structure) каждой динамики. Массив положительных вещественных чисел размерности 1xN

identificationSimulationTime

Времена симуляции в xcos (в идентификационной диаграмме) (см. свойство tf в Xcos diagram structure) каждой динамики. Массив положительных вещественных чисел размерности 1xN

simulationTime

Времена симуляции в xcos (см. свойство tf в Xcos diagram structure) каждой динамики. Массив положительных вещественных чисел размерности 1xN

identificationTimeStepMax

Максимальные шаги интегрирования по времени в xcos (в идентификационной диаграмме) (см. свойство tol(7) hmax в Xcos diagram structure) каждой динамики. Массив положительных вещественных чисел размерности 1xN

timeStepMax

Максимальные шаги интегрирования по времени в xcos (см. свойство tol(7) hmax в Xcos diagram structure) каждой динамики. Массив положительных вещественных чисел размерности 1xN

identificationSolver

Виды решателей в xcos (в идентификационной диаграмме) (см. свойство tol(6) solver в Xcos diagram structure) каждой динамики. Массив целых чисел в диапазоне от 0 до 100 - кодов решателя. Размерность кодов решателя - 1xN

Solver

Виды решателей в xcos (см. свойство tol(6) solver в Xcos diagram structure) каждой динамики. Массив целых чисел в диапазоне от 0 до 100 - кодов решателя. Размерность кодов решателя - 1xN

identificationToleranceTime

Погрешности величин времени в xcos (в идентификационной диаграмме) - соответствующие минимальные шаги интегрирования по времени (см. свойство tol(3) ttol в Xcos diagram structure) по каждой динамике. Массив положительных вещественных чисел размерности 1xN

toleranceTime

Погрешности величин времени в xcos - соответствующие минимальные шаги интегрирования по времени (см. свойство tol(3) ttol в Xcos diagram structure) по каждой динамике. Массив положительных вещественных чисел размерности 1xN

Возвращаемые значения

SystemOutputChatacteristics

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

SystemIdentificationParametersValues

Идентифицированные параметры системы системы

SystemModesParametersIndexes

Вектор-столбец индексов значений задаваемых параметров системы, определяющих режим ее работы, имена которых заданных в массиве SystemModesParametrsNames

SystemModesParametersValues

Матрица задаваемых параметров системы, имена которых заданных в массиве SystemModesParametrsNames и для которой рассчитаны дискретные значения выходных характеристик системы в дискретные моменты времени. Размерность матрицы MxQ

TimesMomemts

Вектор-столбец моментов времени, соотвествующих параметрам выходных характеристик системы SystemOutputChatacteristics

Описание

Выполняет на основе идентификации параметров по результатам наблюдений симуляцию (вычислительный эксперимент) пользовательской системы, заданной в виде xcos-диаграммы, для различных ее параметров (заданных в контексте).

Возвращает матрицу параметров динамик заданных пользователем выходных характеристик системы (в диаграмме заданны в виде блоков TOWS_c)

Все открытые в ходе симуляции графические окна автоматически удаляются.

Пример кода

//Формируем путь к xcos-диаграмме Proba10.zcos
[a, pathlib] = libraryinfo("computing_experimentlib");
   clear a;
   pathlib = strncpy(pathlib, length(pathlib) - length('macros')) + 'xcos';

   //Идентификационные функции фильтра
   function [parametrs]=IdentificationDynamicFilterFunction1(time, value)
       parametrs=3.3*max(abs(value));
   endfunction
   function [parametrs]=IdentificationDynamicFilterFunction2(time, value)
       parametrs=9.63*max(abs(value));
   endfunction

   //Массив идентификационных функций фильтров
   IdentificationDynamicFiltersFunctions = cell(1, 2);
   IdentificationDynamicFiltersFunctions{1} = IdentificationDynamicFilterFunction1;
   IdentificationDynamicFiltersFunctions{2} = IdentificationDynamicFilterFunction2;

   //Функция фильтра
   function [parametrs]=DynamicFilterFunction1(time, value)
       parametrs=[sum(time.*value) / length(time), sum((time.^2).*value) / (3*length(time))];
   endfunction
   function [parametr]=DynamicFilterFunction2(time, value)
       parametr=sum(time.*value) / (2*length(time));
   endfunction

   //Массив функций фильтров
   DynamicFiltersFunctions = cell(1, 3);
   DynamicFiltersFunctions{1} = DynamicFilterFunction1;
   DynamicFiltersFunctions{2} = DynamicFilterFunction2;
   DynamicFiltersFunctions{3} = DynamicFilterFunction1;

   //Путь к файлу диаграммы
   SystemShemaPath = fullfile(pathlib, 'Proba10.zcos');
   SystemIdentificationShemaPath = fullfile(pathlib, 'Proba10iden.zcos');

   //Гиперпараметры диаграммы
   Alpha1 = 1.05;
   SystemHyperParametrsNames = ['Alpha1'];//Имена гиперпараметров, определяющих динамику
   SystemHyperParametrsValues = [Alpha1];//Значения гиперпараметров, определяющих динамику

   //Выходные характеристики системы, по которым идентифицируем диаграмму
   SystemIdentificateOutputCharacteristicsNames = ['DY2','DY3'];
   SystemIdentificateOutputCharacteristicsIndexes = [1,1];

   //Выходные характеристики системы
   SystemOutputCharacteristicsNames = ['Y1','Y2','Y3'];
   SystemOutputCharacteristicsIndexes = [1,1,1];

   //Функции для расчета контрольных динамик
   function [sCurYs]=CurYsToString(CurYs)
       sCurYs = '[' + strcat(string(CurYs),',') + ']';
   endfunction
   function [CurY2s]=fCurY2s(A1, A2, B1, B2, C, Alpha1, Alpha2, CurTs)
       CurY2s = CurYsToString(C*(CurTs .^ 3) + B2*log(1 + Alpha1*CurTs) + A1);
   endfunction
   function [CurY3s]=fCurY3s(A1, A2, B1, B2, C, Alpha1, Alpha2, CurTs)
       CurY3s = CurYsToString(0.5*A1 + 10*A2*log(1 + Alpha2*CurTs) + B1*(CurTs .^ 2) + 10*B2);
   endfunction

   //Эталонные значения параметров
   A1et = 5.7;
   A2et = 4.5;
   B1et = 0.3;
   B2et = 2.7;
   Cet = 0.63;

   //Значения параметров, по которым идентифицируем систему
   T = 10;//Время моделирования
   CurTs = [0:(T/(10^2)):T];//Текущие моменты времени, в которых берем значения
   CurY2_1s = fCurY2s(A1et,A2et,B1et,B2et,Cet,Alpha1,0.0,CurTs);
   CurY3_1s = fCurY3s(A1et,A2et,B1et,B2et,Cet,Alpha1,0.0,CurTs);
   CurY2_2s = fCurY2s(A1et,A2et,B1et,B2et,Cet,Alpha1,1.23,CurTs);
   CurY3_2s = fCurY3s(A1et,A2et,B1et,B2et,Cet,Alpha1,1.23,CurTs);

   //Параметры контрольных режимов системы
   SystemIdentificateModesParametersNames = ['CurY2s','CurY3s','Alpha2'];//Имена параметров
   SystemIdentificateModesParametersValues = [CurY2_1s,CurY3_1s, '0.0';..
                                              CurY2_2s,CurY3_2s,'1.23'];//Значения параметров

   //Параметры режимов работы системы
   SystemModesParametersNames = ['Omega1','Lambda1','Omega2','Omega3','Lambda2','Alpha2','Beta'];//Имена параметров
   SystemModesParametersValues = [ 1.29,0.21, 0.09, 1.5,0.369,1.83,6.123;..
                                  1.323,0.27, 0.15,1.83,0.339,1.23,6.153;..
                                   1.29,0.33,0.063,1.23,0.699, 1.5,3.183];//Значения параметров

   //Идентифицируемые параметры системы
   SystemIdentificationParametersNames = ['A1','A2','B1','B2','C'];//Имена параметров
   SystemIdentificationParametersMinValues = [5.1,4.23,0.15,2.43,0.57];//Минимальные значения параметров
   SystemIdentificationParametersMaxValues = [6.3,4.83,0.75,3.03,0.69];//Максимальные значения параметров

   //Идентификационная функция
   function [parameters]=IdentificationFunction(fSys, MinValues, MaxValues)
       //Генерируем случайные значения параметров
       MinValues = repmat(MinValues,[10,1]);
       MaxValues = repmat(MaxValues,[10,1]);
       parameters = MinValues + (MaxValues - MinValues) .* rand(MinValues);
       
       //Получаем невязки
       errs = fSys(parameters);
       
       //Суммируем невязки
       errs = sum(errs,1);
       errs = sum(errs,2);
       errs = matrix(errs,1,-1);
       
       //Выбираем минимальную невязку
       [MinErrs, indMinErrs] = min(errs);
       
       //Берем соответсвующие параметры
       parameters = parameters(indMinErrs,:);
   endfunction

   //Запускаем базовую функцию
   [SystemOutputChatacteristics,..//Выходные характеристики системы
    SystemIdentificationParametersValues,..//Значения идентифицированных параметров системы
    SystemModesParametersIndexes,..//Индексы параметров системы, определяющих ее режимы
    SystemModesParametersValues,..//Значения параметров системы, определяющих ее режимы
    TimesMomemts..//Моменты времени
    ]=ModelingSystemIdentificationDynamic(SystemIdentificationShemaPath,..//Идентификационная схема системы или имя файла идентификационной схемы ситемы
                                          SystemIdentificateOutputCharacteristicsNames,..//Имена выходных характеристик системы, по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          SystemIdentificateOutputCharacteristicsIndexes,..//Индексы выходных характеристик системы (в именах), по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          IdentificationDynamicFiltersFunctions,..//Функция сжатия динамик выходных характеристик системы, по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          SystemIdentificateModesParametersNames,..//Имена параметров системы, определяющих ее контрольные режимы
                                          SystemIdentificateModesParametersValues,..//Значения параметров системы, определяющих ее контрольные режимы
                                          SystemIdentificationParametersNames,..//Имена идентифицируемых параметров системы
                                          SystemIdentificationParametersMinValues,..//Миниальные значения идентифицируемых параметров системы
                                          SystemIdentificationParametersMaxValues,..//Максимальные значения идентифицируемых параметров системы
                                          IdentificationFunction,..//Идентификационная функция
                                          SystemShemaPath,..//Cхема системы или имя файла схемы ситемы
                                          SystemOutputCharacteristicsNames,..//Имена выходных характеристик системы
                                          SystemOutputCharacteristicsIndexes,..//Индексы выходных характеристик системы (в именах)
                                          "Evidence",DynamicFiltersFunctions,..//Функции сжатия динамик
                                          SystemModesParametersNames,..//Имена параметров системы, определяющих ее режимы
                                          SystemModesParametersValues,..//Значения параметров системы, определяющих ее режимы
                                          SystemHyperParametrsNames,..//Имена гиперпараметров, определяющих динамику
                                          SystemHyperParametrsValues,..//Значения гиперпараметров, определяющих динамику
                                          [0.5E-6,0.51E-6],..//Максимальное значение абсолютной ошибки для режимов идентификации системы
                                          [0.5E-6,0.51E-6,0.57E-6],..//Максимальное значение абсолютной ошибки
                                          [0.69E-6,0.57E-6],..//Минимальное значение относительной ошибки для режимов идентификации системы
                                          [0.69E-6,0.57E-6,0.75E-6],..//Минимальное значение относительной ошибки
                                          [10.0,11.1],..//Время симуляции для режимов идентификации системы
                                          [10.0,11.1,15.3],..//Время симуляции
                                          [0.93E-4,0.87E-4],..//Максимальный шаг интергирования по времени для режимов идентификации системы
                                          [0.93E-4,0.87E-4,0.81E-4],..//Максимальный шаг интергирования по времени
                                          [0,3],..//Решатель для режимов идентификации системы
                                          [0,3,4],..//Решатель
                                          [2.1E-10,1.5E-10],..//Максимальная ошибка времени для режимов идентификации системы
                                          [2.1E-10,1.5E-10,1.23E-10]..//Максимальная ошибка времени
                                          );

   //Выводим результаты
   disp(SystemOutputChatacteristics);
   disp(SystemIdentificationParametersValues);
//Формируем путь к xcos-диаграмме Proba10.zcos
[a, pathlib] = libraryinfo("computing_experimentlib");
   clear a;
   pathlib = strncpy(pathlib, length(pathlib) - length('macros')) + 'xcos';

   //Идентификационные функции фильтра
   function [parametrs]=IdentificationDynamicFilterFunction1(time, value)
       parametrs=3.3*max(abs(value));
   endfunction
   function [parametrs]=IdentificationDynamicFilterFunction2(time, value)
       parametrs=9.63*max(abs(value));
   endfunction

   //Массив идентификационных функций фильтров
   IdentificationDynamicFiltersFunctions = cell(1, 2);
   IdentificationDynamicFiltersFunctions{1} = IdentificationDynamicFilterFunction1;
   IdentificationDynamicFiltersFunctions{2} = IdentificationDynamicFilterFunction2;

   //Функция фильтра
   function [parametrs]=DynamicFilterFunction1(time, value)
       parametrs=[sum(time.*value) / length(time), sum((time.^2).*value) / (3*length(time))];
   endfunction
   function [parametr]=DynamicFilterFunction2(time, value)
       parametr=sum(time.*value) / (2*length(time));
   endfunction

   //Массив функций фильтров
   DynamicFiltersFunctions = cell(1, 3);
   DynamicFiltersFunctions{1} = DynamicFilterFunction1;
   DynamicFiltersFunctions{2} = DynamicFilterFunction2;
   DynamicFiltersFunctions{3} = DynamicFilterFunction1;

   //Путь к файлу диаграммы
   SystemShemaPath = fullfile(pathlib, 'Proba10.zcos');
   SystemIdentificationShemaPath = fullfile(pathlib, 'Proba10iden.zcos');

   //Выходные характеристики системы, по которым идентифицируем диаграмму
   SystemIdentificateOutputCharacteristicsNames = ['DY2','DY3'];
   SystemIdentificateOutputCharacteristicsIndexes = [1,1];

   //Выходные характеристики системы
   SystemOutputCharacteristicsNames = ['Y1','Y2','Y3'];
   SystemOutputCharacteristicsIndexes = [1,1,1];

   //Функции для расчета контрольных динамик
   function [sCurYs]=CurYsToString(CurYs)
       sCurYs = '[' + strcat(string(CurYs),',') + ']';
   endfunction
   function [CurY2s]=fCurY2s(A1, A2, B1, B2, C, Alpha1, Alpha2, CurTs)
       CurY2s = CurYsToString(C*(CurTs .^ 3) + B2*log(1 + Alpha1*CurTs) + A1);
   endfunction
   function [CurY3s]=fCurY3s(A1, A2, B1, B2, C, Alpha1, Alpha2, CurTs)
       CurY3s = CurYsToString(0.5*A1 + 10*A2*log(1 + Alpha2*CurTs) + B1*(CurTs .^ 2) + 10*B2);
   endfunction

   //Эталонные значения параметров
   A1et = 5.7;
   A2et = 4.5;
   B1et = 0.3;
   B2et = 2.7;
   Cet = 0.63;

   //Значения параметров, по которым идентифицируем систему
   T = 10;//Время моделирования
   CurTs = [0:(T/(10^2)):T];//Текущие моменты времени, в которых берем значения
   CurY2_1s = fCurY2s(A1et,A2et,B1et,B2et,Cet,1.05,0.0,CurTs);
   CurY3_1s = fCurY3s(A1et,A2et,B1et,B2et,Cet,1.05,0.0,CurTs);
   CurY2_2s = fCurY2s(A1et,A2et,B1et,B2et,Cet,1.05,1.23,CurTs);
   CurY3_2s = fCurY3s(A1et,A2et,B1et,B2et,Cet,1.05,1.23,CurTs);

   //Параметры контрольных режимов системы
   SystemIdentificateModesParametersNames = ['CurY2s','CurY3s','Alpha2'];//Имена параметров
   SystemIdentificateModesParametersValues = [CurY2_1s,CurY3_1s, '0.0';..
                                              CurY2_2s,CurY3_2s,'1.23'];//Значения параметров

   //Параметры режимов работы системы
   SystemModesParametersNames = ['Omega1','Lambda1','Omega2','Omega3','Lambda2','Alpha2','Beta'];//Имена параметров
   SystemModesParametersValues = [ 1.29,0.21, 0.09, 1.5,0.369,1.83,6.123;..
                                  1.323,0.27, 0.15,1.83,0.339,1.23,6.153;..
                                   1.29,0.33,0.063,1.23,0.699, 1.5,3.183];//Значения параметров

   //Идентифицируемые параметры системы
   SystemIdentificationParametersNames = ['A1','A2','B1','B2','C'];//Имена параметров
   SystemIdentificationParametersMinValues = [5.1,4.23,0.15,2.43,0.57];//Минимальные значения параметров
   SystemIdentificationParametersMaxValues = [6.3,4.83,0.75,3.03,0.69];//Максимальные значения параметров

   //Идентификационная функция
   function [parameters]=IdentificationFunction(fSys, MinValues, MaxValues)
       //Генерируем случайные значения параметров
       MinValues = repmat(MinValues,[10,1]);
       MaxValues = repmat(MaxValues,[10,1]);
       parameters = MinValues + (MaxValues - MinValues) .* rand(MinValues);
       
       //Получаем невязки
       errs = fSys(parameters);
       
       //Суммируем невязки
       errs = sum(errs,1);
       errs = sum(errs,2);
       errs = matrix(errs,1,-1);
       
       //Выбираем минимальную невязку
       [MinErrs, indMinErrs] = min(errs);
       
       //Берем соответсвующие параметры
       parameters = parameters(indMinErrs,:);
   endfunction

   //Запускаем базовую функцию
   [SystemOutputChatacteristics,..//Выходные характеристики системы
    SystemIdentificationParametersValues,..//Значения идентифицированных параметров системы
    SystemModesParametersIndexes,..//Индексы параметров системы, определяющих ее режимы
    SystemModesParametersValues,..//Значения параметров системы, определяющих ее режимы
    TimesMomemts..//Моменты времени
    ]=ModelingSystemIdentificationDynamic(SystemIdentificationShemaPath,..//Идентификационная схема системы или имя файла идентификационной схемы ситемы
                                          SystemIdentificateOutputCharacteristicsNames,..//Имена выходных характеристик системы, по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          SystemIdentificateOutputCharacteristicsIndexes,..//Индексы выходных характеристик системы (в именах), по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          IdentificationDynamicFiltersFunctions,..//Функция сжатия динамик выходных характеристик системы, по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          SystemIdentificateModesParametersNames,..//Имена параметров системы, определяющих ее контрольные режимы
                                          SystemIdentificateModesParametersValues,..//Значения параметров системы, определяющих ее контрольные режимы
                                          SystemIdentificationParametersNames,..//Имена идентифицируемых параметров системы
                                          SystemIdentificationParametersMinValues,..//Миниальные значения идентифицируемых параметров системы
                                          SystemIdentificationParametersMaxValues,..//Максимальные значения идентифицируемых параметров системы
                                          IdentificationFunction,..//Идентификационная функция
                                          SystemShemaPath,..//Cхема системы или имя файла схемы ситемы
                                          SystemOutputCharacteristicsNames,..//Имена выходных характеристик системы
                                          SystemOutputCharacteristicsIndexes,..//Индексы выходных характеристик системы (в именах)
                                          "Evidence",DynamicFiltersFunctions,..//Функции сжатия динамик
                                          SystemModesParametersNames,..//Имена параметров системы, определяющих ее режимы
                                          SystemModesParametersValues,..//Значения параметров системы, определяющих ее режимы
                                          [0.5E-6,0.51E-6],..//Максимальное значение абсолютной ошибки для режимов идентификации системы
                                          [0.5E-6,0.51E-6,0.57E-6],..//Максимальное значение абсолютной ошибки
                                          [0.69E-6,0.57E-6],..//Минимальное значение относительной ошибки для режимов идентификации системы
                                          [0.69E-6,0.57E-6,0.75E-6],..//Минимальное значение относительной ошибки
                                          [10.0,11.1],..//Время симуляции для режимов идентификации системы
                                          [10.0,11.1,15.3],..//Время симуляции
                                          [0.93E-4,0.87E-4],..//Максимальный шаг интергирования по времени для режимов идентификации системы
                                          [0.93E-4,0.87E-4,0.81E-4],..//Максимальный шаг интергирования по времени
                                          [0,3],..//Решатель для режимов идентификации системы
                                          [0,3,4],..//Решатель
                                          [2.1E-10,1.5E-10],..//Максимальная ошибка времени для режимов идентификации системы
                                          [2.1E-10,1.5E-10,1.23E-10]..//Максимальная ошибка времени
                                          );

   //Выводим результаты
   disp(SystemOutputChatacteristics);
   disp(SystemIdentificationParametersValues);
//Формируем путь к xcos-диаграмме Proba10.zcos
[a, pathlib] = libraryinfo("computing_experimentlib");
   clear a;
   pathlib = strncpy(pathlib, length(pathlib) - length('macros')) + 'xcos';

   //Идентификационные функции фильтра
   function [parametrs]=IdentificationDynamicFilterFunction1(time, value)
       parametrs=3.3*max(abs(value));
   endfunction
   function [parametrs]=IdentificationDynamicFilterFunction2(time, value)
       parametrs=9.63*max(abs(value));
   endfunction

   //Массив идентификационных функций фильтров
   IdentificationDynamicFiltersFunctions = cell(1, 2);
   IdentificationDynamicFiltersFunctions{1} = IdentificationDynamicFilterFunction1;
   IdentificationDynamicFiltersFunctions{2} = IdentificationDynamicFilterFunction2;

   //Функция фильтра
   function [parametrs]=DynamicFilterFunction1(time, value)
       parametrs=[sum(time.*value) / length(time), sum((time.^2).*value) / (3*length(time))];
   endfunction
   function [parametr]=DynamicFilterFunction2(time, value)
       parametr=sum(time.*value) / (2*length(time));
   endfunction

   //Массив функций фильтров
   DynamicFiltersFunctions = cell(1, 3);
   DynamicFiltersFunctions{1} = DynamicFilterFunction1;
   DynamicFiltersFunctions{2} = DynamicFilterFunction2;
   DynamicFiltersFunctions{3} = DynamicFilterFunction1;

   //Путь к файлу диаграммы
   SystemShemaPath = fullfile(pathlib, 'Proba10.zcos');
   SystemIdentificationShemaPath = fullfile(pathlib, 'Proba10iden.zcos');

   //Гиперпараметры диаграммы
   Alpha1 = 1.05;
   SystemHyperParametrsNames = ['Alpha1'];//Имена гиперпараметров, определяющих динамику
   SystemHyperParametrsValues = [Alpha1];//Значения гиперпараметров, определяющих динамику

   //Выходные характеристики системы, по которым идентифицируем диаграмму
   SystemIdentificateOutputCharacteristicsNames = ['DY2','DY3'];
   SystemIdentificateOutputCharacteristicsIndexes = [1,1];

   //Выходные характеристики системы
   SystemOutputCharacteristicsNames = ['Y1','Y2','Y3'];
   SystemOutputCharacteristicsIndexes = [1,1,1];

   //Функции для расчета контрольных динамик
   function [sCurYs]=CurYsToString(CurYs)
       sCurYs = '[' + strcat(string(CurYs),',') + ']';
   endfunction
   function [CurY2s]=fCurY2s(A1, A2, B1, B2, C, Alpha1, Alpha2, CurTs)
       CurY2s = CurYsToString(C*(CurTs .^ 3) + B2*log(1 + Alpha1*CurTs) + A1);
   endfunction
   function [CurY3s]=fCurY3s(A1, A2, B1, B2, C, Alpha1, Alpha2, CurTs)
       CurY3s = CurYsToString(0.5*A1 + 10*A2*log(1 + Alpha2*CurTs) + B1*(CurTs .^ 2) + 10*B2);
   endfunction

   //Эталонные значения параметров
   A1et = 5.7;
   A2et = 4.5;
   B1et = 0.3;
   B2et = 2.7;
   Cet = 0.63;

   //Значения параметров, по которым идентифицируем систему
   T = 10;//Время моделирования
   CurTs = [0:(T/(10^2)):T];//Текущие моменты времени, в которых берем значения
   CurY2_1s = fCurY2s(A1et,A2et,B1et,B2et,Cet,Alpha1,0.0,CurTs);
   CurY3_1s = fCurY3s(A1et,A2et,B1et,B2et,Cet,Alpha1,0.0,CurTs);
   CurY2_2s = fCurY2s(A1et,A2et,B1et,B2et,Cet,Alpha1,1.23,CurTs);
   CurY3_2s = fCurY3s(A1et,A2et,B1et,B2et,Cet,Alpha1,1.23,CurTs);

   //Параметры контрольных режимов системы
   SystemIdentificateModesParametersNames = ['CurY2s','CurY3s','Alpha2'];//Имена параметров
   SystemIdentificateModesParametersValues = [CurY2_1s,CurY3_1s, '0.0';..
                                              CurY2_2s,CurY3_2s,'1.23'];//Значения параметров

   //Параметры режимов работы системы
   SystemModesParametersNames = ['Omega1','Lambda1','Omega2','Omega3','Lambda2','Alpha2','Beta'];//Имена параметров
   SystemModesParametersValues = [ 1.29,0.21, 0.09, 1.5,0.369,1.83,6.123;..
                                  1.323,0.27, 0.15,1.83,0.339,1.23,6.153;..
                                   1.29,0.33,0.063,1.23,0.699, 1.5,3.183];//Значения параметров

   //Идентифицируемые параметры системы
   SystemIdentificationParametersNames = ['A1','A2','B1','B2','C'];//Имена параметров
   SystemIdentificationParametersMinValues = [5.1,4.23,0.15,2.43,0.57];//Минимальные значения параметров
   SystemIdentificationParametersMaxValues = [6.3,4.83,0.75,3.03,0.69];//Максимальные значения параметров

   //Идентификационная функция
   function [parameters]=IdentificationFunction(fSys, MinValues, MaxValues)
       //Генерируем случайные значения параметров
       MinValues = repmat(MinValues,[10,1]);
       MaxValues = repmat(MaxValues,[10,1]);
       parameters = MinValues + (MaxValues - MinValues) .* rand(MinValues);
       
       //Получаем невязки
       errs = fSys(parameters);
       
       //Суммируем невязки
       errs = sum(errs,1);
       errs = sum(errs,2);
       errs = matrix(errs,1,-1);
       
       //Выбираем минимальную невязку
       [MinErrs, indMinErrs] = min(errs);
       
       //Берем соответсвующие параметры
       parameters = parameters(indMinErrs,:);
   endfunction

   //Запускаем базовую функцию
   [SystemOutputChatacteristics,..//Выходные характеристики системы
    SystemIdentificationParametersValues,..//Значения идентифицированных параметров системы
    SystemModesParametersIndexes,..//Индексы параметров системы, определяющих ее режимы
    SystemModesParametersValues,..//Значения параметров системы, определяющих ее режимы
    TimesMomemts..//Моменты времени
    ]=ModelingSystemIdentificationDynamic(SystemIdentificationShemaPath,..//Идентификационная схема системы или имя файла идентификационной схемы ситемы
                                          SystemIdentificateOutputCharacteristicsNames,..//Имена выходных характеристик системы, по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          SystemIdentificateOutputCharacteristicsIndexes,..//Индексы выходных характеристик системы (в именах), по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          IdentificationDynamicFiltersFunctions,..//Функция сжатия динамик выходных характеристик системы, по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          SystemIdentificateModesParametersNames,..//Имена параметров системы, определяющих ее контрольные режимы
                                          SystemIdentificateModesParametersValues,..//Значения параметров системы, определяющих ее контрольные режимы
                                          SystemIdentificationParametersNames,..//Имена идентифицируемых параметров системы
                                          SystemIdentificationParametersMinValues,..//Миниальные значения идентифицируемых параметров системы
                                          SystemIdentificationParametersMaxValues,..//Максимальные значения идентифицируемых параметров системы
                                          IdentificationFunction,..//Идентификационная функция
                                          SystemShemaPath,..//Cхема системы или имя файла схемы ситемы
                                          SystemOutputCharacteristicsNames,..//Имена выходных характеристик системы
                                          SystemOutputCharacteristicsIndexes,..//Индексы выходных характеристик системы (в именах)
                                          "Evidence",DynamicFiltersFunctions,..//Функции сжатия динамик
                                          SystemModesParametersNames,..//Имена параметров системы, определяющих ее режимы
                                          SystemModesParametersValues,..//Значения параметров системы, определяющих ее режимы
                                          SystemHyperParametrsNames,..//Имена гиперпараметров, определяющих динамику
                                          SystemHyperParametrsValues,..//Значения гиперпараметров, определяющих динамику
                                          );

   //Выводим результаты
   disp(SystemOutputChatacteristics);
   disp(SystemIdentificationParametersValues);
//Формируем путь к xcos-диаграмме Proba10.zcos
[a, pathlib] = libraryinfo("computing_experimentlib");
   clear a;
   pathlib = strncpy(pathlib, length(pathlib) - length('macros')) + 'xcos';

   //Идентификационные функции фильтра
   function [parametrs]=IdentificationDynamicFilterFunction1(time, value)
       parametrs=3.3*max(abs(value));
   endfunction
   function [parametrs]=IdentificationDynamicFilterFunction2(time, value)
       parametrs=9.63*max(abs(value));
   endfunction

   //Массив идентификационных функций фильтров
   IdentificationDynamicFiltersFunctions = cell(1, 2);
   IdentificationDynamicFiltersFunctions{1} = IdentificationDynamicFilterFunction1;
   IdentificationDynamicFiltersFunctions{2} = IdentificationDynamicFilterFunction2;

   //Функция фильтра
   function [parametrs]=DynamicFilterFunction1(time, value)
       parametrs=[sum(time.*value) / length(time), sum((time.^2).*value) / (3*length(time))];
   endfunction
   function [parametr]=DynamicFilterFunction2(time, value)
       parametr=sum(time.*value) / (2*length(time));
   endfunction

   //Массив функций фильтров
   DynamicFiltersFunctions = cell(1, 3);
   DynamicFiltersFunctions{1} = DynamicFilterFunction1;
   DynamicFiltersFunctions{2} = DynamicFilterFunction2;
   DynamicFiltersFunctions{3} = DynamicFilterFunction1;

   //Путь к файлу диаграммы
   SystemShemaPath = fullfile(pathlib, 'Proba10.zcos');
   SystemIdentificationShemaPath = fullfile(pathlib, 'Proba10iden.zcos');

   //Выходные характеристики системы, по которым идентифицируем диаграмму
   SystemIdentificateOutputCharacteristicsNames = ['DY2','DY3'];
   SystemIdentificateOutputCharacteristicsIndexes = [1,1];

   //Выходные характеристики системы
   SystemOutputCharacteristicsNames = ['Y1','Y2','Y3'];
   SystemOutputCharacteristicsIndexes = [1,1,1];

   //Функции для расчета контрольных динамик
   function [sCurYs]=CurYsToString(CurYs)
       sCurYs = '[' + strcat(string(CurYs),',') + ']';
   endfunction
   function [CurY2s]=fCurY2s(A1, A2, B1, B2, C, Alpha1, Alpha2, CurTs)
       CurY2s = CurYsToString(C*(CurTs .^ 3) + B2*log(1 + Alpha1*CurTs) + A1);
   endfunction
   function [CurY3s]=fCurY3s(A1, A2, B1, B2, C, Alpha1, Alpha2, CurTs)
       CurY3s = CurYsToString(0.5*A1 + 10*A2*log(1 + Alpha2*CurTs) + B1*(CurTs .^ 2) + 10*B2);
   endfunction

   //Эталонные значения параметров
   A1et = 5.7;
   A2et = 4.5;
   B1et = 0.3;
   B2et = 2.7;
   Cet = 0.63;

   //Значения параметров, по которым идентифицируем систему
   T = 10;//Время моделирования
   CurTs = [0:(T/(10^2)):T];//Текущие моменты времени, в которых берем значения
   CurY2_1s = fCurY2s(A1et,A2et,B1et,B2et,Cet,1.05,0.0,CurTs);
   CurY3_1s = fCurY3s(A1et,A2et,B1et,B2et,Cet,1.05,0.0,CurTs);
   CurY2_2s = fCurY2s(A1et,A2et,B1et,B2et,Cet,1.05,1.23,CurTs);
   CurY3_2s = fCurY3s(A1et,A2et,B1et,B2et,Cet,1.05,1.23,CurTs);

   //Параметры контрольных режимов системы
   SystemIdentificateModesParametersNames = ['CurY2s','CurY3s','Alpha2'];//Имена параметров
   SystemIdentificateModesParametersValues = [CurY2_1s,CurY3_1s, '0.0';..
                                              CurY2_2s,CurY3_2s,'1.23'];//Значения параметров

   //Параметры режимов работы системы
   SystemModesParametersNames = ['Omega1','Lambda1','Omega2','Omega3','Lambda2','Alpha2','Beta'];//Имена параметров
   SystemModesParametersValues = [ 1.29,0.21, 0.09, 1.5,0.369,1.83,6.123;..
                                  1.323,0.27, 0.15,1.83,0.339,1.23,6.153;..
                                   1.29,0.33,0.063,1.23,0.699, 1.5,3.183];//Значения параметров

   //Идентифицируемые параметры системы
   SystemIdentificationParametersNames = ['A1','A2','B1','B2','C'];//Имена параметров
   SystemIdentificationParametersMinValues = [5.1,4.23,0.15,2.43,0.57];//Минимальные значения параметров
   SystemIdentificationParametersMaxValues = [6.3,4.83,0.75,3.03,0.69];//Максимальные значения параметров

   //Идентификационная функция
   function [parameters]=IdentificationFunction(fSys, MinValues, MaxValues)
       //Генерируем случайные значения параметров
       MinValues = repmat(MinValues,[10,1]);
       MaxValues = repmat(MaxValues,[10,1]);
       parameters = MinValues + (MaxValues - MinValues) .* rand(MinValues);
       
       //Получаем невязки
       errs = fSys(parameters);
       
       //Суммируем невязки
       errs = sum(errs,1);
       errs = sum(errs,2);
       errs = matrix(errs,1,-1);
       
       //Выбираем минимальную невязку
       [MinErrs, indMinErrs] = min(errs);
       
       //Берем соответсвующие параметры
       parameters = parameters(indMinErrs,:);
   endfunction

   //Запускаем базовую функцию
   [SystemOutputChatacteristics,..//Выходные характеристики системы
    SystemIdentificationParametersValues,..//Значения идентифицированных параметров системы
    SystemModesParametersIndexes,..//Индексы параметров системы, определяющих ее режимы
    SystemModesParametersValues,..//Значения параметров системы, определяющих ее режимы
    TimesMomemts..//Моменты времени
    ]=ModelingSystemIdentificationDynamic(SystemIdentificationShemaPath,..//Идентификационная схема системы или имя файла идентификационной схемы ситемы
                                          SystemIdentificateOutputCharacteristicsNames,..//Имена выходных характеристик системы, по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          SystemIdentificateOutputCharacteristicsIndexes,..//Индексы выходных характеристик системы (в именах), по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          IdentificationDynamicFiltersFunctions,..//Функция сжатия динамик выходных характеристик системы, по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          SystemIdentificateModesParametersNames,..//Имена параметров системы, определяющих ее контрольные режимы
                                          SystemIdentificateModesParametersValues,..//Значения параметров системы, определяющих ее контрольные режимы
                                          SystemIdentificationParametersNames,..//Имена идентифицируемых параметров системы
                                          SystemIdentificationParametersMinValues,..//Миниальные значения идентифицируемых параметров системы
                                          SystemIdentificationParametersMaxValues,..//Максимальные значения идентифицируемых параметров системы
                                          IdentificationFunction,..//Идентификационная функция
                                          SystemShemaPath,..//Cхема системы или имя файла схемы ситемы
                                          SystemOutputCharacteristicsNames,..//Имена выходных характеристик системы
                                          SystemOutputCharacteristicsIndexes,..//Индексы выходных характеристик системы (в именах)
                                          "Evidence",DynamicFiltersFunctions,..//Функции сжатия динамик
                                          SystemModesParametersNames,..//Имена параметров системы, определяющих ее режимы
                                          SystemModesParametersValues..//Значения параметров системы, определяющих ее режимы
                                          );

   //Выводим результаты
   disp(SystemOutputChatacteristics);
   disp(SystemIdentificationParametersValues);

Пример кода

//Формируем путь к xcos-диаграмме Proba10.zcos
[a, pathlib] = libraryinfo("computing_experimentlib");
   clear a;
   pathlib = strncpy(pathlib, length(pathlib) - length('macros')) + 'xcos';

   //Идентификационные функции фильтра
   function [parametrs]=IdentificationDynamicFilterFunction1(time, value)
       parametrs=3.3*max(abs(value));
   endfunction
   function [parametrs]=IdentificationDynamicFilterFunction2(time, value)
       parametrs=9.63*max(abs(value));
   endfunction

   //Массив идентификационных функций фильтров
   IdentificationDynamicFiltersFunctions = cell(1, 2);
   IdentificationDynamicFiltersFunctions{1} = IdentificationDynamicFilterFunction1;
   IdentificationDynamicFiltersFunctions{2} = IdentificationDynamicFilterFunction2;

   //Моменты времени
   TimeMoments = cell(1, 3);
TimeMoments{1} = [0.0:0.05:9.95]';
TimeMoments{2} = [0.0:0.1:9.9]';
TimeMoments{3} = [0.0:0.2:9.8]';

   //Путь к файлу диаграммы
   SystemShemaPath = fullfile(pathlib, 'Proba10.zcos');
   SystemIdentificationShemaPath = fullfile(pathlib, 'Proba10iden.zcos');

   //Гиперпараметры диаграммы
   Alpha1 = 1.05;
   SystemHyperParametrsNames = ['Alpha1'];//Имена гиперпараметров, определяющих динамику
   SystemHyperParametrsValues = [Alpha1];//Значения гиперпараметров, определяющих динамику

   //Выходные характеристики системы, по которым идентифицируем диаграмму
   SystemIdentificateOutputCharacteristicsNames = ['DY2','DY3'];
   SystemIdentificateOutputCharacteristicsIndexes = [1,1];

   //Выходные характеристики системы
   SystemOutputCharacteristicsNames = ['Y1','Y2','Y3'];
   SystemOutputCharacteristicsIndexes = [1,1,1];

   //Функции для расчета контрольных динамик
   function [sCurYs]=CurYsToString(CurYs)
       sCurYs = '[' + strcat(string(CurYs),',') + ']';
   endfunction
   function [CurY2s]=fCurY2s(A1, A2, B1, B2, C, Alpha1, Alpha2, CurTs)
       CurY2s = CurYsToString(C*(CurTs .^ 3) + B2*log(1 + Alpha1*CurTs) + A1);
   endfunction
   function [CurY3s]=fCurY3s(A1, A2, B1, B2, C, Alpha1, Alpha2, CurTs)
       CurY3s = CurYsToString(0.5*A1 + 10*A2*log(1 + Alpha2*CurTs) + B1*(CurTs .^ 2) + 10*B2);
   endfunction

   //Эталонные значения параметров
   A1et = 5.7;
   A2et = 4.5;
   B1et = 0.3;
   B2et = 2.7;
   Cet = 0.63;

   //Значения параметров, по которым идентифицируем систему
   T = 10;//Время моделирования
   CurTs = [0:(T/(10^2)):T];//Текущие моменты времени, в которых берем значения
   CurY2_1s = fCurY2s(A1et,A2et,B1et,B2et,Cet,Alpha1,0.0,CurTs);
   CurY3_1s = fCurY3s(A1et,A2et,B1et,B2et,Cet,Alpha1,0.0,CurTs);
   CurY2_2s = fCurY2s(A1et,A2et,B1et,B2et,Cet,Alpha1,1.23,CurTs);
   CurY3_2s = fCurY3s(A1et,A2et,B1et,B2et,Cet,Alpha1,1.23,CurTs);

   //Параметры контрольных режимов системы
   SystemIdentificateModesParametersNames = ['CurY2s','CurY3s','Alpha2'];//Имена параметров
   SystemIdentificateModesParametersValues = [CurY2_1s,CurY3_1s, '0.0';..
                                              CurY2_2s,CurY3_2s,'1.23'];//Значения параметров

   //Параметры режимов работы системы
   SystemModesParametersNames = ['Omega1','Lambda1','Omega2','Omega3','Lambda2','Alpha2','Beta'];//Имена параметров
   SystemModesParametersValues = [ 1.29,0.21, 0.09, 1.5,0.369,1.83,6.123;..
                                  1.323,0.27, 0.15,1.83,0.339,1.23,6.153;..
                                   1.29,0.33,0.063,1.23,0.699, 1.5,3.183];//Значения параметров

   //Идентифицируемые параметры системы
   SystemIdentificationParametersNames = ['A1','A2','B1','B2','C'];//Имена параметров
   SystemIdentificationParametersMinValues = [5.1,4.23,0.15,2.43,0.57];//Минимальные значения параметров
   SystemIdentificationParametersMaxValues = [6.3,4.83,0.75,3.03,0.69];//Максимальные значения параметров

   //Идентификационная функция
   function [parameters]=IdentificationFunction(fSys, MinValues, MaxValues)
       //Генерируем случайные значения параметров
       MinValues = repmat(MinValues,[10,1]);
       MaxValues = repmat(MaxValues,[10,1]);
       parameters = MinValues + (MaxValues - MinValues) .* rand(MinValues);
       
       //Получаем невязки
       errs = fSys(parameters);
       
       //Суммируем невязки
       errs = sum(errs,1);
       errs = sum(errs,2);
       errs = matrix(errs,1,-1);
       
       //Выбираем минимальную невязку
       [MinErrs, indMinErrs] = min(errs);
       
       //Берем соответсвующие параметры
       parameters = parameters(indMinErrs,:);
   endfunction

   //Запускаем базовую функцию
   [SystemOutputChatacteristics,..//Выходные характеристики системы
    SystemIdentificationParametersValues,..//Значения идентифицированных параметров системы
    SystemModesParametersIndexes,..//Индексы параметров системы, определяющих ее режимы
    SystemModesParametersValues,..//Значения параметров системы, определяющих ее режимы
    TimesMomemts..//Моменты времени
    ]=ModelingSystemIdentificationDynamic(SystemIdentificationShemaPath,..//Идентификационная схема системы или имя файла идентификационной схемы ситемы
                                          SystemIdentificateOutputCharacteristicsNames,..//Имена выходных характеристик системы, по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          SystemIdentificateOutputCharacteristicsIndexes,..//Индексы выходных характеристик системы (в именах), по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          IdentificationDynamicFiltersFunctions,..//Функция сжатия динамик выходных характеристик системы, по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          SystemIdentificateModesParametersNames,..//Имена параметров системы, определяющих ее контрольные режимы
                                          SystemIdentificateModesParametersValues,..//Значения параметров системы, определяющих ее контрольные режимы
                                          SystemIdentificationParametersNames,..//Имена идентифицируемых параметров системы
                                          SystemIdentificationParametersMinValues,..//Миниальные значения идентифицируемых параметров системы
                                          SystemIdentificationParametersMaxValues,..//Максимальные значения идентифицируемых параметров системы
                                          IdentificationFunction,..//Идентификационная функция
                                          SystemShemaPath,..//Cхема системы или имя файла схемы ситемы
                                          SystemOutputCharacteristicsNames,..//Имена выходных характеристик системы
                                          SystemOutputCharacteristicsIndexes,..//Индексы выходных характеристик системы (в именах)
                                          "TimeGrid",TimeMoments,..//Моменты времени
                                          SystemModesParametersNames,..//Имена параметров системы, определяющих ее режимы
                                          SystemModesParametersValues,..//Значения параметров системы, определяющих ее режимы
                                          SystemHyperParametrsNames,..//Имена гиперпараметров, определяющих динамику
                                          SystemHyperParametrsValues,..//Значения гиперпараметров, определяющих динамику
                                          [0.5E-6,0.51E-6],..//Максимальное значение абсолютной ошибки для режимов идентификации системы
                                          [0.5E-6,0.51E-6,0.57E-6],..//Максимальное значение абсолютной ошибки
                                          [0.69E-6,0.57E-6],..//Минимальное значение относительной ошибки для режимов идентификации системы
                                          [0.69E-6,0.57E-6,0.75E-6],..//Минимальное значение относительной ошибки
                                          [10.0,11.1],..//Время симуляции для режимов идентификации системы
                                          [10.0,11.1,15.3],..//Время симуляции
                                          [0.93E-4,0.87E-4],..//Максимальный шаг интергирования по времени для режимов идентификации системы
                                          [0.93E-4,0.87E-4,0.81E-4],..//Максимальный шаг интергирования по времени
                                          [0,3],..//Решатель для режимов идентификации системы
                                          [0,3,4],..//Решатель
                                          [2.1E-10,1.5E-10],..//Максимальная ошибка времени для режимов идентификации системы
                                          [2.1E-10,1.5E-10,1.23E-10]..//Максимальная ошибка времени
                                          );

   //Выводим результаты
   disp(SystemOutputChatacteristics);
   disp(SystemIdentificationParametersValues);
//Формируем путь к xcos-диаграмме Proba10.zcos
[a, pathlib] = libraryinfo("computing_experimentlib");
   clear a;
   pathlib = strncpy(pathlib, length(pathlib) - length('macros')) + 'xcos';

   //Идентификационные функции фильтра
   function [parametrs]=IdentificationDynamicFilterFunction1(time, value)
       parametrs=3.3*max(abs(value));
   endfunction
   function [parametrs]=IdentificationDynamicFilterFunction2(time, value)
       parametrs=9.63*max(abs(value));
   endfunction

   //Массив идентификационных функций фильтров
   IdentificationDynamicFiltersFunctions = cell(1, 2);
   IdentificationDynamicFiltersFunctions{1} = IdentificationDynamicFilterFunction1;
   IdentificationDynamicFiltersFunctions{2} = IdentificationDynamicFilterFunction2;

   //Моменты времени
   TimeMoments = cell(1, 3);
TimeMoments{1} = [0.0:0.05:9.95]';
TimeMoments{2} = [0.0:0.1:9.9]';
TimeMoments{3} = [0.0:0.2:9.8]';

   //Путь к файлу диаграммы
   SystemShemaPath = fullfile(pathlib, 'Proba10.zcos');
   SystemIdentificationShemaPath = fullfile(pathlib, 'Proba10iden.zcos');

   //Выходные характеристики системы, по которым идентифицируем диаграмму
   SystemIdentificateOutputCharacteristicsNames = ['DY2','DY3'];
   SystemIdentificateOutputCharacteristicsIndexes = [1,1];

   //Выходные характеристики системы
   SystemOutputCharacteristicsNames = ['Y1','Y2','Y3'];
   SystemOutputCharacteristicsIndexes = [1,1,1];

   //Функции для расчета контрольных динамик
   function [sCurYs]=CurYsToString(CurYs)
       sCurYs = '[' + strcat(string(CurYs),',') + ']';
   endfunction
   function [CurY2s]=fCurY2s(A1, A2, B1, B2, C, Alpha1, Alpha2, CurTs)
       CurY2s = CurYsToString(C*(CurTs .^ 3) + B2*log(1 + Alpha1*CurTs) + A1);
   endfunction
   function [CurY3s]=fCurY3s(A1, A2, B1, B2, C, Alpha1, Alpha2, CurTs)
       CurY3s = CurYsToString(0.5*A1 + 10*A2*log(1 + Alpha2*CurTs) + B1*(CurTs .^ 2) + 10*B2);
   endfunction

   //Эталонные значения параметров
   A1et = 5.7;
   A2et = 4.5;
   B1et = 0.3;
   B2et = 2.7;
   Cet = 0.63;

   //Значения параметров, по которым идентифицируем систему
   T = 10;//Время моделирования
   CurTs = [0:(T/(10^2)):T];//Текущие моменты времени, в которых берем значения
   CurY2_1s = fCurY2s(A1et,A2et,B1et,B2et,Cet,1.05,0.0,CurTs);
   CurY3_1s = fCurY3s(A1et,A2et,B1et,B2et,Cet,1.05,0.0,CurTs);
   CurY2_2s = fCurY2s(A1et,A2et,B1et,B2et,Cet,1.05,1.23,CurTs);
   CurY3_2s = fCurY3s(A1et,A2et,B1et,B2et,Cet,1.05,1.23,CurTs);

   //Параметры контрольных режимов системы
   SystemIdentificateModesParametersNames = ['CurY2s','CurY3s','Alpha2'];//Имена параметров
   SystemIdentificateModesParametersValues = [CurY2_1s,CurY3_1s, '0.0';..
                                              CurY2_2s,CurY3_2s,'1.23'];//Значения параметров

   //Параметры режимов работы системы
   SystemModesParametersNames = ['Omega1','Lambda1','Omega2','Omega3','Lambda2','Alpha2','Beta'];//Имена параметров
   SystemModesParametersValues = [ 1.29,0.21, 0.09, 1.5,0.369,1.83,6.123;..
                                  1.323,0.27, 0.15,1.83,0.339,1.23,6.153;..
                                   1.29,0.33,0.063,1.23,0.699, 1.5,3.183];//Значения параметров

   //Идентифицируемые параметры системы
   SystemIdentificationParametersNames = ['A1','A2','B1','B2','C'];//Имена параметров
   SystemIdentificationParametersMinValues = [5.1,4.23,0.15,2.43,0.57];//Минимальные значения параметров
   SystemIdentificationParametersMaxValues = [6.3,4.83,0.75,3.03,0.69];//Максимальные значения параметров

   //Идентификационная функция
   function [parameters]=IdentificationFunction(fSys, MinValues, MaxValues)
       //Генерируем случайные значения параметров
       MinValues = repmat(MinValues,[10,1]);
       MaxValues = repmat(MaxValues,[10,1]);
       parameters = MinValues + (MaxValues - MinValues) .* rand(MinValues);
       
       //Получаем невязки
       errs = fSys(parameters);
       
       //Суммируем невязки
       errs = sum(errs,1);
       errs = sum(errs,2);
       errs = matrix(errs,1,-1);
       
       //Выбираем минимальную невязку
       [MinErrs, indMinErrs] = min(errs);
       
       //Берем соответсвующие параметры
       parameters = parameters(indMinErrs,:);
   endfunction

   //Запускаем базовую функцию
   [SystemOutputChatacteristics,..//Выходные характеристики системы
    SystemIdentificationParametersValues,..//Значения идентифицированных параметров системы
    SystemModesParametersIndexes,..//Индексы параметров системы, определяющих ее режимы
    SystemModesParametersValues,..//Значения параметров системы, определяющих ее режимы
    TimesMomemts..//Моменты времени
    ]=ModelingSystemIdentificationDynamic(SystemIdentificationShemaPath,..//Идентификационная схема системы или имя файла идентификационной схемы ситемы
                                          SystemIdentificateOutputCharacteristicsNames,..//Имена выходных характеристик системы, по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          SystemIdentificateOutputCharacteristicsIndexes,..//Индексы выходных характеристик системы (в именах), по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          IdentificationDynamicFiltersFunctions,..//Функция сжатия динамик выходных характеристик системы, по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          SystemIdentificateModesParametersNames,..//Имена параметров системы, определяющих ее контрольные режимы
                                          SystemIdentificateModesParametersValues,..//Значения параметров системы, определяющих ее контрольные режимы
                                          SystemIdentificationParametersNames,..//Имена идентифицируемых параметров системы
                                          SystemIdentificationParametersMinValues,..//Миниальные значения идентифицируемых параметров системы
                                          SystemIdentificationParametersMaxValues,..//Максимальные значения идентифицируемых параметров системы
                                          IdentificationFunction,..//Идентификационная функция
                                          SystemShemaPath,..//Cхема системы или имя файла схемы ситемы
                                          SystemOutputCharacteristicsNames,..//Имена выходных характеристик системы
                                          SystemOutputCharacteristicsIndexes,..//Индексы выходных характеристик системы (в именах)
                                          "TimeGrid",TimeMoments,..//Моменты времени
                                          SystemModesParametersNames,..//Имена параметров системы, определяющих ее режимы
                                          SystemModesParametersValues,..//Значения параметров системы, определяющих ее режимы
                                          [0.5E-6,0.51E-6],..//Максимальное значение абсолютной ошибки для режимов идентификации системы
                                          [0.5E-6,0.51E-6,0.57E-6],..//Максимальное значение абсолютной ошибки
                                          [0.69E-6,0.57E-6],..//Минимальное значение относительной ошибки для режимов идентификации системы
                                          [0.69E-6,0.57E-6,0.75E-6],..//Минимальное значение относительной ошибки
                                          [10.0,11.1],..//Время симуляции для режимов идентификации системы
                                          [10.0,11.1,15.3],..//Время симуляции
                                          [0.93E-4,0.87E-4],..//Максимальный шаг интергирования по времени для режимов идентификации системы
                                          [0.93E-4,0.87E-4,0.81E-4],..//Максимальный шаг интергирования по времени
                                          [0,3],..//Решатель для режимов идентификации системы
                                          [0,3,4],..//Решатель
                                          [2.1E-10,1.5E-10],..//Максимальная ошибка времени для режимов идентификации системы
                                          [2.1E-10,1.5E-10,1.23E-10]..//Максимальная ошибка времени
                                          );

   //Выводим результаты
   disp(SystemOutputChatacteristics);
   disp(SystemIdentificationParametersValues);
//Формируем путь к xcos-диаграмме Proba10.zcos
[a, pathlib] = libraryinfo("computing_experimentlib");
   clear a;
   pathlib = strncpy(pathlib, length(pathlib) - length('macros')) + 'xcos';

   //Идентификационные функции фильтра
   function [parametrs]=IdentificationDynamicFilterFunction1(time, value)
       parametrs=3.3*max(abs(value));
   endfunction
   function [parametrs]=IdentificationDynamicFilterFunction2(time, value)
       parametrs=9.63*max(abs(value));
   endfunction

   //Массив идентификационных функций фильтров
   IdentificationDynamicFiltersFunctions = cell(1, 2);
   IdentificationDynamicFiltersFunctions{1} = IdentificationDynamicFilterFunction1;
   IdentificationDynamicFiltersFunctions{2} = IdentificationDynamicFilterFunction2;

   //Моменты времени
   TimeMoments = cell(1, 3);
TimeMoments{1} = [0.0:0.05:9.95]';
TimeMoments{2} = [0.0:0.1:9.9]';
TimeMoments{3} = [0.0:0.2:9.8]';

   //Путь к файлу диаграммы
   SystemShemaPath = fullfile(pathlib, 'Proba10.zcos');
   SystemIdentificationShemaPath = fullfile(pathlib, 'Proba10iden.zcos');

   //Гиперпараметры диаграммы
   Alpha1 = 1.05;
   SystemHyperParametrsNames = ['Alpha1'];//Имена гиперпараметров, определяющих динамику
   SystemHyperParametrsValues = [Alpha1];//Значения гиперпараметров, определяющих динамику

   //Выходные характеристики системы, по которым идентифицируем диаграмму
   SystemIdentificateOutputCharacteristicsNames = ['DY2','DY3'];
   SystemIdentificateOutputCharacteristicsIndexes = [1,1];

   //Выходные характеристики системы
   SystemOutputCharacteristicsNames = ['Y1','Y2','Y3'];
   SystemOutputCharacteristicsIndexes = [1,1,1];

   //Функции для расчета контрольных динамик
   function [sCurYs]=CurYsToString(CurYs)
       sCurYs = '[' + strcat(string(CurYs),',') + ']';
   endfunction
   function [CurY2s]=fCurY2s(A1, A2, B1, B2, C, Alpha1, Alpha2, CurTs)
       CurY2s = CurYsToString(C*(CurTs .^ 3) + B2*log(1 + Alpha1*CurTs) + A1);
   endfunction
   function [CurY3s]=fCurY3s(A1, A2, B1, B2, C, Alpha1, Alpha2, CurTs)
       CurY3s = CurYsToString(0.5*A1 + 10*A2*log(1 + Alpha2*CurTs) + B1*(CurTs .^ 2) + 10*B2);
   endfunction

   //Эталонные значения параметров
   A1et = 5.7;
   A2et = 4.5;
   B1et = 0.3;
   B2et = 2.7;
   Cet = 0.63;

   //Значения параметров, по которым идентифицируем систему
   T = 10;//Время моделирования
   CurTs = [0:(T/(10^2)):T];//Текущие моменты времени, в которых берем значения
   CurY2_1s = fCurY2s(A1et,A2et,B1et,B2et,Cet,Alpha1,0.0,CurTs);
   CurY3_1s = fCurY3s(A1et,A2et,B1et,B2et,Cet,Alpha1,0.0,CurTs);
   CurY2_2s = fCurY2s(A1et,A2et,B1et,B2et,Cet,Alpha1,1.23,CurTs);
   CurY3_2s = fCurY3s(A1et,A2et,B1et,B2et,Cet,Alpha1,1.23,CurTs);

   //Параметры контрольных режимов системы
   SystemIdentificateModesParametersNames = ['CurY2s','CurY3s','Alpha2'];//Имена параметров
   SystemIdentificateModesParametersValues = [CurY2_1s,CurY3_1s, '0.0';..
                                              CurY2_2s,CurY3_2s,'1.23'];//Значения параметров

   //Параметры режимов работы системы
   SystemModesParametersNames = ['Omega1','Lambda1','Omega2','Omega3','Lambda2','Alpha2','Beta'];//Имена параметров
   SystemModesParametersValues = [ 1.29,0.21, 0.09, 1.5,0.369,1.83,6.123;..
                                  1.323,0.27, 0.15,1.83,0.339,1.23,6.153;..
                                   1.29,0.33,0.063,1.23,0.699, 1.5,3.183];//Значения параметров

   //Идентифицируемые параметры системы
   SystemIdentificationParametersNames = ['A1','A2','B1','B2','C'];//Имена параметров
   SystemIdentificationParametersMinValues = [5.1,4.23,0.15,2.43,0.57];//Минимальные значения параметров
   SystemIdentificationParametersMaxValues = [6.3,4.83,0.75,3.03,0.69];//Максимальные значения параметров

   //Идентификационная функция
   function [parameters]=IdentificationFunction(fSys, MinValues, MaxValues)
       //Генерируем случайные значения параметров
       MinValues = repmat(MinValues,[10,1]);
       MaxValues = repmat(MaxValues,[10,1]);
       parameters = MinValues + (MaxValues - MinValues) .* rand(MinValues);
       
       //Получаем невязки
       errs = fSys(parameters);
       
       //Суммируем невязки
       errs = sum(errs,1);
       errs = sum(errs,2);
       errs = matrix(errs,1,-1);
       
       //Выбираем минимальную невязку
       [MinErrs, indMinErrs] = min(errs);
       
       //Берем соответсвующие параметры
       parameters = parameters(indMinErrs,:);
   endfunction

   //Запускаем базовую функцию
   [SystemOutputChatacteristics,..//Выходные характеристики системы
    SystemIdentificationParametersValues,..//Значения идентифицированных параметров системы
    SystemModesParametersIndexes,..//Индексы параметров системы, определяющих ее режимы
    SystemModesParametersValues,..//Значения параметров системы, определяющих ее режимы
    TimesMomemts..//Моменты времени
    ]=ModelingSystemIdentificationDynamic(SystemIdentificationShemaPath,..//Идентификационная схема системы или имя файла идентификационной схемы ситемы
                                          SystemIdentificateOutputCharacteristicsNames,..//Имена выходных характеристик системы, по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          SystemIdentificateOutputCharacteristicsIndexes,..//Индексы выходных характеристик системы (в именах), по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          IdentificationDynamicFiltersFunctions,..//Функция сжатия динамик выходных характеристик системы, по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          SystemIdentificateModesParametersNames,..//Имена параметров системы, определяющих ее контрольные режимы
                                          SystemIdentificateModesParametersValues,..//Значения параметров системы, определяющих ее контрольные режимы
                                          SystemIdentificationParametersNames,..//Имена идентифицируемых параметров системы
                                          SystemIdentificationParametersMinValues,..//Миниальные значения идентифицируемых параметров системы
                                          SystemIdentificationParametersMaxValues,..//Максимальные значения идентифицируемых параметров системы
                                          IdentificationFunction,..//Идентификационная функция
                                          SystemShemaPath,..//Cхема системы или имя файла схемы ситемы
                                          SystemOutputCharacteristicsNames,..//Имена выходных характеристик системы
                                          SystemOutputCharacteristicsIndexes,..//Индексы выходных характеристик системы (в именах)
                                          "TimeGrid",TimeMoments,..//Моменты времени
                                          SystemModesParametersNames,..//Имена параметров системы, определяющих ее режимы
                                          SystemModesParametersValues,..//Значения параметров системы, определяющих ее режимы
                                          SystemHyperParametrsNames,..//Имена гиперпараметров, определяющих динамику
                                          SystemHyperParametrsValues,..//Значения гиперпараметров, определяющих динамику
                                          );

   //Выводим результаты
   disp(SystemOutputChatacteristics);
   disp(SystemIdentificationParametersValues);
//Формируем путь к xcos-диаграмме Proba10.zcos
[a, pathlib] = libraryinfo("computing_experimentlib");
   clear a;
   pathlib = strncpy(pathlib, length(pathlib) - length('macros')) + 'xcos';

   //Идентификационные функции фильтра
   function [parametrs]=IdentificationDynamicFilterFunction1(time, value)
       parametrs=3.3*max(abs(value));
   endfunction
   function [parametrs]=IdentificationDynamicFilterFunction2(time, value)
       parametrs=9.63*max(abs(value));
   endfunction

   //Массив идентификационных функций фильтров
   IdentificationDynamicFiltersFunctions = cell(1, 2);
   IdentificationDynamicFiltersFunctions{1} = IdentificationDynamicFilterFunction1;
   IdentificationDynamicFiltersFunctions{2} = IdentificationDynamicFilterFunction2;

   //Моменты времени
   TimeMoments = cell(1, 3);
TimeMoments{1} = [0.0:0.05:9.95]';
TimeMoments{2} = [0.0:0.1:9.9]';
TimeMoments{3} = [0.0:0.2:9.8]';

   //Путь к файлу диаграммы
   SystemShemaPath = fullfile(pathlib, 'Proba10.zcos');
   SystemIdentificationShemaPath = fullfile(pathlib, 'Proba10iden.zcos');

   //Выходные характеристики системы, по которым идентифицируем диаграмму
   SystemIdentificateOutputCharacteristicsNames = ['DY2','DY3'];
   SystemIdentificateOutputCharacteristicsIndexes = [1,1];

   //Выходные характеристики системы
   SystemOutputCharacteristicsNames = ['Y1','Y2','Y3'];
   SystemOutputCharacteristicsIndexes = [1,1,1];

   //Функции для расчета контрольных динамик
   function [sCurYs]=CurYsToString(CurYs)
       sCurYs = '[' + strcat(string(CurYs),',') + ']';
   endfunction
   function [CurY2s]=fCurY2s(A1, A2, B1, B2, C, Alpha1, Alpha2, CurTs)
       CurY2s = CurYsToString(C*(CurTs .^ 3) + B2*log(1 + Alpha1*CurTs) + A1);
   endfunction
   function [CurY3s]=fCurY3s(A1, A2, B1, B2, C, Alpha1, Alpha2, CurTs)
       CurY3s = CurYsToString(0.5*A1 + 10*A2*log(1 + Alpha2*CurTs) + B1*(CurTs .^ 2) + 10*B2);
   endfunction

   //Эталонные значения параметров
   A1et = 5.7;
   A2et = 4.5;
   B1et = 0.3;
   B2et = 2.7;
   Cet = 0.63;

   //Значения параметров, по которым идентифицируем систему
   T = 10;//Время моделирования
   CurTs = [0:(T/(10^2)):T];//Текущие моменты времени, в которых берем значения
   CurY2_1s = fCurY2s(A1et,A2et,B1et,B2et,Cet,1.05,0.0,CurTs);
   CurY3_1s = fCurY3s(A1et,A2et,B1et,B2et,Cet,1.05,0.0,CurTs);
   CurY2_2s = fCurY2s(A1et,A2et,B1et,B2et,Cet,1.05,1.23,CurTs);
   CurY3_2s = fCurY3s(A1et,A2et,B1et,B2et,Cet,1.05,1.23,CurTs);

   //Параметры контрольных режимов системы
   SystemIdentificateModesParametersNames = ['CurY2s','CurY3s','Alpha2'];//Имена параметров
   SystemIdentificateModesParametersValues = [CurY2_1s,CurY3_1s, '0.0';..
                                              CurY2_2s,CurY3_2s,'1.23'];//Значения параметров

   //Параметры режимов работы системы
   SystemModesParametersNames = ['Omega1','Lambda1','Omega2','Omega3','Lambda2','Alpha2','Beta'];//Имена параметров
   SystemModesParametersValues = [ 1.29,0.21, 0.09, 1.5,0.369,1.83,6.123;..
                                  1.323,0.27, 0.15,1.83,0.339,1.23,6.153;..
                                   1.29,0.33,0.063,1.23,0.699, 1.5,3.183];//Значения параметров

   //Идентифицируемые параметры системы
   SystemIdentificationParametersNames = ['A1','A2','B1','B2','C'];//Имена параметров
   SystemIdentificationParametersMinValues = [5.1,4.23,0.15,2.43,0.57];//Минимальные значения параметров
   SystemIdentificationParametersMaxValues = [6.3,4.83,0.75,3.03,0.69];//Максимальные значения параметров

   //Идентификационная функция
   function [parameters]=IdentificationFunction(fSys, MinValues, MaxValues)
       //Генерируем случайные значения параметров
       MinValues = repmat(MinValues,[10,1]);
       MaxValues = repmat(MaxValues,[10,1]);
       parameters = MinValues + (MaxValues - MinValues) .* rand(MinValues);
       
       //Получаем невязки
       errs = fSys(parameters);
       
       //Суммируем невязки
       errs = sum(errs,1);
       errs = sum(errs,2);
       errs = matrix(errs,1,-1);
       
       //Выбираем минимальную невязку
       [MinErrs, indMinErrs] = min(errs);
       
       //Берем соответсвующие параметры
       parameters = parameters(indMinErrs,:);
   endfunction

   //Запускаем базовую функцию
   [SystemOutputChatacteristics,..//Выходные характеристики системы
    SystemIdentificationParametersValues,..//Значения идентифицированных параметров системы
    SystemModesParametersIndexes,..//Индексы параметров системы, определяющих ее режимы
    SystemModesParametersValues,..//Значения параметров системы, определяющих ее режимы
    TimesMomemts..//Моменты времени
    ]=ModelingSystemIdentificationDynamic(SystemIdentificationShemaPath,..//Идентификационная схема системы или имя файла идентификационной схемы ситемы
                                          SystemIdentificateOutputCharacteristicsNames,..//Имена выходных характеристик системы, по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          SystemIdentificateOutputCharacteristicsIndexes,..//Индексы выходных характеристик системы (в именах), по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          IdentificationDynamicFiltersFunctions,..//Функция сжатия динамик выходных характеристик системы, по которым осуществляется идентификация (по отклонениям этих величин от соответсвующих экспериментальных значений)
                                          SystemIdentificateModesParametersNames,..//Имена параметров системы, определяющих ее контрольные режимы
                                          SystemIdentificateModesParametersValues,..//Значения параметров системы, определяющих ее контрольные режимы
                                          SystemIdentificationParametersNames,..//Имена идентифицируемых параметров системы
                                          SystemIdentificationParametersMinValues,..//Миниальные значения идентифицируемых параметров системы
                                          SystemIdentificationParametersMaxValues,..//Максимальные значения идентифицируемых параметров системы
                                          IdentificationFunction,..//Идентификационная функция
                                          SystemShemaPath,..//Cхема системы или имя файла схемы ситемы
                                          TimeMoments,..//Имена выходных характеристик системы
                                          SystemOutputCharacteristicsIndexes,..//Индексы выходных характеристик системы (в именах)
                                          "TimeGrid",DynamicFiltersFunctions,..//Моменты времени
                                          SystemModesParametersNames,..//Имена параметров системы, определяющих ее режимы
                                          SystemModesParametersValues..//Значения параметров системы, определяющих ее режимы
                                          );

   //Выводим результаты
   disp(SystemOutputChatacteristics);
   disp(SystemIdentificationParametersValues);

См. также


Report an issue
<< ModelingSystemDynamicTimeGrid computing_experiment SetDiagramParameters >>