Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИЛЬЯ ЗАДАЧА стр 50.pdf
Скачиваний:
66
Добавлен:
26.03.2015
Размер:
1.74 Mб
Скачать

 

риц в качестве входных и выходных переменных (MATLAB S-функции

 

могут оперировать только векторами в качестве входных и выходных

 

переменных), а также больший набор внутренних функций (сallback-

 

методов).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Чаще всего S-функции используются при создании новых библио-

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

У

 

ми средствами компьютера, при создании блоков на основе математи-

 

ческих уравнений, блоков реализующих анимационные возможности

 

MATLAB, а также при подключении

к модели Simulink существующего

 

программного кода языков высокого уровня.

 

 

 

 

П

 

 

 

 

Т

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.2.2. Блок S-function

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Н

 

 

 

 

 

 

S-функция подключается к модели Simulink с помощью библиотеч-

 

ного блока S-function

 

 

 

 

 

 

 

 

 

 

 

.

 

 

(библиотека Functions & Tables) [11]. На рис. 5.7

 

 

 

 

 

 

 

 

 

 

И

 

 

 

 

 

 

 

показано окно модели с блоком S-function

и его окно диалога.

 

 

 

 

 

 

 

 

 

 

Н

 

.

 

 

 

 

 

 

 

О

Э

 

 

 

И

 

Ю

 

 

 

 

 

 

 

 

 

в

 

 

 

 

 

 

 

 

 

Э

 

 

 

о

 

 

 

 

 

 

 

 

 

 

П

 

 

 

н

 

 

 

 

 

 

 

 

 

 

Э

 

 

 

с

 

 

 

 

 

 

 

 

 

 

 

.

 

 

Риса. 5.7. Блок S-function и его окно диалога

 

 

 

 

р

 

 

 

 

 

 

 

 

 

 

 

 

 

ц

 

 

3.2.3. Математическое описание S-функции

 

 

 

 

К

 

 

 

 

 

 

 

 

 

 

 

 

 

 

о

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Simulink-блок однозначно описывается наборами входных пере-

менных u, переменных состояния x и выходных переменных y (рис. 5.8).

70

 

 

 

 

 

 

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 5.8.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Общий вид Simulink-блока

 

 

 

 

 

В математической форме блок можно описать в общем виде сле-

 

 

дующей системой уравнений [14]:

 

 

 

 

 

 

 

 

 

У

 

 

 

 

 

 

 

 

 

П

 

 

y = f0 (t, x,u) (выходы)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xc = fd (t, x,u) (производные непрерывных переменных состояния)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Т

 

 

 

xdk +1 = fu (t, x,u) (дискретные переменные состояния), где

x = xc + xd .

 

 

3.2.4.

 

 

 

 

 

 

 

Н

 

.

 

 

 

 

 

 

Этапы моделирования

 

 

 

 

 

 

 

 

 

 

 

 

И

 

 

 

 

 

Процесс расчета модели выполняется Simulink в несколько этапов.

 

На первом этапе выполняется инициализация модели: подключение

 

библиотечных блоков к модели, определениеН

размерностей сигналов,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ю

 

 

 

типов данных, величин шагов модельного времени, оценка параметров

 

блоков, а также определяется порядок выполнения блоков, и выполня-

 

 

 

 

 

 

Э

 

 

 

 

 

 

 

 

 

 

 

 

ется выделение памяти для проведения расчета.

 

 

 

 

 

 

 

Затем Simulink начинает

 

 

 

И

 

 

 

 

 

 

 

цикл моделирования. На каж-

 

дом цикле моделирования (вр

 

м шаге) происходит расчет блоков

 

 

 

О

 

 

 

 

в

 

 

 

 

 

 

 

 

в порядке, определенном а этапе и ициализации. Для каждого блока

 

Simulink вызывает функции, которые вычисляют переменные состояния

 

 

Э

 

 

 

выполнять

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ых состояния и выходы y в течение те-

 

блока x, производные переме

 

кущего шага модельного времени. Этот процесс продолжается пока мо-

 

 

 

 

 

 

еменн

 

 

 

 

 

 

 

 

 

 

 

делированиеПне будет з вершено. На рис. 5.9 показана диаграмма, ил-

 

 

 

 

 

с

 

 

 

 

 

 

 

 

 

 

 

 

люстрирующая этот п оцесс.

 

 

 

 

 

 

 

 

 

 

 

 

 

Э

 

а

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.2.5.

 

Callback-методы S-функции

 

 

 

ц

 

р

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Каждая задача при вызове S-функции в процессе моделирования

о

решается

К

 

 

специальной внутренней функцией (сallback-

с помощью

метода). В MATLAB S-функции используются следующие методы:

1. mdlInitializesizes инициализация. До начала первого цикла моделирования Simulink инициализирует S-функцию. В течение этого эта-

па Simulink:

–инициализирует структуру с именем SimStruct, содержащую ин71

 

формацию S-функции;

 

 

 

 

 

 

 

 

 

 

 

 

–устанавливает количество и размерность входных и выходных

 

портов;

 

 

 

 

 

 

 

 

 

 

 

,

 

 

–устанавливает шаг модельного времени для блока;

 

 

 

–выделяет память для хранения переменных и устанавливает раз-

 

мерность массивов.

 

 

 

 

 

 

 

 

 

У

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. mdlGetTimeOfNextVarHit – вычисление времени следующего сра-

 

батывания блока (для блоков с дискретным переменным шагом расче-

 

та).

 

 

 

 

 

 

 

 

 

 

 

П

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3. mdlOutputs – вычисление значений выходных сигналов на внеш-

 

нем шаге моделирования. На этом этапе рассчитанные

Твыходные сигна-

 

лы блока передаются на его выходные порты.

Н

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

И

 

 

 

 

 

 

 

 

 

 

 

Н

 

.

 

 

 

 

 

О

Э

 

И

 

Ю

 

 

 

 

 

 

 

в

 

 

 

 

 

 

 

 

Э

 

 

о

 

 

 

 

 

 

 

 

П

 

 

н

 

 

 

 

 

 

 

 

 

 

с

 

 

 

 

 

 

 

 

 

Э

 

а

 

 

 

 

 

 

 

 

 

.

 

р

 

 

 

 

 

 

 

 

 

 

ц

 

 

К

 

 

 

 

 

 

 

 

 

 

 

о

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 5.9. Процесс моделирования

 

 

 

 

72

4. mdlUpdate – расчет дискретных переменных состояния на внешнем шаге моделирования. Дискретные переменные состояния сохраня-

ют свое значение до следующего цикла моделирования.

 

 

,

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

6. mdlTerminate – завершение работы S-функции.

 

 

 

 

 

 

 

 

 

Если S-функция содержит

непрерывные

 

переменные

состояния,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

У

Simulink вызывает сallback-методы mdlDerivatives и mdlOutputs для рас-

чета производных переменных состояния и выходных переменных на

внутренних шагах моделирования.

 

 

 

 

 

 

 

 

П

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вызов каждого из методов Simulink задает с помощью переменной

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

Т

 

 

 

 

3.2.6.

 

Основные понятия S-функции

.

 

Для того чтобы создать S-функцию

 

 

Н

 

 

правильно, необходимо опреде-

 

 

 

 

 

 

 

 

 

 

И

 

 

 

 

 

 

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

функций. К этим понятиям относятся [43]:

 

 

 

 

 

 

 

 

 

Direct feedthrough

прямой проходН. Проход входных сигналов на

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ю

 

 

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

выходных переменных присутствуют

 

 

 

переменные, либо при

 

 

 

 

 

 

Э

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

И

 

 

 

 

 

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

Direct

feedthrough очень важна, п ск льку именно с помощь него

 

 

 

 

О

 

 

 

входные

 

 

 

 

 

 

 

Simulink определяет наличие в м дели замкнутых алгебраических кон-

туров.

 

Э

 

 

 

о

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Dynamically

sized inputs ди амическая размерность входов. S-

функция может быть

ана таким образом, чтобы обеспечить произ-

 

 

 

 

 

 

 

н

 

 

 

 

 

 

 

 

 

 

 

вольнуюПразмерность векторов входных и выходных переменных, а

 

 

 

 

 

с

 

 

 

 

 

 

 

 

 

 

 

 

также векторов состояния непрерывной и(или) дискретной части систе-

мы В этом случае ф ктическ я размерность переменных определяется в

Э

 

 

напи

 

 

 

 

 

 

 

 

 

 

 

 

 

самом начале п оцесса моделирования и устанавливается равной раз-

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

мерности входных сигналов. Чтобы задать динамическую размерность

 

 

р

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

какой-либо переменной, нужно задать значение размерности для этой

ц

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

переменной равное -1 (минус один) в соответствующем поле структуры

 

 

К

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

о sizes (см. приведенный ниже шаблон S-функции).

 

 

 

 

 

 

Setting sample times and offsets - установка шагов модельного вре-

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

1. Continuous sample time – непрерывное модельное время. Задается

73