Разработка и применение пакета расширения SPEKTR_SM пакета SIMULINK CKM MATLAB (1012863), страница 5
Текст из файла (страница 5)
Это напоминает ситуацию, когда сложная система набирается из отлельных Раэработка алокоа эламвнтарны» олараин» слектрального метода для пакета 5раыг 5М Рис. 1.! 3 систем — модулей, каждый из которых, в свою очередь, является системой. Такой принцип конструирования сложных моделей имеет ряд важных достоинств: — имеется возможность разбивки решаемой задачи на ряд более мелких задач, решаемых подсистемами; — каждая подсистема может отлажнваться отдельно и использоваться в полной системе уже после отладки; — существенно упрощается вид основной модели за счет исключения нз нее второстепенных блоков; — облегчается модиФикация полной модели за счет модификации ее более простых подсистем.
Для создания подсистемы в Бппцйпй предназначен блок Яиббузгет из раздела Рог[зЬЯиЬзузгепь. Его следует разместить в открытом окне основной модели. Затем, после открытия этого блока (двойным нажатием левой кнопкой мыши) открывается поле пустой подсистемы. Подсистема набирается нз стандартных блоков библиотеки Я[гпи[[пМ. Основное отличие подсистемы заключается в том, что в подсистеме должны присутствовать следуюшие блоки — порт ввода!и! и порт вывода Ош!.
Порты изображаются овалом с номером внутри и подписями. Благодаря этим портам подсистема включается в состав основной модели. Если выделенный в подсистему блок содержит несколько портов ввода и вывода (они обозначаются как [и[, [п2, !пЗ, ... и Опт[, Ои12, Ои13, ...), то у блока подсистемы появится соответствующее количество входов н выходов. Порты ввода и вывода являются вполне полноценными блоками и имеют свои окна па- раметров. Окно порта ввода [врог1 позволяет задавать следуюшие параметры: Рог( ппшЬег — номер порта; Рог1 4Ьпепз[оп — размерность порта (- ! — при динамической установке размерности); Яашр[е бше — эталонное время; Эа1а 1уре — тнп данных (выбор из раскрывающегося списка); Яява! 1уре — тип сигнала (выбор нз раскрываюшегося списка); Окно порта вывода Оп!рог[ задает параметры: Рог! пшпЬег— номер выходного порта; Ов1рв1 тгЬеп в!заЫе — выход при пассивности системы; [п[1!а! оп1рв1 — инициализация выхода.
Пример 1.6. Надо создать подсистему, вычисляющую усеченную НСХ (1.2) входного непрерывного сигнала, заданного в виде аналитической функции относительно непрерывных базисных функций, идентификаторы которых приведены в приложении 1.1. Решение задачи. Эта подсистема показана на рис. 1.14, где а— созданная подсистема (ее внутреннее представление), б — ее внешнее представление. На вход этой подсистемы сигнал не поступает. Это значит, что блок 1п в подсистеме должен отсутствовать, в качестве «заглушки» используется блок Сопа1ап(.
Сама НСХ вычисляется при помощи блока МАТ1АВ авист(оп, служащего для задания функций одной переменной или ряда переменных п(1) по правилам, принятым для языка программирования базовой системы Маг!аЬ. Это означает, что в теле функции могут встречаться как встроенные функции Ма11аЬ, так и любые процедуры и функции, реализованные в виде т-файлов.
Зп1птв1епт б) МАт(.АВ Реп а) Рис. 1.14 37 Окно параметров этого блока, показанное на рис.1.15, содержит описание блока и раздел параметров Рагагпе1ега. В разделе Рагагпетегз МАТ(АВ Гппсбщпз задается выражение для функции, в разделе Рагатегегз Оптрпт д(щепа(опз длина вектора выхода (если она должна совпадать с длиной входного сигнала, то вводится значение -1), в раскрывающемся списке Рагате1егз Оп1рЩ з(япа! гуре можно выбрать тип выходного сигнала в виде вещественного числа (геа1), комплексного числа (сотр1ех) или задать автоматический выбор (анто), в разлеле Рагап7етегз Сойарзе 2-0 геап!тз 1о 1-0 выставляется метка ч, если надо выходную матрицу преобразовать в одномерный выход.
В данном примере в разделе Рагагпе1егз МАТЮКАВ Взпс1юпз вводится имя пзхп1 гп-файла, который созлан и отлажен для нахождения вектора-столбца НСХ. Он содержит функцию пахппп(х1, )ч(1,(,з1), которая зависит от параметров: х1 — аналитической фун- Рис. 1.15 кции, задаю~ней входной сигнал; (ч1 — размера усечения матрицы-столбца НСХ; à — длины интервала работы системы управлениям в1 — базиса, по которому вычисляется НСХ. Эта функция имеет вид (цпсг(оп П = пвхппп(х1,й(1,1,в1) 1=1п11пе(х1); вЖ1сЬ в1 саве 'Полиномы Лежандра' П=впхрр1(1,1Ч1,1) саве 'Полиномы Чебышева 1-го рода' П=впх(11(Г,)ч1,1) саве 'Полиномы Чебышева 3-го рода' П=впхоц1(г",М1,1) саве 'Косинусоиды' П=впхсс((1,)ч1,1) саве 'Комплексные экспоненциальные функции' П=впх(Т1((,Ю,() саве 'Функции Уолша' П=БХХМ'1(1,й)1,$) саве 'Функции Хаара' П=ЯР(ХХХ1(1,1%1,1) епб При написании этой функции использован оператор переключения, который использует ключевые слова ви(гсб (переключить), саве (случай), о1Ьегзг(ве (иначе).
В программе осуществляется перекзлючение по параметру в1, который является строковой перемен- ной, получаемой т-функцией в качестве входного параметра. В случае совпадения с одним из значений выполняется операция вызова соответствующей функции (в нашем случае выполняется программа ввх111(Ць)1,1) — вычисление вектора-столбца НСХ в базисе полиномов Чебышева первого рода по численной схеме (П2.29), которая приведена в примере 1.1, и присваивания ее значения переменной П.
Обратим внимание и на использованный здесь оператор шйпе(х!). В рамках системы Маг)аЬ определен класс объектов 1пйпе. Он предназначен для описания функций в естественной форме, т,е. соответствующей их математическому описанию, Объекты этого класса — зто функции, заданные в символьном виде, что позволяет обращаться к ним как к привычным математическим объектам. Следовательно, в приведенном выше примере в качестве параметра 1в соответствующую функцию передается шйие-функция.
Формирование блок». Нужно отметить, что подсистемы не обладают свойствами стандартных библиотечных блоков пакета Я пн))пав. Главное отличие подсистем от блоков в том, что подсистемы не имеют ни своей уникальной пиктограммы, ни окна параметров и не связаны с разделом библиотеки. Для построения пользовательских блоков Япш11пк предлагает специальный механизм маскирования подсистем. Маскированные подсистемы — зто такие подсистемы, которые имеют специальный признак (маску), скрывающий их внутреннюю структуру. В результате такая подсистема в деталях не видна и воспринимается как библиотечный модуль. Маскированные подсистемы обладают рядом важных постоинств: 1) они имеют свои пиктограммы с уникальными изображениями; 2) их можно использовать как библиотечные блоки; 3) у них есть свое окно установки параметров; 4) есть возможность в любой момен~ сбросить маску и наблюдать структуру блока; 5) применение масок расширяет возможности построения сложных моделей; б) имеется возможность отредактировать подсистему, превращенную в маскированную; 7) повышается наглядность моделей; 8) повышается защищенность подсистемы от модификации.
Для созлания маскированных подсистем надо выполнить следующие операции: 1) заменить название подсистемы ЯиЬаув1еш на название создаваемого блока; 2) с помощью специального редактора масок созда~ь окно установок параметров, документацию под маскированную подсистему и ее справочную систему. В заключение заметим, что рабочая область маскированной подсистемы Мавй %огйврасе — зто локальная рабочая область исполняемой подсистемы. Она создается Яппйпй в следующих случаях: 1) если маска подсистемы содержит команлы инициализации; 2) если прн описании маски заланы параметры настройки подсистемы. Переменные, содержащиеся в рабочей области маскированной подсистемы, доступны всем блокам, входящим в ее состав. То есть при создании маски можно определять параметры, ко~орые должны иметь одинаковое значение лля всех блоков, входящих в состав маскированной подсистемы.
Пример 1.7. Надо создать блок (маскированную подсистему) из подсистемы, рассмотренной в примере 1.6. Реигеиие задачи. Меняем название подсистемы (см. рис, !.!4) БцЬзув(епз на Непрерывный вход. Для создания маски достаточно выделит ь полсистему, после чего выбрать команду Маьй Ыкуыепт... меню Ед!!. Данная команда запускает редактор маски — появляется его окно с открытой незаполненной вкладкой 1соп (вариант заполнения которого показан на рис.
!. !6). В нашем случае в окно Ргавдпй сопттапдв вводится команда йпаяе(Ьпгеад ("пвхопв.Ьвзр", 'Ьпгр')), которая вьюывает пиктограмму, разработанную для этого блока. Следующим шагом в создании маски являегся описание параметров настройки подсистемы. Таких параметров в данном примере четыре: аналитически заданный входной сигнал; порядок усечения НСХ; длина интервала работы системы; базисные функции, Для описания этих параметров открываем вкладку Рагагпегегз и заполняем окна Р!а!ой рагапзе!егх и Орг!опв гог зе!есгед рагаптегег, Для задания первого нз них необходимо; 1) в поле Ргоптрг окна Р!а!ой рагапзегегз ввести строку «Непрерывный входной сигнал (гдп(!),г"2):» — пояснение к параметру; 2) в поле Чаг!аЫе ввести имя переменной «х1», в которой будет храниться значение данного параметра и с помощью которой происходит его передача в я!- функцию (взхп1.ш); 3) в поле Туре оставить значение Едп; 4) в поле Еча)ваге метку» удаляем, так как параметр имеет символьное значение; 5) в поле ТцпаЫе метку ч оставляем.
Аналогично заполняются и другие строки. Для задания второго параметра блока (порядок усечения НСХ) необходимо повторить действия 1 — 5 с той разницей, что в поле Ргогпр! ввести «)Ч вЂ” порядок усечения НСХ:», в поле УапаЫе ввести имя соответствующей переменной «Х!», а в поле Е»а!ваге оставить метку ~, так как в М-функцию передается параметр, имеющий численное значение.