Черных И.В. Simulink Среда для создания инженерных приложений (2003) (1152002), страница 40
Текст из файла (страница 40)
К сожалению, режим ускорителя не может быть использован в моделях, которые содержат алгебраические контуры. Существенный выигрыш по времени моделирования может дать использование дискретных моделей взамен непрерывных. Наиболее существенным с точки зрения скорости вычислений может оказаться правильный выбор уровня легализации модели. К примеру, если выполняется моделирование системы электроснабжения горола, вряд ли стоит моделировать каждый потребитель электрической энергии: электрический двигатель, чайник, сварочный аппарат и т.
п. Вполне достаточным будет создание обобщенных моделей электрических потребителей на уровне заводского цеха, жилого дома, трамвайного парка и т. п. Источники повышения точности Интегрирование нелинейных дифференциальных уравнений — это всегда искусство. Поэтому получение достоверного результата доступно только искушенному пользователю. Тем не менее, можно дать некоторые общие советы, как быть уверенным, что результаты моделирования достоверны. Широко используемый прием — зто сравнительное моделирование с разными значениями параметра относительной погрешности ке1а!1те!о1егапсе. К примеру, можно провести моделирование с заданным по умолчанию значением этого параметра 1е-3 и с меньшим значением, например !е-4. Если 5.
Отладчик $!МО11ХК-моделей результаты отличаются незначительно, то можно полагать, что найденное решение является верным. Если решения значительно отличаются на начальной стадии, то следует уменьшить начальный шаг интегрирования 1п1па! ыер з1хе. Если решение оказывается неустойчивым, то это может быть связано, либо с неустойчивостью самой моделируемой системы, либо с неправильным выбором метода интегрирования.
Если решение кажется неточным, то следует задать в явном ниле параметр абсолютной погрешности АЬко!нге ю1егапсе и выполнить ряд прогонов, уменьшая величину этого параметра. Если при уменьшении абсолютной погрешности точность не повышается, следует уменьшить относительную погрешность, либо задать достаточно малое значение максигяального шага интегрирования. 367 6. 8-функции и нх применение 6.1. Оннснннс Я-функцын Б-функция Пиктограмма: в.рнасаоа Параметры блока: 6. Я-ФУНКЦИИ И ИХ ПРИМЕНЕНИЕ Набор стандартных блоков системы Ящо!1п!с, достаточно обширен, однако в практике моделирования встречаются ситуации, когда нужного блока нет, либо структурное моделирование делает модель слишком сложной.
Вэтом случае для создания нужного блока целесообразно применять технологию $-функций. Япш!)пй-функции, или Б-функции являются описанием блока на одном нз языков программирования: МАТ1.АВ, С, С++, Ада или Гомгап. С помощью языков программирования пользователь можно создавать описание сколь угодно сложных блоков и включить их в Яща)!пк-модель, при этом с точки зрения взаимодействия пользователя с моделью блоки, реализующие Яфункции, ничем не отличаются от стандартных библиотечных блоков системы Япш((п!с.
Создаваемые блоки могут реализовывать непрерывные, дискретные или гибридные (дискретно-непрерывные) модели. Б-функции, созданные на языках С, С++, Ада или рог!гав, компилируются в исполняемые файлы с расширением о.611. Это обеспечивает высокую скорость выполнения таких блоков. б функции могут обрабатывать разные типы данных (целые, действительные н комплексные числа), использовать массивы в качестве входных и выходных перелаенных, а также инициировать функции ответного вызова. Чаще всего Б-функции применяются для написания новых библиотечных блоков; блоков, обеспечивающих взаимодействие системы Япш- 1!пй с аппаратными средствами; при создании блоков на основе математических уравнений; блоков, реализуюп!их анимационные возможности, а также при подключении к модели Япш!щй программного кода на языках высокого уровня. При написании этой главы были использованы материалы работы (15).
Назначеииег Подключение в-функции к модели. Окно задания лараметрое: ; иоралрреее иааф. насра врале ояиоехн. с,гаай раве(а1фиар.. ! ~ иая рееипао зьреио йоаиарл ахи,а(вя(иеьрнаа(аегр : реимаеврзоаа )араьриоарк еевич"рреаЬНмфф$$-:"' ареаеяаа ае ве1аасраерраорир ряя ааааа ! $-бзосбоп па!пес [имя Яфуикцни). Имя Яфункцин не должно совпадать с именем модели (пкП-файла). 8-гопсбоп рааащереаэ: (параметры 3-функции]. Параметры Б-функции, передаваемые через окно диалога блока Б-тиос!!оп. Они записываются в окне диалога в том же порядке, в каком присутствуют в заголовке Б-функции. Я!щийп!с-блок однозначно описывается наборами входных переменных и, переменных состояния я и выходных переменных у (рнс.
6.1). б. Гыфунхннн н нх применение и (выхед) (вход) Рис, б.! х, =Г,(г,х*п); хл(д) = Г„(г,х,и); я =х, +хя,. у = я(е, х,и), ~ Интирнрованне (внутренний маг) З70 И. В. Черных. Б!М0$.1!ЧК: среде создания инженерных приложений В математической форме блок можно описать смешанной системой дифференциальных, разностиых и алгебраических уравнений: где х — вектор непрерывных переменных состояния; с 3 х — вектор производных переиенных состояния; х — вектор дискретных Переменных состояния; е' у — вектор выходных переменных„ф Ге — функция вычисления производных вектора состояния; Гл- функция вычисления дискретных переменных; а — функция вычисления выходов системы.
б2. Организации процесса моделирования Процесс моделирования вьпюлняется системой Гйшо!ш)с в несколько этапов. Сначала производится инициализация модели — подключение библиотечных блоков, определение размеров сигналов, типов данных, величин такта дискретности, задание параметров блоков, а также порядка их выполнения, вьщеление оперативной памяти.
Затем Бипо)!пЕ начинает выполнять собственно цикл моделирования, в процессе которого реализуется интегрирование и вычисление функциональных зависимостей, описываемых блоками в том порядке, который был установлен на этапе инициализации. Для каждого блока система Яшнйой вызывает функции, которые вычисляют переменные состояния х, их производные, а также выходы у на текущем шаге модельного времени.
Этот процесс продолжается, пока моделирование не будет завершено, На рис. 6.2 показана упрощенная диаграмма, иллюстрирующая этот процесс. П(миюду!ма втветивгв вызвав Кяядая внутренняя задача при вызове Б-функции решается с помощью следующих процедур ответного вызова: 1. пхШп)па11хеигеа — цроцедура инициализации. В рамках этой процедуры Яизи! нй выполняет следукяцне операции: ° инициализирует структуру с именем ЯоЖпзсг, которая содержит информацию об Б-функции; ° определяет количество входных и выходных портов„а также размеры соответствующих векторов сигналов; ° устанавливает такт дискретности; ° выделяет память для хранения переменных и устанавливает размеры массивов.
. о. Че ных. яМИ.ИЧК: среда создания инженерных приложений 2. пкПОезТ)пзеО(Ь1ехгЧагН(г — процедура вычисления времени следующего срабатывания блока (для блоков с переменным тактом дискретности). 3. тд!Оирцьз — процедура вычисления выходных сигналов и передача их на выходные порты. 4. пкй()рдазе — процедура вычисления дискретных переменных состояния, которые сохраняют свои значения до следующего цикла моделирования.
5. пЫ)Оег)таз)чез — процедура вычисления производных переменных состояния. б, пкПТепп(ваге — процедура завершения Б-функции. Если Б-функция содержит непрерывные переменные состояния, Бюзийпй вызывает процедуры ответного вызова пнйОепчаз(чея н тгПОизрьчз для расчета производных переменных состояния н выходных переменных в процессе интегрирования уравнений. Вызов той или иной процедуры ответного вызова задается с помощью переменной йая, которая является входным аргументом Б-функции. Реализации Б-функции Для того чтобы создать Б-функцию, необходимо придерживаться»екоторых базовых понятий„используемых при ее написании. К таким поцятням относятся: !.
О)тес! (ееЖгоояЬ вЂ” прямая передача. Это понятие связано со сквозной передачей входных сигналов непосредственно на выход системы, минуя динамические блоки. Необходимость реализации в Б-функции механизма прямой передачи возникает в тех случаях, когда в уравнениях выхода присутствуют входные переменные, либо оии используются при расчете времени следующего срабатывания блока. Установка правильного значения параметра Опес! (еезПЬгоийЬ крайне важна, поскольку именно этот параметр фиксирует возможное возникновение замкнупах алгебраических контуров.
2. !)упапнсайу з1хед нарою — динамически изменяемые размеры входов. Б-функция может быть написана так, чтобы обеспечить обработку векторов произвольных размеров. Фактические размеры векторов. переменных состояния и выхода устанавливаются равными размеру вектора входа. Чтобы задать динамически изменяемый размер для вектора персменной, необходимо указать длл этой переменной размер равным -1 а соответствующем поле структуры з)хек (см. приведенный далее шаблон Б-функции). 6 Б функции и их применение 3. Бец1ох ьа~пр1е баек аЫ ойьеьз — установка тактов дискретности модель- ного времени н задержек. Возможны следующие способы задания мо- дельного времени: Сопбпцош затр1е йще — непрерывное время.