Скачать 326.91 Kb.
|
fittype – для задания собственной параметрической модели, к которой производилось приближение. fit – для вычисления параметров аппроксимирующей модели. Использование функций пакета Curve Fitting ToolBox позволило добиться высокой точности при расчете параметров аппроксимирующей передаточной функции. 2.4. Среда разработки приложений с графическим интерфейсом GUIDE. В состав MatLab входит среда GUIDE для создания приложений с графическим интерфейсом пользователя. Работа в этой среде достаточно проста - элементы управления (кнопки, раскрывающиеся списки и т.д.) размещаются при помощи мыши, а затем программируются события, которые возникают при обращении пользователя к данным элементам управления. Приложение может состоять как из одного основного окна, так и нескольких окон и осуществлять вывод графической и текстовой информации, в основное окно приложения и в отдельные окна. Ряд функций MatLab предназначен для создания стандартных диалоговых окон открытия и сохранения файла, печати, выбора шрифта, окна для ввода данных и др., которыми можно пользоваться в собственных приложениях. Что необходимо знать для создания приложений с графическим интерфейсом? Во-первых, как программируются файл-функции с подфункциями, файл-функции с переменным числом входных и выходных аргументов. Во-вторых, требуется иметь представление об иерархической структуре и свойствах графических объектов, уметь обращаться с указателями на них. Разумеется, не должна вызывать затруднение работа с числовыми массивами, строками, структурами, ячейками и массивами строк, структур и ячеек, а также использование конструкций встроенного языка программирования. В состав GUIDE входит конструктор форм, позволяющий создавать формы с различными графическими компонентами (кнопки, списки, метки, графики и т.д.), отладчик, позволяющий следить за ходом выполнения программы в реальном времени, текстовый редактор. Конструктор форм очень похож на конструкторы форм других высокоуровневых языков. Он позволяет помещать компоненты на форму, проводить их выравнивание, так же с помощью редактора свойств компонентов изменять их значения. Ниже представлено изображение конструктора форм и его компонентов. 3. Постановка задачи Необходимо разработать программу с графическим интерфейсом, позволяющую пользователю решать следующие задачи:
4. Архитектура программы и организация взаимодействия систем. Программа написана с использованием 3-х основных программ: MATLAB, Simulink, GUIDE. Визуальное моделирование различных объектов осуществляется в программе Simulink, которая позволяет создавать модели различной сложности и структуры, выбирая и соединяя между собой различные блоки. MATLAB имеет возможность управления Simulink-ом при помощи специальных функций. Simulink, в свою очередь, может сохранять результаты своих вычисления в рабочую область MATLAB. Разработка графического интерфейса осуществляется с помощью средства GUIDE, позволяющего с помощью встроенного конструктора создавать формы с различными графическими компонентами и программировать их события. При описании событий различных компонентов, возможно обращаться к любым функциям MATLAB, что непосредственно обеспечивает взаимодействие с Simulink. Описанное выше взаимодействие программ изображено на примере снятия переходной характеристики на следующем рисунке: Проблемой при разработке программы было то, что GUIDE не имеет доступа к локальным переменным из рабочей области MATLAB, в отличии от Simulink. Поэтому организация взаимодействия систем была организована через глобальные переменные (см.рисунок). Для хранения данных используются структуры, которые позволяют хранить в себе любые типы данных, в том числе и другие структуры. Главной глобальной структурой программы является структура sessions, которая содержит в себе другие структуры, хранящие в себе данные всего расчета от переходной характеристики до аппроксимированной кривой и точности аппроксимации. Через эту глобальную структуру происходит взаимодействие программ. Более подробно структуру с комментариями можно посмотреть в файле addSession.m в папке System. Программа состоит из множества .m файлов реализующих различные расчетные функции и события графических компонентов, mdl файлов simulink моделей включающих в себя системные модели для реализации наложения шума, расчета функции ошибки (см. ниже) и т.д. и пользовательские модели: модели объектов и модели шумов. Все системные файлы находятся в папке System. Эти файлы необходимы для корректной работы программы. В папке Source находятся файлы типовых моделей объекта и шумов. Наличие этой папки обязательно в том случае если в программе используются соответствующие типовые модели. Типовые модели возможно удалять и добавлять в программу без изменения исходного кода программы (см. Правила добавления типовых моделей в программу в Приложении). 5. Этапы разработки программы В соответствии с постановкой задачи разработка программы делится на 6 этапов:
Для решений каждой задачи разработана соответствующая форма (см. ниже). Переход по задачам осуществляется из главного меню, появляющегося при запуске программы. Все формы, открывающиеся из главного меню, являются модальными по отношению к нему. Таким образом, невозможно работать сразу с несколькими задачами. Это сделано для предотвращения различных конфликтных ситуаций. 5.1.Создание и использование моделей объектов. Для того, чтобы снять переходную характеристику необходимо сначала создать модель объекта. При этом пользователь должен иметь возможность выбора типовой (созданной при разработке, или добавленной в процессе использования программы модели см. приложение – Добавление типовых моделей в программу) или создания собственной модели. Для этих целей была разработана следующая форма: 1 – кнопка создания и открытия новой модели Simulink. 2 – кнопка вывода файлового диалогового окна выбора моделей Simulink. 3 – кнопка отображения формы выбора типовых моделей объекта (см. ниже). 4 – кнопка закрытия текущей формы и перехода к главному меню (далее не описывается) 5 – поле отображения пути к текущей выбранной модели Simulink При нажатии на кнопку 3 открывается следующая форма, в которой происходит выбор типовой модели. 1 – список типовых моделей объекта используемых в программе. Типовая модель представляет собой обычную Simulink модель помещенную в специальный каталог и оформленную по определённым правилам (см. приложение). 2 – поле с изображением, иллюстрирующим выбранную типовую модель объекта 3 – кнопка, загружающая выбранную типовую модель в программу Результатом загрузки типовой или только что созданной модели будет запись пути к соответствующему .mdl файлу в переменную sessions.modelName. Таким образом в дальнейшем программа будет знать с какой моделью мы имеем дело. При этом модель Simulink должна соответствовать обязательному требованию. Созданная Simulink модель должна обязательно иметь блок To workspace, который позволяет сохранять данные в рабочую область MATLAB. Ниже представлен рисунок модели объекта описанного инерционным звеном первого порядка со ступенчатым воздействием на входе. 5.2. Снятие переходной характеристики объекта На данном этапе мы имеем название загруженной Simulink модели. MATLAB позволяет запускать процесс моделирования в Simulink через специальную функцию sim(имя_модели). В качестве входного параметра мы передаём имя модели хранящееся в переменной sessions.modelName. В результате Simulink сохранит результаты вычисления в виде массива с именем values в рабочую область MATLAB через блок To Workspace. Полученный массив мы сохраняем в переменную sessions.plain.curve для дальнейшего использования. Запуск процесса моделирования осуществляется в специальной форме (см. ниже). В данной форме через поля 5,6,7 можно задать различные расчетные параметры, который при нажатии на кнопку 3 считываются из соответствующих полей, преобразуются в нужный числовой тип и записываются в выбранную модель, после чего будет произведён запуск расчета. В случае успеха сохранённый массив будет передан в качестве аргумента функции plot(x,y), которая выведет функцию в графический компонент 2. 1 – поле отображения пути к текущей выбранной Simulink модели объекта 2 – область вывода графика текущей переходной характеристики 3 – кнопка для снятия переходной характеристики текущей модели 4 – кнопка, открывающая Simulink модель для редактирования в Simulink 5 – поле настройки числа точек построения переходной характеристики 6 – поле настройки шага дискретизации (промежуток времени, через который программа будет производить вычисления следующих точек) 7 – время моделирования (временной интервал, на котором производятся вычисления переходной характеристики объекта) 8 ,9,10 – кнопки для выбора вычисляемого поля (одно из полей 5,6,7 вычисляется в зависимости от выбранной кнопки) 5.3. Моделирование шума Процесс генерации шума совпадает с процессом получения переходной характеристики (см. выше п.1 и п.2). Так же имеется Simulink модель, которая может быть выбрана из типовых моделей либо создана пользователем в процессе работы с программой полный путь к которой сохраняется в переменную sessions.noises.model . Единственными отличиями является то, что блок To Workspace должен сохранять массив данных в переменную под названием rndPntd (сокращенно RandomPoints – случайные точки) и блок Band-linited white noise должен иметь имя wm, для того что бы программа смогла записать в него настройки, которые пользователь может изменять из интерфейса. Массив в случае успеха сохранится в переменную sessions.noises.noisesCurves, представляющих из себя список подобных кривых (шумов может быть множество), а так же сохраняются соответствующие настройки (дисперсия шума, период генерации случайных чисел) в cтруктуру sessions(sesIndex).noises.settings. Ниже представлена Simulink схема модели позволяющая сгенерировать шум. Описание блоков находится в пункте “Среда имитационного моделировния Simulink” раздела “Краткое описание используемых средств”. Генерация шума осуществляется через следующую форму: 1 – поле отображения пути к текущей выбранной Simulink модели шума 2 – кнопка для генерации шума на основе выбранной модели 3 – кнопка для переименования шума из списка 8 4 – кнопка для удаления, выбранного в списке 8 шума 5 – поле для задания значения дисперсии шума 6 – поле для задания периода генерации случайных чисел 7 – область для отображения графика шума выбранного в списке 8 8 – список сгенерированных шумов 9 – кнопка, открывающая Simulink модель шума для редактирования в Simulink 10, 11, 12 – см п.1 – Задание модели объекта 5.4. Наложение аддитивного шума (зашумление переходной характеристики). Для наложения шума на переходную характеристику используется Simulink модель с сумматором. На данный момент у нас имеется массив точек переходной характеристики в переменной sessions.plain.curve и массив точек выбранного шума из переменной sessions.noises.noisesCurves. Эти массивы поступают на вход модели merge.mdl которая складывает соответствующие значения точек и сохраняет их в один выходной массив с именем merged. Полученный массив сохраняется в переменную sessions.noised.noisedCurves. Ниже представлена форма, в которой происходит наложение шума. 1 – список сгенерированных шумов (см. п.3 - генерация шума) 2 – кнопка наложения сгенерированного шума на исходную переходную характеристику 3 – кнопка удаления зашумлённой кривой из списка 5 4 – список зашумлённых кривых 5 – кнопка переименования выбранной зашумленной кривой 6 – область отображения графика зашумлённой кривой, выбранной в списке 5 7 – область отображения графика шума выбранного в списке 1 5.5. Сглаживание зашумлённых кривых. Для сглаживания в MATLAB применяется пакет расширения Curve Fitting Toolbox, в котором реализовано 4 метода сглаживания (подробное описание методов см. в приложении ”Описание методов сглаживания Curve Fitting Toolbox”). Для их вызова из MATLAB используется функция smooth(параметры), в качестве входных данных которой являются массив точек какой-либо функции (в нашем случае массив точек зашумлённой кривой), настроечные параметры и название метода сглаживания. Ниже приведён фрагмент кода программы, которая осуществляет сглаживание кривой в зависимости от выбранного метода сглаживания: Файл MakeFlat.m %сглаживаем кривые switch get(handles.lstFlatMethods,'Value'); case 1, fCurve = smooth(nCurve,span,'moving'); method = strcat('Скользящее среднее'); parametrs = struct('name','Число соседних данных=','value',span); comment = strcat(noisedName,'->',method,'(Число соседних данных= ',num2str(span),')'); case 2, fCurve = smooth(nCurve,span,'lowess'); method = strcat('Взвешеная локальная регрессия(лин.)'); … case 3, fCurve =smooth(nCurve,span,'loess'); method = strcat('Взвешеная локальная регрессия(кв.)'); … case 4, if (degree >= span) errordlg('Степень полинома должна быть меньше числа соседних данных',')'); return; end fCurve = smooth(nCurve,span,'sgolay',degree); method = strcat('Фильтр Савицкого-Голея'); …case 5, Функция get(handles.lstFlatMethods,'Value') возвращает индекс выбранного метода из списка методов сглаживания (см.рис. ниже). Функция smooth после выполнения возвращает массив данных, описывающий сглаженную кривую, который сохраняется в переменную sessions.flat.curves. Для реализации усреднения данных реализован собственный метод усреднения списка зашумлённых кривых по следующей формуле Yуср- усреднённая ордината в i-ой точке N- число усредняемых кривых Ниже представлена форма, в которой реализуется сглаживание кривых |
Ооо “ТулаПромПрибор” Регулятор освещения ро–трн–30 предназначен для автоматического управления и регулирования яркости ламп накаливания |
Укпж-2 Установка предназначена для использования в системах автоматического контроля, регулирования и управления технологическими процессами... |
||
Терморегулятор set 01 программируемый на неделю (сутки) Назначение Терморегулятор предназначен для автоматического и ручного регулирования температуры |
Нормативных правовых актов в области регулирования деятельности субъекто ... |
||
Технический регламент Действие настоящего технического регламента распространяется на объекты регулирования и связанные с требованиями к безопасности объектов... |
О безопасности объектов внутреннего водного транспорта Действие настоящего технического регламента распространяется на объекты регулирования и связанные с требованиями к безопасности объектов... |
||
Письмо Департамента регулирования и координации внутренней торговли... Департамент регулирования и координации внутренней торговли, рассмотрев вопросы, поставленные в Вашем письме сообщает следующее |
Руководство по эксплуатации мюжк. 406433. 007 Рэ Преобразователи предназначены для работы в системах автоматического контроля, регулирования и управления технологическими процессами... |
||
Техническое описание и инструкция по эксплуатации бшид. 67351. 612 То Установки предназначены для повышения коэффициента мощности электроустановок промышленных предприятий и распределительных сетей,... |
Задача теплоснабжения Если пассивные средства регулирования тепловлажностного режима не могут обеспечить комфорт при низкой температуре воздуха, то необходим... |
||
Конспект лекций по учебной дисциплине «Правовое регулирование внешнеэкономической... Целью регулирования является стабилизация и приспособление внешнеэкономического комплекса страны к изменившимся условиям мрт, мирового... |
Методические указания по проверке и испытаниям автоматических систем... Разработаны московским головным предприятием по "Союзтехэнерго", предприятием "Южтехэнерго", вти им. Ф. Э. Дзержинского при участии... |
||
Доклад имеет три приложения. В первом освещены ключевые политики... Подготовлено для Министерства торговли сша, Национальной администрации по океану и атмосфере (noaa), Национальной службы по метеорологическим... |
Интенсивности и скорости движения, веса поездов, совершенствованием... Арс. Автоблокировка в комплексе с алсн позволяет организовать движение поездов попутного следования с малыми интервалами и значительно... |
||
Тематический мониторинг сми : Новая система технического регулирования:... Новая система технического регулирования: с начала августа вступили в силу технические регламенты Таможенного союза |
Проблемные ит в судопроизводстве и построение системы «электронного... Магистранта кафедры финансового права и правового регулирования хозяйственной деятельности |
Поиск |