Разработка и применение пакета расширения Spektr_SM СВМ VisSim (1012865), страница 6
Текст из файла (страница 6)
Оии располагаются в Файле тс1,срр н прн формировании проекта блока подвергаются модификации. Рассмотрим эти Функции. <рункции уровня моделирования (симуляции): 1. тзп11И11 — Выеывается У1В81ш при запуске н используется ДЛЯ ВСТЗВКИ ПУНКТОВ В МЕИЮ 2. тешЕчепь — вызывается при событиях уровня МОделнрОВВ- иия, таких каь начало и конец моделирования„конец шага моделирования и т.д. Реакция на эти события может быть переопределена Функции уровня блока (в имени этих Функций используется имя„котороэ задается во втором окне мастера Й11%1хагб): 1, 8АРХХ1(8АРХХ1 1МРО "р1, 81ОХА1.
е(п818Ц, 81ОХА1 оц(8)бЦ) — вызывается иа каждом шаге моделирования и содержит основную Функциональность блока; 8АРХХ1 1ХУО "р1 — ссылка на структуры с текущими параметрами блока; 81ОХА1 е(п81дЦ,— ссылка на входные параметры блока; ссылка на выходные параметры блока. 2. 8АРХХ1Кчепь-Функция вызывается при возникновении со. бытий уровня блока, 3. 8АРХХ1РЛ-функция вьюывается при загрузке блока и используется для распределения памяти под параметры.
4. 8ЛРХХ1РС.функция вызывается при щелчке правой кнопкой мыши на блоке. Нслн в шестом окне мастера б11%1загб была установлена галочка (длл изменения параметров попользуется полыювательский диалог). Ясли используется стандартный диалог, то Функция должна вернуть строку, где через точку с запятой перечислены названия параметров, которые будут высвечиваться рядом с соответствующими полями в стандартном диалоге. б.
8АРХХ1Р1-Функция вызывается прн создании блока и позволяет устанавливать значения параметров по умолчанию. 6. 8АРХМ18К-функция вызывается по окончании моделирования, чтобы совершить действия, необходимые для выхода. 7. 8ЛРХХ18««чфункцня вызывается непосредственно перед началом моделирования, чтобы провести необходимую иннциализацшо. 1,7.1,3. Формирование файлов.
обеспечивающих вылоляеиие элемеилгоряых олераиий елеи~лральяоео меюода в,оазиыл базисах Программные«теодули, обеспечивающие выполнение элемента)эных операции спект)~ального ~стола в разных базисах, находятся в пакете расширения М(,8У 8М С++. «Заметим, что разработать и отладить этот пакет мол«но в М1сгозой у(зца1 Ст+, используя консольное приложение Ж(п32 Сопсо1е Арр)(са((оп.
Из программных модулей этого пакета и Формируются файлы разрабатываемого проекта блока, обеспечивающие выполнение нужной элементарной операции спектрального метода в разных базисах. Имена этих файлов формиру1отся из имени проекта и префикса ПЭО . Пример 1.10. Сформировать файлы ПЭО ВАРХХ1,срр и ПЭО 8А1'ХХ1,Ь„обеспечивающие вычисление усеченною матрицы ДНПФ апериодического звена в разных базисах.
решение. 1, В пакете расширения М1.8Ъ' 8М С++ находим программные модули: вйрр1, в(1сс1, яйй1, яй(11„айпп1, вйхх1, гй1уу1 и вставляем их через буфер обмена в файл ПЭО ВАРХХ1.срр. Каждый программный модуль вычисляет усеченную матрицу ДНПФ интегрирующего звена относительно заданной базисной системы. 2. В файле ПЭО ВАРХХ1.срр формируем программный модуль, обеспечивающий выбор базиса. Этот программный модуль имоет вид: Магг)х <ЙопЫе> яйппЦдопЫе 1, йопЫе Е, (п( ВАУ18) ( яч'Исй(ВАХ(8) ( саве 1: ге(пгп зйррЦ(,Е); ЬгеаЬ саве 2: ге(вгп я11ЦЦ1,1.); Ьгеайц саве 3: ге(пгп зйппЦ(,1.); Ьгеай; саяе 4; ге(пгп ю1сеЦ1,1.); Ьгеарц саве 6: ге(пгп з(1ххЦ(,1.); Ьгеайц саяе 7: гетпгп в(1ууЦ( ).); Ьгеай' Параметр ВАХИ (это целое число от 1 до 7), передаваемыи в программу, обеспечивает выбор нужного базиса по следующей таблице соответствия: Ц полииомы Лежандра; 2) полиномы Чебышева первого рода; 3) полииомы Чебышева второго рода„4) косинусоиды; 5)комплексные экспоненциальные функции; 6) функции Хаараг 7) функции Уолша.
3. В файле ПЭО ВЛРХХ1.срр формируем программный модуль, обеспечивающий вычисление усеченной матицы ДНПФ апериодического звена в выбранном базисе. Эгот программный модуль имеет вкд: Ма(г(х <йопЫе> варппЦйопЫе 1., йопЫе Т, йопЫе Ь, йопЫе (е, (п( ВАХ18) ( П(ВАХ18 = — — 6 ~~ ВАХ18 == 7) ( допЫе х,у„п; х = )ой10(1.)У)ой10(2); у = шоо((х, бе)п); Щу (= О) ( МевяаяеВох(ХШЛ., Порядок усечения должен быть степенью двух", "Кггог'", МВ 1СОХЕВКОК ~ МВ ОК); аяяегЦО); ) )Ма(г)х И(1,1.,0В Ма(г1х 12(1,$.„0»; Ма(г(х К(1е(.,ОВ Магг1х <йопЫе> АР(1.Д„О); йопЫе 'П; К = К>Меп1йу(В И = ы1ппЦте, 1., ВАХ18); Т1 = 1.0~Т; 12 К + Т1е11; 12 12йптегяе(); АР = ЬеТ1е12ай; ге(пгп АР„) 4. Формируем файл ПЭО 8АРХХ1,Ь: РЫс1пйе "МАТВ1ХГШЛ .Ь" я(пе1пйе есо1пр)ех> пв(пя аапгеярасе з(6» 1урейе1 со1пр1ех <йоиЫе> сзпр1х; ОФуикции длн М1пп1 Ма(г(х <йоиЫе> ь(1рр1(йоиЫе 1, йоиЫе Е)," Ма(г(х <йоиЫе> ь41ссЦйоиЫе 1„4оиЫе (.); Ма(г(х <сгпр1х> в(1111(йопЫ» 1, йоиЫе Е1; Ма(г(х <йоиЫе> зИ11ЦйоиЫе 1, йеиЫе КК Ма1г(х <йоиЫе> з11ииЦйоиЫе 1, йоиЫе КЬ Ма(г(х <йоиЫе> М1ххЦйоиЫе 1, йоиЫе (.Ь Ма1г(х <йоиЫе> з(1ууЦйоиЫе 1, йоиЫе 1.~; Ма(г(х <йоиЫе> аПппЦйоиЫе 1, йоиЫе Е, ш1 ВАЕ189 Ма(г(х <йоиЫе> варппЦйоиЫе 1., йоиЫе Т, йоиЫе Ь, йоиЫе (е, ш1 ВАУ188 5.
Длл корректной работы формируемой программы в файле ПЭО 8АРХХ1.срр выполннем следующие подключенпн: П(пс1ийе *'в(йаух.Ь" Ф1пс(ийе "ПЭО ЭЛРХХ1.Ь'" Ф(пс(ийе <(ов(гент> Ф1пс1ийе <азвег(.Ь> ййейпе Р1 3. 14159265358979 б.
(А(юрмврованвые файлы ПЭО ЭЛРИДЖ(.срр, ПЭО 8АРХг(1.Ь п файл МАТВ1ХРБЕ(..Ь (специалыпзй гпаблоп матращл1, обеспечивающий эФфектпвпувз работу с матрицами, перепишем в дпрект01)изз проекта и добавим их к проекту, воспользовавшись диалогом Рго(ес1-Айй То Рго(ес(-Р(1ез. 7. Длн корректной работы формируемой программы в файле в твйсрр выполкяем следующие подклкгзеких: Ф1пс1ийе " МАТ(11ХРП(Д,.Ь " Мастер 48%'1загй позволнет пользователвз создавать в среде МЭ у(зиа1 Ст+ 6 не только типовые, но и более содсрзкателькые двалоговые окна. Продемонстрируем технологию создакпн диалог а 5~о~а разраба~ываемого пакета Эрейбг ЭМ па примере блока ЭАРКь(1.
Пример 1.11. Разработать форму окна диалога блока. ВАРНЖ1, который вычисллет усеченную матрицу ДНПФ апериодического звена и осуществлиет преобразование НЮХ входного сигнала в НСХ выходного сигнала. Решение. В окне %отварное проекта блока ВАРМХ1 перейдем нй вкладку КеаонгсеУ1ем и раскроем все списки (рис. 1;371. Выбрав Пй) РОКМ"т'1КЖ, перейдем в редактор внешнего вида дийлогй. Добйвим пй него новые полл, отредйктируем текст и получим вид,показанный нй рис. 1.38.
Рчс. 1.38 В середине окна диалога описаны параметры блока, которые можно поменять. Внизу окна диалога кнопки выхода из диалога и получения справки по настройке параметров блока; 1Целкиув правой кнопкой мыши на поле окна ввода параметров, выбираем в выпадающем меню Ргорег(1ев (Свойства) .и редактируем, параметр 10 (делаем П)С Х1 для Х, 10С Т для Т, 10С К для Й, 10С ТЯМА).1, для 1, 10С ХВЯ для ХВЯ), Названия кнопок можно менять.
Для этого нужно щелкнуть правой кнопкоЙ пылки на выбранной кнопке, в выпадающем меню выбрать РгорегПев и изменить название кнопки. Далее необходимо.создать обработчик события нажатия па кнопку Ие(р, Для этого следует выделить кнопку Не1р„нажать ва нее правой кнопкой мыши и в вьпзадаюп1ем меню выбрать инструментальное средство -- С(аавтт'(хагд (мастер классов). Мастер классов провеет'являет широкий спектр )слуг. В частности он позволяет добавлят ь к существующему классу поные методы и данкью; Например, вклзочить в класс С'т'вп10(а!ой эле. менты данных, связанные е полями диалоговой панели.
Если это делается в данном проекте впервые, то ИЯ 'т'1впа! С++ 6 откроет диалоговую панель е именем "Яе1ес( Яопгсе РПе -ЯАРХХ1". И окошко 1е(1е паше вводим имя ЯАРХХ1;е1тг и нажимаем кнопки А1Ю и ОК, Открывается диалоговая панель, на которой нужно для проекта ЯАРХХ1 и объекта 10С ВСТТОХ1 (параметр кнопки Не1р) выбрать класс Сташ0(а!ой и обработчик ВХ С(ДКВ0. Нажать нв кнопку Адд ГппеПоп, а затем иа появившейся панели иа кнопку ОК и ка диалоговой панели на кнопку Вбй еойе. Для завершения процесса формирования диалога блока необходимо отредактировать файлы Ст'вш0(а!ой.срр, твш0)а!ой.)ь н уи.ерр, Пример 1 12.
Отредактировать файлы твш0(а(ой.срр и твш())в)ои.)1 под разрабатываемый диалог блока ЗАРХХ1. Реюгяиг. После того, как форма окна диалога блока ЯЛРХХ1 сформирована в файле тсшеВа1од.ерр появится вставка: тоЫ СУвш0(а1оикОпВпт(оп1() ( ) Вводим в нее следующий текст: то(д С'т вш0!а1ойкОпВп(1оп1 О (эй!еззайеВох("Вычнеляетсл уееченкал матрица ДНПФ~п" "аиериодического звена иа интервале работы СУ (О, Ц.~,п" 'Х = 2, 3, Й, .„для полиноьтов Лежандра, ~п" "Чебышева 1.го и 2-го рода, косинусоидАп" "Х= З,б,7,... для комплексных экспоненциальных функцийдп*' м~, 2,1 3 длп („, 2 У Х ~ н ~в "Задание базисной сисхемъс~п" "1 — нолиномы Лежандра;~п" "2 — полипомы Чебышева 1-со рода;~п" "3 — полииомы Чебышева 2-со рода;1п" м4 "б — вомплексные шжпоиепциальиые функции;~п" "6 — фупкпий Хаара;~п" '*'У вЂ” функций Уолша,',и", ДНПФ апериодичесноко авена") ) Пер~ходим в левом овне пресней обрйвно нй вхлйдху И1еУ(еи и выбираем файл савц(1а1об.Ь.