Скачать 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), Национальной службы по метеорологическим... |
![]() |
Интенсивности и скорости движения, веса поездов, совершенствованием... Арс. Автоблокировка в комплексе с алсн позволяет организовать движение поездов попутного следования с малыми интервалами и значительно... |
![]() |
Тематический мониторинг сми : Новая система технического регулирования:... Новая система технического регулирования: с начала августа вступили в силу технические регламенты Таможенного союза |
![]() |
Проблемные ит в судопроизводстве и построение системы «электронного... Магистранта кафедры финансового права и правового регулирования хозяйственной деятельности |
Поиск |