Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБ № 9 Связь Simulink с приложением с графичес...doc
Скачиваний:
12
Добавлен:
24.11.2019
Размер:
152.06 Кб
Скачать
  • Style - определяет тип создаваемого элемента управления, в нашем случае значение 'slider' соответствует полосе прокрутки.

  • Position - положение полосы прокрутки в окне, значение - вектор [x y width height], где (x,y) - координаты левого нижнего угла полосы прокрутки, width - ширина, а height - высота (все единицы по умолчанию в пикселях).

  • Min - минимальное значение свойства Value полосы прокрутки, соответствующее крайнему левому положению бегунка, присваиваем 0, т.к. значение параметра Control должно быть больше или равно 0.

  • Max - максимальное значение свойства Value полосы прокрутки, соответствующее крайнему правому положению бегунка, присваиваем 5, т.к. значение параметра Control должно быть меньше или равно 5.

  • Value - текущее значение, задаем равным InitControl.

  • Callback - указатель на функцию, выполняющуюся при изменении положения бегунка пользователем, в нашем примере это функция sldCallback (см. раздел Подфункция sldCallback).

После создания полосы прокрутки вызывается функция set_param для задания значения InitControl постоянной блока Control. Входными аргументами функции set_param являются:

  • Полное имя блока, которое формируется сцеплением строк из имени модели (его возвращает функция gcs) и имени блока 'Control'. Имя блока отделяется от имени модели косой чертой.

  • Имя свойства 'Value' блока.

  • Значение свойства 'Value', которое должно быть строковым, поэтому используется функция num2str для преобразования числового значения InitControl в строковое представление.

Далее при помощи функции axes создаются нижние и верхние оси. При создании осей задействованы следующие их свойства.

  • Tag - тег, используемый далее в подфункции mdlUpdate (см. раздел Подфункция mdlUpdate) для указания осей, на которые следует выводить график. Для нижней пары осей задается тег 'ax1', а для верхней - 'ax2'.

  • Units - единицы измерения, используемые для задания положения осей в графическом окне, мы будем задавать положение осей в пикселях, поэтому устанавливаем значение 'pixels'.

  • Position - положение осей в окне, значение - вектор [x y width height], где (x,y) - координаты левого нижнего угла осей, width - ширина, а height - высота (все единицы в пикселях).

  • NextPlot - свойство, отвечающее за графический вывод на оси. В нашем случае в подфункции mdlUpdate (см. раздел Подфункция mdlUpdate) мы будем строить графики соединяя текущую точку (соответствующую значению отображаемой величины в данный момент времени) с предыдущей (соответствующей значению отображаемой величины в предыдущий момент времени, в который работал блок S-function). Значение 'add' говорит о том, что новая линия должна добавиться, а старые остаться.

  • XLim и YLim - вектора из двух элементов с пределами осей абсцисс и ординат, соответственно. По оси абсцисс откладывается время, мы задаем пределы от 0 до 50, которые будем затем увеличивать в подфункции mdlUpdate (см. раздел Подфункция mdlUpdate). При задании пределов по оси ординат мы учитываем границы значений отображаемых величин.

  • Color - цвет фона осей, задаем значение 'k' (черный).

  • Xcolor и YColor - цвет осей абсцисс и ординат, соответственно, и их разметки. Задаем значение 'g' (зеленый).

  • Box - прямоугольная рамка вокруг координатных осей, устанавливаем ее, задавая значение 'on'.

  • XGrid и YGrid - сетка по каждой из координатных осей, включаем ее, задавая значение 'on'.

Далее в функции mdlInitializeSizes помощи функции uicontrol создаются два статических текстовых объекта с заголовками Signal (для нижних осей) и Control (для верхних осей). При создании текстовых объектов используются следующие их свойства.

  • Style - определяет тип создаваемого элемента управления, в нашем случае значение 'text' соответствует статическому тексту.

  • String - надпись на объекте.

  • Position - положение текстового объекта в окне, значение - вектор [x y width height], где (x,y) - координаты левого нижнего угла текстового объекта, width - ширина, а height - высота (все единицы по умолчанию в пикселях).

  • FontSize - размер шрифта, по умолчанию он задается в пунктах.

  • FontWeight - жирность шрифта, 'bold' значит полужирный.

  • BackgroundColor - цвет фона, задаем 'k' (черный).

  • ForegroundColor - цвет текста, задаем 'm' (фиолетовый).

Последнее очень важное действие, выполняемое в функции mdlInitializeSizes, состоит в сохранении указателя на графическое окно Fig в свойстве UserData блока S-function. Это делается при помощи функции set_param, первым аргументом которой должен быть указатель на блок S-function. Указатель на текущий блок (т.е. как раз на блок S-function в момент его работы) возвращается функцией gcbh, поэтому запись указателя на окно приложения осуществляется при помощи следующего обращения

set_param(gcbh, 'UserData', Fig)