- •1.1. Численное дифференцирование
- •1.1.1. Первая производная. Двухточечные методы
- •1.1.2. Вычисление первых производных по трёхточечным схемам
- •1.1.3. Вычисление производных второго порядка
- •1.1.4. Вычисление производных третьего порядка
- •1.2. Решение нелинейных уравнений
- •1.3.1. Метод Эйлера
- •1.3.2. Метод Рунге-Кутта
- •1.3.3. Модифицированный метод Эйлера
- •1.4. Численное решение системы дифференциальных уравнений
- •1.6. Введение в операторный метод
- •1.6.1. Преобразование Карсона-Хевисайда
- •1.6.2. Изображение по Лапласу
- •1.6.3. Некоторые формулы соответствия оригинала изображению
- •1.6.4. Изображение интеграла
- •1.6.6. Первый закон Кирхгофа в операторной форме
- •1.6.7. Второй закон Кирхгофа в операторной форме
- •1.6.8. Последовательность расчета в операторном методе
- •1.6.9. Аналогия с переменным током
- •1.7.1. Переход от изображения к функции времени
- •1.7.2. Методы разложения
- •2.1. Введение
- •2.2.1. Основные выражения
- •2.2.5. Разряд конденсатора в цепи RLC.
- •2.2.6. Воздействие постоянного напряжения на RCL - цепь
- •3.1.1. Принцип создания электротехнических блоков пользователя
- •3.2.2. Блок S-function
- •3.2.3. Математическое описание S-функции
- •3.2.4. Этапы моделирования
- •3.2.5. Callback-методы S-функции
- •3.2.6. Основные понятия S-функции
- •3.2.7. Создание S-функций на языке MATLAB
- •3.2.8. Примеры S-функций языке MATLAB
- •4. ЗАДАНИЯ НА ВЫПОЛЕНИЕ ЛАБОРАТОРНЫХ РАБОТ
- •4.1.1. Моделирование и исследование процессов в RC–цепи
- •4.1.5. Заряд емкости
- •4.1.6. Разряд емкости
- •4.1.8. Разряд индуктивности
- •4.1.9. Моделирование полупроводникового диода
|
риц в качестве входных и выходных переменных (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