Организация процесса моделирования.

Государственное профессиональное

Образовательное учреждение

«Енакиевский металлургический техникум»

 

ЕН.02 Компьютерное моделирование

Лекция № 17

Тема: S-функции системы Simulink

Содержание

 

1. Применение S-функций.

2. Описание S-функции.

3. Организация процесса моделирования.

4. Реализация S-функции.

Контрольные вопросы

Литература

Вопросы для самостоятельного изучения

 

Преподаватель _____________________________ Г.В. Лунина

 

Применение S -функций.

Набор стандартных блоков системы Simulink, достаточно обширен, однако в практике моделирования встречаются ситуации, когда нужного блока нет, либо структурное моделирование делает модель слишком сложной. В этом случае для создания нужного блока целесообразно применять технологию S-функций. Simulink-функции, или S-функции являются описанием блока на одном из языков программирования: MATLAB, С, C++, Ada или Fortran. С помощью языков программирования пользователю можно создавать описание сколь угодно сложных блоков и включить их в Simulink-модель, при этом с точки зрения взаимодействия пользователя с моделью блоки, реализующие S-функции, ничем не отличаются от стандартных библиотечных блоков системы Simulink. Создаваемые блоки могут реализовывать непрерывные, дискретные или гибридные (дискретно-непрерывные) модели. S-функции, созданные на языках С, C++, Ada или Fortran, компилируются в исполняемые файлы с расширением *.dll. Это обеспечивает высокую скорость выполнения таких блоков. S-функции могут обрабатывать разные типы данных (целые, действительные и комплексные числа), использовать массивы в качестве входных и выходных переменных, а также инициировать функции ответного вызова.

Чаще всего S-функции применяются для написания новых библиотечных блоков; блоков, обеспечивающих взаимодействие системы Simulink с аппаратными средствами; при создании блоков на основе математических уравнений; блоков, реализующих анимационные возможности, а также при подключении к модели Simulink программного кода на языках высокого уровня

 

Описание S -функции.

Пиктограмма:

 

Назначение:

Подключение S-функции к модели.

 

Окно задания параметров:

 

Параметры блока:

S-function name:

[имя S-функции]. Имя S-функции не должно совпадать с именем модели (mdl-файла).

 

S-function parameters:

[параметры S-функции]. Параметры S-функции, передаваемые через окно диалога блока S-function. Они записываются в окне диалога в том же порядке, в каком присутствуют в заголовке S-функции.

Simulink-блок однозначно описывается наборами входных переменных u, переменных состояния х и выходных переменных y (рис. 1).

 

 

Рисунок 1.

 

Организация процесса моделирования.

Процесс моделирования выполняется системой Simulink в несколько этапов. Сначала производится инициализация модели - подключение библиотечных блоков, определение размеров сигналов, типов данных, величин такта дискретности, задание параметров блоков, а также порядка их выполнения, выделение оперативной памяти. Затем Simulink начинает выполнять собственно цикл моделирования, в процессе которого реализуется интегрирование и вычисление функциональных зависимостей, описываемых блоками в том порядке, который был установлен на этапе инициализации. Для каждого блока система Simulink вызывает функции, которые вычисляют переменные состояния х, их производные, а также выходы у на текущем шаге модельного времени. Этот процесс продолжается, пока моделирование не будет завершено. На рис. 2 показана упрощенная диаграмма, иллюстрирующая этот процесс.

 

Рисунок 2.

 

Процедуры ответного вызова

Каждая внутренняя задача при вызове S-функции решается с помощью следующих процедур ответного вызова:

1. mdlInitializesizes - процедура инициализации. В рамках этой процедуры Simulink выполняет следующие операции:

•   инициализирует структуру с именем SimStruct, которая содержит информацию об S-функции;

•   определяет количество входных и выходных портов, а также размеры соответствующих векторов сигналов;

•   устанавливает такт дискретности;

•   выделяет память для хранения переменных и устанавливает размеры массивов.

2. mdlGetTimeOfNextVarHit - процедура вычисления времени следующего срабатывания блока (для блоков с переменным тактом дискретности).

3. mdlOutputs - процедура вычисления выходных сигналов и передача их на выходные порты.

4. mdlUpdate - процедура вычисления дискретных переменных состояния, которые сохраняют свои значения до следующего цикла моделирования.

5. mdlDerivatives - процедура вычисления производных переменных состояния.

6. mdlTerminate - процедура завершения S-функции.

Если S-функция содержит непрерывные переменные состояния, Simulink вызывает процедуры ответного вызова mdlDerivatives и mdlOutputs для расчета производных переменных состояния и выходных переменных в процессе интегрирования уравнений.

Вызов той или иной процедуры ответного вызова задается с помощью переменной flag, которая является входным аргументом S-функции.

 

 

Реализация S -функции.

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

1. Direct feedthrough - прямая передача. Это понятие связано со сквозной передачей входных сигналов непосредственно на выход системы, минуя динамические блоки. Необходимость реализации в S-функции механизма прямой передачи возникает в тех случаях, когда в уравнениях выхода присутствуют входные переменные, либо они используются при расчете времени следующего срабатывания блока. Установка правильного значения параметра Direct feedthrough крайне важна, поскольку именно этот параметр фиксирует возможное возникновение замкнутых алгебраических контуров.

2. Dynamically sized inputs - динамически изменяемые размеры входов. S-функция может быть написана так, чтобы обеспечить обработку векторов произвольных размеров. Фактические размеры векторов переменных состояния и выхода устанавливаются равными размеру вектора входа. 3. Setting sample times and offsets - установка тактов дискретности модельного времени и задержек. Возможны следующие способы задания мо-дельного времени:

•   Continuous sample time - непрерывное время. Применяется при моделировании непрерывных динамических систем.

•   Continuous but fixed in minor time step sample time - непрерывное время с фиксированным тактом. В этом случае выходные переменные должны изменяться в соответствии с заданным тактом моделирования и оставаться неизменными при итерировании.

•   Discrete sample time - дискретное модельное время. Применяется при моделировании дискретных элементов системы.

•   Variable sample time - переменный такт дискретности. Модельное время дискретное, но интервалы времени между срабатываниями переменные.

•   Inherited sample time - наследуемый такт дискретности. В некоторых случаях работа блока не зависит от способа задания такта дискретности. Например, для блока Gain величина такта дискретности несущественна. В подобных случаях параметр sample time может быть на следован от предыдущего или последующего блока, либо от блока, имеющего наименьшее значение такта.

 

Контрольные вопросы

 

1. Каким образом осуществляется применение S-функций?

2. Назначение S-функций.

3. Перечислите параметры блока S-function.

4. Этапы процесса моделирования в системе Simulink.

5. Какие существуют способы задания модельного времени?

 

Литература

Основные источники:

1. Герман-Галкин С.Г. Matlab & Simulink. Проектирование мехатронных систем на ПК. – СПб.: КОРОНА-Век, 2008. – 368 с.

2. Дэбни Дж. Simulink 4/ Секреты мастерства / Дж Дэбни, Т.Л. Хартман; Пер. с англ. М.Л. Симонова. – М.: БИНОМ. Лаборатория знаний, 2003. – 403 с.: ил.

3.  Лузина Л.И. Компьютерное моделирование: Учебное пособие. − Томск: Томский межвузовский центр дистанционного образования, 2001. – 105 с.

 

Дополнительные источники:

1. Королев А.Л. Компьютерное моделирование. -М.: БИНОМ, 2010

Вопросы для самостоятельного изучения

 

1. Реализация S-функции системы Simulink: Черных И.В. Simulink: среда создания инженерных приложений -  Стр. 372-374

 

 


Дата добавления: 2021-11-30; просмотров: 22; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!