Статус документа
Статус документа

ГОСТ Р 54418.27.1-2019 (МЭК 61400-27-1:2015) Установки ветроэнергетические. Часть 27-1. Общие имитационные модели ветроэнергетических установок, присоединенных к энергосистеме

Приложение G
(справочное)

Общее сопряжение программного обеспечения для применения с различными программными комплексами моделирования


G.1 Описание метода

Описание всех применяемых моделей в обобщенной форме невозможно по следующим причинам:

- в модели присутствует функциональность, отсутствующая в общей модели;

- в модели присутствует конфиденциальная информация, не подлежащая разглашению;

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

При применении таких моделей, возможно, потребуется:

- использовать модель в условиях иной программной среды;

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

Применение общего программного сопряжения позволяет использовать одну и ту же модель в объектном коде как в различных программных средах, так и в сочетании с моделями из других источников. В зависимости от программной среды такие характеристики, как последовательность вызова процедур, алгоритмы интегрирования, передача параметров, могут использоваться по-разному. Концепция общего сопряжения гарантирует, что модель будет функционировать и давать корректные результаты в указанных условиях. Некоторыми главными требованиями являются:

- поддержка как внутренних (в модели), так и внешних расчетных механизмов (состояний и их производных, получаемых из модельной среды);

- поддержка нескольких экземпляров модели;

- необязательная поддержка моделирования с переменным шагом;

- необязательная поддержка итерационного расчета параметров потокораспределения мощности;

- необязательная поддержка функциональности, связанной с графическим представлением для пользователя (ввод, вывод и отображение наименований параметров);

- необязательная поддержка изменений параметров.

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

Хорошим способом построения моделей для различных программных сред является использование динамических библиотек объектных модулей (DLL), которые обеспечивают защиту авторских прав и воспроизводимость результатов. Важной чертой применения динамических библиотек при решении различных задач моделирования является гибкость сопряжения, которая предоставляет возможность выполнить требования различных моделирующих систем. Сопряжение расширенной среды моделирования (РСМ-сопряжение) удовлетворяет этим требованиям. В данном приложении приведены его структуры данных и функции.

G.2 Описание программного сопряжения

G.2.1 Описание структур данных

G.2.1.1 Общие положения

Для передачи данных через РСМ-сопряжение используются следующие структуры данных (на языке программирования Си).

G.2.1.2 StaticExtSimEnvCapi

Описание: Содержит общие данные о модели.

typedef struct

{

const uint8_T

APIRelease[4];

// Release number of the API used during

// code generation

const char_T * const

ModelName;

// Model name

const char_T * const

ModelVersion;

// Model version

const char_T * const

ModelDescription;

// Model description

const char_T * const

VersionControlInfo;

// Version control information

const char_T * const

GeneralInfоrmation;

// General info - - here some RTW info

const char_T * const

ModelCreated;

// Model created on

const char_T * const

ModelCreator;

// Model created by

const char_T * const

ModelLastModifiedDate;

// Model last modified on

const char_T * const

ModelLastModifiedBy;

// Model last modified by

const char_T * const

ModelModifiedComment;

// Model modified comment

const char_T * const

ModelModifiedHistory;

// Model modified history

const char_T * const

CodeGeneratedOn;

// Code generated on

const char_T * const

IncludedSolver;

// Solver name (can be empty)

const real64_T

FixedStepBaseSampleTime;

// Base sample time

const int32_T

NumlnputPorts;

// Number of inputs

const StaticESEInputSignal * const

InputPortslnfo;

// Pointer to input signal description array

const int32_T

NumDutputPorts;

// Number of outputs

const StaticESEOutputSignal * const

OutputPortslnfo;

// Pointer to output signal description

// array

const int32_T

NumParameters;

// Number of parameters

const StaticESEParameter* const

ParametersInfo;

// Pointer to parameter description array

const int32_T

NumContStates;

// Number of continuous states

const int32_T

SizeofMisсStates;

// Size of work variables / misc states

const uint32_T

ModelChecksum[4];

// Simulink model checksum

const char_T

*LastErrorMessage;

// Error string pointer

const uint8_T

EMT_RMS_Mode;

// Mode: EMT = 1, RMS =2,

// EMT & RMS = 3,

// otherwise: 0

const uint8_T

LoadflowFlag;

// Model contains a loadflow function;

// 0 = no, 1 = yes

ESEExtension

Extension;

// Provided for extensions

}StaticExtSimEnvCapi;