Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Моделирование измерительных задач в среде MATLAB + Simulink. Учебное пособие
.pdf
ТЕОРЕТИЧЕСКИЕ ОСНОВЫ MATLAB + SIMULINK
Изменим свойство Enable для всех переключателей в редак-
торе приложения на off. Для этого нажмем клавишу Shift и
щелкнем левой кнопкой мыши по каждому переключателю.
При этом отбираются все переключатели. Затем, не отпуская
клавишу Shift, щелкнем правой кнопкой и вызовем редактор
свойств группы объектов. Здесь доступны для изменения схо
-
жие свойства всех объектов. Установим свойство Enable в off.
Для кнопки «Построить» все переключатели должны стать
доступными, а для кнопки «Очистить», наоборот, недоступны
-
ми. Добавим в обработчик кнопки «Построить» текст:
set(handles.rb_MarkCirc,’Enable’,’on’);
set(handles.rb_MarkSq,’Enable’,’on’);
set(handles.rb_MarkNone,’Enable’,’on’);
а для кнопки очистить:
set(gco,’Enable’,’off’)
set(handles.pbn_Plot,’Enable’,’on’)
set(handles.rb_MarkCirc,’Enable’,’off’);
set(handles.rb_MarkSq,’Enable’,’off’);
set(handles.rb_MarkNone,’Enable’,’off’);
При построении графика нужно найти переключатель со зна
чением Value, равным единице. Для запрета повторного включения уже включенного переключателя используется еще одно
значение свойства Enable – inactive, которое позволяет запре
тить изменение состояния включенного переключателя.
Произведем изменения подфункции для кнопки «Построить»:
if get(handles.rb_MarkCirc,’Value’)
set(handles.hLine,’Marker’,’o’)
set(handles.rb_MarkCirc,’Enable’,’inactive’)
set(handles.rb_MarkSq,’Enable’,’on’);
set(handles.rb_MarkNone,’Enable’,’on’);
end
if get(handles.rb_MarkSq,’Value’)
set(handles.hLine,’Marker’,’s’)
set(handles.rb_MarkSq,’Enable’,’inactive’)
set(handles.rb_MarkCirc,’Enable’,’on’);
set(handles.rb_MarkNone,’Enable’,’on’);
51

МОДУЛЬ 1
end
if get(handles.rb_MarkNone,’Value’)
set(handles.hLine,’Marker’,’none’)
set(handles.rb_MarkNone,’Enable’,’inactive’)
set(handles.rb_MarkSq,’Enable’,’on’);
set(handles.rb_MarkCirc,’Enable’,’on’);
end
Изменим также обработчики событий для переключателей.
Для первого:
set(handles.rb_MarkCirc,’Enable’,’inactive’)
set(handles.rb_MarkSq,’Enable’,’on’);
set(handles.rb_MarkNone,’Enable’,’on’);
Для второго
set(handles.rb_MarkSq,’Enable’,’inactive’)
set(handles.rb_MarkCirc,’Enable’,’on’);
set(handles.rb_MarkNone,’Enable’,’on’);
Для третьего
set(handles.rb_MarkNone,’Enable’,’inactive’)
set(handles.rb_MarkSq,’Enable’,’on’);
set(handles.rb_MarkCirc,’Enable’,’on’);
Вид работающего приложения показан на рис. 4.
52
Рис. 4. Результат работы приложения

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ MATLAB + SIMULINK
Проверив, что новый код, введенный нами, действует пра-
вильно, приступим к дальнейшей работе над приложением.
Списки
Используем элемент «выпадающий список» (PopupMenu) для
управления цветом линий графика. Добавим на заготовку гра
фического окна этот элемент, зададим свойство Tag pm_Color’)
и заполним свойство String значениями «синий», «красный»,
«зеленый». Все значения пишутся в отдельной строке. Доба
вим еще поясняющую надпись над списком: добавим элемент
Static Text, в свойство String занесем цвет линии, а в свойстве
HorizontalAligment выберем Left.
Окно приложения на данном этапе показано на рис. 5.
Рис. 5. Окно приложения
Номер выбранной строки списка содержится в его свойстве
Value. Для задания цвета линии удобно использовать оператор
ветвления switch.
Запишем в подфункцию списка следующие строчки кода:
53

МОДУЛЬ 1
Num=get(gco,’Value’)
switch Num
case 1
set(handles.hLine,’Color’,’b’);
case 2
set(handles.hLine,’Color’,’r’);
case 3
set(handles.hLine,’Color’,’g’);
end
Запишем и запустим приложение.
При работе с приложением видны два основных недостатка:
– повторное построение графика не учитывает выбранный
цвет линии;
– выбор цвета в отсутствие графика приводит к ошибке.
Чтобы избавиться от этих недостатков проделаем следующее.
• В обработчике кнопки «Построить» добавим блок switch
для задания цвета линии:
Num=get(handles.pm_Color,’Value’)
switch Num
case 1
set(handles.hLine,’Color’,’b’);
case 2
set(handles.hLine,’Color’,’r’);
case 3
set(handles.hLine,’Color’,’g’);
end
В редакторе приложения зададим свойство Enable списка off.
При построении графика список должен стать доступным, а при
очистке – снова недоступным. Добавим соответствующие стро
ки в подфункции кнопок «Построить» и «Очистить».
-
Полосы скроллинга
Следующий элемент, который мы хотим использовать в при
ложении для регулирования толщины линии графика, – это
полоса скроллинга.
54

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ MATLAB + SIMULINK
Добавим в редакторе полосу скроллинга и зададим ей имя
scr_Width. Кроме того, над полосой добавим текстовое поле со
свойством String «толщина линии».
Установим соответствие между положением ползунка и чис
ловым значением свойства Value. В Max занесем 10, в Min – 1.
Начальное положение ползунка в свойстве Value равно 1.
Свойство SliderStep является вектором с двумя компонента
ми:
– первая компонента – относительное изменение Value при
нажатии на стрелки слева и справа от ползунка;
– вторая компонента – относительное изменение при перета
скивании ползунка мышью.
Зададим вектор [0.1 0.2].
Теперь задаем изменение толщины линии в обработчике со
бытий ползунка:
width=get(gco,’Value’);
set(handles.hLine,’LineWidth’,round(width));
Запустим приложение и поэкспериментируем с ним. Мы ви
дим, что основные недостатки работы нового элемента те же,
что и при работе со списком. Устраним эти недостатки.
• В редакторе приложения зададим свойство Enable ползун
ка off. При построении графика ползунок должен стать доступным, а при очистке – снова недоступным. Добавим соответствующие строки в подфункции кнопок «Построить» и «Очистить».
• В обработчике кнопки «Построить» добавим функцию за
дания толщины линии:
width=get(handles.scr_Width,’Value’);
set(handles.hLine,’LineWidth’,round(width));
Запустив приложение, видим, что элемент-ползунок теперь
работает как надо.
Редактирование текста
Элемент Edit Text можно использовать для ввода различных
данных в ходе работы приложения. Применим его для размеще
ния заголовка построенного графика.
-
55

МОДУЛЬ 1
Добавим элемент на заготовку приложения. Зададим его
свойство Tag – edit_Title и удалим строку в свойстве String.
Над элементом поместим текстовое поле с поясняющей надпи
-
сью «заголовок».
В подфункции нового элемента вставим следующий текст:
txt=get(gco,’String’);
title(txt)
В обработчике кнопки «Очистить» добавим строки:
title(‘’);
set(handles.edit_Title,’String’,’’)
Запустим приложение. В поле редактирования введем, на
пример, y=exp(-x^2). При нажатии на Enter надпись будет отображена в заголовке графика. При нажатии на кнопку «Очистить» заголовок графика и поле редактирования очищаются.
Добавим еще одну командную кнопку в окно приложения,
функция которой состоит в окончании работы приложения.
Зададим имя кнопки btn_Close, надпись на ней «Закрыть», а
в подфункции кнопки запишем команду close(gcf).
Запустим приложение и убедимся, что кнопка работает пра
вильно.
Система Simulink
Одним из наиболее мощных приложений ToolBox в MATLAB
является программа Simulink. При моделировании с использо
ванием Simulink реализуется принцип визуального программирования. Использование Simulink во многих случаях исключает
утомительные и трудоемкие этапы составления и отладки про
грамм, позволяя сосредоточить основные усилия непосредственно на решении «своих» предметно-ориентированных задач. Студенту нужно освоить правила использования готовых функциональных блоков, из которых, как из конструктора, составляется модель проектируемого устройства, а также «испытательный
стенд», включающий источники сигналов, измерительные при
боры и средства наблюдения за процессами и характеристиками
процессов.
56
-
-
-

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ MATLAB + SIMULINK
Simulink – это интерактивная графическая программа, кото-
рая позволяет моделировать (имитировать) реальные системы
и устройства на уровне структурных и функциональных схем.
Библиотеки Simulink содержат большое количество разнообраз
ных функциональных блоков, которые отображаются на экране
в виде пиктограмм.
Simulink поступает к пользователям с более чем 100 встроен
ными блоками, в состав которых входят наиболее необходимые
функции моделирования. Блоки сгруппированы в библиотеки в
соответствии с их назначением: источники сигнала, приемни
ки, дискретные, непрерывные, нелинейные, математика, функции и таблицы, сигналы и системы.
В дополнение к обширному набору встроенных блоков
Simulink имеет расширяемую библиотеку блоков благодаря
функции создания пользовательских блоков и библиотек. Су
ществует возможность настраивать не только функциональность встроенных и пользовательских блоков, но также пользовательский интерфейс, используя значки и диалоги. Однажды
созданные пользовательские блоки могут быть сохранены в би
блиотеке блоков для использования в будущем.
Построение модели сводится к перемещению с помощью
мыши необходимых блоков из библиотек Simulink в окно соз
даваемой модели и соединению этих блоков между собой. Работая с программой Simulink, можно создавать модели цепей и
систем, изменять параметры блоков непосредственно во время
процесса моделирования и сразу же наблюдать реакцию моде
лируемой системы.
Simulink является достаточно самостоятельным инструмен
том MATLAB, и при работе с ним совсем не требуется знать сам
MATLAB и остальные его приложения. С другой стороны, до
ступ к функциям MATLAB и другим его инструментам остается
открытым, и их можно использовать в Simulink. Часть входя
щих в состав MATLAB пакетов имеет инструменты, встраиваемые в Simulink.
В ходе моделирования имеется возможность следить за про
цессами, происходящими в системе. Для этого используются
57

МОДУЛЬ 1
специальные устройства наблюдения, входящие в состав библиотеки Simulink. Результаты моделирования могут быть представлены в виде графиков или таблиц.
Тестовые задания к модулю 1
1. Если при наборе выражения в программе MATLAB в кон
-
це стоит знак «;», это означает:
а) результат вычислений будет выведен на экран компью-
тера;
б) результат вычислений не будет выведен на экран компью
-
тера;
в) программа воспримет эту строчку как комментарий;
г) такой знак всегда ставится в конце каждой строки про
-
граммы.
2. Если в командной строке MATLAB набрано выражение
без правой части, например 2*3, то после нажатия клавиши
«Enter»:
а) программа выдаст сообщение об ошибке;
б) программа запишет результат вычислений в специальную
переменную ans;
в) программа запишет результат в последнюю объявленную
переменную;
г) программа не выдаст сообщения об ошибке, но и не произ
-
ведет никаких действий.
3. Если результаты вычислений выводятся в формате
«3.3333е-6», то это означает, что в MATLAB задан формат дан
-
ных:
а) Short E;
б) Short;
в) Long E;
г) Long.
4. Если в командной строке набрано выражение «M=1:0.5:4»,
то переменная M примет значение:
а) вектор-столбец, заполненный числами от 1 до 4 с шагом
0.5;
58

ТЕОРЕТИЧЕСКИЕ ОСНОВЫ MATLAB + SIMULINK
б) вектор-строка, заполненный числами от 1 до 4 с шагом
0.5;
в) M = 1 / 0.5 / 4 = 0.5;
г) такое выражение не имеет смысла.
5. Если переменная a = [2 3 4; 7 8 9], а переменная b =
= [0 1 2; 2 3 4], то команда a . / b:
а) не имеет смысла;
б) для заданных a и b выдаст сообщение об ошибке;
в) вычислит матрицу 2 × 3 с элементами, равными результа
ту поэлементного деления a на b;
г) вычислит решение системы линейных уравнений с правы
ми частями, равными a, и левыми частями, равными b.
6. Что такое m-файл:
а) файл настроек пакета MATLAB;
б) файл включенных библиотек MATLAB;
в) файл с текстом программы, написанной в среде MATLAB;
г) такие файлы создаются автоматически при компиляции
программы.
7. Что представляет собой программа GUIDE из пакета
MATLAB:
а) программа-путеводитель по MATLAB;
б) программа настройки параметров MATLAB;
в) программа создания графических приложений MATLAB;
г) программа создания файлов подсказки.
-
-
59

МОДУЛЬ 2
вых
.
U
j
UU
U
K Ke
UU
ПРИМЕРЫ РАЗРАБОТКИ ПРИЛОЖЕНИЙ
В MATLAB + SIMULINK
2.1. Преобразование сигналов
в линейных электрических цепях
Параграф 2.1 модуля 2 посвящен изучению вопросов про
хождения детерминированных сигналов через электрические
цепи и моделирования процессов преобразования сигналов в
MATLAB + Simulink. Основные теоретические данные по преоб
разованию сигналов в линейных электрических цепях приведены, например, в [3].
При проведении различных исследований реальный сигнал
заменяют его математической моделью, чаще всего некоторой
функцией времени, которая может быть представлена в виде
аналитического выражения, графика или таблицы. Сигнал x(t)
и реакции цепи y(t) могут иметь разнообразную форму в зави
-
симости от их функционального назначения.
Свойства линейных цепей полностью определяются их ча
-
стотными или временными характеристиками.
Наиболее важной частотной характеристикой цепи является
комплексный коэффициент передачи K(ω), измеряемый в ста
ционарном режиме при гармоническом воздействии как отношение комплексных амплитуд интересующей реакции на выходе цепи и входного сигнала.
Чаще всего используют коэффициент передачи по напряже
нию
:
U
K Ke
вых
U
вх
j
U
.
-
Модуль коэффициента передачи, определяет амплитудно-ча-
стотную (или просто частотную) характеристику цепи, а аргумент φ – фазочастотную (фазовую) характеристику.
При временном методе анализа используют импульсную ха
рактеристику цепи, которую обозначают обычно g(t). Это реакция цепи на единичное импульсное воздействие (дельта-импульс).
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
