Черных И.В. Simulink Среда для создания инженерных приложений (2003) (1152002), страница 41
Текст из файла (страница 41)
Применяется при моделировании непрерывных динамических систем. В этом случае Б-функция выполняет вычисления в соответствии с методом интегрирования, установленным в решателе дифференциальных уравнений. Сопйооош Ьш йхеб (п пнпог шпе мер затр1е йте — непрерывное время с фиксированным тактом. В этом случае выходные переменные должны изменяться в соозветствии с заданным тактом моделирования и оставаться неизменными при интегрировании.
О(зсгезе защр!е Ппю — дискретное'модельное время. Применяется при моделировании дискретных элементов системьь В этом случае должен быть задан такт дискретности (затр1е бще) и задержка (о((зег). чтобы определить моменты времени, когда Бнтюйо1с должен вызвать на выполнение данный блок. Величина задержки ие может превыпщть величины такта дискретности. Время срабатывания блока определяется выражением: ТйяеНц = л зат1(е гиле+оЯяе4, где л — целое число.
Если модельное время определено как дискретное, то система БЬпцйпЬ обращается к процедурам ответного вызова пнПОрйае и пЫ10щрпь только в дискретные моменты времени иа каждом цикле моделирования. ЧапаЫе катр!е 1нпе — переменный такт дискретности. Модельное время дискрепюе, но интервалы времени между срабатываниями переменные. На каждом шаге моделирования Б-функция должна определить значение момента следующего срабатывания.
Для этого применяется процедура ответного вызова пкйбегТппеОГХехзЧагНП. !пЬегне4 затр1е пще — наследуемый такт дискретности. В некоторых случаях работа блока не зависит от способа задания такта дискретности. Например, для блока бана величина такта дискретности несущественна. В подобных случаях параметр ьащр1е бще может быль наследовал от предыдущего или последующего блока, либо от блока, имеющего наименьшее значение такта. 373 6.
3-функции и их применение % (значе-! а 1 ние 1 Результат В ! Е1ад 1 1 Выполняемая процедура 1 ответного вызова Описание О [в(хев,хо, ! кпЗ]тп! ста11хевьхев ваг,ав] а а а а а а а В а В бх У спеха 1 1 1 1 ! лп)1ТеппЕпаае ! — ! Ъ Параметры Р1,...,рп передаются в Б-функцию при любом Ъ значении переменной Е1ад. В Ъ При вызове Я-функции со значением переменнОй Е1ад = 0 Ъ рассчитываютая следующие величины: В В вуз(1] - Число непрерывных переменных состояния.
В вуз(2] — Число дискретных переменных состояния. В зув(3) - Число выходных переменных. В зуе(4) — Чиало входных переменных (размер вектора ц). Ъ Любой из первых четырех элементов вектора вув Ъ может быть равен -1, что означает динамическое В определение размеров соответствующих переменных. Ъ Фактические размеры при вызове Б-функции В с лругими значениями переменной Е1ад будут Ъ определяться Размером входного вектора ц. В Ъ Результат, Ъ зависит от В состояния х В Ъ Результаты В переменной 315 И. В. Черных.
Б(МЪ)Ы)ЧК: а да создания инженерных приложений 6.3. В.ездпнне $-функннй ня нэнке МА'П.АВ Наиболее простой и быстрый путь создать И-функцию — это написать сс яа языке МАТЬАВ с использованием имеющегося шаблона. Создание $-функций на языке МАТЬАВ имеет некоторые ограниченна: такая функция может иметь только один входной и один выходной порт, передаваемые н принимаемые данные через зги порты могут быть только сквлярамн или векторамн типа дон()(е. Ниже приведен шаблон в-функции с авторским переводом комментариев. Оригинальный файл шаблона вбзпппр(зп находится в папке ..Люо]фох\ыпюйпИЪЫоскв.
Ецпсс1оп (вуз,хб,всг,сз) = ВЕцпсшр1(с,х.ц,Е1ад) В В БРПНТИРЬ вЂ” Шаблон для создания Б-функции на языке НХТЬЛВ. Ъ С помощью Б-функции пользователь может задать системы Ъ обыкновенных дифференциальных, разностных и алгебраических Ъ уравнений, которые описывают работу Яьшц11п)с-блока. В Ъ Базовая форма аинтаксиса Б-функции имеет вид: В (зуе,хб,зсг.сз] = зЕцпс[с,х,ц,Е1ад,р1„.. .Рп) В Ъ Параметры Б-функции! В В Текущее время.
В х Вектор переменных состояния. В ц Вектор входных сигналов. В Е1ад — Целое число, определяющее номер процелуры В ответного вызова. В р1,...,рп — Параметры Б-функции, которые задаются в окне диалога блока "Б-ЕцпсСЕоп". возвращаемый Б-функцией в момент времени С, значения переменной Е1ад, значения вектора и текущего значения вектора входного сигнала ц. работы Я-функции в зависимости от значения Е1ад приведены в следующей таблице: а 1 1 а ! 2 ! а 1 1 а 1 1 а ! 3 1 1 а! а,! В 1 1 а а 1 1 а 1 1 а 1 1 В ! 3 а 1 1 а ! 9 а ! ! 1 ! 1 1 1 1 1 яа]]правая 1 1 1 я]) оаараав 1 лпй1оеаТцпеОЕНехауаги(а] 1 1 1 1 1 1 инициализация: Формирование массива записей в)хев, вектора начальных Условий хо, массива тактов лиакретяости и задержек ав, пустого массива ваг Вычисление значений производных вектора 1 аоатояния аиатемн.
Вычисление вектора состояния дискретной! части системы. 1 Вычисление вектора 1 выхода. 1 Вычисление следующей] точки расчета лля 1 дискретной или гибридной системы с переменнии тактом дискретности. 1 зарезервированное 1 значение. Завершение расчета 1 ! И. В. Черных. ЯМШ)МК: среда создания инженерных приложений % Ся — Массив размера шх2,задаюший такты дискретности % и значения эалержек, ш — число строк массива Гя % Ъ Например: % % Ъ Ъ % Ъ % % % Ъ % % Ъ % % Ъ Если в массиве Ся задано несколько значений тактов Ъ дискретности,то они должны быть записаны в порядке.
% возрастания В этом случае требуется проверка времени Ъ срабатывания блока в явном виде: Ъ аЬз(гошн$([Т-ОРРЗЕТ)/РЕЕ100) — (Т-ОРРЗЕТ)/РЕЕ100) % Обычно принимаемая погрешность равна 1е-8. Она зависит % от значений такса дискретности и времени окончания расчета. се= [О 0 % зуя(5) Ъ % вуз(6) % Ъ % Ъ % яуя(7) Ъ % % хО Ъ % % всг Ъ % Зарезервировано для вычисления корней алгебраического уравнения. Должна быть нулевым.
Прямая передача. Значение. равное 1, соответствует сквозному прохождению входного сигнала на выход. Значение, равное О, определяет, чта при значении переменной Е1ад = 3 входной сигнал нв используется лля вычисления выходного сигнала. Количество тактов дискретности (число строк массива ся).
Вектор начальных значений переменных состояния. Если переменных состояния нет — значение параметра равно пустому массиву (). Зарезервированный параметр. Значение параметра задается равным пустому массиву [). такт квантования и задержка для непрерывной части системы. 0 1, Постоянный шаг интегрирования непрерывной части систеыы. регтайм оЕЕзес, постоянный период квантования для дискретной части системы регтоб > 0; задержка оЕЕяес < регтайм.
-2 0)! Переменный период квантования для лискретной части систевае. При вызове 3-функции со значением переменной Е1ад = 4выполняется вычисление следующего момента срабатывания блока. б. Б-функции н нх применение Ъ Вычисление производных Ъ саве 1, зуз=ш610ег1часгчез(с,х,ц) % Ъ Вычисление вектора состояния дискретной части системы Ъ саве 2 яуя=щб10рбаге(г,х,ц)! % Ъ Вычисление вектора выходных сигналов % саве 3.
зуя=хкПОцгрцгя(г.х,ц)! Ъ Ъ Вычисление момента времени следующей то Ъ лискретного блока системы % — — — — — —-- саве 4. зуя=шб10естыпеОЕмехгуагнтг(г,х,ц)! чки срабатывания Ъ Ъ Ъ Можно также задать, чтобы значение такта дискретности Ъ передавалось в блок "3-Ецпсг1оп" нз предшествующего блока Ъ Для функций,выходной сигнал которых изменяется в пределах Ъ такта, должно быть задано зуя(7) = 1 и Св = [-1 0). % Для функций, которые не изменяются в пределах такта, Ъ должно быть задано Ъ вуз(7) .= 1 и Гз = [-1 1). % % соруг1дАс 1990-2001 тпе магЬмог)ся, 1пс.
Ъ Зйечтзтап: 1.17 $ Ъ Авторский перевод комментариев: Черных И. В. % вм1ссЬ Е1ад, Ъ В зависимости от значения переыенной Е1ад происходит Ъ обращение к той или иной процедуры ответного вызова: % % — — —— ="-====% Ъ Инициализация Ъ % ===============% сазе О, [зуз,хО,ясг,гз)=щ611п1г1а11веБЕхеяю Р1 В Черных. ЯМЛ ПЧК: среде еохпання инженерных приложений б. 3-функции н нх применение % Завершение расчета % % — — — — — -- — - — —— — — — — — — — — -% саве 9, вув=нк)1Тегв1пасе(е,х,и); % Неизвестное значение переменной 11ад % %- --==к====% о?Ьегифве еггог(['дпЬап61ед 11ад = ',пив2всг(11ад)))п епп) % % Конец функции зТипсвр1 % % — — — — — — — — — — —— % % вп)11п1%1а11зеБ1хез % % Функция инициализации % % Расчет начальных условий, тактов дискретности, % % размеров векторов сигналов, массива тактов и задержек % %- -% Йипсе?оп [вув,хО,всг,ез)ьвп)11п1п?а11хеБ?хев % % Все приведенные ниже значения носят иллюстративный характер.
в1хев = ззлпз1хевп % % Первый вмзов функции в?вз1хез создает массив записей з1хез со следующиыи полями: в?хев.ншпСопеБСаеев 0; % Число непрерывных переменных % состояния в1хев.ншп01всдсасез 0; % Число дискретных переменных % состояния в1хез.нилЮисриез - О) % Число выходных переменных вфхев.нив1приез 0? % Число входнмх переменных з1хез.01грееп)СЬгоидЬ 1? % Параметр, задахеопй прямую % передачу входного сигнала % на выход. в?хез.йшпзапр1еТ1вев 1п % Размер вектора тактов квантования % Минимальное значение равно 1 % (одна строка в массиве Сз).
% вув = з1вв1хев(в1хев)п % Второй вызов функции в1ввфхез. % Ленные о размерах векторов передаются в Бипи11п)п. хО . [); % Задание вектора начальных условий. % зсг = [)) % задание параметра всг в виде пустого массива. % Св = [О 0)) % Массив из двух колонок, задающий такты % квантования и задержки '% % Конец проиедуры вп)11п1с1а11ееБ1хев % % вп)10ег1иае1чев % Вычисление производных вектора состояния непрерывной части системы %- 1ипсс?оп зув=вп)10ег1час1иев(с,х,и) % зув = [1' % Конец процедуры нк?10ег1ча?1иез % % ахаре)аее % Вычисление вектора состояния % дискретной части системы Типсс1оп зув=ак)10рп)аее(е.х,и) % вув = [); % Конеи процедуры нк)10рп)асе % % вп)10и?риез % Вычисление вектора выходных сигналов % йипсп1оп зув=вк)10иериев(е,х,и) % зув = [)и % % конец процедуры нп110иериев % И.
Н. Черных. ЯМО(.НЧК: среде саивння инженерных прпщоженнй 6. Б-функции н нх п имененне ---- — — — — — ---------- --- — — — — — --- — — — =% % % пк)16еСТ1веОЕНехгчагн1С % Вычисление моментов времени для следующей расчетной % % точки при моделировании дискретной части систеыы % с переменным тактом дискретности. % % В этом случае параметр сз для процедуры вй1тп1с1а11зеБ)зев % % должен быть задан равным [-2 О) % % - — -- — — — — — --- — =========% Еипсезоп зуз=вй16еСТипеОЕнехСЧагНЕС(г,х,и) % запхр1етзве = 1; вуз = С + завр1еТЕве; % Время срабатывания блока % увеличивается на 1 секунду % Конец процедуры вй1деСТыпеОЕНехСЧагНЕС % % % вй1Тегвзпаге % % Функция завершения моделирования % % — — — — — — -- — — — — — — -- — - — — — — — % Еипсезоп вуз=пк)1тегв1паее(е,х,и) % вуз = [); % % Конец процедуры вй1тегв1паее 6.4.
Прнмеры Б-функций ян языке МАТЕАяэ Простейшая Я-функция Одним нэ самых простых примеров э-функции, поставляемой в составе системы э[п)ийпК, является функция К%пап(ио (файл (нпез(это.п1). Данная функция выполняет умножение входного сигнала на коэффициент 2. Ниже приведен текст этой э'-функции. 3-функция (нпеп(во: еипссзоп [вув,хо, зсг, сз) = с1везсыа(с,х,и, е1ад) % % Т1МББТНΠ— Пример Б-функции. Выходной сигнал равен % входному, умноженному на коэффициент 2: % у=2*ип % % Шаблон для создания Б-функции — файл вЕипгвр1.в % % Саруг1дпг 1990-2001 Т)пе Магпногхз, 1пс. % Бдеч1з1оп: 1.6 $ % Авторский перевод комментариев: Черных И.В. % визгсп Е1ад, % В зависимости от значения переыанной Е1ад % происходит обращение к той или иной процедуры % ответного вызова: я== == ==я==я% %"— % Инициализация % % == я яя яяя% саве О [вуз,хо,вгг,ез)=вй)1п1%1а11пеБ1зез; % % Вычисление вектора выходных сигналов % — — — — — — — — — — — — — ===% саве 3 зуз=вй10итрисв(с,х,и)п % Неислользуеыые значения переменной Е1ад % %- --- ††-=% % % В примере не используется процедура завершения Б-функции, % нет непрерывных и дискретных переменных состояния, % поэтому значения переменной Е1ад = 1, 2, 4, 9 % не задействованы.