Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Моделирование измерительных задач в среде MATLAB + Simulink. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
ТЕОРЕТИЧЕСКИЕ ОСНОВЫ 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]