Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Топ:
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Интересное:
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Динамически обновляемое окно диалога это такое окно, внешний вид которого изменяется в зависимости от значения параметров заданных в самом окне. Например, для рассматриваемого в данной главе функционального генератора, в случае выбора внешних источников сигналов задания на частоту или амплитуду, графы, в которые вводятся значения частоты и амплитуды, могут отсутствовать или быть не активными. Для создания такого окна необходимо:
1. Выделить блок и ввести в командном окне MATLAB следующее выражение:
set_param(gcb, 'MaskSelfModifiable', 'on'). После чего модель необходимо сохранить. Данная команда дает разрешение на самомодификацию окна.
2. Ввести в командном окне команду вида:
set_param(gcb,'MaskCallbacks',{'parm1_callback', '','parm3_callback'});,
где в фигурных скобках указываются функции обрабатывающие событие изменения параметра. В данном примере функция parm1_callback обрабатывает событие при изменении первого параметра, а функция parm3_callback обрабатывает событие при изменении третьего параметра. В том случае, если для какого-либо параметра такая обработка не нужна, функция не записывается, но два апострофа для данного параметра (пустая функция) все равно должны указываться. В данном примере обработка события для второго параметра отсутствует. Сама функция может быть любым допустимым выражением на языке MATLAB.
Применительно к рассматриваемому функциональному генератору эта команда выглядит следующим образом:
set_param(gcb,'MaskCallbacks',{'call_back_freq','','','call_back_magn',''});.
Функция call_back_freq обрабатывает событие при установке или снятии флажка параметра Internal source of frequency signal (тип источника сигнала задания на частоту, переменная Internal_freq), а функция call_back_magn обрабатывает событие при установке или снятии флажка параметра Internal source of magnitude signal (тип источника сигнала задания на амплитуду, переменная Internal_magn).
После этого модель необходимо сохранить.
3. Разработать функции обработки.
Для рассматриваемого примера функция call_back_freq (файл call_back_freq.m) выглядит следующим образом:
Freq_param=get_param(gcb,'Internal_freq'); % Присвоение переменной Freq_param значениЯ
% параметра Internal_freq (тип источника % сигнала заданиЯ на частоту: внутренний или
% внешний). Параметр Internal_freq является
% вторым в списке параметров окна диалога.
if strcmp(Freq_param,'on'); % Если значение переменной Freq_param есть 'on'
% (внутренний источник сигнала заданиЯ на частоту), то
enable={'on','on','on','on','on'}; % всем элементам вектора enable присваиваются
% значениЯ равные 'on' (все параметры окна диалога
% должны быть активны).
else; % Если значение переменной Freq_param не равно 'on'
% (внешний источник сигнала заданиЯ на частоту), то
enable={'on','off','on','on','on'}; % второму элементу вектора enable присваивается
% значение 'off ' (второй параметр должен быть не % активным).
end; % Завершение конструкци if … else
set_param(gcb,'MaskEnables',enable); % Присвоение параметру маскированной подсистемы
% MaskEnables значениЯ вектора enable.
% Параметр MaskEnables устанавливает режим
% активности параметров окна диалога маскированной
% подсистемы.
Функция проверяет значение параметра Internal_freq. Если значение этого параметра есть 'on', то вектор enable имеетвсе элементы равные 'on', если же значение параметра Internal_freq равно 'off' (используется внешний источник сигнала задания на частоту),то второй элемент вектора enable имеет значение 'off' и функция set_param(gcb,'MaskEnables',enable); сделает не активной графу для ввода второго параметра (частота внутреннего источника).
Функция call_back_magn (файл call_back_magn.m) выглядит следующим образом:
Magn_param=get_param(gcb,'Internal_magn'); % Присвоение переменной Magn_param
% значениЯ параметра Internal_magn (тип
% источника сигнала заданиЯ на амплитуду:
% внутренний или внешний).
% Параметр Internal_magn ЯвлЯетсЯ пЯтым
% в списке параметров окна диалога.
if strcmp(Magn_param,'on'); % Если значение переменной Magn_param есть 'on'
% (внутренний источник сигнала заданиЯ на амплитуду),
visible={'on','on','on','on','on'}; % то всем элементам вектора visible присваиваютсЯ
% значениЯ равные 'on' (все параметры окна диалога
% должны быть видимы).
else; % Если значение переменной Magn_param не равно 'on'
% (внешний источник сигнала заданиЯ на на амплитуду), то
visible={'on','on','on','on','off'}; % пЯтому элементу вектора visible присваиваетсЯ
% значение 'off' (пЯтый параметр окна диалога должен
% быть не видимым).
end; % Завершение конструкци if... else
set_param(gcb,'MaskVisibilities',visible); % Присвоение параметру маскированной подсистемы
% MaskVisibilities значениЯ вектора visible.
% Параметр MaskVisibilities устанавливает режим
% видимости параметров окна диалога маскированной
% подсистемы.
Функция проверяет значение параметра Internal_magn. Если значение этого параметра есть 'on', то вектор visible имеетвсе элементы равные 'on', если же значение параметра Internal_magn равно 'off' (используется внешний источник сигнала задания на амплитуду),то пятый элемент вектора visible имеет значение 'off' и функция set_param(gcb,'MaskVisibilities',visible); сделает не отображаемой графу для ввода пятого параметра (амплитуда внутреннего источника).
Для правильной работы такого окна диалога необходимо чтобы файл модели и файлы функций обработки находились в одной папке, и данная папка являлась рабочей. Согласно документации по Simulink текст callback -функций можно записывать также явным образом в вызове функции set_param.
Внешний вид окна диалога генератора для случая использования внешних источников сигналов задания на частоту и амплитуду показан на рис. 9.10.14.

Рис. 9.10.14.Окно диалога генератора
[Скачать пример]
При разработке динамически изменяемых окон диалога можно также переопределять с помощью функции set_param следующие параметры маскированной подсистемы:
|
|
|
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!