МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ ХАРЬКОВСКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ ГОРОДСКОГО ХОЗЯЙСТВА И.Г.Абраменко, О.Г.Гриб, О.Н.Довгалюк, Д.Н.Калюжный, К.М.Карпенко, А.В.Кольченко, В.И.Левин, Н.П.Пан, И.Н.Рябченко, Г.А.Сендерович КОМПЬЮТЕРНЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ В ЭЛЕКТРОЕНЕРГЕТИКЕ Рекомендовано Министерством образования и науки Украины как учебное пособие для студентов электроэнергетических специальностей высших учебных заведений Харьков - 2003 УДК 621.311 Компьютерные информационные технологии в электроэнергетике: Уч. пособие / И.Г.Абраменко, О.Г.Гриб, О.Н.Довгалюк, Д.Н.Калюжный, К.М.Карпенко, А.В.Кольченко, В.И.Левин, Н.П.Пан, И.Н.Рябченко, Г.А.Сендерович . Под общ. редакцией О.Г.Гриба. – Харьков: ХГАГХ, 2003. – 175 с. Пособие посвящено использованию в электроэнергетике современных компьютерных технологий. Рассматриваются вопросы математического моделирования процессов и устройств, статистической обработки данных и проектирования систем компьютерной диагностики в промышленности. Предназначено для студентов электроэнергетических специальностей. Илл. 117. Табл.9. Библиогр.: 19 назв. Рецензенты: Я.В. Щербак, д-р техн. наук., доц. (Укр. академия железнодор. транспорта); Л.А.Назаренко, д-р физ. мат. наук (Институт метрологии). Рекомендовано Министерством образования и науки Украины согласно решению от . .2003 г. И.Г.Абраменко, О.Г.Гриб, О.Н.Довгалюк, Д.Н.Калюжный , К.М.Карпенко, А.В.Кольченко, В.И.Левин, Н.П.Пан, И.Н.Рябченко, Г.А.Сендерович , ХГАГХ, 2003 2 ПРЕДИСЛОВИЕ Учебное пособие предназначено для студентов, изучающих курсы: "Применение ЭВМ в электроэнергетике"; "Электрические системы и сети"; "Теория автоматического управления"; "Переходные процессы в электроэнергетике"; "Математические задачи в электроэнергетике" при обучении по специальностям "Электротехнические системы электропотребления", "Электрические системы и сети", "Электросбережение". В последние годы в высшем образовании во многом изменились условия и цели обучения. Вузы стали выполнять конкретные заказы предприятий и фирм по подготовке специалистов, соответствующих современным требованиям. В первую очередь это касается необходимости овладения студентами основными навыками работы на ЭВМ в соответствии с современными информационными технологиями. В то же время, современное состояние этого процесса характеризуется удручающе низкими показателями. Причинами этого являются общее состояние экономики Украины и образования в частности, отсутствие соответствующего парка ЭВМ и необходимого дорогостоящего программного обеспечения, практически полное прекращение издания научно-технической литературы, недостаточное количество квалифицированных преподавателей из-за низкой оплаты их труда. Поэтому настоящее пособие написано с целью частичного исправления такого положения в области подготовки специалистов в электроэнергетике. Учитывая огромный объем поднятой проблемы, в рамках настоящего пособия рассмотрены общие принципы и способы обработки информации в области математического моделирования и статистической обработки экспериментальных данных. Приведено описание компьютерной системы по определению места аварии в существующих сетях электроснабжения. В дальнейшем предполагается продолжить эту тему и рассмотреть практические вопросы моделирования систем электроснабжения на конкретных примерах, а также использование геоинформационных технологий. Одной из важных причин, побудивших авторов к написанию пособия, явилось увеличение количества студентов заочной формы обучения, а также создание иногородних филиалов по электроэнергетическим специальностям. В условиях отсутствия необходимой литературы и ограниченных возможностей по консультациям с преподавателями, освоение компьютерных технологий при прочих равных условиях стало затруднительной задачей для студентов-заочников. Поэтому в пособие включены выборки из необходимых справочных матери- 3 алов и даны примеры практических методов работы с программными пакетами высшей категории сложности, что по мнению авторов будет способствовать повышению эффективности самостоятельной работы студентов. Разделы 1.1-1.6 первой части написаны И.Г. Абраменко, разделы 2.1-2.4 - Н.П. Паном, разделы 3.1-3.5 – И.Н. Рябченко. Разделы 1-5 второй части написаны О.Н. Довгалюк, разделы 6-8 - Г.А. Сендеровичем. Разделы 1-2 третьей части написаны Д.Н. Калюжным, разделы 3-4 - К.М. Карпенко, разделы 5-6 - А.В. Кольченко и разделы 7-8 - В.И. Левиным. Общая редакция материалов произведена О.Г. Грибом. Изложенные в пособии технологии пригодны для использования в дипломном проектировании и при решении практических задач проектирования и эксплуатации систем электроснабжения. Список использованных источников приведен в конце пособия. 4 СОДЕРЖАНИЕ Введение…………………………………………………… …...…7 Часть1. МАТРИЧНАЯ ЛАБОРАТОРИЯ MATLAB……………15 1. Общие сведения…………………………………………15 1.1. Возможности систем MATLAB…………………….….16 1.2. Интеграция с другими программными системами…....17 1.3. Ориентация на матричные операции…………………..18 1.4. Расширяемость системы…………………………….….20 1.5. Средства программирования…………………………...20 1.6. Визуализация и графические средства……………...…21 2. Основы работы с системой MATLAB………………....22 2.1. Средства контроля рабочей области и файловой системы………………………………………………………...31 2.2. Работа с меню………………………………………..….32 2.3. Редактирование и отладка m-файлов……………….…38 2.4. Описание языка системы…………………………..…...44 3. Графика MATLAB……………………………….…..….53 3.1. Интерфейс графических окон…………………………..53 3.2. Вращение графиков мышью………………………..…..56 3.3. Построение графиков функций одной переменной…..58 3.4. Построение трехмерных графиков……………….……71 3.5. Форматирование графиков……………………………..87 Часть 2. ПРИМЕНЕНИЕ ПАКЕТА "Statistica" ДЛЯ ОПИСАНИЯ РЕЖИМОВ РАБОТЫ ЭЛЕКТРИЧЕСКИХ СЕТЕЙ………..…..110 1. Перечень решаемых задач………………………….....110 2. Общая характеристика………………………………...113 3. Настройка системы STATISTICA………………..…...115 4. Работа с программой STATISTICA………………..…118 5. Особенности работы система STATISTICA…….…...122 6. Возможности рабочих книг…………………………...124 7. Построение графиков………………………………….136 8. Командный язык STATISTICA (SCL)…………….….146 Часть3. ИСПОЛЬЗОВАНИЕ ПРОГРАММНО_АППАРАТНОГО КОМПЛЕКСА АНФАС ДЛЯ РЕГИСТРАЦИИ И АНАЛИЗА ПЕРЕХОДНЫХ ПРОЦЕССОВ В ЭЛЕКТРИЧЕСКИХ СЕТЯХ………...….153 1. Структура системы…………………………..………...153 2. Общая характеристика ПО «АнФАС»………………....154 3. Функции ПО «АнФАС»………………………..…….…155 4. Подготовка к работе, состав ПО «АнФАС»…………...158 5. Работа с программой………………………………...…..161 6. Загрузка файлов……………………………..……...…162 5 7. Работа с графиками………………………….……….165 8. Работа с закладками………………………….…….170 Список литературы…………………………………….………..174 6 ВВЕДЕНИЕ Технология — это комплекс научных и инженерных знаний, реализованных в приемах труда, наборах материальных, технических, энергетических, трудовых факторов производства, способах их соединения для создания продукта или услуги, отвечающих определенным требованиям. Согласно определению, принятому ЮНЕСКО, информационная технология - это комплекс взаимосвязанных научных, технологических и инженерных дисциплин, изучающих методы эффективной организации труда людей, занятых обработкой и хранением информации; вычислительную технику и методы ее организации и взаимодействия с людьми и производственным оборудованием, а также связанные со всем этим социальные, экономические и культурные проблемы. Под новыми информационными технологиями следует понимать совокупность современных методов и средств получения и использования информации в конкретной отрасли знаний на базе вычислительной и информационной техники. Теоретической основой конкретных информационных технологий является информатика. С современной точки зрения информатику можно рассматривать как науку, как прикладную дисциплину и как отрасль народного хозяйства. Информатика (как наука) – фундаментальная естественная наука, изучающая структуру и свойства информации, а так же вопросы, связанные с процессами сбора, хранения, поиска, передачи и переработки, преобразования и использования информации в различных сферах человеческой деятельности. Информатика (как прикладная дисциплина) – исторически возникла и развивалась как естественная дисциплина, в состав которой входила разработка: методов и правил рационального проектирования устройств и систем обработки информации, технология использования их для решения научных и практических задач, методов взаимодействия человека с этими устройствами и системами. Информация (лат. Informatio – знание, сведение, осведомленность) – первоначально понималось как сведения, передаваемые человеком, устным, письменным или другими способами, с помощью условных сигналов, технических средств и т.д. С середины ХХ века понятие информации является общенаучным понятием, включающим в себя обмен сведениями между людьми, человеком и автоматом, автоматом и автоматом, обмен сигналами в 7 растительном и животном мире, передачу признаков от клетки к клетке. Прежде чем перейти к рассмотрению информационных технологий в электроснабжении, приведем определение понятия <технология>, которое на наш взгляд, является весьма универсальным. <Технология - это управление естественными процессами, направленное на создание искусственных объектов: она эффективна постольку, поскольку ей удается создать необходимые условия для того, чтобы определенные процессы протекали в нужном русле и направлении>. В нашем случае будем считать, что <естественные процессы> управляются не только с целью преобразования состава, структуры и формы вещества, но и для фиксации, обработки и получения новой информации. Вся история технического прогресса от овладения огнем до открытия ядерной энергии - это история последовательного подчинения человеку все более могущественных сил природы. Задачи, решаемые на протяжении тысячелетий, можно свести к умножению различными инструментами и машинами энергетической мощи человечества. По сравнению с этим тотальным процессом еле заметны попытки создания инструментов, усиливающих природные возможности человека по обработке информации, начиная от камешков абака до машины Беббиджа. На ранних этапах истории человечества для синхронизации выполняемых действий человеку потребовались кодированные сигналы общения. Эту задачу человеческий мозг решил без каких-либо искусственно созданных инструментов: развилась человеческая речь. Речь оказалась и первым существенным носителем человеческих знаний. Знания накапливались в виде устных рассказов и в такой форме передавались от поколения к поколению. Природные возможности человека по накоплению и передаче знаний получили первую технологическую поддержку с созданием письменности. Начавшийся процесс совершенствования носителей информации и инструментов для ее регистрации продолжается до сих пор: камень, кость, дерево, глина, папирус, шелк, бумага, магнитные и оптические носители, кремний и т.д. Можно согласиться с тем, что письменность стала первым историческим этапом информационной технологии. Вторым этапом считается возникновение книгопечатания. Стимулируемое книгопечатанием развитие наук ускорило темпы накопления профессиональных знаний. Знания, овеществленные через трудовой процесс в станки, машины, технологии и т.п., становились источником новых идей и плодотворных научных направлений. Цикл: знания - наука - обще- 8 ственное производство - знания замкнулся, и спираль технологической цивилизации начала раскручиваться с нарастающей скоростью. Таким образом, книгопечатание впервые создало информационные предпосылки ускоренного роста производительных сил. Но подлинная информационная революция связывается прежде всего с созданием электронных вычислительных машин в конце 40-х годов, и с этого же времени исчисляется эра развития информационной технологии, материальное ядро которой образует микроэлектроника. Микроэлектроника формирует элементную базу всех современных средств приема, передачи и обработки информации, систем управления и связи. Сама микроэлектроника возникла первоначально именно как технология: в едином кристаллическом устройстве оказалось возможным сформировать все основные элементы электронных схем. Далее последовал всеохватывающий процесс миниатюризации: уменьшение геометрических размеров элементов, что обеспечивало и совершенствование их характеристик, и рост их числа в интегральной схеме. В ранний период развития новой технологии (1960-е годы) принципы конструирования машин и приборов оставались еще неизменными. В 70-х годах, когда технология начала превращаться действительно в микротехнологию, стало возможным размещать крупные функциональные блоки ЭВМ, включая ее центральное ядро - процессор - в пределах одного кристалла. Возникло микропроцессорное направление развития вычислительной техники. К началу 80-х годов производительность персональных ЭВМ достигла сотен тысяч операций в секунду, супер-ЭВМ - сотен миллионов операций в секунду а мировой парк машин превысил 100 млн. машин. На этом рубеже для реализации потенциала развития микроэлектроники и микротехнологии требовались уже принципиально новые решения во всех областях информационной технологии. Технологически все труднее уменьшать размеры деталей транзисторов; быстродействие приборов приближается к верхнему, а энергопотребление к нижнему пределу; проектирование ЭВМ требует принципиально нового понимания основных функций и архитектуры машин. Как одно из решений проблем был разработан (Л. Конвей и М. Мид) принципиально новый подход к проектированию интегральных схем - структурное проектирование, которое ведется не от элементов к устройству, а от общей схемы последнего к элементам. Основную роль здесь играют системы автоматизации проектирования (САПР). 9 Весьма важным свойством информационной технологии является то, что для нее информация является не только продуктом, но и исходным сырьем. Более того, электронное моделирование реального мира, осуществляемое в компьютерах, требует обработки неизмеримо большего объема информации, чем содержит конечный результат. Чем совершеннее компьютер, тем адекватнее электронные модели и тем точнее наше предвидение естественного хода событий и последствий наших действий. Таким образом, электронное моделирование становится неотъемлемой частью интеллектуальной деятельности человечества. Говоря о развитии информационной технологии на базе ЭВМ, можно выделить ряд этапов, каждый из которых характеризуется определенными параметрами. Начальный этап эволюции информационной технологии (1950-1960 гг.) характерен тем, что в основе средств взаимодействия человека и ЭВМ лежали языки, в которых программирование велось в терминах того, как необходимо достичь цели обработки (т.е. как правило, машинные языки). В итоге ЭВМ была доступна только профессионалам программистам. Следующий этап (1960-1970 гг.) характеризуется созданием операционных систем, позволяющих вести обработку нескольких заданий, формируемых различными пользователями. Основная цель при этом состояла в обеспечении наибольшей загрузки машинных ресурсов. Третий этап (1970-1980 гг.) характеризуется изменением критерия эффективности автоматизированной обработки данных - основным ресурсом стали человеческие ресурсы по разработке и сопровождению программного обеспечения. Этот период характеризуется распространением мини-ЭВМ. Получил распространение интерактивный режим взаимодействия нескольких пользователей с ЭВМ. Четвертый этап (1980-1990гг) знаменует новый качественный скачок в технологии разработки программного обеспечения. Его суть сводится к тому, что центр тяжести технологических решений переносится на создание средств, обеспечивающих взаимодействие пользователей с ЭВМ на этапах создания программного продукта. Ключевым звеном новой информационной технологии становится представление и обработка знаний. Создаются базы знаний, экспертные системы. Получают широкое распространение персональные ЭВМ. Эволюция технических параметров ЭВМ происходит со все наростающим темпом. Каждая смена поколений средств информационной техники и технологии требует переобучения и радикальной перестройки инженерного мышления специалистов, смены достаточно 10 дорогостоящего технологического оборудования и создания все более массовой вычислительной техники. Это установление постоянных эволюционных темпов носит весьма общий характер, тем более что информационные технологии, являясь передовой областью техники и технологии, определяет характерный ритм времени технического развития современного общества в целом. Новые технологии, основанные на компьютерной технике, требуют радикальных изменений организационной структуры подготовки студентов, его регламента, кадрового потенциала, технической оснащенности, системы документации, фиксирования и передачи информации. Сами информационные технологии требуют сложной подготовки, существенных первоначальных затрат и наукоемкой техники. Их введение должно начинаться с приобретения современной вычислительной техники, формирования соответствующего математического обеспечения. Однако без этого в настоящее время говорить о качественном высшем образовании невозможно. Основными напpавлениями внедрения новых информационных технологий в процесс подготовки специалистов электроснабжения являются: - pазpаботка и спецификация моделей пpоцессов и устройств данной предметной области; - алгоpитмизация и пpогpаммиpование моделей для их интеpпpетации в сpеде ЭВМ; - оpганизация вычислительного и имитационного экспеpимента с моделью; оpганизация интеллектуального пpедметнооpиентиpованного интеpфейса пользователя с интеpпpетиpующей сpедой ЭВМ; - оpганизация сетевых стpуктуp пеpедачи инфоpмации с множественным доступом на основе концепции откpытых систем; - оpганизация пpоцессов хpанения и поиска инфоpмации на основе концепции баз данных; - создание новых инфоpмационных технологий на основе концепции искусственного интеллекта. В наши дни компьютерная математика интенсивно развивается как передовое научное направление на стыке математики и информатики. Для математического моделирования в различных областях инженерной деятельности используются различные специализированные пакеты математических вычислений. 11 Среди них наибольшую известность получили системы Mathcad, Derive, Mathematica, Maple, MATLAB и др. Каждая из этих систем имеет свои достоинства и недостатки и заслуживает отдельного рассмотрения. В данном учебном пособии рассматривается система MATLAB 6.5, прошедшая многолетний путь развития от узко специализированного матричного программного модуля, используемого только на больших ЭВМ, до универсального интегрированного пакета, имеющего мощные средства диалога, графики и комплексной визуализации. MATLAB, разработанный фирмой Math Works, Inc, представляет собой хорошо апробированный и надежный инструмент, рассчитанный на решение самого широкого круга математических задач с представлением данных в универсальной матричной форме. Система MATLAB вобрала в себя не только передовой опыт развития и компьютерной реализации численных методов, накопленный за последние три десятилетия, но и весь опыт становления математики за всю историю человечества. Ее охотно используют в своих научных проектах ведущие университеты и научные центры мира. Популярности системы способствует ее мощное расширение Simulink, предоставляющее удобные и простые средства, в том числе визуальное объектно-ориентированное программирование, для моделирования линейных и нелинейных динамических систем, а также множество других пакетов расширения системы. К разработкам расширений для системы MATLAB привлечены многие научные школы мира и руководящие ими крупные ученые и педагоги университетов. Важными достоинствами системы являются ее открытость и расширяемость. Большинство команд и функций системы реализованы в виде текстовых m-файлов (с расширением .m) и файлов на языке Си. При этом все файлы доступны для модификации. Пользователю предоставлена возможность создавать не только отдельные файлы, но и библиотеки файлов для реализации специфических задач. Легкость модификации системы и возможность ее адаптации к решению специфических задач науки и техники привели к созданию десятков пакетов прикладных программ (toolbox), намного расширивших первоначальные сферы применения системы. К сожалению, в Украине в силу имеющего место за последние 10 лет общего упадка науки, неоправданно мало публикаций по системе MATLAB. Между тем, за рубежом системе MATLAB посвящены сотни книг (их список можно найти на Web-узле фирмы Math Works, Inc), и еще сотни книг посвящены системе Maple V Release 5, ядро которой входит в состав пакетов расширения MATLAB 6. 12 Таким образом, внедрение новых информационных технологий в процесс моделирования энергетических процессов требует разработки соответствующей учебной литературы по системе MATLAB. Особенно это относится к литературе по новейшей реализации системы MATLAB - MATLAB 6.5. Работа с такой мощной математической системой, как MATLAB, несомненно, требует от студента твердого знания основ математики и наличия профессиональных знаний в области электроснабжения. Без этого невозможно гарантировать правильное применение используемых в системе методов и корректность получаемых результатов. Ряд процессов, имеющих место в электроэнергетике, описывается статистическими данными. Статистика позволяет компактно описать данные, понять их структуру, провести классификацию, увидеть закономерности в случайных явлениях. Применение современных компьютерных пакетов позволяет воспользоваться разнообразными методами анализа данных, выбрать из них наиболее приемлемый для решения поставленной задачи. Одним из наиболее распространенных для решения статистических задач на сегодняшний день является система STATISTICA. Данная система позволяет использовать как классические методы анализа, так и современные, включая нейронные сети, в частности, чрезвычайно интересный анализ соответствий, позволяющий исследовать сложные многомерные таблицы. Использование системы STATISTICA позволяет: - произвести анализ исследуемого явления, вывить присущие ему закономерности; - на основании анализа данных построить различные модели исследуемого явления; - произвести сравнение и выбрать наиболее адекватную модель для описания исследуемого явления; - прогнозировать дальнейшее развитие анализируемого явления; - оценить эффективность проведения мероприятий; - произвести анализ влияния факторов риска на развитие явления; - и многое другое. Поэтому вторая часть пособия посвящена именно освоению технологии работы с пакетом STATISTICA. И, наконец, в третьей части изложены правила работы с прикладной компьютерной программой обнаружения места аварии в элек- 13 трической сети, разработанной сотрудниками кафедры электроснабжения городов ХГАГХ. 14 Часть1. МАТРИЧНАЯ ЛАБОРАТОРИЯ MATLAB 1. Общие сведения. MATLAB - одна из старейших, тщательно проработанных и проверенных временем систем автоматизации математических расчетов, построенная на расширенном представлении и применении матричных операций. Это нашло отражение в названии системы - MATrix LABoratory - матричная лаборатория. Однако синтаксис языка программирования системы продуман настолько тщательно, что эта ориентация почти не ощущается теми пользователями, которых не интересуют непосредственно матричные вычисления. Матрицы широко применяются в сложных математических расчетах в электроснабжении, например при решении задач линейной алгебры и математического моделирования статических и динамических систем и объектов. Они являются основой составления и решения уравнений состояния динамических объектов и систем. Это существенно повышает интерес к системе MATLAB, вобравшей в себя лучшие мировые достижения в области быстрого решения матричных задач. В настоящее время MATLAB далеко вышла за пределы специализированной матричной системы и стала одной из наиболее мощных универсальных интегрированных систем. Слово «интегрированная» указывает на то, что в этой системе объединены удобная оболочка, редактор выражений и текстовых комментариев, вычислитель и графический программный процессор. В последней версии используются такие мощные типы данных, как многомерные массивы, массивы ячеек, массивы структур, массивы Java и разреженные матрицы, что открывает возможности применения системы при создании и отладке новых алгоритмов матричных и основанных на них параллельных вычислений и крупных баз данных. В целом MATLAB - это уникальная коллекция реализаций современных численных методов компьютерной математики, созданных за последние три десятка лет. Она вобрала в себя и опыт, правила и методы математических вычислений, накопленные за тысячи лет развития математики. Это сочетается с мощными средствами графической визуализации и даже анимационной графики. Систему с прилагаемой к ней обширной документацией вполне можно рассматривать как фундаментальный многотомный электронный справочник по математическому обеспечению ЭВМ - от массовых персональных компьютеров до супер-ЭВМ. 15 Система MATLAB была разработана Молером ( Moler) и с конца 70-х г. широко использовалась на больших ЭВМ. К расширению системы были привлечены крупнейшие научные школы мира в области математики, программирования и естествознания. Одной из основных задач системы было предоставление пользователям мощного языка программирования, ориентированного на математические расчеты и способного превзойти возможности традиционных языков программирования, которые многие годы использовались для реализации численных методов. При этом особое внимание уделялось как повышению скорости вычислений, так и адаптации системы к решению самых разнообразных задач пользователей. Возможности MATLAB весьма обширны, а по скорости выполнения задач система нередко превосходит своих конкурентов. Она применима для расчетов практически в любой области науки и техники. Например, очень широко используется специалистами соответствующей квалификации при математическом моделировании энергетических устройств и систем. Этому способствует не только расширенный набор матричных и иных операций и функций, но и наличие пакета расширения (toolbox) Simulink, специально предназначенного для решения задач блочного моделирования динамических систем и устройств, а также десятков других пакетов расширений. В обширном и постоянно пополняемом комплексе команд, функций и прикладных программ системы MATLAB содержатся специальные средства для электротехнических расчетов (операции с комплексными числами, матрицами, векторами и полиномами, обработка данных, анализ сигналов и цифровая фильтрация), реализации нейронных сетей. 1.1. Возможности систем MATLAB В области математических вычислений: матричные, векторные, логические операторы; элементарные и специальные функции; полиномиальная арифметика; многомерные массивы; массивы записей; массивы ячеек. В области реализации численных методов: дифференциальные уравнения; вычисление одномерных и двумерных квадратур; поиск корней нелинейных алгебраических уравнений; оптимизация функций нескольких переменных; одномерная и многомерная интерполяция. В области программирования: свыше 1000 встроенных математических функций; ввод/вывод двоичных и текстовых файлов; применение программ, написанных на Си и ФОРТРАН; автоматическая 16 перекодировка процедур MATLAB в тексты программ на языках Си и C++; типовые управляющие структуры. В области визуализации и графики: возможность создания двумерных и трехмерных графиков, осуществление визуального анализа данных. В области моделирования процессов электроснабжения: Data Analysis, Visualization and Application Development — анализ данных, их визуализация и применение; Control Design —проектирование устройств управления; Data Acquisition Toolbox для обмена информацией с блоками сбора данных, подключаемыми к шине компьютера, в реальном масштабе времени. Входящая в состав MATLAB программа Simulink дает возможность имитировать реальные системы и устройства, задавая их моделями, составленными из функциональных блоков. Simulink имеет обширную и расширяемую пользователями библиотеку блоков и простые средства задания и изменения. Simulink поступает к пользователям с более 100 встроенными блоками, в состав которых входят наиболее необходимые функции моделирования. Блоки сгруппированы в библиотеки в соответствии с их назначением: источники сигнала, приемники, дискретные, непрерывные, нелинейные, математика, функции и таблицы, сигналы и системы. В дополнение к обширному набору встроенных блоков Simulink имеет расширяемую библиотеку блоков благодаря функции создания пользовательских блоков и библиотек. Вы можете настраивать не только функционирование встроенных и пользовательских блоков, но также пользовательский интерфейс, используя значки и диалоги. Например, вы можете создать блоки для моделирования поведения своих специальных механических, электрических и программных компонентов. Однажды созданные пользовательские блоки могут быть сохранены в библиотеке блоков для использования в будущем. 1.2. Интеграция с другими программными системами В последние годы разработчики математических систем уделяют огромное внимание их интеграции и совместному использованию. Это не только расширяет класс решаемых каждой системой задач, но и позволяет подобрать для них самые лучшие и наиболее подходящие инструментальные средства. Решение сложных математических задач сразу на нескольких системах существенно повышает вероятность получения корректных результатов — увы, как математики 17 так и математические системы способны ошибаться, особенно при некорректной постановке задач неопытными пользователями. С системой MATLAB могут интегрироваться такие популярные математические системы, как Mathcad, Maple и Mathematica. Есть тенденция и к объединению математических систем с современными текстовыми процессорами. Так, новое средство последних версий MATLAB — Notebook — позволяет готовить документы в текстовом процессоре Word со вставками в виде документов MATLAB и результатов вычислений, представленных в численном, табличном или графическом виде. Таким образом, становится возможной подготовка «живых» электронных книг, в которых демонстрируемые примеры могут быть оперативно изменены. Так, вы можете менять условия задач и тут же наблюдать изменение результатов их решения. В MATLAB задачи расширения системы решаются с помощью специализированных пакетов расширения — наборов инструментов (toolbox). Многие из них содержат специальные средства для интеграции с другими программами, поддержки объектно-ориентированного и визуального программирования, для генерации различных приложений. В состав системы MATLAB входит ядро одной из самых мощных, популярных и хорошо апробированных систем символьной математики (компьютерной алгебры) Maple V Release 5. Оно используется пакетами расширения Symbolic Math Toolbox и Extended Symbolic Math Toolbox, благодаря которым в среде MATLAB стали доступны принципиально новые возможности символьных и аналитических вычислений. 1.3. Ориентация на матричные операции Напомним, что двумерный массив чисел или математических выражений принято называть матрицей. А одномерный массив называют вектором. Примеры векторов и матриц приведены ниже: 1 2 3 4 - вектор из 4 элементов; 1 2 3 4 5 6 7 8 9 8 7 6 - матрица размера 3 на 4; 18 a ab yx 2 x 1 ab c - матрица с элементами разного типа. z 3 Векторы и матрицы характеризуются размерностью и размером. Размерность определяет структурную организацию имеющихся массивов в виде строки (размерность 1), страницы (размерность 2), куба (размерность 3) и т. д. Таким образом, вектор является одномерным массивом, а матрица представляет собой двумерный массив с размерностью 2. MATLAB допускает задание и использование многомерных массивов. Размер вектора - это число его элементов, а размер матрицы определяется числом ее строк и столбцов . Обычно размер матрицы указывают как ной, если столбцов. m n, m n m n . Матрица называется квадрат- то есть число строк матрицы равно числу ее Векторы и матрицы могут иметь имена, например или M - вектор - матрица. Элементы векторов и матриц рассматриваются как индексированные переменные, например: тора V V2 - второй элемент век- V ; M 23 - третий элемент второй строки матрицы M . Система MATLAB может выполнять сложные и трудоемкие операции над векторами и матрицами непосредственно в режиме прямых вычислений без какого-либо программирования. Ею можно пользоваться как мощнейшим калькулятором, в котором наряду с обычными арифметическими и алгебраическими действиями могут использоваться такие сложные операции, как инвертирование матрицы, вычисление ее собственных значений и принадлежащих им векторов, решение систем линейных уравнений, вывод графиков двумерных и трехмерных функций и многое другое. Следует отметить, что даже обычные числа и переменные в MATLAB рассматриваются как матрицы размера 1 1 , что позволяет применять единообразные формы и методы проведения операций над обычными числами и массивами. Данная операция обычно называется векторизацией. Векторизация обеспечивает и упрощение записи операций, производимых одновременно над всеми элементами векторов и матриц, и существенное повышение скорости их выполнения. Это 19 также означает, что большинство функций может работать с аргументами в виде векторов и матриц. При необходимости вектора и матрицы преобразуются в массивы, и значения вычисляются для каждого их элемента. 1.4. Расширяемость системы Какой бы мощной ни была та или иная математическая система, она не способна включить в себя все средства, которые могут потребоваться сотням тысяч пользователей. Поэтому важно, чтобы система была достаточно гибкой и способной адаптироваться к различным задачам пользователей самых разных категорий. MATLAB представляет собой легко расширяемую систему, ее можно приспособить к решению практически любых конкретных типов задач. При этом расширения системы в виде m-файлов хранятся на жестком диске компьютера и в нужный момент вызываются для использования точно так же, как встроенные в MATLAB внутренние функции и процедуры. Благодаря текстовому формату m-файлов пользователь может ввести в систему любую новую команду, оператор или функцию и затем пользоваться ими столь же просто, как и встроенными операторами или функциями. Дополнительный уровень системы образуют ее пакеты расширения (toolbox). Они позволяют быстро ориентировать систему на решение задач в той или иной предметной области, в частности в области электроснабжения. Благодаря этому MATLAB обеспечивает достаточно высокий уровень адаптации к решению задач конечного пользователя. 1.5. Средства программирования Многие математические системы создавались исходя из предположения, что конечный пользователь будет решать свои задачи, практически не занимаясь программированием. Однако такой подход оказался достаточно ограниченным. Система MATLAB с момента своего создания создавалась как мощный математико-ориентированный язык программирования высокого уровня. MATLAB имеет входной язык, напоминающий Бейсик (с примесью Фортрана и Паскаля). Запись программ в системе традиционна и потому привычна для большинства пользователей компьютеров. К тому же система дает возможность редактировать программы с 20 помощью любого привычного для пользователя текстового редактора. Имеет она и собственный редактор с отладчиком. Язык системы MATLAB в части программирования математических вычислений намного богаче любого универсального языка программирования высокого уровня. Он реализует почти все известные средства программирования, в том числе (средствами Simulink) объектноориентированное и визуальное программирование. 1.6. Визуализация и графические средства В последнее время создатели математических систем уделяют существенное внимание визуализации решения математических задач. Говоря проще, это означает, что постановка и описание решаемой задачи и результаты решения должны быть предельно понятными не только тем, кто решает задачи, но и тем, кто в дальнейшем их изучает или просто просматривает. При решении инженерных задач очень большую роль в визуализации играет графическое представление результатов. Визуализация постановки задачи в MATLAB решается применением приложения Notebook и назначением именам функций достаточно ясных имен-идентификаторов. А визуализация результатов вычислений достигается применением обширных средств графики, в том числе анимационной, а также использованием (там, где это нужно) средств символьной математики. Графические средства Handle Graphics (дескрипторная или описательная графика) позволяют создавать полноценные объекты графики высокого разрешения, как геометрического, так и цветового. Возможности этой графики поддерживаются объектноориентированным программированием, средства которого также имеются в языке программирования системы MATLAB. При этом доступно построение графиков практически всех известных в науке и технике типов. Широко практикуется функциональная закраска сложных поверхностей, в том числе с интерполяцией по цвету. Возможен учет всевозможных световых эффектов — вплоть до бликов на поверхности сложных фигур при освещении их различными источниками света и с учетом свойств материалов отражающих поверхностей. Применение дескрипторной графики позволяет создавать и типовые элементы пользовательского интерфейса — кнопки, меню, информационные и инструментальные панели и т. д., то есть реализовать элементы визуально-ориентированного программирования. Графики выводятся отдельно от текстов в отдельных окнах. На одном 21 графике можно представить множество кривых, отличающихся цветом и отличительными символами (кружками, крестиками, прямоугольниками и т. д.). Графики можно выводить в одно или в несколько окон. В формате Notebook, реализованном при совместной работе системы MATLAB с текстовым редактором Microsoft Word, графики могут располагаться вместе с текстом, формулами и результатами вычислений. В этом случае степень визуализации оказывается особенно высокой, поскольку документы класса Notebook по существу являются превосходно оформленными электронными книгами с интерактивными примерами. 2. Основы работы с системой MATLAB Запуск MATLAB. Запуск системы MATLAB производится из главного меню операционной системы. Для раскрытия главного меню активизируется кнопка Пуск, расположенная внизу рабочего стола слева. После запуска MATLAB на экране появляется основное окно системы, показанное на рис.1.1. Пользовательский интерфейс многооконный и имеет ряд средств прямого доступа к различным компонентам системы. Вид этого интерфейса можно изменять в пункте меню View (Вид) подменю Desktop Layout. Рис.1.1. Окно системы MATLAB после запуска. 22 Обычно это окно раскрыто не полностью и занимает часть рабочего стола. Вы можете раскрыть окно полностью, щелкнув на средней из трех кнопок, расположенных в конце верхней строки окна. Левая кнопка сворачивает окно в кнопку с именем приложения, помещаемую в панель задач Windows, а правая закрывает окно и прекращает работу с MATLAB. После этого система готова к проведению вычислений в командном режиме. Заметим, что при старте автоматически запускается файл matlab.exe, который исполняет загрузочный файл matlabrc.m и файл startup.m, если таковой существует. Эти файлы выполняют начальную настройку терминала системы и задают ряд ее параметров. В частности, могут быть заданы пути доступа к другим файлам, необходимым для корректной работы системы. Таким образом, опытные пользователи могут выполнить настройку системы под свои запросы. Поскольку указанные файлы имеют текстовый формат, их легко просмотреть с помощью какого-либо текстового редактора или с помощью команды type в командном режиме работы. Сеанс работы с MATLAB принято именовать сессией (session). Сессия, в сущности, является текущим документом, отражающим работу пользователя с системой MATLAB. В ней имеются строки ввода, вывода и сообщений об ошибках. Входящие в сессию определения переменных и функций, расположенные в рабочей области памяти, но не саму сессию, можно записать на диск (файлы формата .mat), используя команду save (сохранить). Команда load (загрузить) позволяет считать с диска данные рабочей области. Фрагменты сессии можно оформить в виде дневника с помощью команды diary (дневник). Операции строчного редактирования. При работе с MATLAB в командном режиме действует достаточно простой строчный редактор. Его команды перечислены в табл. 1.1. Следует особо обратить внимание на применение клавиш Up и Down. Эти клавиши используются для подстановки после маркера ввода строки » ранее введенных строк, например для их исправления, дублирования или дополнения. При этом указанные клавиши обеспечивают перелистывание ранее введенных строк снизу вверх или сверху вниз. Такая возможность существует благодаря организации специального стека памяти, хранящего строки с введенными ранее командами. 23 Таблица 1.1. Команды строчного редактора MATLAB Комбинация клавиш Назначение Ctrl+b Перемещение курсора вправо на один символ Ctrl+f Перемещение курсора влево на один символ Ctrl +r Перемещение курсора вправо на одно слово Ctrl +1 Перемещение курсора влево на одно слово Home или Ctrl+a Перемещение курсора в начало строки End или Ctrl +e Перемещение курсора в конец строки Up и Down Перелистывание предыдущих команд вверх или вниз для подстановки в строку ввода Del или Ctrl+d Стирание символа справа от курсора Ctrl+h Стирание символа слева от курсора Ctrl+k Стирание до конца строки Esc Очистка строки ввода Ins Включение/выключение режима вставки PgUp Перелистывание страниц сессии вверх PgDn Перелистывание страниц сессии вниз Команды управления окном. Рассмотрим команды управления окном командного режима: - clс - очищает экран и размещает курсор в левом верхнем углу пустого экрана; - home - возвращает курсор в левый верхний угол окна; - echo <file_name> on - включает режим вывода на экран текста script-файла (файла-сценария); 24 - echo <file_name> off - выключает режим вывода на экран текста script-файла; - echo <fi1e_name> - меняет режим вывода на противоположный; - echo on all - включает режим вывода на экран текста всех mфайлов; - echo off all - отключает режим вывода на экран текста всех m-файлов; - mоrе on - включает режим постраничного вывода (полезен при просмотре больших m-файлов); - mоrе off - отключает режим постраничного вывода (в этом случае для просмотра больших файлов надо пользоваться линейкой прокрутки). Работа с панелью инструментов. Панель инструментов (рис. 1.2) дает наиболее простой и удобный способ работы с системой MATLAB. При этом основные команды вводятся указанием курсора мыши на нужную кнопку с нажатием левой клавиши мыши. Кнопки имеют изображение, явно подсказывающее их назначение. Рис. 1.2. Часть окна системы MATLAB с меню и панелью инструментов Прежде всего перечислим назначение всех кнопок панели инструментов: - New M-file (Новый m-файл) - выводит пустое окно редактора m-файлов; - Open file (Открыть файл) - открывает окно для загрузки mфайла; - Cut (Вырезать) - вырезает выделенный фрагмент и помещает его в буфер; - Сору (Копировать) - копирует выделенный фрагмент в буфер; - Paste (Вставить) - переносит фрагмент из буфера в текущую строку ввода; - Undo (Отменить) - отменяет предшествующую операцию; - Redo (Повторить) - восстанавливает последнюю отмененную операцию; - Simulink - открывает окно браузера библиотек Simulink; - Help (Помощь) - открывает окно справки. 25 Вызов окна открытия нового файла. Кнопка New M-file открывает окно редактора/отладчика m-файлов. Это окно показано на рис. 1.3. Рис. 1.3. Пустое окно редактора/отладчика m-файлов По умолчанию файлу дается имя Untitled (безымянный), которое впоследствии (при записи файла) можно изменить на другое, отражающее тему задачи. Это имя отображается в титульной строке окна редактирования m-файла, которое размещается в окне редактора/отладчика. В редакторе/отладчике можно редактировать несколько m-файлов, и каждый из них будет находиться в своем окне редактирования, хотя активным может быть только одно окно, расположенное поверх других окон. Заметим, что панель инструментов является контекстнозависимой. Для редактора/отладчика m-файлов она имеет несколько иной набор инструментов, чем для окна командного режима работы. Вызов окна загрузки имеющегося файла. Кнопка Open file (Открыть файл) служит для загрузки в редактор/отладчик ранее созданных m-файлов, например входящих в пакет расширения (Toolbox) системы или разработанных пользователем. Она открывает окно, которое является типичным элементом интерфейса Windowsприложений и показано на рис. 1.4. 26 Рис. 1.4. Окно загрузки файла в окне редактора/отладчика В окне загрузки файлов с помощью раскрывающегося списка и вертикальной полосы прокрутки можно «пройтись» по всем дискам, папкам и файлам. Чтобы выбрать нужный файл для загрузки, его требуется выделить мышью. Выбор завершается двойным щелчком на имени файла, нажатием клавиши Enter или щелчком на кнопке Открыть. Любое из этих действий приводит к загрузке документа в текущее окно системы. Кнопка Отмена или клавиша Esc позволяет отказаться от загрузки. Для вызова одного из ранее использовавшихся документов достаточно щелкнуть мышью на его имени в списке, находящемся над командой Exit (Выход) в меню File. После загрузки файла с документом его текст появляется в текущем окне. Его можно начинать редактировать или запускать на исполнение. Операции с буфером обмена. Кнопки Cut (Вырезать), Сору (Копировать) и Paste (Вставить) реализуют наиболее характерные команды работы с буфером обмена (Clipboard). Первые две операции относятся к выделенным фрагментам сессии или текста m-файлов (если они выполняются в окне редактора/отладчика). Для выделения объектов можно использовать мышь, перемещая курсор по тексту при нажатой левой кнопке, или клавиши со стрелками в комбинации с клавишей Shift. На рис. 1.5 показан пример выделения содержимого матрицы М в окне документа MATLAB. Эта матрица формируется функцией magiс(n) и называется магической, поскольку сумма элементов любого 27 столбца, любой строки и даже любой диагонали равна одному и тому же числу - 34 для матрицы с n=4. Рис. 1.5. Окно документа с выделенным содержимым матрицы М Команда Cut (Вырезать) осуществляет вырезание выделенного фрагмента и размещение его в буфере. При этом вырезанный фрагмент удаляется из текста документа. Команда Сору (Копировать) просто копирует выделенный фрагмент в буфер, сохраняя его в тексте. Команда Paste (Вставить) вызывает объект из буфера (сохраняя объект в буфере) и помещает копию объекта на место в документе, указанное текстовым курсором. Эти операции реализуются как соответствующими кнопками, так и командами меню Edit (Редактировать). В MATLAB можно использовать контекстное меню, появляющееся при нажатии правой кнопки мыши. Например, установив курсор мыши на выделенный фрагмент матрицы М и нажав правую кнопку, можно увидеть меню, показанное на рис. 5.6. В нем, кстати, дублируется позиция с командой Сору (Копировать). Есть и ряд других доступных в данный момент команд. Содержимое буфера можно перенести в строку ввода, в окно редактора-отладчика m-файлов или даже в другое приложение. Допустим, мы хотим создать матрицу M1 с содержимым, которое размещено в буфере. Для этого достаточно набрать М1=[ и, нажав правую клавишу мыши, выбрать из появившегося меню команду Paste (Вставить). Этот момент фиксирует рис. 1.6. 28 Рис. 1.6. Подготовка к вставке данных матрицы из буфера Исполнив команду Paste, можно увидеть, что данные хранящейся в буфере матрицы появятся после открывающей квадратной скобки. Для создания матрицы Ml остается ввести закрывающую квадратную скобку ] и нажать клавишу Enter. Обратите внимание на команду Select All в контекстном меню. Эта команда позволяет выделить весь текст текущей сессии. А команда Clear Session очищает окно от содержимого данной сессии. Отмена результата предшествующей операции. Если выполненная операция оказалась ошибочной, то нажатие кнопки Undo (Отменить) панели инструментов приведет к отмене последнего действия, выполненного в текущей строке. Операции в предыдущих строках документа этой командой не отменяются. Если оказалось, что вы зря произвели отмену последней операции, то ее легко восстановить, введя с панели инструментов операцию Redo (Восстановить). Запуск приложения Simulink. Кнопка Simulink панели инструментов (или команда simulink из строки ввода) запускает одно из самых мощных приложений системы MATLAB - программу моделирования систем, построенных из типовых блоков. В результате выводится окно библиотеки типов блоков (рис. 1.7 справа). Эта библиотека содержит существенно расширенный набор компонентов - блоков, объединенных в тематические группы. Чтобы упростить поиск и выбор блоков, окно библиотеки организовано в виде браузера библиотеки. Окно браузера показано на рис. 1.7 слева. В нем видно дерево моделей с раскрывающимися ветвями-блоками. 29 Изображение компонентов выделенного блока дерева показывается в поле просмотра в правой части окна браузера. Для загрузки модели какой либо системы или устройства достаточно активизировать кнопку Ореn (Открыть), имеющую вид открывающейся папки. При этом появится окно, которое показано на рис. 1.7 сверху. Это стандартное окно загрузки файлов, принятое во всех приложениях операционной системы Windows. В нем можно выбрать и загрузить файл нужной модели. Рис. 1.7. Окно браузера библиотечных блоков программы Simulink Кнопка с треугольником в панели инструментов Simulink запускает процесс моделирования. О его результатах можно судить по показаниям регистрирующих приборов. Параметры каждого блока можно уточнить или задать с помощью окна параметров блока. Кнопка Create a new model (Создать новую модель) в окне библиотек Simulink открывает чистое окно редактора моделей. Любой блок можно перетащить мышью в это окно. Введенные таким образом блоки соединяются друг с другом линиями, для чего используется мышь, с помощью которой указываются точки соединений и осуществляется протягивание соединительных линий. 30 2.1. Средства контроля рабочей области и файловой системы Браузер рабочей области. Векторы и матрицы могут занимать большой объем памяти. Конечно, речь не идет о векторах или матрицах, содержащих несколько элементов или даже несколько десятков элементов. Хотя и в этом случае оценка их размеров полезна при разработке алгоритмов матричных вычислений и оценке их эффективности в части использования памяти. В левой части окна системы MATLAB имеется окно специального браузера рабочей области - Workspace Browser. Он служит для просмотра ресурсов рабочей области памяти. Браузер дает наглядную визуализацию содержимого рабочей области. Окно браузера рабочей области выполняет и другие важные функции — позволяет просматривать существующие в памяти объекты, редактировать их содержимое и удалять объекты из памяти. Для вывода содержимого объекта достаточно выделить его имя с помощью мыши и щелкнуть на кнопке Open (Открыть). Объект можно открыть и двойным щелчком на его имени в списке. Откроется окно редактирования массива Array Editor, показанное на рис. 1.8 применительно к матрице М. Рис. 1.8. Пример просмотра содержимого матрицы Окно редактирования матрицы дает удобный доступ для редактирования любого элемента матрицы по правилам, принятым при работе с электронными таблицами]. Основное из них — быстрый доступ к любому элементу матрицы. Можно менять тип значений элементов, выбирая его из списка, предоставляемого меню Numeric for- 31 mat (Формат чисел). В окне также выводятся данные о числе строк и столбцов матрицы. Команды просмотра рабочей области who и whos. Следует отметить, что просмотр рабочей области возможен и в командном режиме, без обращения к браузеру Workspace Browser. Команда who выводит список определенных переменных, а команда whos — список переменных с указанием их размера и объема занимаемой памяти. Браузер файловой структуры. Для просмотра файловой структуры MATLAB служит специальный браузер файловой системы Path Browser, который запускается при обычной загрузке системы. Браузер файловой системы построен по типу общеизвестного Проводника (Explorer) операционных систем Windows. Окно дает возможность просмотра файловой системы ПК и выбора любого файла. Исполнив команду Open (Открыть) из контекстного меню правой клавиши мыши или дважды щелкнув по выделенной строке с именем файла, можно ввести этот файл в окно редактора/отладчика mфайлов. При этом редактор запустится автоматически и его окно с готовым для редактирования выбранным файлом появится на экране. 2.2. Работа с меню Команды, операции и параметры. Открытая позиция строки меню содержит различные операции и команды. Выделенная команда или операция исполняется при нажатии клавиши Enter (Ввод). Выполнение команды можно также осуществить щелчком мыши или нажатием на клавиатуре клавиши, соответствующей выделенному символу в названии команды. Между командами и операциями нет особых отличий, и в литературе по информатике их часто путают. Мы будем считать командой действие, которое исполняется немедленно. А операцией - действие, которое требует определенной подготовки, например открытие окна для установки определенных параметров. Параметр (option) - это значение определенной величины, действующее во время текущей сессии. Параметрами обычно являются указания на применяемые наборы шрифтов, размеры окна, цвет фона и т. д. Меню системы. Перейдем к описанию основного меню системы MATLAB. Это меню (см. рис. 5.1 сверху) выглядит довольно скромно и содержит всего шесть пунктов: - File - работа с файлами; - Edit - редактирование сессии; - View - вывод и скрытие панели инструментов; - Web - доступ к интернет-ресурсам; 32 - Windows - установка свойств окна; - Help - доступ к справочным подсистемам. Подменю File. Подменю File содержит ряд операций и команд для работы с файлами. Оно показано на рис. 1.9. Число операций и команд значительно сокращено по сравнению с тем же меню у предшествующей версии системы MATLAB. Рис. 1.9. Меню файловых операций File Меню File содержит следующие операции: - New - открывает подменю с позициями: - M-file - открытие окна редактора/отладчика m-файлов; - Figure - открытие пустого окна графики; - Model - открытие пустого окна для создания Simulink-модели; - GUI - открытие окна разработки элементов графического интерфейса пользователя; - Open - открывает окно загрузки файла; - Close Command Windows - закрывает окно командного режима работы (оно при этом исчезает с экрана); - Import data - открывает окно импорта файлов данных; - Save Workspace As... - открывает окно записи рабочей области в виде файла с заданным именем; - Set Path - открывает окно установки путей доступа к файловой системе; 33 - Preferences... - открывает окно настройки элементов интерфейса; - Print... - открывает окно печати всего текущего документа; - Print Selection... - открывает окно печати выделенной части документ; - Exit - завершает работу с системой. Открытие окон для подготовки новых файлов. Команда New, как уже указывалось, открывает окна для подготовки новых файлов. При этом загружается один из четырех редакторов: m-файлов, графических файлов, файлов Simulink-моделей или редактор элементов пользовательского интерфейса GUI. Окно последнего показано на рис. 1.10. Рис. 1.10. Окно редактора элементов GUI Загрузка и сохранение файлов. Команды Open... (Открыть) и Import data... (Импортировать данные) выводят стандартные окна для загрузки m-файлов и файлов данных. Команда Save Workspace As... (Сохраните рабочую область как...) открывает стандартное окно записи файлов с расширением .mat. Они хранят определения переменных, массивов, функций пользователя и иных объектов, созданных в ходе текущей сессии работы. Эти команды в силу общеизвестности в более подробных комментариях не нуждаются. 34 Установка путей доступа файловой системы. Команда Set Path... (Установить путь) открывает окно редактора путей доступа файловой системы. Это окно показано на рис. 1.11. Окно дает список папок с файлами системы MATLAB. Имеется возможность переноса папок вверх или вниз по списку, уничтожения их и переименования. По умолчанию задается правильная установка путей доступа, так что данными возможностями стоит пользоваться только в особых обстоятельствах, например при случайном переносе папок в другое место или при их переименовании. Рис. 1.11. Окно редактора путей доступа файловой системы Настройка элементов интерфейса. Для этого служит команда Preferences... (Предпочтения) Окно настройки элементов интерфейса представлено на рис. 1.12. В левой части этого окна имеется древообразный список элементов интерфейса системы, а в правой части—поле задания параметров для выбранного типа элементов. 35 Рис. 1.12. Окно настройки элементов интерфейса Печать. В MATLAB для печати используются стандартные средства Windows. Меню File содержит две команды печати. Первая из них - Print - служит для вывода окна печати, показанного на рис. 1.13. В этом окне также имеется возможность вывода окна со свойствами печати. В нем можно также определить, с какой страницы начинается печать, и задать число страниц при печати, если печатаемый материал не укладывается в одну страницу. Вторая команда - Print Selection - становится доступной, только если в сессии выделен какой-либо фрагмент. На печать при этом выводится только выделенный фрагмент. Подменю Edit. Поденю Edit (рис.1.14) содержит операции и команды редактирования, типичные для большинства приложений Windows: - Undo (Отменить) - отмена результата предшествующей операции; - Redo (Повторить) - отмена действия последней операции Undo; 36 Рис. 1.13. Окно печати - Cut (Вырезать) - вырезание выделенного фрагмента и перенос его в буфер; - Сору (Копировать) - копирование выделенного фрагмента в буфер; - Paste (Вставить) - вставка фрагмента из буфера в текущую позицию курсора; - Clear (Очистить) - операция очистки выделенной области; - Select All (Выделить) - выделение всей сессии; - Delete (Стереть) - уничтожение выделенного объекта; - Clear Command Windows (Очистить командное окно) очистка текста сессии (с сохранением созданных объектов); - Clear Command History (Очистить окно истории команд) очистка окна истории; Clear Workspace - очистка окна браузера рабочей области. Назначение указанных команд и операций уже рассматривалось. Отметим лишь, что команда Clear Command Window очищает окно командного режима работы и помещает курсор в верхний левый угол окна. Однако все определения, сделанные в течение стертых таким образом сессий, сохраняются в памяти компьютера. Заметим, что для очистки экрана используется также команда clc, вводимая в командном режиме. 37 Рис. 1.14. Меню Edit Подменю View и Window. С помощью меню View можно существенно менять вид пользовательского интерфейса. Меню Window активно только в случае, если в систему загружены файлы. При этом оно имеет единственную команду Close All (закрыть все окна) и открывающийся список всех загруженных файлов. Он позволяет выбрать окно указанного пользователем файла и сделать его открытым. 2.3. Редактирование и отладка m-файлов Интерфейс редактора/отладчика m-файлов. Для подготовки, редактирования и отладки m-файлов служит специальный редактор. Редактор можно вызвать командой edit из командной строки или командой New M-file из меню File. После этого в окне редактора можно создавать свой файл, пользоваться средствами его отладки и запуска. Перед запуском файла его необходимо записать на диск, используя команду Filе Save as (см. рис. 1.15) в меню редактора. После записи файла на диск можно заметить, что команда Run в меню Tools (Инструменты) редактора становится активной и позволяет произвести запуск этого файла. Запустив команду Run, можно наблюдать исполнение m-файла. На первый взгляд может показаться, что редактор/отладчик является лишним звеном в цепочке «пользователь — MATLAB». И в самом деле, текст файла можно было бы ввести в окно системы и получить тот же результат. 38 Рис. 1.15. Редактор/отладчик файлов при записи файла на диск Однако на деле редактор/отладчик выполняет важную роль. Он позволяет создать m-файл (программу) без той многочисленной «шелухи», которая сопровождает работу в командном режиме. Текст такого файла подвергается тщательной синтаксической проверке, в ходе которой выявляются и отсеиваются ошибки пользователя. Таким образом, редактор обеспечивает синтаксический контроль файла. Редактор имеет и другие важные отладочные средства - он позволяет устанавливать в тексте файла специальные метки, именуемые точками прерывания (breakpoints). При их достижении вычисления приостанавливаются, и пользователь может оценить промежуточные результаты вычислений (например, значения переменных), проверить правильность выполнения циклов и т. д. Наконец, редактор позволяет записать файл в текстовом виде в файловую систему MATLAB. Для удобства работы с редактором/отладчиком строки программы в нем нумеруются в последовательном порядке. Редактор является многооконным. Окно каждой программы оформляется как вкладка. Цветовые выделения и синтаксический контроль. Редактор/отладчик m-файлов выполняет синтаксический контроль программного кода по мере ввода текста. При этом используются следующие цветовые выделения: - ключевые слова языка программирования - синий цвет; - операторы, константы и переменные - черный цвет; - комментарии после знака % - зеленый цвет; 39 - символьные переменные (в апострофах) - зеленый цвет; - синтаксические ошибки - красный цвет. Благодаря цветовым выделениям вероятность недосмотра синтаксических ошибок снижается. Однако далеко не все ошибки диагностируются. Ошибки, связанные с неверным применением операторов или функций (например, применение оператора - вместо + или функции cos(x) вместо sin(x) и т. д.), не способна обнаружить ни одна система программирования. Устранение такого рода ошибок (их называют семантическими) - дело пользователя, отлаживающего свои алгоритмы и программы. Понятие о файлах-сценариях и файлах-функциях. mфайлы, создаваемые редактором/отладчиком, делятся на два класса: - файлы-сценарии или Script-файлы, не имеющие входных параметров; - файлы-функции, имеющие входные параметры. Для запуска файла-сценария из командной строки MATLAB достаточно указать его имя в этой строке. Файл-функция отличается от файла-сценария прежде всего тем, что созданная им функция имеет входные параметры, список которых указывается в круглых скобках. Используемые в файле-функции переменные являются локальными переменными, изменение значений которых в теле функции никоим образом не влияет на значения, которые те же самые переменные могут иметь за пределами функции. Иными словами, локальные переменные могут иметь те же имена (идентификаторы), что и глобальные переменные. Панель инструментов редактора/отладчика. Редактор имеет свое меню и свою инструментальную панель. Внешний вид инструментальной панели показан на рис. 1.16. По стилю данная панель похожа на панель инструментов окна командного режима работы, но имеет несколько иной набор кнопок. Рис. 1.16. Панель инструментов редактора/отладчика m-файлов Назначение кнопок панели инструментов редактора/отладчика следующее: - New - создание нового m-файла; - Open - вывод окна загрузки файла; - Save - запись файла на диск; - Print - печать содержимого текущего окна редактора; 40 - Cut - вырезание выделенного фрагмента и перенос его в буфер; - Сору - копирование выделенного объекта в буфер; - Paste - размещение фрагмента из буфера в позиции текстового курсора; - Undo - отмена предшествующей операции; - Redo - повтор отмененной операции; - Find text - нахождение указанного текста; - Show function - показ функции; - Set/Clear Breakpoint - установка/сброс точки прерывания; - Clear All Breakpoints - сброс всех точек прерывания; - Step - выполнение шага трассировки; - Step In - пошаговая трассировка с заходом в вызываемые mфайлы; - Step Out - пошаговая трассировка без захода в вызываемые m-файлы; - Save и Run - запись и сохранение; - Exit Debug Mode - выход из режима отладки. С назначением ряда из этих кнопок вы уже знакомы, поскольку оно аналогично описаному ранее для основного окна MATLAB. А вот назначение новых кнопок требуется обсудить. Работа с точками прерывания. Основным приемом отладки m-файлов является установка в их тексте точек прерывания Breakpoints. Они устанавливаются и сбрасываются с помощью кнопки Set/Clear Breakpoint. Сброс всех точек прерывания обеспечивается кнопкой Clear All Breakpoints. Рассмотрим рис. 1.17, на котором в окне редактора/отладчика приведен алгоритм построения графика. Для отладки надо сначала записать программу на диск, а. затем установить напротив интересующего нас выражения точку прерывания - она отчетливо видна на рисунке как красный кружок. Для этого необходимо поместить текстовый курсор в нужное место (напротив указанного выражения) и щелкнуть на кнопке Set/Clear Breakpoint или щелкнуть справа от номера строки. Теперь при пуске программы командой Run она будет исполнена до точки прерывания, после чего текущие значения x будут выведены в окне MATLAB. С помощью кнопки Step (Шаг) можно выполнить очередной шаг вычислений и т. д. Если отпала необходимость останова в точках прерывания, достаточно кнопкой Clear All Breakpoints удалить разом все точки прерывания. 41 Рис. 1.17. Применение точки прерывания в программе Желтая стрелка указывает, в каком месте программы произошла остановка. При остановке в точке прерывания вы можете провести контроль значений переменных как «вручную», так и с помощью организации вывода на просмотр результатов перед точкой прерывания. Вы можете задать выполнение программы без остановки при заходе, но с остановкой при выходе (кнопка Step Out), и с остановкой при заходе в вызываемые m-файлы (кнопка Step In). Кнопка Exit Debug Mode (Выход из режима отладки) прекращает операции отладки. Дефрагментация рабочей области. По мере задания одних переменных и стирания других рабочая область перестает быть непрерывной и начинает содержать «дыры» и всякий «мусор». Это рано или поздно может привести к ухудшению работы системы или даже к нехватке оперативной памяти. Подобная ситуация становится возможной, если вы работаете с достаточно большими массивами данных. Во избежание непроизводительных потерь памяти при работе с объемными данными (а векторы, матрицы и массивы относятся к таковым) следует использовать команду pack, осуществляющую дефрагментацию рабочей области. Эта команда переписывает все определения рабочей области на жесткий диск, очищает рабочую область и затем заново считывает все определения без «дыр» и «мусора» в рабочую область. Сохранение рабочей области сессии. Переменные и определения новых функций в системе MATLAB хранятся в особой области памяти, именуемой рабочей областью. MATLAB позволяет сохранять значения переменных в виде бинарных файлов с расширением .mat 42 Для этого служит команда save, которая может использоваться в ряде форм: save name — записывается рабочая область всех переменных в файле бинарного формата с именем name.mat; save name X — записывает только значение переменной X; save name X Y Z — записывает значения переменных X, Y и Z. Следует отметить, что возможности сохранения всего текста сессии, формируемой в командном режиме, команда save не дает. И не случайно! Дело в том, что сессия является результатом проб и ошибок, и ее текст наряду с правильными определениями содержит сообщения об ошибках, переопределения функций и переменных и т.д.. Необходимости сохранять такое «творчество» обычно нет. А если есть - для этого служит команда diary, описанная чуть ниже. Тем не менее это не значит, что вы не имеете возможности записать рациональное зерно, которое родилось в ходе попыток реализации ваших алгоритмов и методов решения задачи. Надо просто воспользоваться редактором и отладчиком, которые позволяют (после отладки программы) получить документ в корректной форме без синтаксических и иных ошибок. Такой документ далее сохраняется в текстовом формате в виде файла с расширением .m. Загрузка рабочей области сессии. Для загрузки рабочей области ранее проведенной сессии (если она была сохранена) можно использовать команду load: load name - загрузка ранее сохраненных в файле name.mat определений; 1oad ( 'name'....) — загрузка файла name.mat в форме функции. Если команда (или функция) load используется в ходе проведения сессии, то произойдет замена текущих значений переменных теми значениями, которые были сохранены в считываемом mat-файле. Завершение вычислений. Иногда из-за ошибок в программе или из-за сложности решаемой задачи MATLAB «зацикливается» и перестает выдавать результаты либо непрерывно выдает их, хотя в этом уже нет необходимости. Для прерывания вычислений в этом случае достаточно нажать одновременно клавиши Ctrl и С. Завершение работы с системой. Для завершения работы с системой можно использовать команды exit, quit или комбинацию клавиш Ctrl+Q. Если необходимо сохранить значения всех переменных (векторов, матриц) системы, то перед вводом команды exit следует дать команду save нужной формы. Команда load после загрузки си- 43 стемы считывает значения этих переменных и позволяет начать работу с системой с того момента, когда она была прервана. 2.4. Описание языка системы Особенности задания векторов и матриц. MATLAB - система, предназначенная для проведения вычислений с векторами, матрицами и массивами. Поэтому она по умолчанию предполагает, что каждая заданная переменная — это вектор, матрица или массив. Векторы задаются списком своих элементов, разделяемых пробелами или запятыми. Список заключается в квадратные скобки. Для выделения n -го элемента вектора V используется выражение V(n). Оно задает соответствующую индексированную переменную. Так, например, присваивавание » V=[l 2 3] V= 1 2 3 задает вектор V, имеющий три элемента со значениями 1, 2 и 3. После ввода вектора система выводит его на экран дисплея. Задание матрицы требует указания нескольких строк. Для разграничения строк используется знак ; (точка с запятой). Так, строка » М=[1 2 3; 4 5 6; 7 8 9]; задает квадратную матрицу, которую можно вывести на экран: »M M= 1 2 3 4 5 6 7 8 9 Возможен ввод элементов матриц и векторов в виде арифметических выражений, содержащих любые доступные системе функции, например: » V= [2+2/(3+4) exp(5) sqrt(l0)]: »V V= 2.2857 148.4132 3.1623 Для указания отдельного элемента вектора или матрицы используются выражения вида V(1) или M(i. j). Если нужно присвоить элементу M(i. j) новое значение х, следует использовать выражение M(i,j)=x 44 Например, если элементу М(2, 2) надо присвоить значение 10, следует записать » М(2,2)=10 Выражение М(i) с одним индексом дает доступ к элементам матрицы, развернутым в один столбец. Такая матрица образуется из исходной, если подряд выписать ее столбцы. Следующий пример поясняет такой доступ к элементам матрицы М: » М=[1 2 3;4 5 6; 7 8 9] М= 1 2 3 4 5 6 7 8 9 » М(2) ans = 4 Возможно задание векторов и матриц с комплексными элементами, например: >> i=sqrt(-1); >> M=[1 2;3 4]+i*[5 6;7 8] M= 1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 7.0000i 4.0000 + 8.0000i Наряду с операциями над отдельными элементами матриц и векторов система позволяет производить операции умножения, деления и возведения в степень сразу над всеми элементами, т. е. над массивами. Для этого перед знаком операции ставится точка. Например, оператор * означает умножение для векторов или матриц, а оператор .* - поэлементное умножение всех элементов массива. Так, если М - матрица, то М.*2 даст матрицу, все элементы которой умножены на скаляр - число 2. Проиллюстрируем применение системы MATLAB для выполнения простых векторных операций. Для этого зададим четырехэлементный вектор V со значениями элементов 1, 2, 3 и 4. А затем вычислим функции синуса и экспоненты с аргументом в виде вектора V и рассмотрим значение третьего элемента этого вектора. >> V=[1 2 3 4] V= 1 2 3 4 >> sin(V) ans = 45 0.8415 0.9093 0.1411 -0.7568 >> exp(V) ans = 2.7183 7.3891 20.0855 54.5982 >> V(3) ans = 3 Записи вектора - V=[l 2 3 4] и V=[1,2,3,4] - являются идентичными. В большинстве математических систем вычисление sin(V) и exp(V), сопровождалось бы выдачей ошибки, поскольку функции sin и ехр должны иметь аргумент в виде скалярной величины. Однако в MATLAB результат вычислений будет вектором того же размера, что и аргумент V, но элементы возвращаемого вектора будут синусами или экспонентами от элементов V. Произведем операции умножения и сложения всех элементов вектора с константой: >> V.^2 ans = 1 4 9 16 >> 3*V ans = 3 6 9 12 >> 2+V ans = 3 4 5 6 Операции с матрицей проиллюстрируем на примере вычисле- 22 ния функции синуса от элементов матрицы размером : >> M=[5 8; 10 3] M= 5 8 10 3 >> sin(M) ans = -0.9589 0.9894 -0.5440 0.1411 Перенос строки в сессии. В некоторых случаях вводимое математическое выражение может оказаться настолько длинным, что для него не хватит одной строки. В этом случае часть выражения можно перенести на новую строку с помощью знака многоточия «...» (3 или более точек). 46 Понятие о математическом выражении. Центральным понятием всех математических систем является математическое выражение. Оно задает то, что должно быть вычислено в численном либо символьном виде. Приведем примеры возможных выражений: 2+3 2.301*sin(x) 4+ехр(3)/5 sqrt(y)/2 sin(pi/2) Математические выражения строятся на основе чисел, констант, переменных, операторов, функций и спецзнаков. Дадим краткие пояснения сути этих понятий. Действительные и комплексные числа. Число - простейший объект языка MATLAB, представляющий количественные данные. Числа можно считать константами, имена которых совпадают с их значениями. Они могут быть целыми, дробными, с фиксированной и плавающей точкой. Возможно представление чисел в хорошо известном научном формате с указанием мантиссы и порядка числа, например: 0 2 -3 2.301 0.00001 123.45 е-24 -234.456е10 В мантисе чисел целая часть отделяется от дробной не запятой, а точкой, как принято в большинстве языков программирования. Для отделения порядка числа от мантиссы используется символ е. Знак «плюс» у чисел не проставляется, а знак «минус» у числа называют унарным минусом. Пробелы между символами в числах не допускаются. Числа могут быть комплексными z=Rе(x)+Im(x)*i. Такие числа содержат действительную Re(z) и мнимую Im(z) части. Мнимая часть имеет множитель i или j, означающий корень квадратный из -1: 3i 2j 2+3i -3.141i -123.456+2.7e-3i Функция real (z) возвращает действительную часть комплексного числа Re(z), a функция imag(z) — мнимую, Im(z). Для получения модуля комплексного числа используется функция abs(z), а для вы- 47 числения фазы — angle(z). Ниже даны простейшие примеры работы с комплексными числами: >> i ans = 0 + 1.0000i >> j ans = 0 + 1.0000i >> z=5+2i z= 5.0000 + 2.0000i >> abs(z) ans = 5.3852 >> real(z) ans = 5 >> imag(z) ans = 2 >> angle(z) ans = 0.3805 Константы и системные переменные. Константа - это предварительно определенное числовое или символьное значение, представленное уникальным именем. Например, числа 1, -2 и 1.23 являются безымянными числовыми константами. Другие виды констант в MATLAB принято назвать системными переменными, поскольку, с одной стороны, они задаются системой при ее загрузке, а с другой — могут переопределяться. Основные системные переменные, применяемые в системе MATLAB, указаны ниже: - i или j — мнимая единица (корень квадратный из -1); - pi - число - 3.1415926...; - eps - погрешность операций над числами с плавающей точкой (252 ); - realmin - наименьшее число с плавающей точкой (2-1022); - realmax - наибольшее число с плавающей точкой (2 1023); - inf - значение машинной бесконечности; - ans - переменная, хранящая результат последней операции и обычно вызывающая его отображение на экране дисплея; 48 - NaN — указание на нечисловой характер данных (Not-aNumber). Символьная константа — это цепочка символов, заключенных в апострофы, например: 'Трансформаторная подстанция', '2+3' Если в апострофы помещено математическое выражение, то оно не вычисляется и рассматривается просто как цепочка символов. Так что ' 2+3' не будет возвращать число 5. Однако с помощью специальных функций преобразования символьные выражения могут быть преобразованы в вычисляемые. Текстовые комментарии. Поскольку в инженерных расчетах MATLAB используется для достаточно сложных вычислений, важное значение имеет наглядность их описания. Она достигается с помощью текстовых комментариев. Текстовые комментарии вводятся с помощью символа %, например, так: >> % Раcчет нагрузки потребителей жилых домов Заметим, что в MATLAB при вводе буквы «с» русского алфавита в командной строке происходит перевод строки. Выходом из этой ситуации является замена русского «с» на английское, что на виде текстового комментария никак не сказывается. Не рекомендуется вводить русскоязычные комментарии и в тесты m-файлов при подготовке их в редакторе/отладчике. Это нередко делает программы неработоспособными. Жаловаться тут бесполезно — MATLAB англоязычный продукт и официальной локализованной русской версии этой системы пока нет. Переменные и присваивание им значений. Переменные это имеющие имена объекты, способные хранить некоторые, обычно разные по значению, данные. В зависимости от этих данных переменные могут быть числовыми или символьными, векторными или матричными. В системе MATLAB можно задавать переменным определенные значения. Для этого используется операция присваивания, вводимая знаком равенства между именем переменной и математическим выражением. Типы переменных заранее не декларируются. Они определяются выражением, значение которого присваивается переменной. Так, если это выражение — вектор или матрица, то переменная будет векторной или матричной. Имя переменной (ее идентификатор) может содержать сколько угодно символов, но запоминается и идентифицируется только 31 начальный символ. Имя любой переменной не должно совпадать с именами других переменных, функций и процедур системы, т. е. оно должно быть уникальным. Имя должно начинаться с буквы, может содержать буквы, цифры и символ подчеркивания _. Недопустимо 49 включать в имена переменных пробелы и специальные знаки, например +,.-, *, / и т. д., поскольку в этом случае правильная интерпретация выражений становится невозможной. Для обозначений переменных желательно использовать содержательные имена. Переменные могут быть обычными и индексированными, то есть элементами векторов или матриц. Могут использоваться и символьные переменные, причем символьные значения заключаются в апострофы, например, h='Удельная мощность потребителя'. Уничтожение определений переменных. В памяти компьютера переменные занимают определенное место, называемое рабочей областью (workspace). Для очистки этой области используется функция clear в разных формах, например: - clear — уничтожение определений всех переменных; - clear x — уничтожение определения переменной х; - clear a, b, с — уничтожение определений нескольких переменных. Стертая в рабочей области переменная становится неопределенной. Использовать неопределенные переменные нельзя, и такие попытки будут сопровождаться выдачей сообщений об ошибке. Операторы и функции. Оператор - это специальное обозначение для определенной операции над данными - операндами. Например, простейшими арифметическими операторами являются знаки суммы +, вычитания -, умножения * и деления /. Операторы используются совместно с операндами. Например, в выражении 6+5 знак + является оператором сложения, а числа 6 и 5 - операндами. Следует отметить, что большинство операторов относится к матричным операциям, что может служить причиной серьезных недоразумений. Например, операторы умножения * и деления / вычисляют произведение и частное от деления двух многомерных массивов, векторов или матриц. Есть ряд специальных операторов, например, оператор \ означает деление справа налево, а операторы . * и . / означают соответственно поэлементное умножение и поэлементное деление массивов. Следующие примеры поясняют сказанное на примере операций с векторами: >> V1=[1 2 3 4] V1 = 1 2 3 4 >> V2=[5 6 7 8] V2 = 50 5 6 7 8 >> V1/V2 ans = 0.4023 >> V1./V2 ans = 0.2000 0.3333 0.4286 0.5000 >> V1.*V2 ans = 5 12 21 32 Полный список операторов можно получить, используя команду » help ops. Приведем часть полного списка операторов, содержащую арифметические операторы: >> help ops Arithmetic operators. plus Plus + uplus Unary plus + minus Minus - uminus Unary minus - mtimes Matrix multiply * times Array multiply .* mpower Matrix power ^ power Array power .^ mldivide Backslash or left matrix divide \ mrdivide Slash or right matrix divide / ldivide Left array divide .\ rdivide Right array divide ./ kron Kronecker tensor product 51 kron Функции — это имеющие уникальные имена объекты, выполняющие определенные преобразования своих аргументов и при этом возвращающие результаты этих преобразований. Возврат результата — отличительная черта функций. При этом результат вычисления функции с одним выходным параметром подставляется на место ее вызова, что позволяет использовать функции в математических выражениях, например функцию sin в 4*sin(pi/5). Функции в общем случае имеют список аргументов (параметров), заключенный в круглые скобки. Многие функции допускают ряд форм записи, отличающихся списком параметров. Если функция возвращает несколько значений, то она записывается в виде [Yl, Y2....]=func(Xl, X2...) где Yl, Y2,... - список выходных параметров а XI, Х2.... — список входных аргументов (параметров). Со списком элементарных функций можно ознакомиться, выполнив команду >> help elfun, а со списком специальных функций — с помощью команды >> help specfun. Функции могут быть встроенными (внутренними) и внешними, или m-функциями. Так, встроенными являются наиболее распространенные элементарные функции например, sin(x) и ехр(у), тогда как функция sinh(x) является внешней функцией. Внешние функции содержат свои определения в m-файлах. Встроенные функции хранятся в откомпилированном ядре системы MATLAB, в силу чего они выполняются предельно быстро. Применение оператора: (двоеточие). Часто необходимо произвести формирование упорядоченных числовых последовательностей. Такие последовательности нужны для создания векторов или значений абсциссы при построении графиков. Для этого в MATLAB используется оператор : (двоеточие), имеющий синтаксис: Начальное_значение:Шаг:Конечное_значение Данная конструкция порождает возрастающую последовательность чисел, которая начинается с начального значения, идет с заданным шагом и завершается конечным значением. Если шаг не задан, то он принимает значение 1. Если конечное значение указано меньшим, чем начальное значение, — выдается сообщение об ошибке. Примеры применения оператора : даны ниже: >> 1:6 ans = 1 2 3 4 5 6 >> 0:2:20 ans = 0 2 4 6 8 10 12 14 16 18 20 52 Как отмечалось, принадлежность MATLAB к матричным системам вносит коррективы в назначение операторов и приводит при неумелом их использовании к ошибкам. Рассмотрим следующий характерный пример: >> x=0:6 x= 0 1 2 3 4 5 6 >> sin(x) ans = 0 0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794 >> x*sin(x) ??? Error using ==> * Inner matrix dimensions must agree. >> x.*sin(x) ans = 0 0.8415 1.8186 0.4234 -3.0272 -4.7946 -1.6765 Вычисление массива синусов здесь прошло корректно. А вот вычисление массива значений функции x*sin(x) привело к выдаче сообщения об ошибке. Здесь необходимо использовать оператор поэлементного умножения .* . Выражения с оператором : могут непосредственно использоваться в качестве аргументов функций для получения множественных их значений, например: >> sin(0:2:10) ans = 0 0.9093 -0.7568 -0.2794 0.9894 -0.5440 3. Графика MATLAB Система MATLAB имеет весьма большое разнообразие средств графики, начиная от команд построения графиков функций одной переменной в декартовой системе координат и кончая комбинированными и презентационными графиками с элементами анимации, а также средствами проектирования графического пользовательского интерфейса (GUI). Вывод на экран результатов построения производится в специальных графических окнах. Рассмотрим интерфейс этих окон. 3.1. Интерфейс графических окон Графическое окно MATLAB представлено на рис. 1.18. Это обычное масштабируемое и перемещаемое окно Windows-приложения. 53 MATLAB может создавать множество таких окон. Однако размещение графики в окне сессии не предусмотрено. Это возможно в специальном расширении Notebook, позволяющем встраивать объекты MATLAB (тексты, строки ввода и вывода, графики) в документы текстового редактора Word. Рис. 1.18. Графическое окно MATLAB Меню этого окна похоже на меню окна командного режима работы системы MATLAB. Однако при внимательном просмотре заметен ряд отличий. Прежде всего в меню Edit окна графики наряду со стандартными операциями работы с буфером есть ряд новых команд: - Copy Figure (Копировать рисунок) - копирование графика в буфер; - Copy Options (Копировать параметры) - копирование параметров графика: - Figure Properties (Свойства рисунка) - вывод окна свойств графика; - Axes Properties (Свойства осей) - вывод окна свойств осей графика; 54 - Current Object Properties (Свойства текущего объекта) вывод окна свойств текущего объекта. Большинство графиков, которые описываются в книге, представлены копиями самих графиков, а не всего графического окна. Для получения таких копий использовалась команда Copy Figure из меню Edit окна. Панель инструментов камеры обзора. Отличительной особенностью окна графики стало появление второй инструментальной панели со средствами форматирования трехмерной (3D) графики. Эта панель (она видна на рис. 5.25 под основной панелью инструментов) выводится командой View > Camera Toolbar. Эта панель управляет некоторой воображаемой фотокамерой (или просто камерой), с помощью которой как бы наблюдается объект. Кнопки имеют наглядные изображения, поясняющие их действие. Меню инструментов Tools. Действия кнопок панели инструментов камеры обзора продублированы в меню Tools (Инструменты) на рис. 5.25 оно представлено в открытом состоянии. Состав команд указанного подменю следующий: - Edit Plot (Редактировать график) - редактирование графика; - Zoom In (Увеличение) - увеличение масштаба графика; - Zoom Out (Уменьшение) - уменьшение масштаба графика; - Rotate 3D (Вращение 3D) - вращение в пространстве; - Move Camera (Передвинуть камеру) - установка камеры обзора; - Camera Motion (Передвижение камеры) - установка перемещения камеры обзора; - Camera Axes (Оси камеры) - установка координатных осей при работе с камерой; - Camera Reset (Установка начального состояния камеры) сброс установок камеры; - Basic Fitting - проведение аппроксимации и регрессии; - Data Statistics - получение статистических данных для точек графика. Две последние позиции этого меню предоставляют весьма важные в инженерных расчетах возможности обработки точек графика - выполнение регрессии множеством методов с выводом (где это возможно) уравнения регрессии на график и вычисление статистических параметров для этих точек. 55 3.2. Вращение графиков мышью. Построенную фигуру можно поворачивать мышью и наблюдать ее под разными углами. Рассмотрим эту возможность на примере построения логотипа системы MATLAB - мембраны. Для этого, введя команду membrane, получим исходный график, представленный на рис. 1.19. Рис. 1.19. Построение мембраны - логотипа системы MATLAB Для вращения графика достаточно активизировать последнюю справа кнопку панели инструментов с изображением пунктирной окружности со стрелкой. Теперь, введя курсор мыши в область графика и нажав левую кнопку мыши, можно круговыми движениями заставить график вращаться вместе с обрамляющим его параллелепипедом (рис. 1.20). Заметим, что вращать можно и двумерные графики, наблюдая поворот плоскости, в которой они построены. Никакого дополнительного программирования такое вращение не требует. 56 Рис. 1.20. Вращение трехмерной фигуры мышью Операции вставки. Операции вставки возможны с помощью основной панели инструментов и из позиции Insert (Вставка) меню графического окна. Рис. 1.21 показывает пример рисунка, в котором выполнены основные операции вставки с помощью команд меню Insert (Вставка). Это нанесение надписей по осям, титульной надписи, надписи внутри рисунка, стрелки, отрезка прямой, легенды и шкалы цветов. На приведенном рисунке меню Insert показано в открытом состоянии. Рис. 1.21. Возможные операции вставки в графическом окне 57 3.3. Построение графиков функций одной переменной Функции одной переменной у(х) находят широкое применение в практике инженерных расчетов. Для отображения таких функций используются графики в декартовой (прямоугольной) системе координат. При этом обычно строятся две оси - горизонтальная X и вертикальная Y, а затем задаются координаты х и у, определяющие узловые точки функции у(х). После этого узловые точки последовательно соединяются друг с другом отрезками прямых, т.е. осуществляется их линейная интерполяция. Поскольку MATLAB является матричной системой, совокупность точек у(х) должна задаваться векторами X и Y одинакового размера. Графическая функция plot. Для построения графиков функций в декартовой системе координат служит команда plot. Синтаксис этой команды имеет несколько вариантов: plot(Y) plot(X1,Y1,...) plot(X1,Y1,LineSpec,...) plot(...,'PropertyName',PropertyValue,...) Вариант plot(Y) - строит график у(i), где значения у берутся из вектора Y, a i представляет собой индекс соответствующего элемента. Приведем два примера использования этого варианта. В первом примере рассмотрим построение графика обычной синусоиды. Для этого зададим интервал изменения аргумента х от 0 до 10 с шагом 0,1, т.е. зададим 100 узловых точек. Соответствующие команды и сам график представлены на рис. 1.22. >> x=0:0.1:10; >> plot(sin(x)) Рис. 1.22. Пример построения графика синусоиды 58 Во втором примере рассмотрим график функции, содержащей комплексные аргументы (см. рис.1.23). >> x=[-2*pi:0.02*pi:2*pi]; >> y=sin(x)+i*cos(3*x); >> plot(y) Рис. 1.23. График функции, представляющей вектор Y с комплексными элементами Как видно из последнего рисунка, выполнение команды >> plot(y) привело к выводу на экран дисплея двух графиков - y1=real (Y) и y2=imag(Y)). Вариант plot(X1,Y1,...) строит график функции Y1(X1), координаты точек (х и у) которой берутся из векторов одинакового размера Y1 и X1. Если же X1 или Y1 - матрица, то строится семейство графиков по данным, содержащимся в строках матрицы. Приведенный ниже пример иллюстрирует построение графиков двух функций - sin(x) и cos(x), значения которых содержатся в матрице Y, а значения аргумента х хранятся в векторе X: >> x=[0 1 2 3 4 5] x= 0 1 2 3 4 5 >> Y=[sin(x);cos(x)] Y= 0 0.8415 0.9093 0.1411 -0.7568 -0.9589 1.0000 0.5403 -0.4161 -0.9900 -0.6536 0.2837 >> plot(x,Y) На рис. 1.24 слева показаны соответствующие графики. В данном случае отчетливо видно, что график слева состоит из отрезков. Для получения более подробных графических зависимостей необхо- 59 димо увеличить количество узловых точек (см. тот же рисунок справа). Рис. 1.24. Графики двух функций в декартовой системе координат. Вариант plot(X1,Y1,LineSpec,...) - аналогичен команде plot(X1,Y1,...) , но при этом можно задавать тип линии графика с помощью строковой константы LineSpec. Значения константы LineSpec приведены в таблицах 1.2-1.4. LineSpec Табл.1.2 Задание цвета линии Цвет линии y Желтый m Фиолетовый c Голубой r Красный g Зеленый b Синий w Белый k Черный 60 Табл.1.3 Задание типа маркера точки Тип маркера LineSpec . Точка o Окружность x Крест + Плюс * Звездочка s Квадрат d Ромб v Треугольник (вниз) ^ Треугольник (вверх) < Треугольник (влево) > Треугольник (вправо) p пентаграмма h шестиугольник LineSpec Табл.1.4 Задание типа линий Тип линии - Сплошная : Двойной пунктир -. Штрих-пунктир -- Штриховая 61 Таким образом, с помощью строковой константы LineSpec можно изменять цвет линии, представлять узловые точки различными отметками (точка, окружность, крест, треугольник с разной ориентацией вершины и т. д.) и менять тип линии графика. Рассмотрим пример построения графиков трех функций с различным стилем представления каждой из них: Графики функций для этого примера показаны на рис. 1.25. >> x=[-2*pi:0.1*pi:2*pi]; >> y1=sin(x); >> y2=sin(x).^2; >> y3=sin(x).^3; >> plot(x,y1,'-m',x,y2,'.+r',x,y3,'--ok') Рис. 1.25. Построение графиков трех функций на одном рисунке с разным стилем линий Здесь график функции yl строится сплошной фиолетовой линией, график у2 строится штрих пунктирной линией с точками в виде знака «плюс» красного цвета, а график уЗ строится штриховой линией с кружками черного цвета. Вариант plot(...,'PropertyName',PropertyValue,...) служит для задания свойств маркеров узловых точек графика. Возможно задание: - LineWidth – толщины линии; - MarkerEdgeColor – цвета окантовки; - MarkerFaceColor – цвета заливки. - MarkerSize – размера маркера. Для примера рассмотрим задание параметров маркера одной функции: 62 >> x=-pi:0.1*pi:pi; >> y=tan(sin(x))-sin(tan(x)); >> plot(x,y,'-rs','LineWidth',2,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',10) Соответствующий рисунок приведен ниже. Рис. 1.26. Построение графика с заданием параметров маркера узловых точек Заметим, что при отсутствии явного указания на цвет линий и маркеров он выбирается автоматически из таблицы цветов (белый исключается). Если линий больше шести, то выбор цветов повторяется. Кроме этого, линии можно выделить стилем. Графическая функция fplot. MATLAB имеет средства для построения графиков функций, заданных в интервале изменения аргумента х от xmin до xmax в символьном виде, без фиксированного шага изменения х. Для примера построим график функции sin(x)/x на интервле [-15,15] с выводом координатной сетки (рис.1.27): > fplot ('sin(x)/x',[-15 15]); >> grid on 63 Рис. 1.27. Построение графика sin(x)/x функцией fplot Графики в логарифмическом масштабе. Для построения графиков функций со значениями х и у, изменяющимися в широких пределах, нередко используются логарифмические масштабы. Рассмотрим команды, которые используются в таких случаях. Синтаксис команды loglogx(...) совершенно аналогичен синтаксису ранее рассмотренной команде plot: loglog(X1,Y1,...) loglog(X1,Y1,LineSpec,...) loglog(...,'PropertyName',PropertyValue,...) При использовании этой команды логарифмический масштаб используется как для координатной оси X, так и для оси У. Рассмотрим пример представления в логарифмическом масштабе графика функции ехр(х)/х: Соответствующий график представлен на рис. 1.28. >> x=logspace(-1,3); >> loglog(x,exp(x)./x); >> grid on Рис. 1.28. График функции ехр(x)/x в логарифмическом масштабе 64 Графики в полулогарифмическом масштабе. В случае, если предпочтителен полулогарифмический масштаб графиков, когда по одной оси задается логарифмический масштаб, а по другой - линейный, используются следующие команды: semilogx(Y) semilogx(X1,Y1,...) semilogx(X1,Y1,LineSpec,...) semilogx(...,'PropertyName',PropertyValue,...) для построения графика функции в логарифмическом масштабе с основанием 10 по оси X и линейном по оси Y; semilogy(...) – для построения графика функции в логарифмическом масштабе по оси Y и линейном по оси X. Запись параметров (...) в приведенных вариантах выполняется по аналогии с функцией plot(...). На рис. 1.29 приведен пример построения графика экспоненциальной функции при логарифмическом масштабе по оси У. » х=0:0.5:10; » semilogy(x,exp(x)) Рис. 1.29. График экспоненты в полулогарифмическом масштабе Заметим, что как следует из приведенного рисунка, при полулогарифмическом масштабе график экспоненциальной функции превратился в прямую линию. Столбцовые диаграммы. Столбцовые диаграммы достаточно широко используются в энергетике в статистических расчетах. Рассмотрим команды для построения таких диаграмм: bar(Y) bar(x,Y) bar(...,width) bar(...,'style') bar(...,LineSpec) 65 Вариант bar(Y) строит столбцовый график у(i), где значения у берутся из вектора Y, a i представляет собой индекс соответствующего элемента. Вариант bar(x, Y) строит столбцовый график элементов вектора Y (или группы столбцов для матрицы Y) со спецификацией положения столбцов, заданной значениями элементов вектора х, которые должны идти в монотонно возрастающем порядке. Приведем пример, график которого изображен на рис. 1.30. >> x = -2.9:0.2:2.9; >> bar(x,exp(-x.*x)); >> colormap hsv Рис. 1.30. График функции ехр(-x*x) Вариант bar(...,width) со спецификацией ширины столбцов (при width>1 столбцы начинают перекрываться). По умолчанию принимается width = 0,8. Вариант bar(...,'style') служит для выбора стиля изображения нескольких столбцов, соответствующих одному и тому же аргументу: grouped – столбцы изображаются параллельно один другому (рис. 1.31) и stacked – столбцы изображаются один над другим (рис. 1.32). >> subplot(2,1,1); >>bar(rand(12,3),'grouped'); >> colormap(cool) 66 Рис. 1.31. Столбцовая диаграмма в стиле grouped >> subplot(2,1,1); >> bar(rand(12,3),'stacked'); >> colormap(cool) Рис. 1.7. Столбцовая диаграмма в стиле stacked Вариант bar(...,LineSpec) предназначается для изменения с помощью строковой константы LineSpec цвета, типа маркера и типа линий графика. Помимо команды bar(...) существует аналогичная ей по синтаксису команда barh(...), которая строит столбцовые диаграммы с горизонтальным расположением столбцов. Построение гистограмм. Гистограмма характеризует распределение случайной величины Y в m интервалах в виде столбцовой 67 диаграммы. Для получения данных для гистограммы служит функция hist, записываемая в следующем виде: n = hist(Y) n = hist(Y,nbins) n = hist(Y,x) [n,xout] = hist(...) Вариант n = hist(Y) возвращает вектор частот попадания случайной величины Y для 10 интервалов, выбираемых автоматически. При этом, если Y - матрица, то определяется массив данных о частотах попадания для каждого из ее столбцов. Вариант n = hist(Y,nbins) аналогичен предыдущему, но используется x интервалов (x - скаляр). Вариант n = hist(Y,x) возвращает частоты попадания элементов вектора Y в интервалы, центры которых заданы элементами вектора x. Вариант [n,xout] = hist(...) возвращает частоты попаданий в интервалы и данные о центрах этих интервалов. В качестве примера рассмотрим построение гистограммы для 1000 случайных чисел (рис. 1.33). При этом параметры интервалов зададим вектором х. >> x = -4:0.2:4; >> y = randn(1000,1); >> hist(y,x) Рис. 1.33. Пример построения гистограммы 68 Ступенчатые графики. Ступенчатые графики визуально представляют собой ступеньки с огибающей, представленной функцией у(х). Такие графики используются, например, для отображения процессов квантования в дискретных системах автоматического управления функции напряжения, либо тока у(х), представленных рядом своих отсчетов. При этом в промежутках между отсчетами значения функции считаются постоянными и равными величине последнего отсчета. Для построения ступенчатых графиков в системе MATLAB используются модификации команды stairs: stairs(Y) stairs(X,Y) stairs(...,LineSpec) [xb,yb] = stairs(Y) [xb,yb] = stairs(X,Y) Команда stairs(Y) строит ступенчатый график по данным вектора Y. Команда stairs(X,Y) - строит ступенчатый график по данным вектора Y с координатами х переходов от ступеньки к ступеньке, заданными значениями элементов вектора X. Вариант stairs(...,LineSpec) аналогичен по действию вышеописанным командам, но строит график линиями, стиль которых задается строками LineSpec. Пример построение ступенчатого графика приведен на рис. 1.32. >> x = 0:.2:20; >> stairs(x,2*sin(x)) Рис. 1.32. Ступенчатый график функции 2*sin(x). 69 Обратите внимание на то, что отсчеты берутся через равные промежутки по горизонтальной оси. Если, к примеру, отображается функция времени, то stairs имеет вид квантованной по времени функции. Команда [xb,yb] = stairs(Y) возвращает вектор дескрипторов графических объектов. Функция [xb,yb] = stairs(X,Y) возвращает векторы xb и yb, которые позволяют построить график с помощью команды plot(xb,yb). График дискретных отсчетов функции. При квантовании непрерывных сигналов у(х) в теории управления нелинейных автоматических систем их графики удобно оформлять в виде совокупности дискретных отсчетов. При этом каждый отсчет представляется вертикальным отрезком с маркером узла на конце. Для построения графиков подобного вида используются различные варианты команды stem(...): stem(Y) stem(X,Y) stem(...,'fill') stem(...,LineSpec) h = stem(...) Вариант stem(Y) строит график функции с ординатами в векторе Y в виде отсчетов. Вариант stem(X,Y) строит график отсчетов с ординатами в векторе Y и абсциссами в векторе X. Вариант stem(...,'fill') строит график функции с закрашенными маркерами. Вариант stem(...,LineSpec) дает построения, аналогичные ранее приведенным командам, но со спецификацией линий LineSpec, подобной спецификации, приведенной для функции plot. И, наконец, вариант h = stem(...) возвращает вектор дескрипторов графических объектов. На рис.1.33 приведен пример, иллюстрирующий применение команды stem(...). >> x = 0:0.1:4; >> y = sin(x.^2).*exp(-x); >> stem(x,y,'fill') 70 Рис. 1.33. График дискретных отсчетов функции 3. 4. Построение трехмерных графиков Достаточно просто обеспечивается в MATLAB и построение функциональных зависимостей от двух независимых переменных. Надо только знать, какой командой реализуется тот или иной график. В этом существенную помощь можно получить из справочной системы MATLAB. Рассмотрим наиболее типовые случаи, возможные при расчетах в электроснабжении. Графики векторов. При анализе процессов электроснабжения часто требуется представление векторов в их обычном виде, то есть в виде стрелок, исходящих из начала координат и имеющих угол и длину, определяемые действительной и мнимой частью комплексных чисел, представляющих эти векторы. Для этого служит группа команд compass: compass(X,Y) compass(Z) compass(...,LineSpec) h = compass(...) Вариант compass(X,Y) строит вектора с компонентами (X,Y), представляющими действительную и мнимую части этих векторов. 71 Вариант compass(Z) эквивалентен команде compass (real (Z), imag(Z)). Вариант compass(...,LineSpec) аналогичен представленным выше командам, но позволяют задавать спецификацию линий построения LineSpec, подобную описанной для команды plot. И, наконец, вариант h = compass(...) возвращает вектор дескрипторов графических объектов. В следующем примере показано использование команды compass: >> z=[1-3i;2+3i;-4-3i]; >> compass(z) Рис. 1.34. Построение радиус-векторов Графики в полярной системе координат. В полярной системе координат любая точка представляется как конец радиус-вектора, исходящего из начала системы координат, имеющего длину rho и угол theta. Для построения графика функции rho(theta) используются варианты команды polar(...): polar(theta,rho) polar(theta,rho,LineSpec) Вариант polar(theta,rho) строит график в полярной системе координат, представляющий собой положение конца радиус-вектора с длиной rho и углом theta. 72 Вариант polar(theta,rho,LineSpec) аналогичен предыдущей команде, но позволяет задавать стиль построения с помощью строковой константы LineSpec по аналогии с командой plot. На рис. 1.35 приведен пример использования рассматриваемой команды. >> t = 0:.01:2*pi; >>polar(t,sin(2*t).*cos(2*t),'--r') Рис. 1.35. График функции в полярной системе координат Создание массивов данных для трехмерной графики. Специфика построения трехмерных графиков часто требует не просто задания векторов х и у, а определения двумерных массивов - матриц. Для создания таких массивов служит функции meshgrid и ndgrid. Функция meshgrid имеет модификации: [X,Y] = meshgrid(x,y) [X,Y] = meshgrid(x) [X,Y,Z] = meshgrid(x,y,z) Вариант [X,Y] = meshgrid(x,y) преобразует область, заданную векторами х и у, в массивы X и Y, которые могут быть использованы для вычисления функции двух переменных и построения трехмерных графиков. Строки выходного массива X являются копиями вектора х, а столбцы Y - копиями вектора у. Вариант [X,Y] = meshgrid(x) аналогичен предыдущему случаю при [X,Y] = meshgrid(x,x). 73 Вариант [X,Y,Z] = meshgrid(x,y,z) возвращает трехмерные массивы, используемые для вычисления функций трех переменных. Пример использования функции meshgrid приведен ниже. >> [X,Y] = meshgrid(1:3,10:14) X= 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 Y= 10 10 10 11 11 11 12 12 12 13 13 13 14 14 14 Функция ndgrid является многомерным аналогом функции meshgrid: [X1,X2,X3,...] = ndgrid(x1,x2,x3,...) [X1,X2,...] = ndgrid(x) Вариант [X1,X2,X3,...] = ndgrid(x1,x2,x3,...) преобразует область, заданную векторами x1,x2,x3,...), в массивы X1,X2,X3,..., которые в дальнейшем могут быть использованы для вычисления функций нескольких переменных и многомерной интерполяции. При этом i-я размерность выходного массива Xi является копией вектора xi. Вариант [X1,X2,...] = ndgrid(x) аналогичен выражению [X1,X2,X3,...] = ndgrid(x,x,x,...). Пример применения функции ndgrid представлен ниже: >> [X1,X2] = ndgrid(-2:1:2, 10:1:14) X1 = -2 -2 -2 -2 -2 -1 -1 -1 -1 -1 0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 X2 = 10 11 12 13 14 10 11 12 13 14 10 11 12 13 14 10 11 12 13 14 10 11 12 13 14 74 Графики электрических и магнитных полей. Для построения графиков полей служат команды quiver: quiver(X,Y,U,V) quiver(U,V) quiver(...,scale) quiver(...,LineSpec) quiver(...,LineSpec,'filled') h = quiver(...) Вариант quiver(X,Y,U,V) строит график градиентов поля в виде стрелок в узлах, задаваемых элементами массивов X и Y. При этом элементы массивов U и V указывают направление и размер стрелок; Вариант quiver(U,V) строит градиенты в равнорасположенных точках на плоскости (х,у). Вариант quiver(...,scale) автоматически масштабирует стрелки по сетке и затем вытягивает их по значению scale. При scale =0, векторы строятся без автоматического масштабирования. Вариант quiver(...,LineSpec) использует для векторов конкретно указанный тип линии. При этом маркеры рисуются у оснований, а не на концах векторов. Для отмены любого вида маркера используется спецификация '.'. Вариант quiver(...,LineSpec,'filled') строит график с закрашенными маркерами. Вариант h = quiver(...) строит график и возвращает вектор дескрипторов. Пример применения команды quiver приведен на рис.1. 36. >> [X,Y] = meshgrid(-2:.2:2); >> Z = X.*exp(-X.^2 - Y.^2); >> [DX,DY] = gradient(Z,.2,.2); >> quiver(X,Y,DX,DY) Контурные графики. При решении задач оптимального управления существует необходимость исследования топографии зависимостей функций цели управления от различных управляющих, возмущающих и выходных переменных. Для этого можно использовать контурные графики, которые представляют на плоскости функции двух переменных вида F(x,у) с помощью линий равного уровня. Они получаются, если трехмерная поверхность пересекается рядом плоскостей, расположенных параллельно друг другу. При этом контурный график представляет собой совокупность спроецированных на плоскость (х,у) линий пересечения поверхности F(х,у) плоскостями. 75 Рис. 1.36. Пример построения графика поля градиентов Для построения контурных графиков используются команды contour: contour(Z) contour(Z,n) contour(Z,v) contour(X,Y,Z) contour(X,Y,Z,n) contour(X,Y,Z,v) contour(...,LineSpec) [C,h] = contour(...) Вариант contour(Z) строит контурный график по данным матрицы Z, состоящий из 10 уровней, с автоматическим заданием диапазонов изменения х=[1:r] и у=[1:s], где [s,r]=size(Z). Вариант contour(X,Y,Z) строит контурный график по данным матрицы Z с явным указанием узловых точек координатами X и Y. Варианты contour(Z,n) и contour(X,Y,Z,n) аналогичны предыдущим, но с явным заданием количества линий равного уровня n. Варианты contour(Z,v) и contour(X,Y,Z,v) строят линии равного уровня для значений, указанных элементами вектора v. Вариант contour(...,LineSpec) аналогичен представленным выше командам, но позволяют задавать спецификацию линий построения LineSpec, подобную описанной для команды plot. 76 Вариант [C,h] = contour(...) возвращает дескрипторы - матрицу контурных линий С и вектор-столбец значений уровней h. Вычисленые дескрипторы могут использоваться как входные параметры для команды clabel. Пример построения контурного графика для критериальной функции показан на рис. 1.37. >> [X,Y] = meshgrid(-2:.01:2,-1.4:.01:1.4); >> Z=1000.*X.*exp(-X.^2-Y.^2); >> [C,h]=contour(X,Y,Z); >> clabel(C,h) Рис. 1.37. Контурный график, построенный с помощью команды contour Для построения трехмерных графиков используется команда plot3(...): plot3(X1,Y1,Z1,...) plot3(X1,Y1,Z1,LineSpec,...) plot3(...,'PropertyName',PropertyValue,...) h = plot3(...) Команда plot3(...) является аналогом команды plot (...), но относится к функции двух переменных z(x,у). Она строит аксонометрическое изображение трехмерных фигур, соединяя узловые точки отрезками прямых. Вариант plot3(X1,Y1,Z1,...) строит массив точек, представленных тремя одинаковыми матрицами X1,Y1 и Z1. Вариант plot3(X1,Y1,,Z1,LineSpec,...) позволяет задавать тип линий графика с помощью строковой константы LineSpec. 77 Вариант plot3(...,'PropertyName',PropertyValue,...) служит для задания свойств маркеров узловых точек графика. Вариант h = plot3(...) возвращает массивы дескрипторов. Пример построения трехмерной фигуры приведен на рис.1.38. >> t = 0:pi/50:10*pi; >> plot3(sin(t),cos(t),t); >> grid on Рис. 1.38. График трехмерной спирали, построенный линиями Рассмотрим пример использования команды plot3(...) для построения трехмерной поверхности (рис. 1.39). В данном случае строятся два графика одной и той же функции с взаимно перпендикулярными образующими линиями. Поэтому график имеет вид сетки без окраски ее ячеек (напоминает проволочный каркас фигуры). >> [X,Y]=meshgrid([-3:0.15:3]); >> Z=X.^2+Y.^2; >> plot3(X,Y,Z,'-r',Y,X,Z,'-b') >> grid on Сетчатые 3D-графики с окраской. Наиболее представительными и наглядными являются сетчатые графики поверхностей с окраской. Для этого используется команда mesh(…): 78 Рис. 1.39. График функции в сетчатом представлении mesh(X,Y,Z) mesh(Z) mesh(...,C) mesh(...,'PropertyName',PropertyValue,...) h = mesh(...) Вариант mesh(X,Y,Z) изображает сетчатую поверхность Z(X,Y) с цветовой гаммой, зависящей от уровня точки. Вариант mesh(...,C) аналогичен предыдущему но с заданием цветов узлов поверхности, определяемых массивом С. Вариант mesh(Z) строит сетчатую поверхность по данным матрицы Z с автоматическим заданием диапазонов изменения х=[1:n] и у=[1:m], где [m,n]=size(Z). Вариант mesh(...,'PropertyName',PropertyValue,...) служит для задания свойств маркеров узловых точек поверхности. Функция h=mesh(…) возвращает дескриптор для объекта класса surface. Приведем пример применения команды mesh (рис.1.40) >> [X,Y]=meshgrid([-3:0.15:3]); >> Z=X.^2+Y.^2; 79 >> mesh(X,Y,Z) >> grid on Рис. 1.40. График поверхности, созданный командой mesh(X,Y,Z) Для большей представительности результатов команда mesh может применяться еще в двух модификациях: meshc(...) meshz(...) В первом случае на нижнем основании координатного объема изображаются линии равного уровня (рис. 1.41, слева), а во втором – изображается объемное основание поверхности (рис. 1.41, справа). 80 Рис. 1.41. Модификации изображения командами meshc(…) и meshz(…) Tрехмерные контурные графикию. Трехмерный контурный график представляет собой расположенные в пространстве линии равного уровня, полученные при расслоении трехмерной фигуры рядом секущих плоскостей, расположенных параллельно опорной плоскости фигуры. При этом в отличие от двумерного контурного графика линии равного уровня отображаются в аксонометрии. Для получения трехмерных контурных графиков используется команда contour3: contour3(Z) contour3(Z,n) contour3(Z,v) contour3(X,Y,Z) contour3(X,Y,Z,n) contour3(X,Y,Z,v) contour3(...,LineSpec) [C,h] = contour3(...) Команда contour3(...) имеет синтаксис, аналогичный команде contour(...), но строит линии равного уровня в аксонометрии с использованием функциональной окраски (окраска меняется вдоль оси Z). Вариант contour3(Z) строит контурные линии для поверхности, заданной массивом Z, без учета диапазона изменения х и у. Вариант contour3(Z,n) строит то же, что и предыдущая команда, но с использованием n секущих плоскостей (по умолчанию n=10). Вариант contour3(X,Y,Z) строит контурные линии для поверхности, заданной массивом Z, с учетом изменения х и у. Двумерные массивы X и Y создаются с помощью функции meshgrid. Вариант contours3(X,Y,Z,n) строит то же, что и предыдущая команда, но с использованием n секущих плоскостей. Приведем пример применения команды contour3: >> [X,Y] = meshgrid(-2:.01:2,-1.4:.01:1.4); >> Z=1000.*X.*exp(-X.^2-Y.^2); >> [C,h]=contour3(X,Y,Z); >> clabel(C,h) Соответствующий данному примеру график представлен на рис. 1.42. С командой contour3 связаны следующие одноименные функции (не выполняющие графические построения): 81 - C=contour3(...) - возвращает матрицу описания контурных линий С для использования командой clabel; Рис. 1.42. Трехмерный контурный график для функции peaks - [С, H]=contour3(...) - возвращает массив С и вектор-столбец Н дескрипторов объектов path для каждой линии уровня. Свойство UserData каждого объекта содержит значение высоты для соответствующего контура. В качестве самостоятельного задания студентам рекомендуется дополнительно ознакомиться с командами axis, caxis, colormap, hold, shading и view и их модификациями, которые служат для большей эффектности показа поверхности или фигуры: axis([xmin xmax ymin ymax]) axis([xmin xmax ymin ymax zmin zmax cmin cmax]) v = axis axis auto axis manual caxis([cmin cmax]) caxis auto colormap(map) colormap('default') hold on hold off hold 82 shading flat shading faceted shading interp view(az,el) view([az,el]) view([x,y,z]) view(2) view(3) view(T) Построение поверхности с окраской. Особенно наглядное представление о поверхностях дают сетчатые графики, использующие закраску ячеек. Например, цвет окраски поверхности z(x, у) может быть поставлен в соответствие с высотой z поверхности с выбором для малых высот темных тонов, а для больших - светлых. Для построения таких поверхностей используются команды класса surf (...): surf(Z) surf(X,Y,Z) surf(X,Y,Z,C) surf(...,'PropertyName',PropertyValue) surfc(...) h = surf(...) h = surfc(...) Вариант surf(X,Y,Z,C) строит цветную параметрическую поверхность по данным матриц X, Y и Z с цветом, задаваемым массивом С. Вариант surf(X,Y,Z) аналогичен предшествующей команде при C=Z, т.е. цвет участков задается их высотой по оси z. Вариант surf(Z) строит поверхность по данным матрицы Z с автоматическим заданием диапазонов изменения х=[1:n] и у=[1:m], где [m,n]=size(Z). Вариант h=surf (...) возвращает дескриптор объекта класса surface. В качестве примера рассмотрим построение все той же поверхности – параболоида (см. рис.1.43): >> [X,Y]=meshgrid([-3:0.15:3]); >> Z=X.^2+Y.^2; >> Surf(X,Y,Z) >> grid on 83 Из последнего рисунка видно, что благодаря функциональной окраске график поверхности стал гораздо более выразительным по сравнению со всеми представленными ранее вариантами. Рис. 1.43. График параболоида с функциональной окраской ячеек В следующем примере используется окраска поверхности оттенками серого цвета с выводом шкалы цветовых оттенков (см. рис. 1.44). >> [X,Y]=meshgrid([-3:0.1:3]); >> Z=sin(X)./(X.^2+Y.^2+0.3); >> surf(X,Y,Z); >> colormap(gray) >> shading interp >> colorbar Здесь команда >> colormap(gray) задает окраску тонами серого цвета, а команда >> shading interp обеспечивает устранение изображения сетки и производит интерполяцию для оттенков цвета объемной поверхности. 84 Обычно применение интерполяции для окраски придает поверхностям и фигурам более реалистичный вид, однако фигуры каркасного вида дают более точные количественные данные о каждой точке. Для повышения наглядности представления поверхностей можно использовать дополнительный график линий равного уровня, получаемый путем проецирования поверхности на опорную плоскость графика. Для этого используется команда surfс. Рис. 1.44. График поверхности с окраской серым цветом Построение освещенной поверхности. Пожалуй, наиболее реалистичный вид имеют графики поверхностей, в которых имитируется освещение от точечного источника света, расположенного в заданном месте координатной системы. Такие графики имитируют оптические эффекты рассеивания и отражения света. Для получения графиков с эффектом освещенной поверхности используется команда surf1: surfl(Z) surfl(X,Y,Z) surfl(...,'light') surfl(...,s) surfl(X,Y,Z,s,k) h = surfl(...) Команда surfl(...) аналогична команде surf(...), но строит график поверхности с подсветкой от источника света, положение которо- 85 го в системе декартовых координат задается вектором s = [sx sy sz], а в системе сферических координат - вектором s = [azimuth elevation]. Вариант surfl (..., 'light') позволяет при построении задать цвет подсветки с помощью объекта light. Вариант surfl (..., 'cdata') при построении имитирует эффект отражения. Вариант surfl(X,Y,Z,s,k) задает построение поверхности с параметрами, заданными вектором k = [ka kd ks shine], где: ka - коэффициент фоновой подсветки; kd - коэффициент диффузного отражения; ks - коэффициент зеркального отражения и shine - коэффициент глянцевитости. Вариант h = surfl(...) возвращает дескрипторы поверхности и источников света. По умолчанию вектор k=[.55,.6,.4,10], а вектор s задает углы азимута и возвышения в 45°. На рис.1.45 представлен пример применения команды surfl. >> [X,Y]=meshgrid([-3:0.1:3]); >> Z=sin(X)./(X.^2+Y.^2+0.3); >> surfl(X,Y,Z) >> colormap(gray) >> shading interp >> colorbar 86 Рис. 1.45. График поверхности с имитацией ее освещения точечным источником Средства управления подсветкой и обзором фигур. В качестве самостоятельного задания студентам рекомендуется дополнительно ознакомиться со следующими, которые служат для большей эффектности показа поверхности: lighting - управление подсветкой; material - имитация свойств рассеивания света различными материалами; Следующие три команды позволяют управлять углами просмотра, под которыми рассматривается видимая в графическом окне фигура: view - задание положения точки просмотра; viewmtx - задание и вычисление матрицы вращения; rotate3d - задание поворота трехмерной фигуры. 3.5. Форматирование графиков Контекстное меню. Для переключения в режим редактирования графика нужно щелкнуть на кнопке Edit Plot (Редактировать график) с изображением курсора-стрелки. В этом режиме графиком можно управлять с помощью контекстного меню, вызываемого щелчком правой кнопки мыши. Вид этого меню при курсоре, расположенном в области трехмерного графика вне построенных трехмерных графических объектов, показан на рис. 1.46. С помощью мыши можно также выделить график. Щелчок левой клавишей выводит рамку вокруг рисунка. Теперь на график можно наносить стрелки, поясняющие надписи (кнопка с буквой А) и т. д. 87 Рис. 1.46. График в состоянии редактирования и контекстное меню Графики в системе MATLAB строятся достаточно просто. Связано это с тем, что многие свойства графиков установлены по умолчанию. К таким свойствам относятся вывод или скрытие координатных осей, положение их центра, цвет линии графика, ее толщина и т. д. В новой версии MATLAB 6.5 для изменения свойств графиков используются принципы визуального контроля за стилем (видом) всех объектов графиков. Это позволяет легко, просто и наглядно придать графикам должный вид перед записью их в виде файлов на диск. Можно сказать, что в этой части реализованы отдельные принципы визуально-ориентированного программирования графических средств. Рассмотрим возможности форматирования графиков. Форматирование линий графиков. MATLAB имеет возможность легко настраивать и корректировать свойства графиков с помощью специальных средств. Форматирование графиков производится командами Figure Properties (свойства фигуры) и Axis Properties (свойства осей) со всеми необходимыми настройками. При построении графиков появляется графическое окно. По умолчанию оно выводятся с панелью инструментов с рядом кнопок вполне очевидного назначения. Щелкнув на кнопке Edit Plot (Редак- 88 тировать график) в панели инструментов окна графики и щелкнув по графику, можно заметить, что график выделился и вокруг него появилась рамка. Теперь, указав курсором мыши на тот или иной объект графика и щелкнув снова левой клавишей, можно наблюдать выделение объекта и появление дополнительного окна его форматирования. Например, указав в режиме редактирования мышью на линию графика (и дважды щелкнув левой клавишей), можно увидеть окно форматирования линий графика, показанное на рис. 1.47 справа. Часть окна графики с выделенным графиком видна слева. Обратите внимание на появление на линии графика ряда черных квадратиков, — они используются для указания курсором мыши именно на линию графика, а не на другие объекты. В этом окне открыта главная для операций форматирования вкладка - Style (Стиль). Она устанавливает стиль отображения линии, т. е. ее вид (например, сплошная линия или пунктирная), ширину и цвет, а также параметры маркеров, отмечающих опорные точки графиков. Полезно знать, что кнопка Apply (Применить) позволяет применить сделанные установки к графику до закрытия окна диалога. Кнопка ОК вводит сделанные установки и закрывает окно диалога. Назначение других кнопок очевидно. Рис. 1.47. Окно графика и окно форматирования линий. Форматирование маркеров опорных точек. В нашем случае опорные точки задаются ранжированной переменной х, имеющей ряд 89 значений от -15 до +15 с шагом 0,1. Эти точки появляются на графике, если в поле свойств маркера Marker Properties (Свойства маркера) из меню Style (Стиль) выбрать стиль маркера. На рис. 1.48, к примеру, показано построение графика с маркерами опорных точек в виде окружностей. Рис. 1.48. Пример построения графика с маркерами Можно задавать размеры маркеров, цвет их закраски и цвет окантовки. Так, на рис. 1.10 при его просмотре на экране цветного дисплея маркеры имеют вид окружностей с условным размером 4, цветом окантовки красным и цветом закраски желтым. Маркеры можно задавать в виде окружностей, прямоугольников, крестиков, ромбиков и т. д. Применение маркеров делает графики более наглядными. Если строится график нескольких функций, то можно форматировать линии и маркеры каждой кривой отдельно. Рис. 1.49 показывает пример такого форматирования. >> x=-6:0.1:6; >> plot(x,sin(x),x,sin(x).^3,x,sin(x).^5) 90 Рис. 1.49. Пример форматирования для графика трех функций Форматирование осей графиков. Аналогично описанным выше правилам выполняется форматирование и других объектов графиков. Например, указав курсором мыши на оси графиков (на них тоже есть метки в виде черных квадратиков) и дважды щелкнув левой клавишей мыши, можно увидеть появление окна форматирования объектов дескрипторной графики Property Editor (Редактор свойств, Графический редактор свойств) (рис. 1.50), настроенного на форматирование осей. 91 Рис. 1.50. Пример форматирования осей графика Окно графического редактора свойств дескрипторной графики имеет множество вкладок, настройки которых довольно очевидны. Например, вы можете задать линейный или логарифмический масштаб осей (вкладка Scale (Масштаб), нормальное или инверсное направление осей (X, У, а в случае трехмерных графиков и Z), показ сетки (параметр Grid Show), изменить стиль осей и цвета фона (вкладка Style (Стиль)), нанести у осей надписи (вкладка Label (Ярлык)) и пр. Рис. 3.13 показывает график синусоиды после некоторых операций по форматированию осей. Здесь задано построение сетки Grid по осям X и Y, построение надписей (просто буквы X и Y) по координатным осям и построение титульной надписи. Заодно на рис. 1.51 показано в открытом виде меню расширенных инструментальных средств графического окна. Надписи на графиках могут быть сделаны на русском языке. Средства форматирования надписей дают обширные возможности по выбору набора шрифтов, их стиля, размеров символов и их цвета. Нанесение надписей и стрелок прямо на график. Дополнительно на график можно нанести надписи с помощью кнопки панели инструментов с буквой А. Место надписи фиксируется щелчком мыши. На рис. 1.52 показан отформатированный график с текстовым блоком, созданным таким образом в левой верхней части поля графика. 92 Рис. 1.51. Пример построения графика синусоиды после форматирования осей Здесь показано контекстное меню правой клавиши мыши, поясняющее выбор размера символов надписи (и другие возможности этого меню). Напоминаем, что это меню появляется при щелчке правой кнопки мыши на заданном объекте. В этом меню имеются все команды, доступные для данного объекта в данной ситуации. Рис. 1.52. Нанесение надписи на отформатированный график 93 Полученную таким образом надпись можно выделить и перенести мышью в любое другое место. Рис. 1.53 показывает процесс создания еще двух надписей с переносом их текстового блока в нужное место. Надписи сделаны с разным размером символов и разным стилем. Особенно приятно, что при задании на надписи возведения в степень знаком ^ надпись на экране отображается в естественном математическом виде (степень в виде верхнего индекса). Рис. 1.53. Окончательно отформатированный график трех функций На рис. 1.53, в частности, показано задание надписей разным стилем, а также задание стрелки с помощью соответствующей кнопки панели инструментов. Это стрелку в режиме редактирования графика можно перемещать и вращать мышью, а также менять ее длину. Можно также наносить на график и обычные линии (без стрелки). Построение легенды на графике. Дополнительными командами редактирования графиков являются: изменение размеров графика (см. меню Tools (Инструменты) и его команды Zoom In (Увеличить) и Zoom Out (Уменьшить)); добавка отрезков прямой или иных графических примитивов (подменю Add); подключение к графику легенды пояснения в виде отрезков линий со справочными надписями, размещаемого внутри графика или около него. Поскольку рассматриваемый в качестве примера график содержит три кривые, то легенда представляет собой обозначение этих трех линий в правом верхнем углу рисунка (рис. 1.54). Каждая линия имеет тот же цвет, что и на графике (и тот же стиль). 94 Рис. 1.54. Окончательно сформированный график Отметим, что все описанные возможности форматирования графиков доступны и программным способом, путем задания соответствующих графических команд, параметров и примитивов. Например команда text(х,у, 'legend') позволяет задать надпись 'legend' с началом, имеющим координаты (х, у). Если после первого апострофа перед текстом поместить параметр \leftarrow, то надпись (легенда) появится после стрелки с острием, обращенным влево. Аналогично параметр \rightarrow после надписи задает вывод стрелки после надписи с острием, обращенным вправо. Эта возможность позволяет отмечать не только кривые, но и отдельные точки на них. Возможно также применение команды legend('s1', 's2',...), выводящей легенду обычного вида - отрезки линий графиков с поясняющими надписями 'si', 's2' и т.д. Применение графической «лупы». На панели инструментов есть кнопки с изображение лупы и знаками + и -. С их помощью выполняются команды Zoom In (+) (Увеличить) и Zoom Out (-) (Уменьшить). Это позволяет увеличивать или уменьшать масштаб просмотра изображения. При этом команда Zoom In интересна еще одной возможностью - с ее помощью можно выделять часть графика перемещением мыши с нажатой левой клавишей - рис. 1.55. Область выделения отмечается прямоугольником из тонких точечных линий. Отпустив левую клавишу мыши, можно наблюдать построение выделенной части графика на всем окне. С помощью команды Zoom Out можно восстановить график в прежнем масштабе. Таким образом реализуется графическая «лупа». 95 Рис. 1.55. Пример выделения части графика с ее просмотром Работа с камерой 3D-графики. В отличие от двумерных (2D) графиков форматирование трехмерных графиков содержит ряд дополнительных возможностей. Покажем их на примере построения 3Dграфики (рис.1.56). >> Z=peaks(40); >> mesh(Z) Рис. 1.56. Пример построения каркасного 3D-графика Здесь первая команда создает массив точек поверхности с помощью одного из ряда встроенных в ядро системы MATLAB готовых описаний таких поверхностей. Вторая команда просто строит эту поверхность по опорным точкам с использованием интерполяции для промежуточных точек. Таким образом создается цветная каркасная поверхность, как бы сотканная из разноцветных проволок 96 Несмотря на множество кнопок, пользование панелью инструментов 3D-графики достаточно просто, если представить себе, что вы смотрите на предмет через объектив фотокамеры. Наглядные рисунки на кнопках поясняют смысл их действия — это перемещение и вращение 3D-рисунков относительно тех или иных координатных осей, включение отображения перспективы, изменение цветовой схемы и др. Рис. 1.57 показывает, что приемы форматирования двумерной графики можно использовать при работе с трехмерной графикой — вывод надписи на график, вывод легенды (кстати, теперь объемной) и шкалы цветов. Рис. 1.57. Пример форматирования трехмерного графика Для управления положением и вращением трехмерного графика можно использовать клавиши перемещения курсора. Эффект вращения графика иллюстрирует рис. 1.58, где показан тот же график после его поворота при нажатой клавише —>. В отличие от поворота мышью (также возможного) перемещение и повороты с помощью клавиш курсора при выбранном типе перемещения дают плавное перемещение или вращение фигуры. Таким образом осуществляется анимация (оживление) трехмерной графики. 97 Рис.. 1.58. Cтоп кадр вращения трехмерного графика Хотя многие приемы форматирования графики заимствованы из технологии визуально-ориентированного программирования, в базовой системе MATLAB (без дополнительных пакетов расширения (toolbox)) все еще отсутствует полноценная возможность такого программирования, даже с учетом расширенных возможностей дескрипторной графики. Однако средства MATLAB позволяют опытным программистам создать расширения системы с визуально-ориентированной технологией программирования. Самым наглядным примером этого является система моделирования динамических объектов Simulink с набором моделей из готовых блоков. При этом автоматически создается не только сложная графическая блок-схема моделируемого устройства, но и система уравнений состояния, решение которой и является основой моделирования. Установка титульной надписи. После того как график уже построен, MATLAB позволяет выполнить его форматирование или оформление в нужном виде. Команда title('string') служит для установки на двумерных и трехмерных графиках титульной надписи, заданной строковой константой 'string'. 98 Установка осевых надписей. Для установки надписей возле осей х, у и z используются следующие команды: xlabel('string') xlabel(fname) xlabel(...,'PropertyName',PropertyValue,...) h = xlabel(...) ylabel(...) h = ylabel(...) zlabel(...) h = zlabel(...) Соответствующая надпись задается символьной константой или переменной 'string'. Рассмотрим пример установки титульной надписи и надписей по осям графиков: >> Z=sin(X)./(X.^2+Y.^2+0.3); >> surfl(X,Y,Z) >> colorbar >> shading interp >> xlabel('Напряжение') >> ylabel('Ток') >> zlabel('Мощноcть cети') >> title('Раcчет оптимального потокораcпределения') Построенный в этом примере график трехмерной поверхности показан на рис. 1.59. Ввод текста в любое место графика. Часто возникает необходимость добавления текста в определенное место графика, например для обозначения той или иной кривой графика. Для этого используется команда text: text(x,y,'string') text(x,y,z,'string') text(...'PropertyName',PropertyValue...) h = text(...) Вариант text(x,y,'string') добавляет в двумерный график текст, заданный строковой константой 'string', так чтобы начало текста располагалось в точке с координатами (x,y). Если x и y заданы как одномерные массивы, то надпись помещается во все позиции [x(i) ,y(i)]. Вариант text(x,y,z,'string') добавляет в трехмерный график текст, заданный строковой константой 'string', так чтобы начало текста располагалось в позиции, заданной координатами x,y и z. 99 Рис. 1.59. График трехмерной поверхности с титульной надписью и надписями по координатным осям В приведенном ниже примере надпись «График функции x*sin(x^3)» размещается под кривой графика в позиции (60,7): >> x=-10:0.1:10; >> plot(x.*sin(x).^3) >> text(60,7,'График функции x*sin(x)^3') График функции с надписью у кривой показан на рис. 1.60. Рис. 1.60. Пример ввода надписи в поле графика функции 100 Остальные варианты являются очевидными. Пары координат x, y (или тройки x,y, z для трехмерных графиков) могут сопровождаться парами «имя параметра/значение параметра» для задания дополнительных свойств текста. Пары координат x, y (или тройки x,y, z для трехмерных графиков) могут быть полностью опущены, при этом все свойства, в том числе и позиция текста, задаются с помощью пар «имя параметра/значение параметра», заданных по умолчанию. Используя функцию get(h), где h - дескриптор графического объекта (в нашем случае графического объекта класса text), можно просмотреть список свойств объекта и их текущие значения. Используя set(h), можно просмотреть список свойств графических объектов и их допустимых значений. Позиционирование текста с помощью мыши. Очень удобный способ ввода текста предоставляет команда gtext: gtext('string') h = gtext('string') Вариант gtext('string') задает выводимый на график текст в виде строковой константы 'string' и выводит на график перемещаемый мышью маркер в виде крестика. Установив маркер в нужное место, достаточно щелкнуть кнопкой мыши для вывода текста. Пример применения команды gtext: >> x=-10:0.1:10; >> plot(x.*sin(x).^3) >> gtext('График функции x*sin(x)^3') При исполнении этого примера вначале можно увидеть построение графика функции с большим крестом, перемещаемым мышью (рис. 1.61, слева). Установив перекрестие в нужное место графика, достаточно нажать любую клавишу или любую кнопку мыши, и на этом месте появится надпись (рис. 1.61 справа). Высокая точность позиционирования надписи и быстрота процесса делает данный способ нанесения надписей на графики одним из наиболее удобных. Вывод пояснений. Пояснение в виде отрезков линий со справочными надписями, размещаемое внутри графика или около него, называется легендой. Для создания легенды используются различные варианты команды legend: 101 Рис. 1.61. Графики функции с крестообразным маркером и надписью, вставленной с помощью мыши legend('string1','string2',...) legend(h,'string1','string2',...) legend(string_matrix) legend(h,string_matrix) legend(axes_handle,...) legend('off') legend('hide') legend('show') legend('boxoff') legend('boxon') legend(h,...) legend(...,pos) h = legend(...) [legend_h,object_h,plot_h,text_strings] = legend(...) Вариант legend('string1','string2',...) добавляет к текущему графику легенду в виде строк, указанных в списке параметров. Вариант legend(h,'string1','string2',...) помещает легенду на график, содержащий объекты с дескрипторами h, используя заданные строки как метки для соответствующих дескрипторов. legend('off') устраняет ранее выведенную легенду. legend(...,pos) помещает легенду в точно определенное место, специфицированное параметром Pos: - Pos=0 - лучшее место, выбираемое автоматически; - Pos=l - верхний правый угол; - Pos=2 - верхний левый угол; - Pos=3 - нижний левый угол; 102 - Pos=4 - нижний правый угол; - Pos=-l - справа от графика. Чтобы перенести легенду, установите на нее курсор, нажмите левую кнопку мыши и перетащите легенду в необходимую позицию. Команда legend может использоваться с двумерной и трехмерной графикой, а также со специальной графикой - столбцовыми и круговыми диаграммами и т. д. Двойным щелчком можно вывести легенду на редактирование. Пример, приведенный ниже, строит график трех функций с легендой, размещенной в поле графика: >> x=[-2*pi:0.1*pi:2*pi]; >> y1=sin(x); >> y2=sin(x).^2; >> y3=sin(x).^3; >> plot(x,y1,'-m',x,y2,'-.+r',x,y3,'--ok') >> legend('Завиcимоcть 1','Завиcимоcть 2','Завиcимоcть 3',4); Полученный график представлен на рис. 1.62. Рис. 1.62. График трех функций с легендой в поле графика Незначительная модификация команды >> legend('Завиcимоcть 1','Завиcимоcть 2','Завиcимоcть 3',-1) (применение дополнительного параметра -1) позволяет построить график трех функций с легендой вне поля графика: Соответствующий график показан на рис. 1.63. 103 Рис. 1.63. График трех функций с легендой, расположенной вне поля графика Заметим, что применение легенды придает графикам более осмысленный и профессиональный вид. При необходимости легенду можно переместить мышью в подходящее место графика. Маркировка линий уровня на контурных графиках. К сожалению, контурные графики плохо приспособлены для количественных оценок, если их линии не маркированы. В качестве маркеров используются крестики, рядом с которыми располагаются значения высот. Для маркировки контурных графиков используются команды группы clabel: clabel(C,h) clabel(C,h,v) clabel(C,h,'manual') clabel(C) clabel(C,v) clabel(C,'manual') Вариант clabel(C,h) маркирует контурный график с данными в контурной матрице C и дескрипторами объектов, заданными в массиве h. Метки вставляются в разрывы контурных линий и ориентируются в соответствии с направлением линий. По умолчанию маркируются все контуры. 104 При варианте clabel(C,h,v) маркируются только те уровни, которые указаны в векторе V. Позиции меток располагаются случайным образом. Вариант clabel(C,h,'manual') маркирует контурные графики с визуальной установкой положения маркеров. Нажатие клавиши Enter или кнопки мыши завершает установку маркера. При отсутствии мыши для перехода от одной линии уровня к другой используется клавиша пробела, а для перемещения надписи используются клавиши перемещения курсора. Варианты clabel(C), clabel(C,v) и clabel(C,'manual') предоставляют дополнительные возможности маркировки контурных графиков. При отсутствии аргумента h метки не ориентируются вдоль линий контуров; точную позицию метки отмечает значок «+». Пример применения команды clabel приводится ниже: >> [x,y] = meshgrid(-2:.2:2); >> z = x.^exp(-x.^2-y.^2); >> [C,h] = contour(x,y,z); >>clabel(C,h) Рис. 1.64. Контурный график с маркированными линиями уровня Управление свойствами осей графиков. Обычно графики выводятся в режиме автоматического масштабирования. Следующие команды класса axis меняют эту ситуацию: 105 axis([xmin xmax ymin ymax]) - установка диапазонов координат по осям х и у для текущего двумерного графика; axis([xmin xmax ymin ymax zmin zmax cmin cmax]) - установка диапазонов координат по осям х, у и z текущего трехмерного графика; v = axis - возвращает вектор-строку, содержащую коэффициенты масштабирования для текущего графика. Если текущий график двумерный, то вектор имеет 4 компонента, если трехмерный - 6 компонентов. axis auto - установка параметров осей по умолчанию; axis manual - «замораживает» масштабирование в текущем состоянии, чтобы при использовании команды hold on следующие графики использовали те же параметры осей; axis tight - устанавливает диапазоны координат по осям в соответствии с диапазонами изменения данных; axis ij - задает «матричную» прямоугольную систему координат с началом координат в левом верхнем углу, ось i - вертикальная, размечаемая сверху вниз, ось j - горизонтальная и размечается слева направо; axis xy - устанавливает декартову систему координат с горизонтальной осью х, размечаемой слева направо, и вертикальной осью у, размечаемой снизу вверх. Начало координат размещается в нижнем левом углу; axis equal - включает масштаб с одинаковым расстоянием между метками по осям х, у и z; axis image - устанавливает масштаб, при котором пиксели изображения становятся квадратами; axis square - устанавливает текущие оси в виде квадрата (или куба в трехмерном случае) с одинаковым расстоянием между метками и одинаковой длиной осей; axis vis3d - «замораживает» пропорции осей для возможности поворота трехмерных объектов; axis normal - восстанавливает масштаб, отменяя установки axis equal и axis square; axis off - убирает с осей их обозначения и маркеры; axis on - восстанавливает ранее введенные обозначения осей и маркеры; axis(axes_handles,...) [mode,visibility,direction] = axis('state') Следующий пример иллюстрирует применение команды axis при построении двумерного графика функции одной переменной: 106 >> x=0:0.1:15; >> plot(x,sin(x)); >> axis([-1 16 -1.5 1.5]) >> grid on Рис. 1.65. Пример задания масштаба осей двумерного графика Обратите внимание, что теперь масштабы осей заданы именно командой axis, а не диапазоном изменения значений х и у. Включение и выключение сетки. При построении графиков в дополнение к разметке осей часто используют масштабную сетку. Команды grid позволяют задавать построение сетки или отменять это построение. Результат действия этой команды также представлен на предыдущем рисунке. Наложение графиков друг на друга. Во многих случаях желательно построение нескольких наложенных друг на друга графиков в одном и том же окне. Для этого служит команда продолжения графических построений hold. Она используется в следующих формах: hold on - обеспечивает продолжение вывода графиков в текущее окно, что позволяет добавлять последующие графики к уже существующим; hold off - отменяет режим продолжения графических построений; 107 Такимобразом команда hold работает как переключатель, последовательно включая режим продолжения графических построений и отменяя его. В качестве самостоятельной работы рекомендуется также ознакомиться с командами ishold, newplot, figure и axes. Разбиение графического окна. В случае, если в одном окне надо расположить несколько координатных осей с различными графиками без наложения их друг на друга используются команды subplot, применяемые перед построением графиков: subplot(m,n,p) subplot(m,n,p,'replace') subplot(h) subplot('Position',[left bottom width height]) h = subplot(...) Вариант subplot(m,n,p) разбивает графическое окно на m * n подокон, при этом m - число подокон по горизонтали, n - число подокон по вертикали, а р - номер подокна, в которое будет выводиться текущий график (подокна отсчитываются последовательно по строкам). Вариант subplot(m,n,p,'replace') удаляет форматирование предыдущего графического окна. Вариант subplot(h), где h - дескриптор для объекта axes, дает альтернативный способ задания подокна для текущего графика. Вариант subplot('Position',[left bottom width height]) создает подокно с заданными нормализованными координатами (в пределах от 0.0 до 1.0). Следующий пример иллюстрирует применение команды subplot: >> x=-5:0.1:5; >>subplot(2,2,2),plot(sin(5*x)) >> grid on >> subplot(2,2,3),contour(peaks) >> grid on >> subplot(2,2,4),surf(peaks) >> grid on >> subplot(2,2,1),plot(x,sin(x)) >> grid on Следует отметить, что для всех графиков возможна индивидуальная установка дополнительных объектов, например титульных надписей, надписей по осям и т. д. 108 Рис. 1.66. Четыре графика различного типа, размещенных в подокнах одного окна Изменение масштаба графика. Для изменения масштаба двумерных графиков используются команды класса zoom: zoom on - включает режим интерактивного изменения масштаба для текущего графика; zoom off - выключает режим интерактивного изменения масштаба для текущего графика; zoom out - обеспечивает полный просмотр, т. е. устанавливает стандартный масштаб графика; zoom reset - запоминает текущий масштаб в качестве масштаба по умолчанию для данного графика; zoom - переключает состояние режима интерактивного изменения масштаба для текущего графика; zoom xon - включает режим изменения масштаба только по оси х; zoom yon - включает режим изменения масштаба только по оси y; 109 zoom(factor) - устанавливает масштаб в соответствии с коэффициентом factor; zoom(fig, option) - применяется к графику, заданному дескриптором fig, при этом option может быть любым из перечисленных выше аргументов. Команда zoom позволяет управлять масштабированием графика с помощью мыши. Для этого надо подвести курсор мыши к интересующей вас области рисунка. Если команда zoom включена (on), то нажатие левой кнопки увеличивает масштаб вдвое, а правой - уменьшает вдвое. При нажатой левой кнопке мыши можно выделить пунктирным черным прямоугольником нужный участок графика - при отпускании кнопки он появится в увеличенном виде и в том масштабе, который соответствует выделяющему прямоугольнику. Команда zoom, таким образом, выполняет функцию «лупы», позволяющей наблюдать в увеличенном виде отдельные фрагменты сложных графиков. Однако следует учитывать, что для наблюдения фрагментов графиков при высоком увеличении они должны быть заданы большим количеством точек. Иначе вид отдельных фрагментов и тем более особых точек) будет существенно отличаться от истинного. 110 Часть 2. ПРИМЕНЕНИЕ ПАКЕТА "Statistica" ДЛЯ ОПИСАНИЯ РЕЖИМОВ РАБОТЫ ЭЛЕКТРИЧЕСКИХ СЕТЕЙ 1. Перечень решаемых задач. В STATISTICA реализованы множество методов анализа данных, в частности описательные статистики и таблицы, анализ выживаемости, непараметрическая статистика, дискриминантный анализ, регрессионный анализ, вероятностый анализ, позволяет решать типичные задачи контроля качества, планирования эксперимента и др. особым достоинством этой системы является наглядное графическое представление полученных в результате расчета данных. На Рис.2.1 – Рис.2.3. показаны основные доступные в системе методы анализа данных. Рис.2.1. Поверхность регрессии Эти возможности пакета STATISTICA позволяют успешно решать ряд задач электроэнергетики: - прогнозировать пиковые нагрузки в сети; - оценивать недельные колебания нагрузки; - рационально выбирать место подключения новой станции для эффективного развития сети; 111 Рис.2.2. Визуальные методы STATISTICA при планировании экспериментов - оценивать показатели качества электрической энергии; - оценка технического состояния элементов электрических систем; - классификация потребителей; Так, например, задача рационального выбора места строительства новой подстанции может быть решена с помощью методов множественной (многомерной) регрессии. Оценка колебаний нагрузки сети в зависимости от дней недели решается с помощью метода сезонной декомпозиции. Для прогнозирования нагрузки в сети можно использовать модели авторегрессии и проинтегрированного скользящего среднего. Методы множественной регрессии позволяют исследовать варианты развития электрической системы. STATISTICA позволяет реализовать системный подход к анализу данных, в частности, средствами STATISTICA можно создать свои модули анализа данных (см. Рис.2.4). Дополненные методами визуального программирования, эти средства открывают широкие перспективы. 112 Рис.2.3. Модуль планирования экспериментов в STATISTICA Рис.2.4. Настройка STATISTICA на конкретный проект 113 2. Общая характеристика. STATISTICA - это интегрированная система анализа и управления данными. Система легка в освоении и использовании. Все аналитические инструменты, имеющиеся в системе, доступны пользователю и могут быть выбраны с помощью альтернативного пользовательского интерфейса. Пользователь может всесторонне автоматизировать свою работу, начиная с применения простых макросов для автоматизации рутинных действий вплоть до углубленных проектов, включающих в том числе интеграцию системы с другими приложениями или Интернет. Технология автоматизации позволяет даже неопытному пользователю настроить систему на свой проект. Система обладает следующими общепризнанными достоинствами: - содержит полный набор классических методов анализа данных: от основных методов статистики до продвинутых методов, что позволяет гибко организовать анализ; - является средством построения приложений в конкретных областях; - в комплект поставки входят специально подобранные примеры, позволяющие систематически осваивать методы анализа; - отвечает всем стандартам Windows, что позволяет сделать анализ высокоинтерактивным; - система может быть интегрирована в Интернет; - поддерживает web-форматы: HTML, JPEG, PNG; - легка в освоении, и как показывает опыт, пользователи из всех областей применения быстро осваивают систему; - данные системы STATISTICA легко конвертировать в различные базы данных и электронные таблицы; - поддерживает высококачественную графику, позволяющую эффектно визуализировать данные и проводить графический анализ; - является открытой системой: содержит языки программирования, которые позволяют расширять систему, запускать ее из других Windows-приложений, например, из Excel. STATISTICA состоит из набора модулей, в каждом из которых собраны тематически связные группы процедур. При переключении модулей можно либо оставлять открытым только одно окно приложения STATISTICA, либо все вызванные ранее модули, поскольку каждый из них может выполняться в отдельном окне как самостоятельное приложение Windows (Рис.2.5.). При исполнении модулей STATISTICA как самостоятельных 114 приложений в любой момент времени в любом модуле имеется прямой доступ к «общим» ресурсам (таблицам данных, языкам BASIC и SCL, графическим процедурам). Рис.2.5. Рабочие окна STATISTICA При инсталляции системы программа установки (Setup) создает на рабочем столе группу приложений под названием STATISTICA и помещает туда значки окна Переключатель модулей (пиктограмма STATISTICA — первая в группе, см. Рис.2.2.6.), модуля Основные статистики и таблицы и некоторых других программ (Help, Setup). Пользователю может показаться более удобным запускать модули, щелкая по их значкам на рабочем столе (вместо того чтобы пользоваться окном Переключатель модулей); поэтому он, вероятно, захочет создать дополнительные пиктограммы для модулей помимо тех, которые будут автоматически созданы программой установки (Setup). Для того чтобы создать еще один значок в данной группе, следуйте стандартной процедуре Windows (выберите пункт Новый в меню Файл в окне Диспетчер программ (Program Manager) и создайте новый программный элемент). 115 Рис.2. 6. Переключатель модулей 3. Настройка системы STATISTICA В системе предусмотрена возможность настройки множества характеристик и интерфейса программы в соответствии с предпочтениями пользователя. Можно изменить, например, процесс запуска, а именно — отменить установленный по умолчанию полноэкранный режим, изменить вид стартовой панели, панели инструментов, таблиц с данными и другие параметры. 116 Настройка общих параметров системы. Настройку общих параметров системы изменить в любой момент работы с программой. Эти параметры определяют: - общие аспекты поведения программы (максимизация окна STATISTICA при запуске, Рабочие книги, инструмент Перетащить и отпустить — Drag-and-Drop, автоматические связи между графиками и данными, многозадачный режим и т. д.), - режим вывода (например, автоматическая распечатка таблиц или графиков, форматы отчетов, буферизация и т. д.), - общий вид окна приложения (значки, панели инструментов и т. д.), - вид окон документов (цвета, шрифты). Каждый из этих параметров можно настроить в соответствующем окне, доступ к которому осуществляется через меню Сервис. На Рис.2.7 показаны примеры таких окон. Все общие параметры могут быть настроены независимо от типа окна документа (например, таблица или график), которое активно в данный момент. Настройка пользовательского интерфейса. При работе с системой STATISTICA имеется возможность настройки пользовательского интерфейса программы таким образом, чтобы он стал более «продуманным» с точки зрения индивидуальных потребностей конкретного пользователя. В зависимости от требований задачи и личных предпочтений можно использовать разнообразные «режимы» и условия работы программы как показано на Рис.2.8. Поддержка нескольких различных конфигураций системы STATISTICA. До внесения специальных изменений STATISTICA будет хранить все текущие настройки и параметры по умолчанию. То обстоятельство, что сведения о конфигурации системы хранятся в той же папке, из которой вызывается программа STATISTICA, позволяет иметь в своем распоряжении различные варианты конфигурации программы для разных проектов или видов работ. Например, можно вызывать программу из разных папок на диске, каждая из которых содержит определенный связный набор документов, и для каждой из этих папок система может быть сконфигурирована со своими настройками вывода, параметрами графиков по умолчанию и т. д. 117 Рис.2.7. Окна настройки параметров. 118 Рис.2.8. Различные типы настроек системы STATISTICA. Можно создать несколько значков STATISTICA в разных группах приложений на рабочем столе Windows (каждая из которых соответствует определенному проекту или виду работ) и задать для них различные значения в поле Рабочая директория (Working Directory) (с помощью диалогового окна системы Windows Свойства программного элемента (Program Item Properties)). 4. Работа с программой STATISTICA После установки на компьютере системы STATISTICA работа с программой производится в следующем порядке. Запуск программы STATISTICA можно выполнить из главного меню Windows (пункты меню Пуск\Программы\STATISTICA 6.0\ STATISTICA) либо с помощью вынесенной на рабочий стол пикто- граммы . После запуска программы появляется главное окно программы, показанное на Рис.2.9. Интерфейс системы STATISTICA включает в себя главное меню, состоящее из набора выпадающих закладок, панель инструментов, состоящую из набора кнопок, и рабочего окна (ра- 119 бочей книги), в котором непосредственно располагается таблица данных. Рис.2.9. Главное окно программы STATISTICA. Для присвоения этому файлу имени поместите курсор мыши к выпадающему меню «Файл» и выберите команду «Сохранить как…». На экране компьютера сразу же появляется окно, показанное на Рис.2.2.10. В строке «Имя файла» наберите с клавиатуры нужное имя, после чего для присвоения файлу этого имени нажмите клавишу «Enter» на клавиатуре или кнопку «Сохранить», расположенную на панели окна. При открытии нового документа программа автоматически создаст пустую таблицу, содержащую 10 строк и 10 столбцов. Однако в таблице можно создать столько строк и столбцов, сколько нужно, увеличив или уменьшив соответствующее количество как строк, так и столбцов этой таблицы. Для этого используются кнопки на панели инструментов. Для добавления строк в таблицу нажмите кнопку «Наблюдения» и после появления на экране меню, показанного на Рис.2.11.а и предлагающего следующие операции для наблюдений таблицы: «Добавить», «Переместить», «Копировать», «Удалить», «Ввести имена наблюдений», выберите, например, пункт «Добавить», дважды щелкнув левой кнопкой мыши. При этом откроется окно, в котором можно задать число наблюдений, добавляемых в таблицу. Нажмите «ОК», и 120 количество строк (наблюдений) в таблице увеличится на указанное количество. Рис.2.10. Присвоение имени документу STATISTICA. Аналогичным образом можно изменить число переменных в таблице. Для этого нажмите кнопку «Переменные» на панели инструментов. С помощью курсора мыши в выпадающем меню выберите пункт «Добавить». На экране появится окно, в котором необходимо выполнить нужные установки, как показано на Рис.2.11.б. б) а) Рис.2.11. Изменение размеров таблицы: а) изменение количества строк, б) изменение количества столбцов. 121 Нажмите еще раз кнопку «Наблюдения» и выберите пункт меню «Имена». На экране появится диалоговое окно, в котором можно определить, сколько символов в таблице будет зарезервировано для имен наблюдений (Рис.2.12.). Раздвинуть поле для имен наблюдений можно также с помощью мыши. Рис.2.12. Изменение ширины столбцов. Далее необходимо ввести название таблицы (ее заголовок) и имена переменных. Сделать это можно следующим образом: дважды щелкая мышью по полям заголовков, вы открываете диалоговые окна, позволяющие вводить заголовки, описывать переменные и т. д. Аналогично редактируются имена переменных и наблюдений: для того чтобы описать переменную, необходимо дважды щелкнуть мышью по ее имени — например, после щелчка по заголовку переменной1 (VAR1) откроется окно, в котором можно задать ее имя (или переименовать ее), формат переменной, метку, связь и т. д. Чтобы ввести заголовок таблицы, дважды щелкните мышью на верхней строке таблицы, пустой строке, которая находится над переменными. В появившемся окне введите заголовок таблицы и нажмите «ОК». Введенный текст отобразится в заголовке таблицы. Далее следует заполнить созданную таблицу данными. Для этого данные можно вводить непосредственно с клавиатуры либо экспортировать из уже существующего файла или другого Windowsприложения. При вводе числовых данных используйте клавиатуру и стрелки перемещения курсора. Поставьте курсор на нужную ячейку таблицы и введите числовые данные. Текстовые значения вводятся иначе. Подведите курсор к ячейке переменной с текстовыми значениями и дважды щелкните мышью. В ячейке появится код 9999 — это код пропущенных значений. Сотрите код, используя кнопку «DEL» на клавиатуре. Затем введите нужное текстовое значение. Поскольку система STATISTICA является обычным Windows- 122 приложением, можно легко и быстро импортировать данные, полученные в системе STATISTICA, в другое Windows-приложение. Лучше всего проделать это следующим образом: нажмите одновременно кнопки ALT и F3, удерживая нажатой левую кнопку мыши, выделите необходимую часть таблицы, которая будет отмечена прямоугольной рамкой. После того как вы отпустите кнопку мыши, отмеченная часть таблицы будет помещена в буфер обмена. Если теперь открыть нужный документ другого Windows-приложения и набрать на клавиатуре комбинацию кнопок CTRL и V, то выбранный сегмент таблицы будет скопирован в документ. 5. Особенности работы система STATISTICA Многозадачность. STATISTICA поддерживает режим многозадачности (между своими модулями или другими приложениями). При обработке очень больших объемов информации или выполнении сложных процедур анализа можно переключиться в другой модуль STATISTICA (или другое приложение Windows), используя возможность вести процесс обработки данных в фоновом режиме. Работа в одном или нескольких окнах приложения STATISTICA. Один из вариантов глобальной системной настройки пакета STATISTICA позволяет пользователю задать режим, в котором по умолчанию будет работать программа — в одном окне приложения или в виде набора приложений (каждое в своем окне) как показано на Рис.2.13. б) а) Рис.2. 13. Режим работы программы STATISTICA по умолчанию: а) режим одного приложения; б) режим нескольких приложений. Одним из непосредственных следствий этого выбора будет то, 123 в каком режиме будет работать окно Переключатель модулей: при двойном щелчке на имени модуля в этом окне выбранный модуль будет открываться либо вместо уже открытого, либо для него будет открываться новое окно приложения, причем предыдущее окно останется открытым. Выбор того или другого режима работы производится в поле Переключение модулей: режим одного приложения в диалоговом окне Параметры по умолчанию: общие настройки (вызывается из меню Сервис). Если это поле отмечено, STATISTICA будет работать в режиме одного приложения. Режим одного приложения. При выбранном режиме одного окна приложения переключение с одного модуля на другой будет происходить без открытия новых окон. Новый модуль всякий раз будет открываться в том же самом окне, заменяя предыдущий. Некоторые пользователи предпочтут именно такой «простой» режим работы, поскольку весь анализ будет происходить в одном окне приложения, а количество активных программ на рабочем столе будет минимальным. Примерно такого же эффекта можно достичь, нажимая кнопку «Закончить» и переключиться в диалоговом окне Переключатель модулей; при этом окно приложения текущего модуля закроется, но не будет заменено новым окном; вместо этого система откроет «следующее» окно приложения. Режим нескольких приложений. Основное преимущество режима нескольких приложений — возможность параллельного выполнения различных процедур анализа (модули) в разных одновременно открытых окнах приложения. При этом можно переключаться между модулями, не закрывая предыдущие, и использовать все преимущества работы с независимыми очередями таблиц результатов и графиков для окон приложений разных модулей. Этот режим имеет очевидные преимущества для большинства задач анализа данных и дает возможность использовать различные методы анализа (и сравнивать полученные результаты). Интерактивный анализ данных в STATISTICA. Система не требует, чтобы пользователь еще до проведения анализа указал всю информацию, которую следует вывести на экран. Ведь анализ даже простого плана может породить большое число таблиц результатов и просто необозримое количество графиков, поэтому при проведении реального анализа, до изучения основных результатов, трудно представить, какие графики или таблицы следует анализировать в первую очередь. Именно поэтому STATISTICA предоставляет пользователю возможность выбрать определенные типы вывода и интерактивно про- 124 вести последовательные сравнения и моделирующий анализ уже после того, как данные обработаны и получены основные результаты. Количество выводимых окон также может быть настроено, чтобы не перегружать экран компьютера в зависимости от индивидуальных требований пользователя. Гибкие вычислительные процедуры STATISTICA и широкий выбор методов графического представления данных любого типа открывают перед пользователем широкие возможности проведения разведочного анализа и проверки статистических гипотез (см. Рис.2.14.). Рис.2.14. Выбор методов графического представления данных вычислительных процедур 6. Возможности рабочих книг Рабочие книги помогают организовывать наборы файлов (например, таблиц результатов, графиков, текстовых/графических отчетов, пользовательских программ и т. д.), которые были созданы или использовались (например, просматривались) во время анализа набора данных. Рабочие книги хранят список всех файлов, использовавшихся с текущим набором данных. Справочная система. Чтобы получить дополнительную информацию о некоторых функциях системы, нажмите клавишу справки (F1), когда выделена соответствующая команда или пункт меню. STATISTICA содержит Электронное руководство — справочную информацию по всем процедурам и функциям программы, доступную в 125 контекстно-зависимом режиме при нажатии клавиши F1 или кнопки справки в строке заголовка всех диалоговых окон, что показано на Рис.2.15. Справочник содержит свыше 10 мегабайт документации в сжатом виде. Благодаря динамической организации Электронного руководства с помощью гиперссылок (и различным возможностям его настройки), как правило, быстрее использовать эту справочную систему, чем искать нужную информацию в напечатанном виде. Справку также можно вызвать двойным щелчком на поле сообщений строки состояния в нижней части окна приложения STATISTICA (в поле сообщений тоже отображаются краткие комментарии о функциях выпадающих меню или кнопках панели инструментов соответственно при выделении пункта меню или нажатии кнопки). Статистический советник. Статистический советник представляет собой интерактивную справочную систему. После выбора пункта Советник из выпадающего меню (Справка) программа задаст вам несложные вопросы о характере решаемой проблемы и типе исходных данных, а затем предложит список наиболее подходящих процедур (и объяснит, где их найти в системе STATISTICA). Рис.2.15. Получение информации из справочной системы. Приложения. Все рассмотренные возможности (доступные в любой момент работы с системой) могут служить весомой альтернативой или дополнением к обычному интерактивному пользовательскому интерфейсу, поскольку они позволяют автоматизировать рутинный 126 процесс многократного выполнения одних и тех же, в том числе весьма сложных, задач. Например, макрокоманда (вызываемая щелчком мыши по кнопке на панели инструментов Кнопки автозадач или одним нажатием клавиши) может содержать длинный список переменных, часто используемый график, операцию внедрения и т. п. Автоматические отчеты и автоматическая распечатка таблиц результатов. Независимо от того, происходит ли обработка в пакетном режиме или интерактивно запрашивается пользователем, может быть выбран режим вывода «Автоотчет». Этот режим позволяет автоматически, без каких-либо действий со стороны пользователя распечатывать (или направлять в окно отчета или в файл) содержание всех окон вывода, которые получаются в процессе анализа. Режим автоматического вывода каждой строящейся на экране таблицы результатов и/или графика может оказаться полезным не только для создания полного отчета о результатах анализа, но и при разведочном анализе данных, когда возникает необходимость вернуться к предыдущему шагу и просмотреть результаты, полученные на ранних этапах обработки данных. Для этого всю выходную информацию (таблицы результатов и графики) можно направить во временное «Окно текста/вывода» с прокруткой и уже затем в случае необходимости сохранить ее, распечатать или скопировать в файл текстового редактора. Автоматическая печать графиков. Режим автоматической печати всех возникающих на экране графиков особенно полезен как средство пакетной графической печати. Как правило, печать графиков занимает довольно много времени. Поэтому имеет смысл воспользоваться этим режимом для распечатки последовательности («каскада») графиков, получающихся при применении определенных методов анализа (например, для зрительного представления конфигураций средних при исследовании связей высших порядков в дисперсионном анализе необходима длинная последовательность графиков, а для многомерных таблиц — каскад трехмерных гистограмм для двух переменных). Однако гораздо эффективнее направить создаваемую последовательность графиков в «Окно текста/вывода». В STATISTICA предусмотрена возможность пакетной печати всех ранее сохраненных графиков и таблиц результатов; для этого нужно выбрать пункт Печать файлов в выпадающем меню «Файл». Буфер обмена. Наиболее быстрый и во многих случаях наиболее простой способ получения данных из других приложений Windows (например, электронных таблиц) — это использование буфе- 127 ра обмена, который в STATISTICA поддерживает специальные форматы данных, создаваемые такими приложениями, как МS Excel или Lotus для Windows. Например, STATISTICA правильно интерпретирует форматированные (например, 1 000 000 или $10) и текстовые значения. Буфер обмена и преобразование файлов данных можно также использовать для экспорта данных из системы STATISTICA в другие форматы. При импорте и экспорте данных STATISTICA использует один и тот же набор форматов и типов данных. Функции импорта файлов. Файлы данных из приложений Windows и других операционных систем также можно переводить в формат системы STATISTIC A с помощью функций импорта файлов, которые включают доступ ко всем базам данных (через поддержку метода ODBC), а также возможности импорта форматированных текстовых файлов и текстовых файлов свободного формата (ASCII). Импорт файлов без использования буфера обмена имеет свои преимущества: - он позволяет пользователю точно указать, как должен проводиться импорт (например, выбирать из файлов диапазоны значений, импортировать или не импортировать имена переменных, текстовые значения и имена наблюдений и указывать способ их интерпретации); - он предоставляет пользователю доступ к типам данных, которые недоступны (или труднодоступны) при операциях с буфером обмена (например, длинные метки значений или специальные коды пропущенных данных). Связи DDE. STATISTICA поддерживает соглашения динамического обмена данными (DDE), что позволяет динамически связывать диапазон данных в таблице исходных данных с набором данных других приложений (Windows). Эта процедура на самом деле гораздо проще, чем она может показаться, и ее легко освоить, не имея технических знаний о механизме DDE, особенно при использовании команды «Установить связь» (вместо ввода описания связи). Связи DDE (динамического обмена данными) можно установить между файломисточником (сервером), например электронной таблицей MS Excel, и файлом данных системы STATISTICA (файлом-клиентом), так что при вынесении изменений в файл-источник данные в соответствующей части таблицы исходных данных STATISTICA (файле-клиенте) будут автоматически обновляться. Процесс динамического обмена данными показан на Рис.2.16. 128 Рис.2.16. Динамическая связь данных MS Excel с файлом данных системы STATISTICA. Связи DDE можно установить с помощью команды «Установить связь» выпадающего меню «Правка» таблицы исходных данных или введя определение связи в поле «Длинное имя» (метка, формула, связь): диалогового окна спецификаций переменной, как показано на Рис.2.17. Рис.2.17. Установка динамической связи данных с помощью команды «Установить связь». 129 Если связь установлена, то можно управлять ею в диалоговом окне «Диспетчер связей» (вызывается с помощью команды «Связи» выпадающего меню «Правка»), показанного на Рис.2.18. Рис.2.18. Управление динамической связью данных с помощью «Диспетчера связей» Форматы Дата и Время. В файлах данных системы (которые организованы как базы данных) формат отображения значений применяется ко всей переменной, а не к отдельным ячейкам (как в Excel). Поэтому значения, которые в Excel были отформатированы как даты, в файле системы STATISTICA будут отображаться как юлианские (целые) значения (например, 34092 вместо May 3, 1993), если для соответствующих переменных не установлен формат Дата или Время. Импортирование данных из системы STATISTICA. Для того чтобы реализовать эту возможность, существует список команд «Импорт данных», который вызывается из выпадающего меню «Файл» любого модуля, внешний вид которого приведен на Рис.2.19. Интерфейс ODBC STATISTICA включает возможности для объединения полей из нескольких таблиц и предоставляет доступ к множеству файлов баз данных, включая форматы больших и персональных компьютеров (например, dBASE для Windows, Paradox, Sybase, Oracle, SAS и т. д.). 130 Рис.2.19. Импортирование данных из системы STATISTICA. Импорт через ODBC можно автоматизировать с помощью функции ODBC/Шаблоны или программ на языке SCL. Типы объектов. Если задан режим Новый объект, то тип создаваемого объекта может быть выбран из списка приложений Windows, которые поддерживают средства OLE. После выбора типа и нажатия кнопки ОК будет открыто окно соответствующего приложения для создания нового объекта. Если задан режим Объект из файла, то тип объекта для вставки также выбирается из списка приложений Windows, поддерживающих средства OLE; после выбора типа будут показаны все предварительно сохраненные файлы этого приложения. В режиме Картинка из файла можно вставить объект, несовместимый с методом OLE, но записанный в одном из графических форматов Windows: в формате метафайла (файл с расширением *.wmf) или растрового изображения (файл с расширением *bmp). Связывание и внедрение. STATISTICА поддерживает средства OLE (связывания и внедрения объектов) как в режиме клиента, так и в режиме сервера. Таким образом, возможна не только динамическая настройка графиков STATISTICA в других приложениях (режим сервера), но также внедрение и последующее преобразование OLE-совместимых объектов других приложений (например, графиков или таблиц) или собственных объектов в графики STATISTICA. Другими словами, помимо присоединения внешних элементов к графикам STATISTICA с помощью вставки можно обращаться непосредственно к объектам, содержащимся в файле на диске. Например, перетащить их непосредственно из окна «Диспетчер файлов» или «Проводник» 131 (Windows Explorer) и поместить на график STATISTICA как показано на Рис.2.20. STATISTICA поддерживает как связанные (то есть динамически присоединенные), так и внедренные (то есть статически «встроенные») объекты. При этом они могут быть расположены в любом файле, созданном приложениями Windows, включая файлы в собственном графическом формате STATISTICA (с расширением *.stg). Более того, STATISTICA одновременно может являться как клиентом, так и сервером в методе OLE, поддерживая при этом уникальную возможность создания вложенных составных документов (до четвертого порядка включительно), то есть документ STATISTICA с внедренным документом может быть, в свою очередь, внедрен в другой документ этой системы. Рис.2.20. Внедрение объектов других приложений в графики STATISTICA. Заметим, что каждый из этих двух способов присоединения (связывание и внедрение) имеет свои преимущества и недостатки. Графики со связанными объектами медленнее перерисовываются, поскольку при этом могут быть задействованы связи с внешними файлами. В то же время эти графики обновляются автоматически (статус связей может быть установлен в диалоговом окне Связи данных и графика, которое вызывается из графического меню Правка), а это позволяет легко создавать составные документы, которые включают именно «текущее» содержимое других файлов. Графики с внедренными объектами перерисовываются быст- 132 рее, чем со связанными объектами, поскольку здесь отсутствуют связи с обновляемыми внешними файлами. Если дважды щелкнуть на внедренном объекте, то будет вызвано приложение-сервер (то есть источник), в котором можно изменить данный объект. При этом обновить внедренный объект можно двумя способами: отредактировать его или заменить вручную. В меню «Правка» можно настроить все параметры внешних объектов {связанных или внедренных), а также их связи с другими компонентами графика. Кроме того, щелкнув на объекте правой кнопкой мыши, можно выбрать нужные команды настройки из контекстного меню. Единственным исключением является способ присоединения объекта (связывание или внедрение), который определяется в момент подключения файла. Настройка связанных или внедренных объектов OLE. Объекты OLE-графиков STATISTICA могут быть отредактированы после двойного щелчка мышью на объекте; при этом приложениеисточник будет открыто в режиме сервера OLE с готовым к редактированию объектом (см. Рис.2.2.21.). Если этот объект является графиком STATISTICA, то в текущем модуле откроется новое графическое окно, что позволит системе одновременно выступать как в роли клиента, так и сервера. Рис.2.21. Редактирование объектов OLE-графиков STATISTICA. 133 Когда редактирование завершено, можно применить любое из стандартных соглашений OLE для выхода из режима сервера и обновления графика в системе STATISTICA (используя команды «Обновить», «Обновить и вернуться к...» и т. д. в выпадающем меню приложения «Файл»; эти команды доступны только в случае, если приложение запущено в режиме сервера). Графические форматы «Метафайл» и «Растровое изображение». Для вставки графического файла в приложения, не поддерживающие методы OLE, используются команды «Сохранить метафайл» или «Сохранить растровое изображение» (из выпадающего графического меню «Файл»). График в формате метафайла Windows будет записан в файл с расширением *.wmf, а в формате растрового изображения — с расширением *.bmр. Эти форматы, описанные в двух следующих параграфах, не позволяют полностью реализовать все возможности настройки графиков STATISTICA, но в то же время совместимы со всеми приложениями, поддерживающими графические форматы Windows. Ограничения стандартного формата Метафайл Windows. Сложные графические изображения, создаваемые системой STATISTICA, могут оказаться слишком большими (по числу представленных точек данных) для записи в формате метафайла, который по умолчанию используется системой Windows для большинства операций по связыванию и внедрению графических объектов. В таких случаях нужно использовать растровое изображение. В отличие от метафайла растровое изображение представляет собой «пассивное» поточечное отображение графического окна. Возможности настройки такого графика в других приложениях Windows очень ограничены. Обычно они включают только операции растяжения, сжатия, вырезания, вставки и рисования поверх графика. Собственный графический формат STATISTICA. Графические файлы системы STATISTICA имеют расширение *stg. Их основное отличие от метафайлов и растровых изображений состоит в том, что они содержат не только картинку, но и всю информацию, необходимую для настройки графика и анализа данных. Здесь записаны все представленные на графике данные, их связи, уравнения подгонки, параметры внедренных объектов, связи графиков и рисунков и т. п. Записанные в таком формате графики можно впоследствии открыть в любом из модулей системы STATISTICA для продолжения настройки и анализа данных. Кроме того, их можно распечатать в пакетном режиме с помощью команды «Печать» файлов из выпадающего меню «Файл». Графические файлы в собственном формате системы 134 STATISTICA можно динамически связать с документами приложений Windows с помощью методов OLE. Экспорт через буфер обмена (вставка или специальная вставка методами OLE). Использование буфера обмена — это самый быстрый способ экспорта графика в другое приложение. При копировании в буфер обмена создается три графических представления объекта: в собственном формате STATISTICA, в формате метафайла Windows и в формате растрового изображения. Каждое из них может быть использовано в других приложениях. Графики системы STATISTICA могут присутствовать в других приложениях (редакторах или электронных таблицах) как в качестве связанных, так и внедренных объектов. При использовании методов OLE они сохраняют свою связь с системой STATISTICA и, следовательно, могут интерактивно редактироваться в рамках других приложений. Доступ ко всем данным графика. Данные, представленные на графиках системы, можно непосредственно просматривать и изменять независимо от их типа во встроенном «Редакторе данных графика». Это могут быть исходные данные, части таблицы результатов или ряд рассчитанных значений (например, вероятностный график). Для каждого графика создается связанное с ним «дочернее» окно «Редактора», которое закрывается вместе со своим графическим окном. «Редактор» организован в виде групп столбцов, представляющих отдельные зависимости данного графика (см. Рис.2.22.). Рис.2.22. Окно «Редактор данных графика» STATISTICA. 135 Категоризованные графики. Для создания категоризованных графиков данные разбиваются на подгруппы. На одном изображении будет одновременно представлено несколько графиков, по одному для каждой из заданных подгрупп. Например, можно построить графики нагрузок отдельно для потребителей разных категорий по надежности электроснабжения, разделить графики нагрузок внутри категорий на группы потребителей промышленного характера, общественного, жилого и т. п. Пример такого разбиения приведен на Рис.2.23. Разбиение данных на однородные группы и исследование связей между этими группами — чрезвычайно важный прием анализа данных. Рис.2.23. Категоризованные графики в системе STATISTICA. Категоризованные графики широко применяются в системе STATISTICA: - Они доступны в большинстве диалоговых окон с результатами анализа (эти графики автоматически создаются в тех процедурах, где анализируются группы или подгруппы данных, например, при классификации, проверки t-критериев, в дисперсионном, дискриминантном и непараметрическом анализе). - Эти типы графиков присутствуют в списке «Быстрые статистические графики» в контекстных меню всех таблиц исходных данных и таблиц результатов. - Их можно вызвать из списка «Статистические графики» (в выпадающем меню «Графика»), при построении которых предлагается 136 большой выбор различных методов категоризации данных. При построении категоризованных графиков из диалоговых окон с результатами анализа подгруппы данных определяются автоматически (поскольку такое разделение является частью исследования данных). При построении статистических графиков предлагаются различные способы задания подгрупп по одной или двум группирующим переменным. Кроме того, разбиение на подгруппы может организовать сам пользователь, используя любые комбинации переменных из текущего набора данных. В системе STATISTICA существует несколько методов выделения категорий: - по целым значениям группирующих переменных (Целые числа), - разделением группирующих переменных на заданное число интервалов (Категории), - разделением группирующих переменных на интервалы с заданными граничными значениями (Границы), - с помощью задания конкретных значений (кодов) группирующих переменных (Коды), - путем формирования сложных подгрупп (Сложные подгруппы); для этого пользователь может ввести условия выбора наблюдений практически неограниченной сложности и использовать значения любой переменной текущего файла данных 7. Построение графиков Тернарные графики поверхности и карты линий уровня. При выводе результатов анализа по составлению смесей в модуле «Планирование эксперимента» можно построить тернарные графики в виде трехмерных поверхностей или карт линий уровня, внешний вид которых показан на Рис.2.24. Тернарные графики можно построить из подменю «Статистические XYZ графики», «Статистические категоризованные графики» и «Пользовательские графики» выпадающего меню «Графика». 137 Рис.2.24. Тернарные графики в системе STATISTICA. Графики в полярных координатах. Некоторые типы графиков можно построить в полярных координатах как показано на Рис.2.25. К ним относятся графики рассеяния, линейные графики и последовательные вложенные графики из подменю «Статистические 2М графики», которое также вызывается из выпадающего меню «Графика». Рис.2.25. Графики в системе STATISTICA, построенные в полярных координатах. 138 В полярных координатах можно построить и категоризованные графики. Многие графики, нарисованные в обычной прямоугольной системе координат, можно представить в полярных координатах. Для этого нужно установить соответствующий переключатель в диалоговом окне «Общая разметка» в положение «Полярные», приведенном на Рис.2.26. Рис.2.26. Задание типа координат при представлении графиков в системе STATISTICA. Задание типа графика. Тип графика удобно задать, пользуясь кнопкой «Галерея графиков». С помощью этой кнопки, присутствующей в диалоговом окне каждого типа графиков, открывается диалоговое окно «Галерея графиков» STATISTICA, внешний вид которого показан на Рис.2.27. 139 Рис.2.27. Диалоговое окно «Галерея графиков». Отсюда быстро и легко вызываются все статистические и пользовательские графики, пустые графические окна и статистические графики пользователя. Для этого нужно выделить название нужного типа графика и дважды щелкнуть на нем или нажать кнопку «ОК». Пользовательские и статистические графики. Помимо специализированных графиков, которые вызываются непосредственно из итогового диалогового окна любой программы статистической обработки, существуют еще два основных типа графиков, доступных из меню или панели инструментов любой таблицы: пользовательские графики и статистические, а также быстрые статистические графики. Главное различие между двумя основными типами графиков заключается в источнике данных для отображения. Пользовательские графики могут быть построены с помощью кнопок на панели инструментов . Пользовательский график дает возможность отобразить любую заданную пользователем комбинацию значений из таблиц исходных данных или таблиц результатов (а также из любой комбинации их строк и/или столбцов). В меню предлагается пять типов таких графиков: 2М пользовательские графики, ЗМ пользовательские последовательные графики, ЗМ пользовательские диаграммы рассеяния и поверхности, пользовательские матричные графики и пользовательские пиктографики. При выборе одного из них открывается соответствующее диалоговое окно, где для отображения на графике можно задать диапазон данных текущей таб- 140 лицы. Содержание этого диалогового окна зависит от выбранного типа пользовательского графика. Начальный выбор данных для построения графика, предлагаемый в этом диалоговом окне, определяется положением курсора в текущей таблице. В каждом диалоговом окне пользовательского графика при задании параметров предусмотрена возможность выбора определенного вида графика (в рамках основного типа). Вид графика также можно подобрать и после построения (с помощью диалоговых окон «Общая разметка» или «Размещение графика», которые открываются при двойном щелчке мышью на области фона графического окна или при выборе соответствующей строки выпадающего меню «Разметки»). Для построения статистических графиков применяются кнопки на панели инструментов . В отличие от пользовательских графиков, которые представляют собой средство наглядного отображения числовых данных любых таблиц, статистические графики предлагают сотни заранее определенных типов графических представлений, включающих аналитическое обобщение статистических данных. Они вызываются из диалогового окна «Галерея графиков», которое открывается с помощью одноименной кнопки панели инструментов или из выпадающего меню «Графика» (см. Рис.2.28.). Рис.2.28. Построение статистических графиков. 141 При построении таких графиков используются значения непосредственно из файла данных, которые не зависят от содержания текущей таблицы, выделения блоков и положения курсора. При этом предлагаются либо стандартные методы графического анализа исходных данных (различные графики разброса значений, гистограммы, графики средних значений, например, медиан), либо стандартные аналитические методы исследований (графики нормальной плотности распределения, вероятностные графики с исключенным трендом или графики доверительных интервалов линий регрессии). При построении статистических графиков программа учитывает условия выбора и веса наблюдений. Быстрые статистические графики могут быть построены при использовании кнопки на панели инструментов . Наиболее широко используемые типы статистических графиков, вызываемых из меню «Графика», представлены в меню «Быстрые статистические графики». Эти списки графиков не предоставляют такой широкий спектр возможностей, как меню «Статистические графики», но в отличие от последних упрощают и ускоряют процедуру построения графика. «Быстрые статистические графики» вызываются из контекстных меню или с панели инструментов любой таблицы (обычно они не требуют обращения к выпадающим меню или диалоговым окнам). Они не требуют от пользователя выбора переменных (этот выбор определяется текущим положением курсора в таблице) и промежуточной настройки параметров (формат соответствующих графиков определяется по умолчанию). При выборе пункта «Быстрые статистические графики» (с помощью кнопки на панели инструментов из контекстного меню или из выпадающего меню «Графика») появляется меню выбора статистического графика для текущей переменной таблицы, то есть той, на которую в настоящий момент указывает курсор, что показано на Рис.2.29. 142 Рис.2.29. Построение статистических графиков при выборе пункта «Быстрые статистические графики». Если курсор не указывает ни на одну из переменных, то перед построением любого графика из меню «Быстрые статистические графики» будет предложено выбрать переменную из списка. При создании таких графиков система STATISTICA учитывает текущие условия выбора и веса наблюдений. Блоковые статистические графики. Эти типы (пользовательских) графиков вызываются из пунктов контекстных меню «Статистики блока по столбцам» и «Статистики блока по строкам» или из диалогового окна «Галерея графиков» (см. Рис.2.30.). Любой из этих вариантов дает возможность построить итоговый статистический график для выделенного блока, чтобы сравнить значения в строках («Статистики блока по строкам») или в столбцах таблицы («Статистики блока по столбцам»). Данный тип графиков похож на те пользовательские графики, на которых отображаются данные текущего блока таблицы. 143 Рис.2.30. Построение блокового статистического графика. Другие специализированные графики. Помимо стандартного набора быстрых статистических графиков некоторые таблицы позволяют строить и более специализированные статистические графики (например, временные последовательности в модуле «Временные ряды», пиктографики регрессионных остатков, а также контурные графики в модуле «Кластерный анализ»). Как уже упоминалось ранее, специализированные графики, которые связаны не с конкретной таблицей результатов, а с определенным методом анализа данных (например, графики аппроксимирующих функций в модуле «Нелинейное оценивание» или средних в модуле «Дисперсионный анализ»), вызываются непосредственно из диалогового окна с результатами анализа (то есть из окна, содержащего выходные параметры используемого метода обработки данных). Настройка графика до и после его построения. Любые изменения параметров графика в STATISTICA осуществляются из активного графического окна (после отображения графика на экране). Как правило, сначала имеет смысл построить график, приняв значения параметров по умолчанию, а затем уже вносить различные изменения. Однако в тех редких случаях, когда построение графика занимает слишком много времени (при создании сложных составных графических изображений или обработке больших наборов данных), можно вмешаться в этот процесс, чтобы сделать необходимые настройки. Прервать рисование можно одним нажатием клавиши или щелчком 144 мыши в любом месте экрана, а затем продолжить его после ввода необходимых изменений. Предусмотрено два основных метода настройки графика — добавление и редактирование пользовательских графических объектов, изменение структурных элементов графика. Для настройки графического изображения достаточно щелкнуть на конкретном элементе графика или выбрать соответствующий пункт в диалоговых окнах «Общая разметка» или «Размещение графика», которые вызываются из выпадающего меню «Разметки». В то же время отдельные параметры, которые определяют источник данных, нужно задать до построения графика, например, переменные, метод категоризации, значения меток, имена наблюдений, метки осей. В данном примере перед построением графика нужно выбрать переменные и метол, категоризации, а также при необходимости задать значения некоторых параметров с помощью кнопки «Параметры». После построения графика при щелчке на любом месте фона графического окна появится диалоговое окно «Общая разметка», в котором регулируются параметры общего расположения графика (см. Рис.2.31.). Рис.2. 31. Регулирование расположения графика с помощью 145 диалогового окна «Общая разметка». В этом окне можно изменить тип графика и задать построение карты линий у ровня (используйте для этого поле «Тип графика»). Кроме того, можно изменить параметр «Число сечений» с установленного по умолчанию со значением 15x15 на 25 х 25 (этот параметр определяет точность построения карты линий уровня) как показано на Рис.2.32. Рис.2. 32. Редактирование точности построения карты линий уровня. После внесения изменений нажмите «ОК», и вы увидите новый график, приведенный на Рис.2.33. 146 Рис.2.33. Внешний вид отредактированного графика. Графический формат STATISTICA. Графики и рисунки могут быть сохранены в графическом формате STATISTICA в файле с расширением *.stg. Для этого используются команды «Сохранить» и «Сохранить как...» из выпадающего меню «Файл». Именно этот формат рекомендуется для записи графического файла, если предполагается в дальнейшем снова открывать его в системе STATISTICA или присоединять к другим приложениям методами OLE. В отличие от других графических форматов формат STATISTICA хранит не только саму картинку, но и «Редактор данных» графика со всеми представленными на графике данными, все аналитические параметры (уравнения подгонки, эллипсы и пр.), а также другие параметры, позволяющие впоследствии продолжить анализ графических данных. Этот формат наиболее удобен при связывании или внедрении графика в другой график STATISTICA. Сохраненные в данном графическом формате файлы можно распечатать в пакетном режиме с помощью команды «Печать файлов» из выпадающего меню «Файл». 8. Командный язык STATISTICA (SCL) STATISTICA содержит два встроенных языка программирования STATISTICA BASIC и SCL (командный язык). Оба языка предназначены для работы в среде STATISTICA и содержат встроенные операции для обращения к таблицам исходных данных, таблицам ре- 147 зультатов и графическим функциям. Язык STATISTICA BASIC представляет собой простой и одновременно достаточно мощный язык программирования. С его помощью можно создать широкий спектр приложений, начиная от простых программ преобразования данных и кончая сложными пользовательскими процедурами комплексного анализа и вывода информации. Этот язык программирования пригоден для решения больших вычислительных задач, поскольку обрабатываемые массивы данных могут иметь до 8 измерений, а также отсутствуют ограничения на размеры массивов. Таким образом, пользователь может использоваться всю доступную память и создавать процедуры, включающие операции с большими многомерными матрицами. Встроенный язык STATISTICA BASIC доступен в любой момент анализа вместе с интегрированной средой, которая позволяет писать, редактировать, проверять, отлаживать и выполнять программы. Язык STATISTICA BASIC, как обычный язык программирования, поддерживает циклические операции и условные переходы, функции и подпрограммы, а также работу с динамическими библиотеками (DLL). В то же время он «понимает» структуру файлов данных системы STATISTICA и позволяет организовать интерактивную обработку данных в среде самой системы с помощью пользовательских диалоговых окон. С помощью этого языка пользователь может создавать свои собственные сложные программы анализа данных, одновременно используя готовые алгоритмы расчетов и построения графиков, предусмотренные в системе STATISTICA. Командный язык SCL (STATISTICA Command Language) предназначен для организации пакетной обработки данных и создания собственных приложений на основе процедур, содержащихся в системе STATISTICA. Для того чтобы пользователь мог при этом реализовать собственные алгоритмы расчетов, предусмотрена возможность интеграции языков STATISTICA BASIC и SCL. Программы, написанные на встроенных языках системы STATISTICA, доступны в любом модуле системы и на любом этапе анализа данных, при этом их можно вызывать и выполнять как с помощью кнопок автозадач, так и непосредственно из окна редактирования. Пользователь также имеет возможность создавать собственные библиотеки функций и подпрограмм и таким образом значительно расширять предлагаемый набор процедур обработки данных и представления результатов. SCL – программы могут также включать в себя программы и процедуры, написанные на языке STATISTICA BASIC (языке 148 STATISTICA, предназначенном для преобразования данных и графиков и управления ими, который доступен из любого модуля пакета). Например, определенные пользователем графические или вычислительные процедуры на языке STATISTIСА ВASIС могут выполняться как часть пакета команд SCL. Ввод и исполнение SCL-программ. STATISTICA может работать в «истинном» пакетном режиме как система, управляемая командами, с помощью встроенного языка управления приложениями SCL, доступного в любом модуле системы из выпадающего меню «Анализ». Можно ввести последовательность команд для выполнения определенных действий, а затем сколько угодно раз исполнять ее в пакетном режиме. Возможен и другой способ действий — использование диалогового окна «Мастер команд» для быстрого выбора и ввода требуемого списка команд. Для написания и отладки «пакетов» команд используется интегрированная среда языка SCL. Она включает текстовый редактор, совмещенный с окном «Мастер команд» (Рис.2.34.), систему помощи по синтаксису языка с примерами и интегрированные средства проверки правильности программ, доступные из выпадающего меню «Сервис». Рис.2.34. Написание SCL-программы с помощью «Мастера команд». 149 Исполняемый модуль STATISTICA. Командный язык содержит специальный «Исполняемый модуль», позволяющий разрабатывать приложения «под ключ», которые вызываются двойным щелчком на значке соответствующего «пользовательского приложения» на рабочем столе Windows как показано на Рис.2.35. Эта возможность позволяет экономить время пользователя, когда многократно повторяется одна и та же процедура или последовательность процедур анализа, а также дает возможность использовать SСL-программы пользователями, которые не знакомы с соглашениями системы STATISTICA. а) Рис.2.35. Работа с приложениями «под ключ»: а) набор «поль зовательских приложений», б) пиктограмма для запуска SCLпрограммы. Чтобы создать такое приложение «под ключ», сначала нужно написать саму SCL-программу и сохранить ее обычным образом (например, в файле Program 1.sct). Затем в окне «Диспетчер программ» системы Windows нужно создать пиктограмму (Рис.2.2.35.б) для исполняемого модуля с именем Sta_run.exe (оно находится в папке STATISTICA на диске). В поле команд нужно задать имя SCL-программы, подлежа- 150 щей исполнению (например, d:\data\program1.scl). Теперь при щелчке мышью на этом значке будет начинаться выполнение программы (в данном случае Program1.sel). Описанным способом можно создать любое количество пользовательских приложений, а с помощью окна «Диспетчер программ» дать им содержательные имена, соответствующие тем задачам анализа данных, которые эти приложения выполняют. Кнопки автозадач. Кнопки автозадач — это всплывающая настраиваемая панель инструментов (включить или выключить ее можно клавишами CTRL+M). Кнопки автозадач позволяют максимально автоматизировать работу. С их помощью можно выполнять различные макрокоманды, запускать программы пользователей, просматривать отчеты, графики и многое другое. Кнопки автозадач на панели инструментов можно назначить или переопределить с помощью кнопки «Настройка...» (или нажатия на соответствующую кнопку при удерживаемой клавише CTRL). В диалоговом окне, которое при этом открывается, можно присвоить имена уже имеющимся и новым кнопкам. В центральной части этого окна расположен столбец кнопок, позволяющий: - Изменить или задать кнопку. Нажав на эту кнопку, вы можете задать последовательность нажатий кнопок клавиатуры. Для организации такой последовательности достаточно нажать кнопку «Запись» в правой части диалогового окна. С этого момента система автоматически начнет запоминать и переводить на язык команд ваши действия. Нажав, например, на клавиатуре кнопку «Alt», вы попадете в главное меню, по которому сможете передвигаться с помощью стрелок и клавиши «Enter». Свободно перемещаться внутри диалоговых окон вам поможет клавиша «Tab» и т. д. Для окончания записи нажмите «CTRL»+«F3». В нижней части окна «Настройка кнопок автозадач» будут описаны кнопки перемещений по окнам и соответствующий им синтаксис. - Удалить кнопку. В любой момент времени вы можете удалить ставшую ненужной кнопку. - Задать последовательность функций или операций на командном языке STATISTICA (SCL). - Использовать написанные на языке STATISTICA BASIC процедуры вычислительного характера, преобразования данных, операции по управлению данными, графические процедуры, а также процедуры, написанные на любом другом языке программирования, вы- 151 зываемые из STATISTICA BASIC. - Открывать файлы данных и любые вспомогательные файлы системы STATISTICA. - Создавать и редактировать макрокоманды (последовательности нажатий клавиш), соответствующие часто выполняемым процедурам, заданиям или настройкам. Такие редактируемые команды можно вводить в текстовом виде или, например, как последовательности движений мышью. В каждом из описанных выше окон предусмотрена возможность создания сочетаний «горячих клавиш». Вы можете назначить сочетание клавиши «CTRL» и любой буквы от А до Z или цифры от 0 до 9. После сохранения этой установки вам будет достаточно нажать определенную комбинацию клавиш, что будет равносильно нажатию на кнопку автозадачи. Панель инструментов может быть глобальной или локальной и содержать большие библиотеки пользовательских заданий и процедур. Локальная панель инструментов связана с конкретным модулем или проектом. Имя открытой в данный момент панели высвечивается в строке заголовка диалогового окна. Настроенную панель инструментов «Кнопки автозадач» можно затем сохранить, используя команды диалогового окна «Настройка....» (Рис.2.36.). Рис.2.36. Настройка и сохранение панели инструментов. Размеры панелей инструментов можно менять с помощью мыши. Положение панели на рабочем столе можно зафиксировать, переместив ее к границе окна приложения системы STATISTICA. Выбирая последний пункт контекстного меню, как показано на Рис.2.37., 152 которое появляется по щелчку правой кнопкой мыши где-либо на панели инструментов, можно быстро переключаться между различными предварительно сохраненными панелями инструментов «Кнопки автозадач». Рис.2.37. Переключение между различными панелями инструментов «Кнопки автозадач». Таким образом истема STATISTICA постоянно развивается, открывая новые возможности для пользователей. Развитие системы происходит в ногу с развитием современных Windows-технологий. Гибкая настраиваемость для задач конкретного проекта, широкий набор статистических опций, доступных пользователю из других приложений, глобальная интеграция с другими приложениями, например, с помощью VB, C++, Java, оптимизация для Web и мультимедийных приложений - ближайшие перспективы STATISTICA. 153 Часть3. ИСПОЛЬЗОВАНИЕ ПРОГРАММНО_АППАРАТНОГО КОМПЛЕКСА АНФАС ДЛЯ РЕГИСТРАЦИИ И АНАЛИЗА ПЕРЕХОДНЫХ ПРОЦЕССОВ В ЭЛЕКТРИЧЕСКИХ СЕТЯХ 1. Структура системы Структура системы представлена на рисунке 3.1. В состав программно-аппаратного комплекса входят следующие подсистемы: 1. Подсистема регистрации и первичной обработки параметров электрической линии. 2. Подсистема передачи данных. 3. Подсистема определения режимов электрической линии. Регистратор сигналов ПО «АнФАС» Электрическая подстанция Диспетчерский пункт Рис.3.1. Структура системы. Регистрация параметров электрической линии производится с помощью специального прибора, размещенного на электрической подстанции. Прибор реализован на базе персонального компьютера IBM PC с процессором класса 80386. Компьютер работает под управлением операционной системы Linux. Прибор регистрирует и хранит в своей памяти мгновенные значения токов и напряжений электрической линии. Частота дискретизации прибора составляет 5000 Гц, что обеспечивает достаточную точность при обработке записанных сигналов. Регистрируются параметры как нормального режима работы электрической линии, так и параметры аварийного режима. Данные записываются в файл специального формата, который затем архивируется для уменьшения размера при передаче по сети. Дальнейшая обработка сигналов может производится как на самой подстанции, так и в удаленном диспетчерском пункте. В этом случае записанные данные необходимо передать в диспетчерский 154 пункт. Специальных требований к техническому обеспечению для передачи данных нет, так как используется модемная связь по телефонной линии или, если есть возможность, по выделенной линии. Определение параметров режимов работы электрических линий и связанные с ними прикладные задачи решаются с помощью специального программного обеспечения. Часть таких задач решается с помощью программного продукта «АнФАС». Программа «АнФАС» работает на персональных компьютерах под управлением операционной системы Windows 9x/ME/NT/2000/XP. Системные требования программы не велики: свободный объем дискового пространства – 1 Мб; объем оперативной памяти – 16 Мб; центральный процессор – класса 80486 и выше. Для комфортной работы с программой необходим цветной монитор с разрешающей способностью не ниже 800х600 dpi и манипулятор мышь. Более подробно рекомендуемая конфигурация приведена в разделе описания программы. Структура и необходимые требования для работы системы представлены в таблице 3.1. Таблица 3.1. Электрическая станция Аппаратное обеспечение: Процессор Не ниже 80386 Оперативная 4-16 Мб память Объем НЖМД 800 Мб Плата прибора Требуется «ФАС» Программное обеспечение: Операционная Linux система Программное Архиватор tar обеспечение под- Диспетчерский пункт Pentium I и выше Не менее 16 Мб Не менее 1 Мб для ПО Не требуется Windows 9x/ME/NT/2000/XP ПО «АнФАС» 2. Общая характеристика ПО «АнФАС» Программа «АнФАС» предназначена для просмотра и анализа параметров электрической линии, записанной с помощью прибора «ФАС». Кроме формата файлов, записанных с помощью «ФАС», программа может просматривать и анализировать файлы, записанные в 155 формате COMTRADE (общий формат обмена данными переходных процессов в энергетических системах. Стандарт IEEE C37.111-1191), что расширяет возможности ее использования. Просмотр данных аварийных и нормальных режимов происходит в виде графиков (осциллограмм), представляющих мгновенные значения токов и напряжений электрической линии. Для удобства просмотра доступны функции масштабирования шкал значений и времени, выборочное отображение графиков, ручная и автоматическая прокрутка изображений, использование меток, хранение экранов, экспорт экранов в файлы графического формата, выбор и редактирование цветовой схемы представления графиков. К средствам обработки данных относятся процедуры определения параметров электрической линии на основе имеющихся данных. К таким параметрам относятся частота, действующие значения токов и напряжений каналов, фазовые соотношения каналов. Также доступны построение векторных диаграмм сигналов, разложение сигналов по гармоникам, определение симметричных составляющих сигналов и т.д. Важной особенностью программы является встроенные возможности коррекции ошибок записанных данных. Одной из основных решаемых с помощью программы задач является определение места повреждения в случае короткого замыкания на линии. В связи с этим предусмотрены специальные функции автоматического поиска места аварии, определения вида короткого замыкания и расчета его параметров с последующим определением места повреждения. Такие же функции доступны и в ручном режиме, проводимым диспетчером. Другой важной областью применения программы «АнФАС» является оценка качества электрической энергии, производимой в соответствии с ГОСТ 13109-97 (НОРМЫ КАЧЕСТВА ЭЛЕКТРИЧЕСКОЙ ЭНЕРГИИ В СИСТЕМАХ ЭЛЕКТРОСНАБЖЕНИЯ ОБЩЕГО НАЗНАЧЕНИЯ). 3. Функции ПО «АнФАС» Программа «АнФАС» выполняет следующие функции: 1. Графическое отображение (визуализация) сигналов и рассчитанных по ним параметров электрической линии. 2. Расчет параметров электрической линии по заданным сигналам. 3. Решение задачи определения места повреждения электрической линии. 156 4. Функции настройки системы. Функция визуализации позволяет выполнить следующие действия: Отображение графиков сигналов на экране компьютера. Отображение сведений о загруженном процессе: дата, имя регистратора, длительность процесса и т.д. Прокрутка графиков по шкале времени. Формирование экранов путем выбора нужных графиков и отключения не нужных. Изменение расположения графиков в пределах одного экрана. Выделение временного участка процесса с помощью метки. Выделение графиков (для дальнейшей работы с ними). Масштабирование по шкале времени и значений. Просмотр огибающих всего процесса в пределах одного экрана. Хранение неограниченного числа экранов и их описаний, быстрая загрузка файлов с помощью закладок. Отображение векторных диаграмм для выбранных графиков. Использование текстовых меток для каждого канала. Отображение координатной сетки для графиков. Использование текстовых меток для каждого канала. Возможность автоматической прокрутки графиков. Сохранение произвольного фрагмента экрана в графический файл. Вывод содержимого экрана на печать. Функция расчета параметров электрической линии по загруженным из файла данным позволяет выполнить следующие действия: Определение мгновенных значений сигналов. Определение действующих значений сигналов на выделенном временном интервале. Определение фазовых соотношений между произвольно выбранными сигналами. Определение гармонического состава сигналов с выделением действующих значений и фазовых соотношений между основными гармоническими составляющими сигналов. Определение частоты в электрической линии. Расчет симметричных составляющих сигналов трехфазной цепи. 157 Решение задачи определения места повреждения электрической линии реализовано в отдельном модуле программы. При определении места повреждения используются параметры электрической сети, полученные расчетным путем (см. выше), а также параметры электрической сети, хранимые в файле конфигурации. Задача ОМП реализуется в автоматическом, полуавтоматическом и ручном режимах. В любом случае задаче ОМП предшествует определение особой фазы и вида короткого замыкания. Функции настройки системы позволяют пользователю приспособить программу под свои предпочтения и требования. Настройки визуализации позволяют пользователю выбрать наилучшие параметры отображения и работать с максимальным удобством для себя. В программе предусмотрен специальный редактор для подбора и изменения цветовых схем отображения. Возможность программной настройки цветов актуальна, так как разные пользователи имеют разные мониторы и стандартные схемы отображения могут отображаться неудовлетворительно. Другая группа настроек относится к работе с файлами конфигурации линий и изменению параметров некоторых алгоритмов программы. Файлы конфигурации рекомендуется хранить в одном каталоге, путь к которому определяется с помощью специального диалога. В случае хранения файлов конфигурации в различных каталогах, рекомендуется добавить эти пути в список поиска. В случае отсутствия файла конфигурации в указанных каталогах, программа предлагает пользователю самостоятельно найти его. Без файла конфигурации просмотр файла с данными невозможен. Изменять параметры алгоритмов требуется для повышения точности расчетов, особенно если они ведутся в автоматическом режиме. Изменяемые параметры алгоритмов определяют количество точек для автоматического поиска места возникновения возмущения, количество точек для автоматического расчета параметров электрической линии, коэффициенты уставок и меры снятия апериодических составляющих при автоматических и полуавтоматических режимах работы программы. 158 4. Подготовка к работе, состав ПО «АнФАС» Для успешной работы с программой «АнФАС» требуется произвести процесс установки (инсталляцию). Для инсталляции программы необходимо запустить файл setup.exe и указать каталог для установки программы. Рис. 3.2. Установка программы «АнФАС» На последнем шаге инсталляции предлагается диалог запуска программы, показанный на рисунке 3.3. Рис. 3.3. Диалог запуска программы «АнФАС» 159 После установки запустить программу можно с помощью главного меню Windows, пункты меню Пуск\Программы\AnFAS\Run AnFAS. Состав программного продукта описан в таблице 3.2. Таблица 3.2. Имя файла ANFAS.EXE ANFAS.INI Описание Исполнимый файл программы Файл программы с настройками Файл для хранения цветовых COLORS.INI схем Файл для хранения закладок SCRSAVE.DAT Каталог с файлами помощи <HELP>> UNINSTALL.EXE, UNIN- Файлы для удаления программы STALL.INI Каталог с примером <TEST> Файл с примером аварии TEST\R11.DST Конфигурационный файл TEST\CFG\R11.CFG примера Для правильной работы программы указанные файлы и каталоги перемещать, переименовывать, удалять нельзя. Перед началом работы необходимо настроить «АнФАС» таким образом, чтобы файлы конфигурации искались в каталоге TEST\CFG. Для этого необходимо запустить программу, зайти в меню НАСТРОЙКА\ПАРАМЕТРЫ… или нажать кнопку на панели инструментов. В появившемся окне на закладке СИСТЕМА нажать кнопку добавления каталога, как показано на рисунке 3.4. Рис. 3.4. Настройка системы. 160 Далее, в появившемся диалоге выбрать каталог с файлами конфигурации и нажать OK, как показано на рисунке 3.5. Рис. 3.5. Выбор каталога с файлами конфигурации. После выбора каталога с файлами конфигурации окно настройки системы будет иметь вид, показанный на рисунке 3.6. Рис. 3.6. Добавлен каталог, содержащий файлы конфигурации. Теперь нужно нажать кнопку ПРИНЯТЬ для внесения изменений в настройки. 161 5. Работа с программой После запуска программы появляется главное окно программы (рисунок 3.7). Рис. 3.7. Главное окно программы. Основное место окна отведено для области отображения графиков (4). Основными элементами интерфейса являются главное меню программы (1), панель инструментов (2), панель параметров (3). Панель инструментов дублирует пункты главного меню программы и обеспечивает быстрый доступ к основным действиям. Инструменты на панели сгруппированы по выполняемым функциям и приведены в таблице 3. 162 Таблица 3. Вид Описание Открытие файла с сигналами. Выбор каналов и линий для отображения в виде графиков Масштабирует напряжения Масштабирует токи Масштабирует ось времени Установка метки Автоматический режим расчета параметров Полуавтоматический режим расчета параметров Ручной режим расчета параметров Установка закладки (сохранение экрана) Переход к выбранной закладке Получение информации о загруженном процессе Настройки программы Настройки цветовой схемы Копирование экрана в графический файл Вызов справки 6. Загрузка файлов Для визуального отображения сигналов и дальнейшей работы с ними, в программу необходимо загрузить файл, в котором хранятся записанные прибором показания – динамические параметры электрической линии. Такие файлы имеют расширение *.DST. Статические параметры электрической линии хранятся в отдельных конфигурационных файлах с расширением *.CFG. 163 Загрузку файлов *.DST можно осуществить с помощью пункта меню программы ФАЙЛ \ ОТКРЫТЬ, либо используя кнопку на панели инструментов. В появившемся диалоге открытия файлов необходимо выбрать нужный файл с расширением *.DST. Поиск файла конфигурации будет выполнен к каталогах поиска. Если файл конфигурации в указанных директориях не найден, то выводится диалог открытия файла, с помощью которого пользователю предлагается самостоятельно указать местонахождение конфигурационного файла. В случае, отсутствия конфигурационного файла выдается сообщение об ошибке и дальнейшая обработка файлов с динамическими параметрами линии не возможна. Если найденный конфигурационный файл поврежден или содержит не все необходимые параметры, также выдается сообщение об ошибке и обработка сигналов не производится. В случае инсталляции программы AnFAS, запуск программы и вывод диалогового окна с каналами для отображения будет проведен автоматически при выполнении двойного щелчка на файле с расширением *.DST. Выбор каналов для отображения на экране осуществляется с помощью диалога выбора каналов. Существует несколько способов вызова этого диалога. Он появляется автоматически в случае успешной загрузки файла с динамическими параметрами. Кроме того, этот диалог доступен из меню ВИД \ СКРЫТЬ/ОТОБРАЗИТЬ ГРАФИКИ… С помощью панели инструментов диалог выбора каналов вызывается кнопкой . Пункт контекстного меню СКРЫТЬ\ОТОБРАЗИТЬ, вызываемого правой кнопкой мыши на области отображения графиков сигналов, также позволяет вызвать этот диалог. Диалог выбора каналов показан на рисунке 3.8. Диалог выбора каналов отображает все существующие каналы электрической линии, динамические параметры которой обрабатываются. Имена каналов и их типы определяются из файла конфигурации. Чтобы отобразить каналы из другого файла необходимо выполнить процедуру загрузки соответствующего файла с динамическими параметрами. Выбор каналов для отображения осуществляется установкой отметки слева от имени канала. Чтобы отменить выбор канала или скрыть те каналы, которые отображены в текущий момент, необходимо снять пометку в поле слева от имени канала . 164 Рис. 3.8. Диалог выбора каналов После выбора каналов нажать кнопку ДАЛЕЕ для отображения изменений на экране. Отмеченные с помощью диалога выбора каналы отображаются в виде графиков в окне программы АнФАС. При отображении каналов тока и напряжения приняты соглашения, приведенные в таблице 3.4. Таблица 3.4. Фаза Цвет графика Желтый Зеленый Красный Белый 1 (A) 2 (B) 3 (C) 0 (Z) Окно программы с отображаемыми графиками представлено на рисунке 3.9. 165 Рис. 3.9. Окно программы с отображаемыми графиками каналов Для идентификации отображаемого канала, каждый график имеет подпись с левой стороны, как показано на рисунке 3.9. 7. Работа с графиками Основные действия, доступные при работе с графиками, приведены в таблице 3.5. Таблица 3.5. Изменение положения графика по горизонтали Графики сигналов обычно полностью не помещается в пределах окна программы. Для изменения горизонтального положения графика на экране, используется полоса прокрутки внизу окна.. Изменение положения графиков по вертикали 166 По–умолчанию, количество одновременно отображаемых графиков на экране равно четырем. Если для отображения выбрано более чем четыре канала, то просмотреть их можно используя вертикальную полосу прокрутки, находящуюся справа в области построения графиков. Изменение количества графиков, одновременно отображаемых на экране Для изменения количества графиков, одновременно отображаемых на экране, используется диалоговое окно, вызываемое с помощть пункта меню ВИД \ КОЛИЧЕСТВО ГРАФИКОВ. То же действие доступно из контекстного меню Количество графиков, вызываемого щелчком правой кнопки мыши на области отображения графиков. В этом окне необходимо установить требуемое количество графиков. Для изменения положения графика в пределах окна, необходимо поместить указатель мыши в точку, находящуюся возле нужного графика и с нажатой кнопкой SHIFT перетащить график в любое место в пределах окна. Изменение масштаба оси времени Для изменения масштаба горизонтальной оси (оси времени), необходимо воспользоваться указанной кнопкой на панели инструментов и, плавно перемещая мышь, изменять масштаб оси времени. Изменение масштаба графиков тока Для изменения масштаба по шкале значений графиков токов, используется инструмент масштабирования, вызываемый показанной кнопкой на панели инструментов. Изменение масштаба графиков напряжений Для изменения масштаба по шкале значений графиков токов, 167 используется инструмент масштабирования, вызываемый показанной кнопкой на панели инструментов. Изменение положения графиков по вертикали в пределах окна Для изменения положения графика по вертикали, например, для наложения нескольких графиков друг на друга, необходимо поместить курсор мыши на идентификатор графика в левой части окна, как показанно на рисунке, и нажав правую кнопку мыши переместить график в нужную позицию в окне. Построение огибающих всего процесса Огибающие процесса отображаются при максимальном сжатии графиков по оси времени с помощью кнопки на панели инструментов. Установка текстовых меток на графике Характерные места на графике процесса можно отмечать с помощью установки текстовых меток. Для установки текстовой метки необходимо вызвать контекстное 168 меню на области отображения графиков в месте, где необходимо установить метку. Далее выбрать пункт меню ПОМЕТКА, как показано на рисунке. В появившемся окне необходимо ввести текст метки и нажать кнопку . Для отмены ввода меток используется кнопка . Для очистки всех текстовых меток используется пункт меню НАСТРОЙКИ \ ОЧИСТИТЬ МЕТКИ. Отображение координатной сетки Для удобства просмотра графиков предусмотен режим отображения координатной сетки с отметками времени. Для переключения между режимами отображения и скрытия координатной сетки используется кнопка параметров отображения. Координатная приведенный на сетка на панели имеет вид, рисунке. Выделение фрагмента с помощью метки Для установки метки используется кнопка на панели инструментов. Для изменения позиции метки требуется нажать правую кнопку мыши и удерживая ее перетащить метку в нужное место. При установке метки отображается интервал времени между текущей позицией курсора и самой меткой – как показано на рисунке. 169 Отображение векторных диаграмм Для отображения векторных диаграмм требуется отметить графики, для которых требуется построить диаграммы и нажать кнопку происходит на панели параметров. Выделение нужных графиков с помощью контекстного меню , вызываемого на нужном графике. Графики, для которых строятся диаграммы, помечаются стрелкой над именем канала: . Окно с векторными диаграммами имеет следующий вид: В режиме вращающихся векторов при изменении положения курсора вектора вращаются против часовой стрелки, отображая текущий угол. Режим вращения включается кнопкой на панели параметров. Для отмены построения диаграммы неодходимо повторно отметить его, вызвав контекстное меню. 170 8. Работа с закладками Установка закладок в просматриваемом файле аварии позволяет сохранять и описывать фрагменты экранов с графиками, то есть делать их «мгновенные снимки». Пользователь имеет возможность в любой момент времени переключаться между закладками. Применение закладок обеспечивает быстрый и удобный переход к интересующему набору графиков. В закладке сохраняются текущая позиция курсора, отображаемые графики, масштабирование, текстовые метки и метка времени. Работа с закладками производится с помощью специального окна, которое вызывается с помощью пункта меню ВИД \ ЗАКЛАДКИ или кнопки на панели инструментов. Рис. 3.10. Окно Закладки Окно Закладки содержит: элементы управления (1), имя активной закладки (2), список определенных закладок (3), окно с описанием выбранной закладки (4). Для представления окна Закладки в более компактном виде, описание выбранной закладки можно скрыть, отключив выбор кнопки . 171 Установка закладки. Для установки закладки необходимо использовать кнопку на панели инструментов или кнопку на панели управления окна Закладки. В появившемся окне нужно задать имя закладки и, если требуется, ее описание. Далее, для сохранения закладки, нужно нажать кнопку. Рис 12. Установка закладки Переход к закладке. Для перехода к закладке необходимо выбрать нужную закладку в списке и нажать кнопку в окне Закладки, либо выполнить двойной щелчок левой кнопкой мыши на имени выбранной закладки. Удаление закладки. Для удаления закладки необходимо выбрать имя закладки из списка и нажать кнопку в окне Закладки. Если требуется удалить все закладки, необходимо использовать кнопку в окне Закладки. Расчет параметров электрической линии. С помощью программы AnFAS можно определять следующие параметры электрических сигналов: Определение мгновенных значений сигналов. Определение действующих значений сигналов на выделенном временном интервале. Определение фазовых соотношений между произвольно выбранными сигналами. Определение гармонического состава сигналов с выделением действующих значений и фазовых соотношений между основными гармоническими составляющими сигналов. Определение частоты в электрической линии. Расчет симметричных составляющих сигналов трехфазной цепи. 172 Определение мгновенных значений сигналов. Мгновенные значения токов и напряжений отображаемых каналов отображаются в левой части экрана, рядом с соответствующим графиком, как показано на рисунке 3.13. Рис. 3.13. Отображение мгновенных значений сигналов Мгновенные значения определяются для моментов времени, которые соответствуют положению курсора в окне отображения. Для включения режима отображения мгновенных значений сигналов используется кнопка на панели параметров в правой части экрана. Действующие значения токов и напряжений, фазовые соотношения. Для расчета действующих значений токов и напряжений необходимо 1)выделить требуемые каналы; 2)установить метку, для указания временного интервала для определения действующих значений. Для выделения каналов необходимо выполнить щелчок левой кнопкой мыши на названии канала в левой части экрана. Выделение определяется по цвету надписи. Для установки метки используется кнопка на панели инструментов. Если подготовительные шаги не выполнены, либо задан слишком маленький интервал для поиска действующих значений, выдается сообщение об ошибке. Минимальный интервал для определения действующего значения сигнала составляет один полупериод. Расчет действующих значений осуществляется с помощью меню АНАЛИЗ \ ПАРАМЕТРЫ \ ДЕЙСТВУЮЩИЕ ЗНАЧЕНИЯ И ФАЗЫ. Результаты расчета отображаются в отдельном окне, показанном на рисунке 3.14. Изменение базового канала в окне результатов позволяет задать канал, фаза которого 173 принимается равной нулю. Для перерасчитываются автоматически. других каналов фазы Рис. 3.14. Действующие значения и фазы Действующие значения токов и напряжений первой гармоники, фазовые соотношения. Выполняются подготовительные действия для расчета действующих значений токов и напряжений, выбирается пункт меню АНАЛИЗ \ ПАРАМЕТРЫ \ ДЕЙСТВУЮЩИЕ ЗНАЧЕНИЯ И ФАЗЫ [1 ГАРМОНИКА] Частота электрического сигнала Частота электрического сигнала определяется с помощью пункта меню АНАЛИЗ \ ПАРАМЕТРЫ \ ЧАСТОТА 174 Список литературы 1. Гультяев А.К. Имитационное моделирование в среде Windows. — СПб.: КОРОНА принт. — 1999. — 288 с. 2. Потемкин В.Г. Система MATLAB. Справ. пособие. —ДиалогМИФИ. — 1997. — 350 с. 3. Егоренков Д.Л., Фрадков А.Л., Харламов В.Ю. Основы математического моделирования. Издание 2 дополненное. — СПб: БГТУ. — 1996. — 191 с. 4. Дьяконов В.П. Справочник по применению системы PC MatLAB. — М.: Наука, Физматлит. — 1993. — 112 с. 5. Гультяев А. Визуальное моделирование в среде MATLAB: Учебный курс. СПб.: Питер, 2000. 6. Дьяконов В. П. MATLAB: Учебный курс. СПб.: Питер, 2000. 7. Дьяконов В. П., Круглов В. Математические пакеты расширения MATLAB: Специальный справочник. СПб.: Питер, 2001. 8. Мартынов Н. Н., Иванов А. П. MATLAB 5.x. Вычисления, визуализация, программирование. М.: КУДИЦ-ОБРАЗ, 2000. 9. Потемкин В. Г. Система MATLAB. М.: Диалог-МИФИ, 1997. 10. Потемкин В. Г. MATLAB 5 для студентов. М.: Диалог-МИФИ, 1998. 11. Потемкин В. Г. Система инженерных и научных расчетов MATLAB 5.x. В 2-х т. М.: Диалог-МИФИ, 1999. 12. Using MATLAB. The MathWorks Inc., 2000. 13. Using MATLAB Graphics. The MathWorks Inc., 2000. 14. Using MATLAB. The MathWorks Inc., 2000. 15. Getting Started with MATLAB. The MathWorks Inc., 1998. 16. MATLAB Notebook User's Guide. The MathWorks Inc., 1998. 17. Building GUIs with MATLAB. The MathWorks Inc., 1997. 18. MATLAB Application Program Interface Guide. The MathWorks Inc., 1998. 19. Symbolic Math Toolbox. User's Guide. The MathWorks Inc., 1997. 175 Учебное издание Иван Григорьевич Абраменко, Олег Герасимович Гриб, Оксана Николаевна Довгалюк, Дмитрий Николаевич Калюжный, Константин Михайлович Карпенко, Алексей Вячеславович Кольченко, Владислав Ильич Левин, Николай Павлович Пан, Игорь Николаевич Рябченко, Геннадий Аркадьевич Сендерович КОМПЬЮТЕРНЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ В ЭЛЕКТРОЕНЕРГЕТИКЕ Учебное пособие Редактор Н.З.Алябьев План 2003, поз.33 Подп. к печати . .03 Формат 60x84 116. Бумага офисная. Печать на ризографе. 10,6 уч.-изд.л. 12,0 усл.-печ. л. Тираж 500 экз. Зак. № Цена договорная ХГАГХ, 61002, Харьков, ул. Революции, 12. Сектор оперативной полиграфии при ВЦ ХГАГХ. 61002, Харьков, ХГАГХ, ул. Революции, 12 176