М.С.Лурье, О.М.Лурье
Применение программы MATLAB при изучении курса электротехники Утверждено редакционно-издательским ...
61 downloads
299 Views
4MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
М.С.Лурье, О.М.Лурье
Применение программы MATLAB при изучении курса электротехники Утверждено редакционно-издательским советом СибГТУ в качестве учебного пособия для студентов всех специальностей и форм обучения
Красноярск 2006
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
2
Федеральное агентство по образованию ГОУВПО «Сибирский государственный технологический университет» М.С. Лурье О.М. Лурье
Применение программы MATLAB при изучении курса электротехники
Для студентов всех специальностей и всех форм обучения
Красноярск 2006
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
3
УДК 621.3.018.72.025.1
Лурье М.С., Лурье О.М. Применение программы MATLAB при изучении курса электротехники. Для студентов всех специальностей и форм обучения. - Красноярск: СибГТУ, 2006.- 208 с.
Данное пособие охватывает вопросы, посвященные применению програмной среды MATLAB для решения задач курса электротехники. Пособие знакомит студентов с общими основами применения программы MATLAB, и с рядом частных, в которых рассматриваются специфические вопросы расчета электротехнических цепей. В заключительной части пособия даются общие сведения и примеры по моделированию электрических цепей с помощью входящего в программную среду MATLAB пакета Simulink. Пособие изложено доступным языком, четко сформулированы основные определения и выводы. Методы расчета электрических цепей снабжены примерами программ на языке MATLAB. Работа снабжена большим количеством иллюстраций, поясняющих примеров. Пособие предназначено для студентов всех форм обучения и всех специальностей. Рисунков 144, таблица 5, библиогр. назв. 12.
Рецензенты: к.т.н., доц. Кожухов В.А. (КрасГАУ); к.т.н., доц. Зингель Т. (методический Совет СибГТУ)
М.С. Лурье, О.М. Лурье ГОУВПО «Сибирский государственный технологический университет», 2006.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
4
Введение Электротехника - это наука о практическом применении электричества, что требует навыков практического решения конкретных расчетных задач. Поэтому, при изучении курсов "Теоретические основы электротехники", "Общая электротехника", "Промышленная электроника", "Электрические машины", "Основы электропривода" и других специальных дисциплин много времени уделяется как рассмотрению решения различных задач, так и самостоятельному выполнению студентами расчетнографических заданий. При выполнении заданий студент должен использовать знания, полученные в курсе математики. Это разделы: решения систем линейных алгебраических уравнений, комплексные числа, вектора и действия над ними, дифференциальное исчисление, решение обыкновенных дифференциальных уравнений, ряды Фурье и спектральный анализ, теория функций комплексного переменного и д.р. К сожалению, численные расчеты, выполняемые студентами, зачастую производятся с помощью калькулятора, то есть практически вручную. Современная вычислительная техника если и используется, то часто лишь для окончательного оформления работы. В то же время, студент должен не только уметь решать те или иные электротехнические задачи, но и делать это по возможности современными методами, то есть, применяя персональный компьютер. В последние годы в университетских и инженерно-технических кругах мира (прежде всего - Европы) получает широкое распространение новая компьютерная система проведения математических расчетов и инженерных вычислений - MATLAB (MATrix LABoratory - матричная лаборатория). Матрицы широко применяются в сложных математических расчетах, например при решении задач линейной алгебры и математического моделирования статических и динамических систем и объектов. Они являются основой автоматического составления и решения уравнений состояния динамических объектов и систем. Примером может служить расширение MATLAB - Simulink. Это существенно повышает интерес к системе MATLAB, вобравшей в себя лучшие достижения в области быстрого решения матричных задач. Однако в настоящее время MATLAB далеко вышла за пределы специализированной матричной системы и стала одной из наиболее мощных универсальных интегрированных СКМ. Слово «интегрированная» указывает на то, что в этой системе объединены удобная оболочка, редактор выражений и текстовых комментариев, вычислитель и графический программный процессор. Основные преимущества MATLAB, выгодно выделяющие ее среди
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
5
существующих ныне математических систем и пакетов (MathCad, Mathematica и др.), заключаются в следующем: система MATLAB специально создана для проведения именно инженерных расчетов: математический аппарат, используемый ею, предельно приближен к современному математическому аппарату инженера и ученого и опирается на вычисления с матрицами, векторами и комплексными числами; графическое представление функциональных зависимостей здесь организовано в форме, требуемой именно инженерной документацией; язык программирования системы MATLAB очень прост, близок к языку Basic, посилен любому начинающему; он содержит всего несколько десятков операторов; незначительное количество операторов здесь компенсируется большим числом процедур и функций, смысл которых понятен пользователю с соответствующей математической и инженерной подготовкой; в отличие от большинства математических систем, MATLAB является открытой системой; это означает, что практически все процедуры и функции MATLAB доступны не только для использования, но и для коррекции и модификации; MATLAB - система, которую пользователь может расширять по своему усмотрению созданными им программами и процедурами (подпрограммами); ее легко приспособить к решению нужных классов задач; очень удобна возможность, как составлять, собственные отдельные программы с целью многократного их использования для исследований, так и применять практически все вычислительные возможности системы в режиме чрезвычайно мощного научного калькулятора; это делает MATLAB незаменимым средством проведения научных и инженерных расчетных исследований; последние версии MATLAB позволяют легко интегрировать ее с текстовым редактором Word, что дает возможность использовать при составлении текстовых документов вычислительные и графические средства MATLAB. Возможности системы огромны, а по скорости выполнения задач она опережает многие другие подобные системы. Все эти особенности делают систему MATLAB весьма привлекательной для использования в учебном процессе высших учебных заведений. Система MATLAB создана фирмой Math Work Inc. (США, г. Нейтик, штат Массачусетс). Хотя впервые эту систему начали использовать в конце 70-х годов, настоящий расцвет ее применения наступил в конце 80-х, с появлением на рынке версии 4.0. Последние версии MATLAB 6 и 6.5 - это чрезвычайно развитые системы, содержащие огромное количество процедур и функций, необходимых инженеру и научному работнику для осуще-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
6
ствления сложных численных расчетов, моделирования поведения технических и физических систем, оформления результатов этих расчетов в наглядном виде. В целом MATLAB - это уникальная коллекция реализаций современных численных методов компьютерной математики, созданных за последние три десятка лет. Она вобрала в себя и опыт, правила и методы математических вычислений, накопленные за тысячи лет развития математики. Это сочетается с мощными средствами графической визуализации и даже анимационной графики. Систему с прилагаемой к ней обширной документацией вполне можно рассматривать как фундаментальный многотомный электронный справочник по математическому обеспечению ЭВМ от массовых персональных компьютеров до супер-ЭВМ. Увы, пока представленный полностью лишь на английском и частично на японском языках. MATLAB предназначена для довольно сложных расчетов Это и определяет круг ее пользователей: инженеры-проектировщики и разработчики новых устройств, студенты и аспиранты, научные работники, физики и математики. Система приспособлена к любой области науки и техники, содержит средства, которые особенно удобны для электро- и радиотехнических расчетов (операции с комплексными числами, матрицами, векторами и полиномами, обработка данных, анализ сигналов и цифровая фильтрация). В данной работе, сделана попытка, дать некоторые начальные сведения о системе MATLAB, работе с ней, а также об использовании одного из самых эффективных ее приложений пакета Simulink для решения различных задач электротехники. Рассмотрены вопросы расчета цепей постоянного и переменного тока, анализа переходных процессов и цепей несинусоидального тока. Приведены некоторые сведения о решении задач из области теории поля. Изложение каждого раздела предваряется краткими теоретическими сведениями и снабжено примерами расчетов. Все примеры содержат, как текст программы, или схему модели, так и полученные в ходе решения результаты в виде числовых или графических данных. Программы снабжены комментариями и необходимыми пояснениями. Студент может использовать их для решения своих домашних заданий, минимально скорректировав текст. Данное пособие будет полезно при выполнении расчетнографических, курсовых работ, а так же для дипломного проектирования студентам всех специальностей, изучающим электротехнику, а так же студентам, изучающим другие электротехнические дисциплины.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
7
1 Основные сведения о системе MATLAB Система MATLAB была разработана Молером (С. В. Moler) и с конца 70-х гг. широко использовалась на больших ЭВМ. В начале 80-х гг. Джон Литл (John Little) из фирмы MathWorks, Inc. разработал версии системы PC MATLAB для компьютеров класса IBM PC, VAX и Macintosh. Сейчас свыше десятка популярных компьютерных платформ могут работать с системой MATLAB. К расширению системы были привлечены крупнейшие научные школы мира в области математики, программирования и естествознания. И вот теперь появилась версия этой системы - MATLAB 6. Привлекательной особенностью системы является то, что она содержит развитую встроенную матричную и комплексную арифметику. Система поддерживает выполнение операций с векторами, матрицами и массивами данных, реализует сингулярное и спектральное разложения, расчет ранга и чисел обусловленности матриц, поддерживает работу с алгебраическими полиномами, решение нелинейных уравнений и задач оптимизации, интегрирование в квадратурах, решение дифференциальных и разностных уравнений, построение различных видов графиков, трехмерных поверхностей и линий уровня. В ней реализована удобная операционная среда, позволяющая формулировать проблемы и получать решения в привычной, математической форме, не прибегая к рутинному программированию. Основным объектом системы MATLAB является прямоугольный числовой массив, который допускает комплексные элементы и ввод матриц без явного указания их размеров. Система позволяет решать многие вычислительные задачи за значительно меньшее время, нежели то, которое необходимо для написания соответствующих программ на языках FORTRAN, Basic и С. Система MATLAB выполняет операции с векторами и матрицами даже в режиме непосредственных вычислений без какого-либо программирования. Ею можно пользоваться как мощнейшим калькулятором, в котором наряду с обычными арифметическими и алгебраическими действиями могут использоваться такие сложные операции, как обращение матрицы, вычисление ее собственных значений и векторов, решение систем линейных алгебраических уравнений и много других. Однако основная отличительная черта системы - это легкость ее модификации и адаптации к конкретным задачам пользователя. Пользователь может ввести в систему любую новую команду, оператор или функцию и пользоваться затем ими так же просто, как и встроенными операторами и функциями. При этом, в отличие от языков программирования, таких как Basic, Pascal или С, нет необходимости в их предварительном описании. Новые программы, функции и процедуры в системе MATLAB сохраняются в виде файлов, имею-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
8
щих расширение .m. Это делает набор операторов и функций практически неограниченным. В базовый набор слов системы входят: спецзнаки; знаки арифметических и логических операций; арифметические, тригонометрические и некоторые специальные математические функции; функции быстрого преобразования Фурье и фильтрации; векторные и матричные функции; средства для работы с комплексными числами; операторы построения графиков в декартовой и полярной системах координат, трехмерных поверхностей и т.д. Таким образом, MATLAB предоставляет пользователю большой набор готовых средств (около половины из них - внешние расширения в виде М-файлов). Система MATLAB имеет собственный язык программирования, напоминающий Basic. Запись программ в системе является традиционной и поэтому привычной для большинства пользователей персональных компьютеров. К тому же система дает возможность редактировать программы при помощи любого привычного для пользователя текстового редактора. MATLAB имеет большие возможности для работы с сигналами, для расчета и проектирования аналоговых и цифровых фильтров, для построения их частотных, импульсных и переходных характеристик. Имеются в наличии и средства для спектрального анализа и синтеза, в частности, для реализации прямого и обратного преобразования Фурье. Благодаря этому система довольно привлекательна для проектирования электронных устройств. С системой MATLAB поставляется свыше сотни М-файлов, которые содержат демонстрационные примеры и определения новых операторов и функций. Эта библиотека, все файлы которой подробно прокомментированы, - настоящая сокровищница прекрасных примеров программирования на языке системы. Изучение этих примеров и возможность работы в режиме непосредственных вычислений значительно облегчают знакомство с системой серьезных пользователей, заинтересованных в использовании математических расчетов. Работа в среде MATLAB может осуществляться в двух режимах: в режиме калькулятора, когда вычисления производятся непосредственно после набора очередного оператора или команды MATLAB; при этом значения результатов вычисления могут присваиваться некоторым переменным, либо результаты получаются непосредственно, без присваивания (как в обычных калькуляторах); путем вызова программы, составленной и записанной на диске, на языке MATLAB, которая содержит все необходимые команды, обеспечивающие ввод данных, организацию вычислений и вывод результатов на экран (программный режим).
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
9
В обоих режимах пользователю доступны практически все вычислительные возможности системы, в том числе по выводу информации в графической форме. Программный режим позволяет сохранять разработанные вычислительные алгоритмы и, таким образом, повторять вычисления при других исходных данных. В обширном и постоянно пополняемом комплексе команд, функций и прикладных программ системы MATLAB содержатся специальные средства для электротехнических и радиотехнических расчетов (операции с комплексными числами, матрицами, векторами и полиномами, обработка данных, анализ сигналов и цифровая фильтрация). Они иллюстрируются множеством практически полезных примеров. К разработкам расширений для системы MATLAB привлечены многие научные школы мира и руководящие ими крупные ученые и педагоги университетов. Важными достоинствами системы являются ее открытость и расширяемость. Большинство команд и функций системы реализованы в виде текстовых М-файлов (с расширением .m) и файлов на языке Си, причем все файлы доступны для модификации. Пользователю дана возможность создавать не только отдельные файлы, но и библиотеки файлов для реализации специфических задач. Поразительная легкость модификации системы и возможность ее адаптации к решению специфических задач науки и техники привели к созданию десятков пакетов прикладных программ (toolbox), намного расширивших сферы применения системы. Некоторые из них, например Notebook (интеграция с текстовым процессором Word и подготовка «живых» электронных книг) и Simulink (моделирование динамических систем и устройств, заданных в виде системы блоков), настолько органично интегрировались с системой MATLAB, что стали ее составными частями. Notebook позволяет готовить документы в текстовом процессоре Word 95/97/2000/ХР со вставками в виде документов MATLAB и результатов вычислений, представленных в численном, табличном или графическом виде. Таким образом, становится возможной подготовка «живых» электронных книг, в которых демонстрируемые примеры могут быть оперативно изменены. Так, вы можете менять условия задач и тут же наблюдать изменение результатов их решения. В версии MATLAB 6 предусмотрены также улучшенные средства для экспорта графики в слайды презентационной программы Microsoft PowerPoint. Новые свойства системе MATLAB придала ее интеграция с программной системой Simulink, созданной для моделирования динамических систем и устройств, заданных в виде системы блоков. Базируясь на принципах визуально-ориентированного программирования, Simulink позволяет выполнять моделирование сложных устройств с высокой степенью достоверности и с прекрасными средствами представления результатов.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
10
Поставляемый с системой MATLAB 6.0 пакет расширения Simulink 5 поступает к пользователям с более 100 встроенными блоками, в состав которых входят наиболее необходимые функции моделирования различных физических систем. Блоки сгруппированы в библиотеки в соответствии с их назначением: источники сигнала, приемники, дискретные, непрерывные, нелинейные, математика, функции и таблицы, сигналы и системы. В дополнение к обширному набору встроенных блоков Simulink имеет расширяемую библиотеку блоков благодаря функции создания пользовательских блоков и библиотек. Вы можете настраивать не только функциональность встроенных и пользовательских блоков, но также пользовательский интерфейс, используя значки и диалоги. Например, вы можете создать блоки для моделирования поведения специальных механических, электрических и программных компонентов, как, например, моторы, преобразователи, сервоклапаны, источники питания, энергетические установки, фильтры, шины, модемы. Однажды созданные пользовательские блоки могут быть сохранены в библиотеке блоков для использования в будущем. Любые пользовательские блоки или библиотеки блоков могут быть легально распространены в рабочих группах, переданы поставщикам и заказчикам, как с исходным кодом, так и без него. Многие блоки поддерживают не только скалярные, но и матричные сигналы. Новейшая версия системы MATLAB 6 характеризуется целым рядом новых и важных возможностей: доведенное до более чем 600 число встроенных функций и команд; новый интерфейс с набором инструментов для управления средой, включающий в себя окно команд (Command Window), окно истории команд (Command History), браузер рабочей области (Workspace Browser) и редактор массивов (Array Editor); новые инструменты, позволяющие при помощи мыши интерактивно редактировать и форматировать графики, оптимизировать их коды и затраты памяти на графические команды и атрибуты; улучшенные алгоритмы на основе оптимизированной библиотеки LAPACK; новая библиотека FFTW (быстрых преобразований Фурье) Массачусетского технологического института Кембриджского университета (США); ускоренные методы интегральных преобразований; новые, более мощные и точные, алгоритмы интегрирования дифференциальных уравнений и квадратур;
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
11
новые современные функции визуализации: вывод на экран двумерных изображений, поверхностей и объемных фигур в виде прозрачных объектов; новая инструментальная панель Camera для управления перспективой и ускорение вывода графики с помощью OpenGL; новый интерфейс для вызова Java-процедур и использования Javaобъектов непосредственно из MATLAB; новые, современные инструменты проектирования графического пользовательского интерфейса; обработка (регрессия, интерполяция, аппроксимация и вычисление основных статистических параметров) графических данных прямо из окна графики; новое приложение MATLAB для системы разработки Visual Studio, позволяющее автоматически, непосредственно из Microsoft Visual Studio, преобразовывать Си и Си++ коды в выполняемые MATLAB файлы (МЕХ-файлы); интеграция с системами контроля версий кода, такими как Visual Source Safe; новый интерфейс (последовательный порт) для обмена данными с внешним оборудованием из MATLAB; новый пакет управления измерительными приборами (Instrument Control ToolBox) существенно обновленные пакеты расширения, в частности новые версии пакета моделирования динамических систем Simulink 5 и Real Time Workshop 4; интеграция с системами управления потребностями, например DOORS. Какой бы мощной ни была та или иная математическая система, она не способна включить в себя все средства, которые могут потребоваться сотням тысяч пользователей. Поэтому важно, чтобы система была достаточно гибкой и способной адаптироваться к различным задачам пользователей самых разных категорий - начинающих и опытных математиков, инженеров и научных работников, аспирантов и студентов вузов и даже школьников. MATLAB - расширяемая система, и ее легко приспособить к решению нужных вам классов задач. Ее огромное достоинство заключается в том, что это расширение достигается естественным путем и реализуется в виде так называемых М-файлов. Иными словами, расширения системы хранятся на жестком диске компьютера и в нужный момент вызываются для использования точно так же, как встроенные в MATLAB (внутренние) функции и процедуры.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
12
Благодаря текстовому формату М-файлов пользователь может ввести в систему любую новую команду, оператор или функцию и затем пользоваться ими столь же просто, как и встроенными операторами или функциями. При этом в отличие от таких языков программирования, как Бейсик, Си или Паскаль не требуется никакого объявления этих новых функций. Это роднит MATLAB с языками Лого и Форт, имеющими словарную организацию операторов и функций и возможности пополнения словаря новыми определениями-словами. Но, поскольку новые определения в системе MATLAB хранятся в виде файлов на диске, это делает набор операторов и функций практически неограниченным. В базовый набор слов системы входят спецзнаки, знаки арифметических и логических операций, арифметические, алгебраические, тригонометрические и некоторые специальные функции, функции быстрого преобразования Фурье и фильтрации, векторные и матричные функции, средства для работы с комплексными числами, операторы построения графиков в декартовой и полярной системах координат, трехмерных поверхностей и т. д. Словом, MATLAB предоставляет пользователю обширный набор готовых средств (большая часть из них - это внешние расширения в виде m-файлов). Многие математические системы создавались исходя из предположения, что пользователь будет решать свои задачи, практически не занимаясь программированием. Однако с самого начала было ясно, что подобный путь имеет недостатки и, вообще говоря, порочен. Ведь многие задачи нуждаются в развитых средствах программирования, которые упрощают запись алгоритмов задач и порой открывают новые методы создания алгоритмов. С одной стороны, MATLAB содержит огромное число операторов и функций, которые решают множество практических задач, для чего ранее приходилось готовить достаточно сложные программы. К примеру, это функции обращения или транспонирования матриц, вычисления значений производной или интеграла и т. д. Число таких функций с учетом пакетов расширения системы уже достигает многих тысяч и непрерывно увеличивается. Но, с другой стороны, система MATLAB с момента своего создания создавалась как мощный математико-ориентированный язык программирования высокого уровня. И многие рассматривали это как важное достоинство системы, свидетельствующее о возможности ее применения для решения новых, наиболее сложных математических задач. Система MATLAB имеет входной язык, напоминающий Бейсик (с примесью Фортрана и Паскаля). Запись программ в системе традиционна и потому привычна для большинства пользователей компьютеров. К тому же система дает возможность редактировать программы с помощью любого
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
13
привычного для пользователя текстового редактора. Имеет она и собственный редактор с отладчиком. Язык системы MATLAB в части программирования математических вычислений намного богаче любого универсального языка программирования высокого уровня. Он реализует почти все известные средства программирования, в том числе объектно-ориентированное и (средствами Simulink) визуальное программирование. Это дает опытным программистам необъятные возможности для самовыражения. В последнее время создатели математических систем уделяют огромное внимание визуализации решения различных задач. Большую роль в этом играет графическое представление результатов, причем как конечных, так и промежуточных. Визуализация постановки задачи в MATLAB решается применением приложения Notebook и назначением именам функций достаточно ясных имен (идентификаторов). А визуализация результатов вычислений достигается применением обширных средств графики, в том числе анимационной, а также использованием (там, где это нужно) средств символьной математики. Новая версия MATLAB позволяет создавать полноценные объекты графики высокого разрешения, как геометрического, так и цветового. Возможности этой графики поддерживаются объектно-ориентированным программированием, средства которого также имеются в языке программирования системы MATLAB. Реализуются, причем с повышенной скоростью, построения графиков практически всех известных в науке и технике типов. Широко практикуется функциональная закраска сложных поверхностей, в том числе с интерполяцией по цвету. Возможен учет всевозможных световых эффектов — вплоть до бликов на поверхности сложных фигур при освещении их различными источниками света и с учетом свойств материалов отражающих поверхностей. Графики выводятся отдельно от текстов в отдельных окнах. На одном графике можно представить множество кривых, отличающихся цветом (при цветном дисплее) и отличительными символами (кружками, крестиками, прямоугольниками и т. д.). Графики можно выводить в одно или в несколько окон. Наконец, в статьях и книгах формата Notebook, реализованных при совместной работе системы MATLAB с популярным текстовым процессором Microsoft Word 95/97/2000/ХР, графики могут располагаться вместе с текстом, формулами и результатами вычислений (числами, векторами и матрицами, таблицами и т. д.). В этом случае степень визуализации оказывается особенно высокой, поскольку документы класса Notebook по существу являются превосходно оформленными электронными книгами с действующими (вычисляемыми) примерами.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
14
Уже в ранних версиях была введена эффектная возможность быстрого вращения графиков в любом направлении. В MATLAB 6 она улучшена — теперь вращать в пространстве можно даже плоскость с двумерными графиками. 1.1 Установка системы MATLAB Версия системы MATLAB 6 - весьма громоздкий программный комплекс, который (при полной установке) требует до 1000 - 1500 Мбайт дисковой памяти (в зависимости от конкретной поставки, полноты справочной системы и числа устанавливаемых пакетов прикладных программ). Поэтому он поставляются исключительно на компакт-дисках. Полный комплект системы размещается на двух компакт-дисках только для чтения (CDROM), на одном из которых размещены PDF-файлы документации. Для успешной установки MATLAB необходимы следующие минимальные средства: компьютер с микропроцессором Pentium II, Pentium III, Pentium IV или AMD Athlon; устройство считывания компакт дисков (привод CD-ROM) (для установки), мышь, 8-разрядный графический адаптер и монитор, поддерживающие не менее 256 цветов; операционная система Windows 95/98 (оригинальная или второе издание)/Me (Millennium Edition)/2000/ХР (допускается также NT4 с сервис-пакетами 5 или 6а); ОЗУ емкостью 64 Мбайт для минимального варианта системы (рекомендуется иметь память не менее 128 Мбайт); до 1500 Мбайт дискового пространства при полной установке всех расширений и всех справочных систем. Для использования расширенных возможностей системы нужны графический ускоритель, Windows-совместимые звуковая карта и принтер, текстовый процессор Microsoft Word 95/97/2000/ХР для реализации Notebook, компиляторы языков Си/Си++ и/или ФОРТРАН для подготовки собственных файлов расширения и браузер Netscape Navigator 4.0 и выше или Microsoft Internet Explorer 4.0 и выше. Для просмотра файлов справочной системы в формате PDF нужна программа Adobe Reader или Adobe Acrobat 3.0 и выше. Мы рассматриваем систему, ориентированную на IBM PC (Intel80X86/ Pentium) - совместимые компьютеры под управлением Microsoft Windows как наиболее распространенные. Установка системы обычно не имеет никаких специфических особенностей и подобна установке других программных продуктов. От вас требуется задать свое имя (фамилию), сокращенное название организации и пароль, который указывается на установочном компакт-диске или в
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
15
имеющемся на нем файле. Возможны типичная установка и выборочная, в ходе которой вам предлагается выбор компонентов системы. Последняя предпочтительнее, так как из-за огромного объема системы ее полная установка не всегда возможна. Прежде чем начинать установку системы, рекомендуется ознакомиться с описанием компонентов. Нет никакого смысла использовать все компоненты, поскольку вы всегда сможете по мере необходимости изменить набор установленных компонентов системы. Установив только нужные компоненты, вы можете уменьшить затраты памяти на жестком диске в несколько раз. Запуск MATLAB без перезагрузки компьютера не рекомендуется, поскольку может протекать некорректно. Так что если вы отложили перезагрузку компьютера, не забудьте провести ее перед первым запуском системы MATLAB. 1.2 Запуск MATLAB и работа в режиме диалога В этой книге предполагается, что MATLAB используется в среде операционной системы Windows 95 или Windows 98/Me/2000/ХР. Копии сеансов работы MATLAB даны именно для этих случаев.
Рисунок 1.1 - Подготовка к запуску MATLAB Рисунок 1.1 иллюстрирует подготовку к запуску системы MATLAB из главного меню операционной системы Windows 98 со стандартным видом рабочего стола. Для раскрытия главного меню активизируется кнопка Пуск (Start), расположенная внизу рабочего стола слева, или можно щелкнуть на значке с логотипом системы на рабочем столе Windows. После запуска MATLAB на экране появляется основное окно системы, показанное на рисунке 1.2. Обычно это окно раскрыто не полностью и занимает часть рабочего стола. Вы можете раскрыть окно полностью,
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
16
щелкнув на средней из трех кнопок, расположенных в конце титульной (верхней) строки окна. Левая кнопка сворачивает окно в кнопку с именем приложения, помещаемую в панель задач Windows, а правая закрывает окно и прекращает работу с MATLAB. Система готова к проведению вычислений в командном режиме.
Рисунок 1.2 - Окно системы MATLAB после запуска и выполнения простых вычислений Для уточнения версии системы следует вывести окно с информацией о системе (команда About MATLAB (О MATLAB) в меню Help (Помощь). Это окно представлено на рисунке 1.3 в центре. Из него видно, что запущена версия 6.5 (R13) от 18 июня 2002 г. Поскольку номер лицензии имеет конфиденциальный характер, вместо него на рисунке показан 0. Сеанс работы с MATLAB принято именовать сессией (session). Сессия, в сущности, является текущим документом, отражающим работу пользователя с системой MATLAB. В ней имеются строки ввода, вывода и сообщений об ошибках. Входящие в сессию определения переменных и функций, расположенные в рабочей области памяти, но не саму сессию, можно записать на диск (файлы формата .mat), используя команду save (Сохранить). Команда load (Загрузить) позволяет считать с диска данные
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
17
рабочей области. Фрагменты сессии можно оформить в виде дневника с помощью команды diary (Дневник).
Рисунок 1.3 - Окно с логотипом системы MATLAB 6.5 1.2.1 Операции строчного редактирования При работе с MATLAB в командном режиме действует простейший строчный редактор. Его команды перечислены в таблице 1. Таблица 1 - Команды строчного редактора MATLAB Комбинация клавиш Ctrl+b Ctrl+f Ctrl +r Ctrl +1 Home или Ctrl+a End или Ctrl +e Ctrl+рu Ctrl+n Del или Ctrl+d Ctrl+h Ctrl+k
Назначение Перемещение курсора вправо на один символ Перемещение курсора влево на один символ Перемещение курсора вправо на одно слово Перемещение курсора влево на одно слово Перемещение курсора в начало строки Перемещение курсора в конец строки Перелистывание предыдущих команд вверх или вниз для подстановки в строку ввода Стирание символа справа от курсора Стирание символа слева от курсора Стирание до конца строки
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
18
Продолжение таблицы 1 Esc Ins PgUp PgDn
Очистка строки ввода Включение/выключение режима вставки Перелистывание страниц сессии вверх Перелистывание страниц сессии вниз
Эти возможности кажутся примитивными, но позволяют пользователю быстро работать в стиле первых версий MATLAB для MS-DOS. Они обеспечивают важное свойство новых версий систем — их совместимость со старыми версиями в части преемственности навыков работы. Позже вы увидите, что в новых версиях есть вполне современный редактор со средствами отладки создаваемых документов - М-файлов. Обратите особое внимание на применение клавиш вверх и вниз. Они используются для подстановки после маркера строки ввода » ранее введенных строк, например для их исправления, дублирования или дополнения. При этом указанные клавиши обеспечивают перелистывание ранее введенных строк снизу вверх или сверху вниз. Такая возможность существует благодаря организации специального стека, хранящего строки с исполненными ранее командами 1.2.2 Команды управления окном Полезно сразу усвоить некоторые команды управления окном командного режима: clс - очищает экран и размещает курсор в левом верхнем углу пустого экрана. home - возвращает курсор в левый верхний угол окна. echo on - включает режим вывода на экран текста Script-файла (файла-сценария). echo off - выключает режим вывода на экран текста Script-файла. echo - меняет режим вывода на противоположный. echo on all - включает режим вывода на экран текста всех mфайлов. echo off all - отключает режим вывода на экран текста всех mфайлов. mоrе on - включает режим постраничного вывода (полезен при просмотре больших m-файлов). mоrе off - отключает режим постраничного вывода (в этом случае для просмотра больших фалов надо пользоваться линейкой прокрутки). В версии MATLAB 6.0 обе команды clc и home действуют аналогично - очищают экран и помещают курсор в левый верхний угол окна командного режима работы. Команды echo позволяют включать или выключать отображение текстов М-файлов при каждом обращении к ним. Как
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
19
правило, отображение текста файлов сильно загромождает экран и часто не является необходимым. При больших размерах файлов начало их текста (листинга) убегает далеко за пределы области просмотра (текущего окна командного режима). Поэтому для просмотра длинных листингов файлов полезно включить постраничный вывод командой more on. Различие между М-файлами сценариев и функций мы обсудим позже. 1.3 MATLAB в роли суперкалькулятора Система MATLAB создана таким образом, что любые (подчас весьма сложные) вычисления можно выполнять в режиме прямых вычислений, то есть без подготовки программы. Это превращает MATLAB в необычайно мощный калькулятор, который способен производить не только обычные для калькуляторов вычисления (например, выполнять арифметические операции и вычислять элементарные функции), но и операции с векторами и матрицами, комплексными числами, рядами и полиномами. Можно почти мгновенно задать и вывести графики различных функций, от простой синусоиды до сложной трехмерной фигуры. Работа с системой в режиме прямых вычислений носит диалоговый характер пользователь набирает на клавиатуре вычисляемое выражение, редактирует его (если нужно) в командной строке и завершает ввод нажатием клавиши ENTER. В арифметических выражениях языка MATLAB применяются следующие знаки арифметических операций: + сложение; - вычитание; * умножение; / деление слева направо; \ деление справа налево; ^ возведение в степень. Следует отметить, что большинство операторов относится к матричным операциям, что может служить причиной серьезных недоразумений. Например, операторы умножения * и деления / вычисляют произведение и частное от деления двух многомерных массивов, векторов или матриц. Есть ряд специальных операторов, например, оператор \ означает деление справа налево, а операторы .* и ./ означают соответственно поэлементное умножение и поэлементное деление массивов. В дальнейших примерах, рекомендуется внимательно следить, какой из видов деления применяется в конкретном случае. Использование MATLAB в режиме калькулятора может происходить путем простой записи в командную строку последовательности. Вообще вывод промежуточной информации в командное окно подчиняется таким правилам:
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
20
для указания ввода исходных данных используется символ »; данные вводятся с помощью простейшего строчного редактора; если запись оператора не заканчивается символом ";" – точка с запятой, результат действия этого оператора сразу же выводится в командное окно; если оператор заканчивается символом ";" – точка с запятой, то результат его действия не отображается в командном окне; если оператор не содержит знака присваивания (=), т.е. является просто записью некоторой последовательности действий над числами и переменными, то значение результата присваивается специальной системной переменной ans; полученное значение можно использовать в последующих операторах вычислений под именем ans; при этом следует помнить, что значение системной переменной ans изменяется после действия очередного оператора без знака присваивания; результат вычислений выводится в строках вывода (без знака »); встроенные функции (например, sin) записываются строчными буквами, и их аргументы указываются в круглых скобках; диалог происходит в стиле «задал вопрос — получил ответ». в общем случае форма вывода результата в командное окно имеет вид: <имя переменной> = <результат> Особенностью MATLAB как калькулятора является возможность использования имен переменных для записи промежуточных результатов в память ПК. Для этого применяется операция присваивания, которая вводится знаком равенства (=) в соответствии со схемой: <Имя переменной> = <Выражение>. Имя переменной может содержать до 19 символов и не должно совпадать с именами функций и процедур системы и системных переменных. При этом система различает в переменных большие и малые буквы. Так, имена amenu, Amenu, aMenu в MATLAB обозначают разные переменные. Выражение справа от знака присваивания может быть просто числом, арифметическим выражением, строкой символов (тогда эти символы нужно заключить в апострофы) либо символьным выражением. Если выражение не заканчивается символом ",", то после нажатия клавиши [Enter] в командном окне появится результат выполнения в виде: <Имя переменной> = <Результат>. Простейший пример: 2+3=5 приведен ниже: Следующий пример (он показан на рисунке 1.5) иллюстрирует применение системы MATLAB для выполнения простых векторных операций. В этом примере задается четырехэлементный вектор V со значениями эле-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
21
ментов 1, 2, 3 и 4. Далее (сосредоточьте на этом внимание!) вычисляются функции синуса и экспоненты с аргументом в виде вектора, а не скаляра. Две записи для вектора - V=[l 2 3 4] и V=[1,2,3.4] - являются идентичными. Таким образом, векторы задаются списком своих элементов, разделяемых пробелами или запятыми. Список заключается в квадратные скобки. Для выделения п-го элемента вектора V используется выражение V(n). Оно задает соответствующую индексированную переменную.
Рисунок 1.4 – Использование программы в роли калькулятора
Рисунок 1.5 – Вычисления в режиме калькулятора В большинстве математических систем вычисление sin(V) и exp(V), где V - вектор, сопровождалось бы выдачей ошибки, поскольку функции
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
22
sin и ехр должны иметь аргумент в виде скалярной величины. Однако MATLAB - матричная система, а вектор является разновидностью матрицы с размером 1х n. Поэтому в нашем случае результат вычислений будет вектором того же размера, что и аргумент V, но элементы возвращаемого вектора будут синусами или экспонентами от элементов вектора V. Как видно из приведенных примеров, ввод исходных выражений для вычислений в системе MATLAB осуществляется в самом обычном текстовом формате. В этом же формате выдаются результаты вычислений, за исключением графических. Приведем пример записи вычислений, показанных на рисунках 1.5 и 1.4: То get started, select "MATLAB Help" from the Help menu. » 2+3 ans= 5 » V=[1 2 3 4]; S=sin(V) E=exp(V) S3=S(3) S = Columns 1 through 2 0.84147 0.9093 Columns 3 through 4 0.14112 -0.7568 E = Columns 1 through 2 2.7183 7.3891 Columns 3 through 4 20.086 54.598 S3 = 0.14112
Примечание Обратите внимание на форму ответов при выполнении простых операций без указания переменной, которой присваивается результат. В таких случаях MATLAB сам назначает переменную ans, которой присваивается результат, и значение которой затем выводится на экран. В дальнейшем, мы будем показывать представление сессий в виде прямых копий экрана только в том случае, когда это связано со спецификой проведения вычислений, например, когда они сопровождаются выводом графиков или демонстрацией элементов пользовательского интерфейса. В остальных случаях будет использоваться представление сессии прямо в тексте книги в представленном выше текстовом формате - основном для командного режима работы с системой MATLAB. Ради компактности записи пустые строки будут опускаться.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
23
В памяти компьютера переменные занимают определенное место, называемое рабочей областью (Workspace). Для очистки рабочей области используется функция clear в разных формах, например: clear - уничтожение определений всех переменных; clear x - уничтожение определения переменной х; clear a, b, с - уничтожение определений нескольких переменных. Уничтоженная (стертая в рабочей области) переменная становится неопределенной. Использовать неопределенные переменные нельзя, и такие попытки будут сопровождаться выдачей сообщений об ошибке. Очень часто необходимо произвести формирование упорядоченных числовых последовательностей. Такие последовательности нужны для создания векторов или значений абсциссы при построении графиков. Для этого в MATLAB используется оператор : (двоеточие): Начальное значение: Шаг: Конечное значение Данная конструкция порождает возрастающую последовательность чисел, которая начинается с начального значения, идет с заданным шагом и завершается конечным значением. Если Шаг не задан, то он принимает значение 1. Если конечное значение указано меньшим, чем начальное значение, то выдается сообщение об ошибке. Примеры применения данного оператора приведены ниже: » 1:5 ans = 12345 » i=0:2:10 i = 0 2 4 6 8 10 » j=10:-2:2 j = 10 8 6 4 2 » V=0:pi/2:2*pi; V= 0 1.5708 3.1416 4.7124 6.2832 » X= l:-.2:0 X= 1.0000 0.8000 0.6000 0.4000 0.2000 0
В некоторых случаях вводимое математическое выражение может оказаться настолько длинным, что для него не хватит одной строки. В этом случае часть выражения можно перенести на новую строку с помощью знака многоточия «...» (3 или более точек), например: s = 1-1/2 + 1/3- 1/4 + 1/5 - 1/6 + 1/7 ... 1/8 + 1/9 - 1/10 + 1/11 - 1/12. Этот прием может быть весьма полезным для создания наглядных документов, у которых предотвращается заход строк в невидимую область окна. Вообще говоря, максимальное число символов в одной строке ко-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
24
мандного режима - 4096, а в М-файле - не ограничено, но со столь длинными строками работать неудобно. В системе MATLAB имеется несколько имен переменных, которые используются системой и входят в состав зарезервированных. Эти переменные можно использовать в математических выражениях: i, j - мнимая единица (корень квадратный из -1); pi - число л (сохраняется в виде 3,141592653589793); inf - обозначение машинной бесконечности; NaN - обозначение неопределенного результата (например, типа 0/0 или inf/inf); ans - результат последней операции без знака присваивания. Кроме чисел, в системе MATLAB используются символьные константы, цепочки символов, заключенных в апострофы, например: 'Hello my friend!', 'Привет', '2+3'. Если в апострофы помещено математическое выражение, то оно не вычисляется и рассматривается просто как цепочка символов. Так что ' 2+3' не будет возвращать число 5. Однако с помощью специальных функций преобразования символьные выражения могут быть преобразованы в вычисляемые. Поскольку MATLAB используется для достаточно сложных вычислений, важное значение, имеет наглядность их описания. Она достигается, в частности, с помощью текстовых комментариев. Текстовые комментарии вводятся с помощью символа %, например, так: % Это факториал функции
Примечание В каждой большой программе есть свои «ложки дегтя». В MATLAB 6 такой «ложкой дегтя» является перевод строки при вводе буквы «с» русского алфавита в командной строке. В итоге ввод комментариев в командной строке на русском языке превращается в проблему. Пока автор может порекомендовать заменять русское «с» на английское, что на виде текстового комментария никак не сказывается. Не рекомендуется вводить русскоязычные комментарии и в тесты М-файлов при подготовке их в редакторе/отладчике (он будет описан позже). Это нередко делает программы неработоспособными. Жаловаться тут бесполезно - MATLAB англоязычный продукт и официальной локализованной под Россию версии этой системы пока нет. 1.3.1 Ввод действительных чисел Ввод чисел с клавиатуры производится по общим правилам, принятым для языков программирования высокого уровня: для отделения дробной части мантиссы числа применяется десятичная точка (вместо запятой при обычной записи),
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
25
десятичный показатель числа записывается в виде целого числа после предварительной записи символа е; между записью мантиссы числа и символом е (который отделяет ее от показателя) не должно быть никаких символов, включая и символ пробела. Если, например, ввести в командном окне MATLAB строку » 1.20357651e-17
то после нажатия клавиши [Enter] в этом окне появится следующая запись » 1.20357651e-17 ans = 1.2036e-017
Как видно, число, которое выведено на экран, не совпадает с введенным. Это обусловлено только тем, что установленный по умолчанию формат представления чисел (Short) не позволяет вывести больше 6 значащих цифр числа. На самом деле введенное число внутри MATLAB сохраняется со всеми введенными цифрами. Например, если выбрать формат Long е, то, повторяя те же действия, получим результат, где все цифры отображены верно. Выбирая нужный вид представления чисел с помощью мыши, можно обеспечить в дальнейшем вывод чисел в командное окно именно в такой форме. Следует помнить, что: введенные числа и результаты всех вычислений в системе MATLAB сохраняются в памяти ПК с относительной погрешностью около 2.е-16 (т.е. с точными значениями в 15 десятичных разрядах); диапазон представления модуля действительных чисел лежит в промежутке между 10~308 и 10+308. Следует отметить, что результат выводится в виде (формате), который определяется предварительно установленным форматом представления чисел Этот формат может быть установлен с помощью команды Preferences из меню File (рисунок 1.4) После ее вызова появится одноименное диалоговое окно (рисунок 1.6). Одна из областей этого окна имеет название Numeric Format. Она предназначена для установки и изменения формата представления чисел, которые выводятся в командное окно в процессе расчетов. Вы, можете выбрать такие форматы: Short (default) - краткая запись - 5 знаков (по умолчанию); Long - длинная запись - 15 знаков; Hex - запись в виде шестнадцатиричного числа;
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
26
Bank - запись до сотых долей; Plus - записывается только знак числа; Short е - краткая запись в формате с плавающей запятой - 5 знаков мантиссы и 3 знака порядка; Long е - длинная запись в формате с плавающей запятой - 15 знаков мантиссы и 3 знака порядка; Short g - вторая форма краткой записи в формате с плавающей запятой; Long g - вторая форма длинной записи в формате с плавающей запятой; Rational - запись в виде рациональной дроби.
Рисунок 1.6 – Выбор форматов представления чисел в командном окне 1.3.2 Ввод и действия с комплексными числами Язык системы MATLAB, в отличие от многих языков программирования высокого уровня, содержит очень простую в пользовании встроенную арифметику комплексных чисел Большинство элементарных математических функций построено таким образом, что аргументы предполагаются комплексными числами, а результаты также формируются как комплексные числа. Эта особенность языка, делает его очень полезным для инженеров и научных работников.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
27
Для обозначения мнимой единицы в MATLAB зарезервировано два имени - i и j. Ввод с клавиатуры значения комплексного числа производится путем записи в командном окне строки вида: <Имя переменной> = <Значение ДЧ> + i*<Значение МЧ>, где ДЧ - действительная часть комплексной величины; МЧ - мнимая ее часть. Пример ввода комплексного числа: I=34.63-j*13.965 I = 34.63 -
13.965i
Простейшие действия с комплексными числами - сложение, вычитание, умножение, деление и возведение в степень - осуществляются с помощью обычных арифметических знаков +, -, *, /, \ и ^ соответственно. Далее, в разделе расчетов цепей переменного тока мы покажем, как это выглядит на примерах. Практически все элементарные математические функции, перечень которых приведен далее, вычисляются при комплексном значении аргумента и получают в результате этого комплексные значения результата. Благодаря этому, например, функция sqrt (корень квадратный), в отличие от других языков программирования, вычисляет квадратный корень из отрицательного аргумента, а функция abs (абсолютное значение) при комплексном значении аргумента вычисляет модуль комплексного числа. » x=sqrt(5-j*4) x = 2.3878 » y=abs(x) y = 2.5304
0.83759i
В MATLAB есть несколько дополнительных функций, рассчитанных только на комплексный аргумент: real(Z) - выделяет действительную часть комплексного аргумента Z; imag(Z) - выделяет мнимую часть комплексного аргумента; angle(Z) - вычисляет значение аргумента комплексного числа Z (в радианах от -π до +π); conj(Z) - выдает число, комплексно сопряженное относительно Z. Кроме того, в MATLAB есть специальная функция cplxpair(V), которая осуществляет сортировку заданного вектора V с комплексными элементами таким образом, что комплексно-сопряженные пары этих элементов располагаются в выходном векторе в порядке возрастания их действительных частей, при этом элемент с отрицательной мнимой частью всегда располагается первым. Действительные элементы завершают комплексносопряженные пары.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
28
Приспособленность большинства функций MATLAB к оперированию с комплексными числами позволяет значительно проще строить вычисления с действительными числами, результат которых является комплексным (например, находить комплексные корни квадратных уравнений). 1.3.3 Элементарные математические функции Функции — это имеющие уникальные имена объекты, выполняющие определенные преобразования своих аргументов и при этом возвращающие результаты этих преобразований. Возврат результата - отличительная черта функций. При этом результат вычисления функции с одним выходным параметром подставляется на место ее вызова, что позволяет использовать функции в математических выражениях, например функцию sin в 2*sin(pi/2). Функции в общем случае имеют список аргументов (параметров), заключенный в круглые скобки. Общая форма вызова функции в MATLAB имеет следующий вид: <Имя результата> = <Имя функции>(<Список имен аргументов>) В языке MATLAB предусмотрены элементарные арифметические функции, приведеные в таблицах 2, 3 и 4. Таблица 2 - Тригонометрические и гиперболические функции sin(Z) sinh(Z) asin(Z) asinh(Z) cos(Z) cosh(Z) acos(Z) acosh(Z) tan(Z) tanh(Z) atan(Z) atan2(X,Y)
синус числа Z гиперболический синус арксинус (в радианах, в диапазоне от -к/2 до +тс/2) обратный гиперболический синус Косинус гиперболический косинус арккосинус (в диапазоне от 0 до тс) обратный гиперболический косинус Тангенс гиперболический тангенс арктангенс (в диапазоне от -π/2 до +π/2) четырехквадрантный арктангенс (угол в диапазоне от -π до +π между горизонтальным правым лучом и лучом, проходящим через точку с координатами X и Y)
atanh(Z) sec(Z) sech(Z) asec(Z) asech(Z) csc(Z) csch(Z) acsc(Z) acsch(Z)
обратный гиперболический тангенс Секанс гиперболический секанс Арксеканс обратный гиперболический секанс Косеканс гиперболический косеканс Арккосеканс обратный гиперболический косеканс
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
29
Прождолжение таблицы 2 cot(Z) coth(Z) acot(Z) acoth(Z)
Котангенс гиперболический котангенс Арккотангенс обратный гиперболический котангенс
Таблица 3 - Экспоненциальные функции exp(Z) Iog(Z) loglO(Z) sqrt(Z) abs(Z)
Экспонента числа Z Натуральный логарифм Десятичный логарифм Квадратный корень из числа Z Модуль числа Z
Таблица 4 - Целочисленные функции fix(Z) floor(Z) ceil(Z) round(Z) rem(X,Y) sign(Z)
Округление до ближайшего целого в сторону нуля Округление до ближайшего целого в сторону отрицательной бесконечности Округление до ближайшего целого в сторону положительной бесконечности Обычное округление числа Z до ближайшего целого Вычисление остатка от деления X на Y Вычисление сигнум-функции числа Z (0 при Z=0, -1 при Z<0, 1 при Z>0)
Кроме элементарных функций в языке MATLAB предусмотрен целый ряд специальных математических функций. В данной работе мы не приводим их описание, обычно, при вычислениях в электротехнических задачах их используют весьма редко. Но желающие могут познакомиться с ними в справочной системе MATLAB. 1.4 Визуализация вычислений 1.4.1 Двумерные графики Основной функцией, обеспечивающей построение графиков на экране дисплея, является функция plot. Общая форма обращения к этой процедуре: plot(xl,yl,sl,x2,y2,s2,...). Здесь xl, yl - заданные векторы, элементами которых являются массивы значений аргумента (xl) и функции (yl), соответствующих первой кривой графика, х2, у2 - массивы значений аргумента и функции второй кривой и т.д. При этом предполагается, что значения аргумента откладываются вдоль горизонтальной оси графика, а значения функции - вдоль вертикальной оси. Переменные s1, s2, … являются символьными (их указание не обязательно). Каждая из них может содержать три специальных символа, которые определяют тип линии, соединяющей отдельные точки графика, тип точки графика и цвет линии. Если переменные s не указаны,
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
30
то тип линии по умолчанию - отрезок прямой, тип точки - пиксель, а цвет устанавливается (в версии 6) в таком порядке синий, зеленый, красный, голубой, фиолетовый, желтый, черный и белый, - в зависимости от того, какая по очереди линия отображается на графике. Например, обращение вида plot(xl,yl,x2,y2,...) приведет к построению графика, в котором первая кривая будет линией из отрезков прямых синего цвета, вторая кривая - такого же типа зеленой линией и т.д. Графики в MATLAB всегда выводятся в отдельном (графическом) окне, которое называют фигурой. Пусть требуется вывести график функции у = 3sin(x+π/3) на промежутке от -Зπ: до +3π с шагом π/100. Сначала надо сформировать массив значений аргумента х. х = -3*pi:pi/100:3*pi
Затем вычислить массив соответствующих значений функции. У = 3*sin(x+pi/3)
И, наконец, построить график зависимости у(х). В целом, в командном окне эта последовательность операций будет выглядеть так х = -3*pi:pi/100:3*pi; У = 3*sin(x+pi/3), plot(х,у)
В результате на экране появится дополнительное окно с графиком (рисунок 1.7).
Рисунок 1.7 – График функции у = 3sin(x+π/3)
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
31
График на рисунке 1.7 имеет несколько недостатков на них не нанесена сетка из координатных линий; нет общей информации о кривых графика (заголовка); неизвестно, какие величины отложены по осям графика. Первый недостаток устраняется с помощью функции grid. Если эту функцию записать сразу после обращения к функции plot, то график будет снабжен координатной сеткой, рисунок 1.8
Рисунок 1.8 – График снабженный сеткой и надписями. Программа для вывода графика, снабженного сеткой, будет такова: х = -3*pi:pi/100:3*pi; у = 3*sin(x+pi/3); plot(x,y), grid
Ценной особенностью графиков, построенных в системе MATLAB, является то, что сетка координат всегда отвечает "целым шагам" изменения, что делает графики "читабельными", т.е. по графику можно производить "отсчет" значения функции при любом заданном значении аргумента и наоборот. Таким свойством не обладает большинство графических пакетов-приложений к языкам программирования высокого уровня. Заголовок графика выводится с помощью процедуры title. Если после обращения к процедуре plot вызвать title таким образом: title('<текст>'), то сверху в поле фигуры появится текст, записанный между скобками. При этом следует помнить, что текст, всегда должен помещаться в апострофы.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
32
Аналогично можно вывести пояснения к графику, которые размещаются вдоль горизонтальной оси (функция xlabel) и вдоль вертикальной оси (функция ylabel). Например, совокупность операторов: х = -3*pi:pi/100:3*pi; у = 3*sin(x+pi/3); plot(x,y), grid title ('Функция у = 3*sin(x+pi/3)'); xlabel ('x'); ylabel ('y');
приведет к оформлению поля фигуры в виде, представленном на рисунке 1.8. Очевидно, такая форма уже полностью удовлетворяет требованиям, которые предъявляются к инженерным графикам. Не более сложным является вывод в среде MATLAB графиков функций, заданных параметрически. Пусть необходимо построить график функции у(х), которая задана параметрическими формулами: х=4е-0,05t sin t, у = 0,2e-0,1t sin 2t. Выберем диапазон изменения параметра t от 0 до 50 с шагом 0,1. Тогда, набирая совокупность операторов: t = 0:0.1:50; х = 4*exp(-0.05*t).*sin(t); y = 0.2*exp(-0.1*t).*sin(2*t); plot(x,y); title('Параметрическая функция'); grid
Получим график, показанный на рисунке 1.9. В программе предусмотрена возможность построения всевозможных типов графиков, как двух, так и трехмерных. В примерах решения различных электротехнических задач, мы покажем несколько наиболее часто применяемых их видов. Здесь мы не рассматриваем их все, так как это тема отдельной работы. Тех, кто интересуется данным вопросом, отсылаем к многочисленной литературе, приведенной в библиографии и справочной системе MATLAB. Отметим, только, что среди специальных типов графиков имеются весьма интересные, которые можно с успехом применять для визуализации тех или иных процессов протекающих в электрических цепях и машинах, например, процедура comet(x,y) - ("комета") строит график зависимости у(х) постепенно во времени в виде траектории кометы. При этом изображающая точка на графике имеет вид маленькой кометы (с головкой и хвостиком), которая плавно перемещается от одной точки к другой. Это об-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
33
стоятельство может быть полезным при построении временных и параметрических зависимостей.
Рисунок 1.9 – График функции заданной параметрически MATLAB имеет несколько функций, позволяющих строить графики в логарифмическом масштабе. Функция logspace с обращением: х = logspace(dl,d2,n),
формирует вектор-строку х, содержащую n равноотдаленных в логарифмическом масштабе друг от друга точек, которые покрывают диапазон от 10dl до 10d2. Функция loglog полностью аналогична функции plot, но графики по обеим осям строятся в логарифмическом масштабе. Для построения графиков, использующих логарифмический масштаб только по одной из координатных осей, пользуются процедурами semilogx и semilogy. Первая процедура строит графики с логарифмическим масштабом вдоль горизонтальной оси, вторая - вдоль вертикальной оси. Обращение к последним трем процедурам полностью аналогично обращению к функции plot. Обычно графики, получаемые с помощью процедур plot, loglog, semilogх и semilogy, автоматически строятся в таких масштабах, чтобы в окне графика поместились все вычисленные точки, включая максимальные и минимальные значения аргумента и функции. Но MATLAB имеет возможности определения и других режимов масштабирования. Это достига-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
34
ется за счет использования процедуры axis. Команда axis([xmin xmax ymin ymax]) устанавливает жесткие границы поля графика в единицах величин, откладываемых по осям. Команда axis('auto') возвращает масштабы по осям к их штатным значениям (принятым по умолчанию). Команда axis('ij') перемещает начало отсчета в левый верхний угол реализует отсчет от верхнего левого угла (матричная система координат). Команда axis('xy') возвращает декартову систему координат с началом отсчета в левом нижнем углу. Команда axis('square') устанавливает одинаковый диапазон изменения переменных по осям графика. Команда axis('equal') обеспечивает одинаковый масштаб по обеим осям графика. В одном графическом окне, но на отдельных графических полях можно построить несколько графиков, используя процедуру subplot. Обращение к этой процедуре должно предшествовать обращению к процедурам plot, loglog, semilogx и semilogy и выглядеть так: subplot(m,n,p)
Здесь m указывает, на сколько частей делится графическое окно по вертикали, n - по горизонтали, а р является номером подокна, в котором будет строиться график. Подокна нумеруются слева направо, сверху вниз (так, как читается текст книги). При необходимости, можно установить для надписей на графике тип шрифта и его размер. Это особенно полезно, когда надписи выводятся на русском языке. Например, ввод строки set(gca,'FontName','Arial Unicode MS','FontSize',10)
устанавливает шрифт Arial Unicode MS размером 10 пунктов. Эта строка должна предшествовать командам title, хlabel и ylabel. Существуют и другие способы введения текста в поле графика, но здесь мы их не рассматриваем. Чтобы создать несколько графических окон, в каждом из которых размещаются соответствующие графики, можно воспользоваться командой figure, которая создаст новое графическое окно, оставляя предыдущие. Наконец, для того чтобы несколько последовательно вычисляемых графиков были отображены в одном графическом окне, можно использовать команду: hold on. Тогда каждый следующий график будет строиться в том же предварительно открытом графическом окне, т.е. новая линия будет добавляться к ранее построенным. Команда hold off выключает режим сохранения графического окна, установленный предыдущей командой. Чтобы вывести график из графического окна (фигуры) на печать, следует воспользоваться командами меню, расположенного в верхней части окна фигуры.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
35
Выберите из меню File команду Print. Подготовьте принтер к печати, нажмите кнопку ОК в диалоговом окне, и принтер распечатает содержимое графического окна на отдельном листе бумаги. Для настройки принтера используйте команду Print Setup из меню File. Иногда из-за ошибок в программе или из-за сложности решаемой задачи MATLAB «зацикливается» и перестает выдавать результаты либо непрерывно выдает их, хотя в этом уже нет необходимости. Для прерывания вычислений в этом случае достаточно нажать одновременно клавиши Ctrl и С (латинское). 1.4.2 Трехмерные графики Трехмерные поверхности обычно описываются функцией двух переменных z(x, у). Специфика построения трехмерных графиков требует не просто задания ряда значений х и у, то есть векторов х и у. Она требует определения для X и Y двумерных массивов - матриц. Для создания таких массивов служит функция meshgrid. В основном она используется совместно с функциями построения графиков трехмерных поверхностей. Функция meshgrid записывается в следующих формах: [X,Y] = meshgrid(x) - аналогична [X,Y] = meshgrid(x,x); [X,Y,Z] = meshgrid(x,y,z) - возвращает трехмерные массивы, используемые для вычисления функций трех переменных и построения трехмерных графиков; [X,Y] = meshgrid(x,y) - преобразует область, заданную векторами х и у, в массивы X и Y, которые могут быть использованы для вычисления функции двух переменных и построения трехмерных графиков. Строки выходного массива X являются копиями вектора х; а столбцы Y - копиями вектора у. Пример: [X,Y] = meshgnd(l:4.13:17) X = 1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
13 14 15 16 17
13 14 15 16 17
13 14 15 16 17
13 14 15 16 17
Y=
Приведем еще один пример применения функции meshgrid:
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
36
[X,Y] = meshgrid(-2:.2:2. -2:.2:2);
Такой вызов функции позволяет задать опорную плоскость для построения трехмерной поверхности с шагом 0.2. Дополнительные примеры применения функции meshgrid будут приведены далее при описании соответствующих команод и в примерах расчета электрических полей. Рекомендуется ознакомиться также с командами surf и slice (ломтик). 1.4.2.1 Графики поля градиентов quiver Для построения графиков полей градиента служат команды quiver: quiver(X,Y,U,V) - строит график поля градиентов в виде стрелок для каждой пары элементов массивов X и Y, причем элементы массивов U и V указывают направление и размер стрелок; quiver(U, V) - строит векторы скорости в равнорасположенных точках на плоскости (х, у); quiver(U,V,S) или quiver(X,Y,U,V,S) - автоматически масштабирует стрелки по сетке и затем вытягивает их по значению S. Используйте S=0, чтобы построить стрелки без автоматического масштабирования; quiver(...,LINESPEC) - использует для векторов указанный тип линии. Указанные в LINESPEC маркеры рисуются у оснований, а не на концах векторов. Для отмены любого вида маркера используйте спецификацию '.'. quiver(.... 'filled') - дает график с закрашенными маркерами; 1.4.2.2 Построение графиков поверхностей Команда plot3(...) является аналогом команды plot (...), но относится к функции двух переменных z(x, у). Она строит аксонометрическое изображение трехмерных поверхностей и представлена следующими формами: plot3(x,y,z) - строит массив точек, представленных векторами х, у и z, соединяя их отрезками прямых. Эта команда имеет ограниченное применение; plot3(X,Y,Z), где X, Y и Z - три матрицы одинакового размера, строит точки с координатами X(i,:), Y(i,:) и Z(i,:) и соединяет их отрезками прямых. Ниже дан пример построения трехмерной поверхности, описываемой функцией Z ( x, y ) x 2 y 2 : [X.Y]=meshgrid([-3:0.15:3]); Z=X.^2+Y.^2;
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
37
plot3(X,Y,Z)
График этой поверхности показан на рисунке 1.10.
Рисунок 1.10 - График поверхности, построенный линиями plot3(X,Y,Z,S) - обеспечивает построения, аналогичные, рассмотренным ранее, но со спецификацией стиля линий и точек, соответствующей спецификации команды plot. Ниже дан пример применения этой команды для построения поверхности кружками: [X,Y]=meshgrid([-3:0.15:3]); Z=X.^2+Y.^2; plot3(X,Y,Z,'o')
plot3(x1,y1.z1,s1.х2,у2.z2,s2,хЗ,уЗ,z3,s3,...) - строит на одном рисунке графики нескольких функций zl(xl ,yl), z2(x2,y2) и т. д. со спецификацией линий и маркеров каждой из них. 1.4.2.3 Сетчатые 3D-графики с окраской Наиболее представительными и наглядными являются сетчатые графики поверхностей с заданной или функциональной окраской. В названии
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
38
их команд присутствует слово mesh. Имеются три группы таких команд. Ниже приведены данные о наиболее полных формах этих команд. mesh(X,Y,Z,C) - выводит в графическое окно сетчатую поверхность Z(X,Y) с цветами узлов поверхности, заданными массивом С; mesh(X.Y.Z) — аналог предшествующей команды при C=Z. В данном случае используется функциональная окраска, при которой цвет задается высотой поверхности. Возможны также формы команды mesh(x,y,Z), mesh(x,y,Z,C), mesh(Z) и mesh(Z,C). Ниже приводится пример применения команды mesh: [X,Y]=meshgrid([-3:0.15:3]); Z=X.^2+Y.^2; mesh(X,Y,Z)
На рисунке 1.11 показан график поверхности, созданной командой mesh(X.Y.Z). Нетрудно заметить, что функциональная окраска линий поверхности заметно усиливает наглядность ее представления.
Рисунок 1.11 -. График поверхности, созданный командой mesh(X,Y,Z) MATLAB имеет несколько графических функций, возвращающих матричный образ поверхностей. Например, функция peaks(N) возвращает матричный образ поверхности с рядом пиков и впадин. Такие функции
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
39
удобно использовать для проверки работы графических команд трехмерной графики. Для упомянутой функции peaks можно привести такой пример: z=peaks(25); mesh(z);
График поверхности, описываемой функцией peaks, представлен на рисунке 1.12.
Рисунок 1.12 - График поверхности, описываемой функцией peaks Рекомендуется ознакомиться с командами и функциями, используемыми совместно с описанными командами: axis, caxis, colormap, hold, shading и view. 1.4.2.4 Сетчатые 3D-графики с проекциями Иногда график поверхности полезно объединить с контурным графиком ее проекции на плоскость, расположенным под поверхностью. Для этого используется команда meshc:
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
40
meshc(...) - аналогична mesh(...), но помимо графика поверхности дает изображение ее проекции в виде линий равного уровня (графика типа contour). Ниже дан пример применения этой команды: [X,Y]=meshgrid([-3:0.15:3]); Z=X.^2+Y.^2; meshc(X,Y,Z)
Построенный график показан на рисунке 1.13. Нетрудно заметить, что график такого типа дает наилучшее представление об особенностях поверхности.
Рисунок 1.13 - График поверхности и ее проекции на расположенную ниже плоскость 1.4.2.5 Построение поверхности с окраской Особенно наглядное представление о поверхностях дают сетчатые графики, использующие функциональную закраску ячеек. Например, цвет окраски поверхности z(x, у) может быть поставлен в соответствие с высотой z поверхности с выбором для малых высот темных тонов, а для больших - светлых. Для построения таких поверхностей используются команды класса surf (...):
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
41
surf(X,Y,Z,С) - строит цветную параметрическую поверхность по данным матриц X, Y и Z с цветом, задаваемым массивом С; surf(X,Y,Z) - аналогична предшествующей команде, где C=Z, так, что цвет задается высотой той или иной ячейки поверхности; surf(x,y,Z) и surf(x,y,Z,C) с двумя векторными аргументами х и у векторы х и у заменяют первых два матричных аргумента и должны иметь длины length(x)=n и length(y)=m, где [m,n]=size(Z); surf(Z) и surf(Z,C) используют х = 1:n и у = 1:m. В этом случае высота Z - однозначно определенная функция, заданная геометрически прямоугольной сеткой. Команды axis, caxis, color-map, hold, shading и view задают координатные оси и свойства поверхности, которые могут использоваться для большей эффектности показа поверхности или фигуры. Ниже приведен простой пример построения поверхности - параболоида: [X,Y]=meshgrid([-3:0.15:3]); Z=X.^2+Y.^2; surf(X,Y,Z)
Соответствующий этому примеру график показан на рисунке 1.14.
Рисунок 1.14 - График параболоида с функциональной окраской ячеек
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
42
Можно заметить, что благодаря функциональной окраске график поверхности гораздо более выразителен, чем при построениях без такой окраски, представленных ранее (причем даже в том случае, когда цветной график печатается в черно-белом виде). В следующем примере используется функциональная окраска оттенками серого цвета с выводом шкалы цветовых оттенков: [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 обеспечивает устранение изображения сетки и задает интерполяцию для оттенков цвета объемной поверхности. На риунке 1.15 показан вид графика, построенного в этом примере.
Рисунок 1.15 - График поверхности с функциональной окраской серым цветом Обычно применение интерполяции для окраски придает поверхностям и фигурам более реалистичный вид, но фигуры каркасного вида дают более точные количественные данные о каждой точке. 1.4.2.6 Построение поверхности и ее проекции Для повышения наглядности представления поверхностей можно использовать дополнительный график линий равного уровня, получаемый
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
43
путем проецирования поверхности на опорную плоскость графика (под поверхностью). Для этого используется команда surfс: surfc(...) - аналогична команде surf, но обеспечивает дополнительное построение контурного графика проекции фигуры на опорную плоскость. Пример применения команды surfс приводится ниже: [X,Y]=meshgrid([-3:0.1:3]); Z=sin(X)./(X.^2+Y.^2+0.3); surfc(X,Y,Z)
На рисунке 1.16 показан график, построенный в данном примере. Графики трехмерных поверхностей весьма наглядны и могут с успехом применятся для изучения многих электротехнических явлений. Особенно они полезны при изучении раздела "Теория электромагнитного поля". Наглядность и выразительность визуализации решения задач по данному разделу во многом могут оказать помощь студентам освоить этот нелегкий материал.
Рисунок 1.16 - График поверхности и ее проекции на опорную плоскость 1.4.2.6 Построение освещенной поверхности Пожалуй, наиболее реалистичный вид имеют графики поверхностей, в которых имитируется освещение от точечного источника света, расположенного в заданном месте координатной системы. Графики имитируют оптические эффекты рассеивания, отражения и зеркального отражения света. Для получения таких графиков используется команда surf1: surfl(...) - аналогична команде surf(...), но строит график поверхности с подсветкой от источника света;
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
44
surfl(Z,S) или surfl(X,Y,Z,S) - строит графики поверхности с подсветкой от источника света, положение которого в системе декартовых координат задается вектором S=[Sx,Sy,Sz], а в системе сферических координат - вектором S=[AZ,EL]; surfl(..., 'light') - позволяет при построении задать цвет подсветки с помощью объекта light; surfl(..., 'cdata') - при построении имитирует эффект отражения; surfl(X,Y,Z,S,K) - задает построение поверхности с параметрами, заданными вектором K=[ka,kd,ks,spread], где ka - коэффициент фоновой подсветки, kd - коэффициент диффузного отражения, ks - коэффициент зеркального отражения и spread - коэффициент глянцевитости; По умолчанию вектор S задает углы азимута и возвышения в 45°. Используя команды cla, hold on, view(AZ,EL), surfl (...) и hold off, можно получить дополнительные возможности управления освещением. Ниже представлен пример применения команды 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
Построенная в этом примере поверхность представлена на рисунке 1.17.
Рисунок 1.17 - График поверхности с имитацией ее освещения точечным источником
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
45
Сравните этот рисунок с рисунком 1.15, на котором та же поверхность построена без имитации ее освещения. Примечание Нетрудно заметить определенную логику в названиях графических команд. Имя команды состоит из основного слова и суффикса расширения. Например, все команды построения поверхностей имеют основное слово surf (сокращение от surface - поверхность) и суффиксы: с - для контурных линий поверхности, l - для освещенности и т. д. Это правило облегчает запоминание многочисленных команд графики. 1.4.2.7 Tрехмерные контурные графики Трехмерный контурный график представляет собой расположенные в пространстве линии равного уровня, полученные при расслоении трехмерной фигуры рядом секущих плоскостей, расположенных параллельно опорной плоскости фигуры. При этом в отличие от двумерного контурного графика линии равного уровня отображаются в аксонометрии. Для получения трехмерных контурных графиков используется команда contour3: contour3(...) - имеет синтаксис, аналогичный команде contour(...), но строит линии равного уровня в аксонометрии с использованием функциональной окраски (окраска меняется вдоль оси Z). Полезные частные формы записи этой команды: contour3(Z) - строит контурные линии для поверхности, заданной массивом Z, без учета диапазона изменения х и у; contour3(Z,n) - строит то же, что предыдущая команда, но с использованием n секущих плоскостей (по умолчанию n=10); contour3(X,Y,Z) - строит контурные линии для поверхности, заданной массивом Z, с учетом изменения х и у. Двумерные массивы X и Y создаются с помощью функции meshgrid; contour3(X,Y,Z,n) - строит то же, что предыдущая команда, но с использованием n секущих плоскостей. Пример применения команды contour3: contour3(peaks,20) colormap(gray)
Соответствующий данному примеру график представлен на рисунке 1.18. В данном случае задано построение двадцати линий уровня.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
46
Рисунок 1.18 - Трехмерный контурный график для функции peaks 1.4.2.8 Установка титульной надписи После того как график уже построен, MATLAB позволяет выполнить его форматирование или оформление в нужном виде. Соответствующие этому средства описаны ниже. Так, для установки над графиком титульной надписи используется следующая команда: title('string') - установка на двумерных и трехмерных графиках титульной надписи, заданной строковой константой 'string'. Пример применения этой команды будет дан в следующем разделе. 1.4.2.9 Установка осевых надписей Для установки надписей возле осей х, у и z используются следующие команды: xlabel('String') ylabel('String') zlabel('String') Соответствующая надпись задается символьной константой или переменной 'String'. Пример установки титульной надписи и надписей по осям графиков приводится ниже: [X,Y]=meshgrid([-3:0.1:3]); Z=sin(X)./(X.^2+Y.^2+0.3); surfl(X,Y,Z) colorbar colormap(gray) shading interp xlabel('Axis X')
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
47
ylabel('Axis Y') zlabel('Axis Z') title('Surface graphic')
Построенный в этом примере график трехмерной поверхности показан на рисунке 1.19.
Рисунок 1.19 - График трехмерной поверхности с титульной надписью и надписями по координатным осям Сравните его с графиком, показанным на рисунке 1.17. Надписи делают рисунок более наглядным. 1.4.2.10 Вывод пояснений Пояснение в виде отрезков линий со справочными надписями, размещаемое внутри графика или около него, называется легендой. Для создания легенды используются различные варианты команды legend, некоторые из которых приведены ниже: legend(stringl,string2. strings,...) - добавляет к текущему графику легенду в виде строк, указанных в списке параметров; legend(М) - размещает легенду, используя данные из строковой матрицы М; legendOFF - устраняет ранее выведенную легенду; legend - перерисовывает текущую легенду, если таковая имеется; legend(....Pos) - помещает легенду в точно определенное место, специфицированное параметром Pos: Pos=0 - лучшее место, выбираемое автоматически;
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
48
Pos=l - верхний правый угол; Pos=2 - верхний левый угол; Pos=3 - нижний левый угол; Pos=4 - нижний правый угол; Pos=-l - справа от графика. Чтобы перенести легенду, установите на нее курсор, нажмите левую кнопку мыши и перетащите легенду в необходимую позицию. Остальные варианты расположения легенды пользователю предлагается изучить самостоятельно. Следует отметить, что применение легенды придает графикам более осмысленный и профессиональный вид. При необходимости легенду можно переместить мышью в подходящее место графика. 1.4.2.11 О форматировании графиков Графики в системе MATLAB строятся обманчиво просто. Связано это с тем, что многие свойства графиков установлены по умолчанию. К таким свойствам относятся вывод или скрытие координатных осей, положение их центра, цвет линии графика, ее толщина и т. д. и т. п. Конечно выше показано, как свойства и вид графиков можно менять в широких пределах с помощью параметров команд графики. Однако этот путь требует хорошего знания деталей языка программирования системы MATLAB. В новой версии MATLAB 6 для изменения свойств графиков (их форматирования) используются принципы визуального контроля за стилем (видом) всех объектов графиков. Это позволяет легко, просто и наглядно придать графикам должный вид перед записью их в виде файлов на диск. Можно сказать, что в этой части реализованы отдельные принципы визуально-ориентированного программирования графических средств. Систематизированное описание интерфейса системы MATLAB 6.0, в том числе интерфейса графических окон, дается в литературе приведенной в конце пособия и справочной системе (на английском языке). 1.5 Управления вычислительным процессом Работа в режиме калькулятора в среде MATLAB, несмотря на довольно значительные возможности, имеет существенные недостатки. Невозможно повторить все предыдущие вычисления и действия при новых значениях исходных данных без повторного набора всех предыдущих операторов. Нельзя вернуться назад и повторить некоторые действия или по некоторому условию перейти к выполнению другой последовательности операторов. И вообще, если число операторов велико, становится проблемой отладить правильную их работу из-за неизбежных ошибок при наборе
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
49
команд. Поэтому сложные, с прерываниями, запутанными переходами по определенным условиям, с часто повторяемыми однотипными действиями вычисления, которые, к тому же, необходимо проводить неоднократно при измененных входных данных, требуют их специального оформления в виде записанных на диске файлов, т.е. в виде программ. Преимущество программ в том, что становится возможным неоднократное обращение к одним и тем же операторам и к программе в целом. Создание программ позволяет значительно упростить и сократить процесс подготовки повторяемых вычислений, сделать процесс вычислений более наглядным и прозрачным, а благодаря этому — резко уменьшить вероятность появления принципиальных ошибок при разработке программ. Кроме того, в программах появляется возможность автоматизировать и процесс изменения значений входных параметров в диалоговом режиме. Для организации вычислительного процесса, который записывается в виде некоторого текста программы, необходимы операторы управления. При этом к операторам управления вычислительным процессом обычно относят операторы безусловного перехода, условных переходов (разветвления вычислительного процесса) и операторы организации циклических процессов. Однако система MATLAB построена таким образом, что эти операторы могут быть использованы и при работе MATLAB в режиме калькулятора. В языке MATLAB отсутствует оператор безусловного перехода, и поэтому нет понятия метки. Это является недостатком языка MATLAB и затрудняет организацию возвращения вычислительного процесса к любому предыдущему или последующему оператору программы. Все операторы цикла и условного перехода построены в MATLAB в виде сложного оператора, который начинается служебным словом if, while, switch или for и заканчивается служебным словом end. Операторы между этими словами воспринимаются системой как части одного сложного оператора. Поэтому нажатие клавиши [Enter] для перехода к следующей строке не приводит в данном случае к выполнению этих операторов. Выполнение операторов начинается только тогда, когда введена "закрывающая скобка" сложного оператора в виде слова end, а затем нажата клавиша [Enter]. Если несколько сложных операторов такого типа вложены один в другой, вычисления начинаются лишь тогда, когда записан конец (end) наиболее охватывающего (внешнего) сложного оператора. Из этого вытекает возможность осуществления даже в режиме калькулятора довольно сложных и объемных (состоящих из многих строк и операторов) вычислений, если они охвачены сложным оператором.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
50
1.5.1 Оператор условного перехода Конструкция оператора перехода по условию в общем, виде такова: if <условие> <операторы 1> else <операторы 2> end Работает он следующим образом. Вначале проверяется, выполняется ли указанное условие. Если да, то программа выполняет совокупность операторов, которая записана в разделе <операторы 1>. В противном случае выполняется последовательность операторов раздела <операторы 2>. Укороченная форма условного оператора имеет вид: if <условие> <операторы> end Действие оператора в этом случае аналогично, за исключением того, что при невыполнении заданного условия выполняется оператор, следующий за оператором end. Легко заметить недостатки этого оператора, вытекающие из отсутствия оператора безусловного перехода: вся часть программы, выполняющаяся в зависимости от условия, должна размещаться внутри операторных скобок if и end. В качестве условия используется выражение типа: <имя переменной 1> <операция сравнения> <имя переменной 2> Операции сравнения в языке MATLAB могут быть такими: < меньше; > больше; <= меньше или равно; >= больше или равно; = равно; ~= не равно. Условие может быть составным, т.е. складываться из нескольких простых условий, объединяемых знаками логических операций. Знаками логических операций в языке MATLAB являются: & - логическая операция И (AND); | - логическая операция ИЛИ (OR); ~ - логическая операция НЕТ (NOT). Логическая операция Исключающее ИЛИ может быть реализована при помощи функции хог(А,В), где А и В - некоторые условия. Допустима еще одна конструкция оператора условного перехода. if <условие 1> <операторы 1> elseif <условие 2>
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
51
<операторы 2> elseif <условие З> <операторы З> ….. else <операторы> end Оператор elseif выполняется тогда, когда <условие 1> не выполнено. При этом сначала проверяется <условие 2>. Если оно выполнено, выполняются <операторы 2>, если же нет, то <операторы 2> игнорируются и происходит переход к следующему оператору elseif, т.е. к проверке <условия З>. Аналогичным образом при его выполнении обрабатываются <операторы З>, в противном случае происходит переход к следующему оператору elseif. Если ни одно из условий в операторах elseif не выполнено, обрабатываются <операторы>, следующие за оператором else. Таким образом может быть обеспечено ветвление программы по нескольким направлениям. 1.5.2 Оператор переключения Оператор переключения имеет такую структуру: switch <выражение, скаляр или строка символов> сазе <значение 1> <операторы 1> сазе <значение 2> <операторы 2> …. otherwise <операторы> end Он осуществляет ветвление вычислений в зависимости от значений некоторой переменной или выражения, сравнивая значение полученное в результате вычисления выражения в строке switch, со значениями, указанными в строках со словом case. Соответствующая группа операторов case выполняется, если значение выражения совпадает со значением, указанным в соответствующей строке case. Если значение выражения не совпадает ни с одним из значении в группах case, выполняются операторы, следующие за otherwise. 1.5.3 Операторы цикла В языке MATLAB есть две разновидности операторов цикла - условный и арифметический. Оператор цикла с предусловием имеет вид:
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
52
while <условие> <операторы> end Операторы внутри цикла обрабатываются лишь в том случае, если выполнено условие, записанное после слова while. При этом среди операторов внутри цикла обязательно должны быть такие, которые изменяют значения одной из переменных, указанных в условии цикла. Приведем пример вычисления значения синуса при 5 значениях аргумента от 0,2 до 1 с шагом 0,2: i
= 1; while i< =4 x=i/5; si = sin(x); disp([x,si]) i = i+1; end 0.2 0.19867 0.4 0.38942 0.6 0.56464 0.8 0.71736 1 0.84147
Примечание. Обратите внимание на то, какими средствами в приведенном примере обеспечен вывод на экран нескольких переменных в одну строку. Для этого, используется оператор disp. Но, в соответствии с правилами применения этого оператора, в нем должен быть только один аргумент (текст, переменная или матрица). Чтобы обойти это препятствие, нужно несколько числовых переменных объединить в единый объект - векторстроку, а последнее легко выполняется при помощи обычной операции формирования вектора-строки из отдельных элементов. [х1, х2, . . ., хN] Таким образом, с помощью оператора вида: disp([xl, x2, ..., xN]) можно обеспечить вывод результатов вычислений в виде таблицы данных. Арифметический оператор цикла имеет вид: for <Имя> = <НЗ>:<Ш>:<КЗ> <операторы> end где <Имя> - имя управляющей переменной цикла - счетчика цикла; <НЗ> заданное начальное значение этой переменной; <Ш> - значение шага, с которым она должна изменяться; <КЗ> - конечное значение переменной цик-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
53
ла. В этом случае <операторы> внутри цикла выполняются несколько раз (каждый раз при новом значении управляющей переменной) до тех пор, пока значение управляющей переменной не выйдет за пределы интервала между <НЗ> и <КЗ>. Если параметр <Ш> не указан, по умолчанию его значение принимается равным единице. Чтобы досрочно выйти из цикла (например, при выполнении некоторого условия), применяют оператор break. Если в программе встречается этот оператор, выполнение цикла досрочно прекращается и начинает выполняться следующий после слова end оператор. Для примера используем предыдущее задание: a=[' i ',' for i=1:5 x=i/5; si=sin(x); if i==1 disp(a) end disp([i,x,si]) end i x 1 0.2 2 0.4 3 0.6 4 0.8 5 1
x
','
sin(x)
'];
sin(x) 0.19867 0.38942 0.56464 0.71736 0.84147
1.5.4 Функции функций Некоторые важные универсальные процедуры в MATLAB используют в качестве переменного параметра имя функции, с которой они оперируют, и потому требуют при обращении к ним указания имени Мфайла, в котором записан текст программы вычисления некоторой другой процедуры (функции). Такие процедуры называют функциями функций. Чтобы воспользоваться такой функцией от функции, необходимо, чтобы пользователь предварительно создал М-файл, в котором вычислялось бы значение нужной функции по заданному значению ее аргумента. Перечислим некоторые из стандартных функций от функций, предусмотренных в MATLAB. Вычисление интеграла методом квадратур осуществляется процедурой: [I, cnt] = quad('<Имя функции>', a,b) Здесь а и b - нижняя и верхняя границы изменения аргумента функции; I - полученное значение интеграла; cn- число обращений к вычислению функции, представленной М-файлом с названием, указанным в <Имя
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
54
функции>. Функция quad использует квадратурные формулы НьютонаКотеса четвертого порядка. Аналогичная процедура quad8 использует более точные формулы 8го порядка. Интегрирование обыкновенных дифференциальных уравнений осуществляют функции ode23 и ode45. Они могут применяться как для решения простых дифференциальных уравнений, так и для моделирования сложных динамических систем. Известно, что любая система обыкновенных дифференциальных уравнений (ОДУ) может быть представлена в так называемой форме Коши. dy f ( x, t ) , (1.1) dt где у - вектор переменных состояния системы; t - аргумент (обычно время); f - нелинейная вектор-функция от переменных состояния у и аргумента t. Обращение к процедурам численного интегрирования ОДУ имеет вид: [t, у] = оdе23('<Имя функции>', tspan, y0, options) [t, у] = оdе45('<Имя функции>', tspan, y0, options), где <Имя функции> - строка символов, являющаяся именем М-файла, в котором вычисляется вектор-функция f(y,t), т.е. правые части системы ОДУ; у0 - вектор начальных значений переменных состояния; t - массив значений аргумента, соответствующих шагам интегрирования; у - матрица проинтегрированных значений фазовых переменных, в которой каждый столбец соответствует одной из переменных состояния, а строка содержит значения переменных состояния, соответствующих определенному шагу интегрирования; tspan - вектор-строка [t0 tfinal], содержащая два значения. t0 - начальное значение аргумента t; tfinal - конечное значение аргумента, options - строка параметров, определяющих значения допустимой относительной и абсолютной погрешности интегрирования. Параметр options можно не указывать. Тогда по умолчанию допустимая относительная погрешность интегрирования принимается равной 1.0е-3, а абсолютная (по каждой из переменных состояния) - 1.0е-6. Если же эти значения не устраивают пользователя, то следует перед обращением к процедуре численного интегрирования установить новые значения допустимых погрешностей с помощью процедуры odeset таким образом: орtions = odeset('RelTol',le-4, 'AbsTol', [le-4 le-4 le-5]). Параметр RelTol определяет относительную погрешность чис-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
55
ленного интегрирования по всем переменным одновременно, а AbsTol является вектором-строкой, состоящим из абсолютных допустимых погрешностей численного интегрирования по каждой из фазовых переменных. Функция ode23 осуществляет интегрирование численным методом Рунге-Кутта 2-го порядка, а с помощью метода 3-го порядка контролирует относительные и абсолютные ошибки интегрирования на каждом шаге и изменяет величину шага интегрирования так, чтобы обеспечить заданные пределы ошибок интегрирования. Для функции ode45 основным методом интегрирования является метод Рунге-Кутта 4-го порядка, а величина шага контролируется методом 5-го порядка. Далее при рассмотрении расчетов переходных процессов в линейных электрических цепях мы рассмотрим применение данного способа решения дифференциальных уравнений на примере. Вычисления минимумов и корней функции осуществляется следующими функциями MATLAB. fmin - нахождение минимума функции одного аргумента; fmins - нахождение минимума функции нескольких аргументов; fzero - нахождение нулей (корней) функции одного аргумента. Последняя из указанных функций может с успехом использоваться для отыскания корней характеристических уравнений при расчете переходных процессов, расчете фильтров и т.д. Обращение к первой из процедур в общем случае имеет вид. Xmin = fmin('<Имя функции>', XI, Х2) Результатом этого обращения будет значение Xmin аргумента функции, соответствующее локальному минимуму в интервале Х1<Х<Х2 функции, заданной М-файлом с указанным именем. В качестве примера рассмотрим нахождение числа π, как значения локального минимума функции у = cos(x) на отрезке [3, 4]: » Xmin = fmin('cos',3,4) Xmin = 3.1416е+000
Обращение ко второй процедуре должно иметь форму: Xmin = fmins('<Имя функции>', Х0). При этом X является вектором аргументов, а Х0 означает начальное (исходное) значение этого вектора, в окрестности которого отыскивается ближайший локальный минимум функции, заданной М-файлом с указанным именем. Функция fmins находит вектор аргументов Xmin, соответствующий найденному локальному минимуму. Обращение к функции fzero должно иметь вид: z = fzero('<Имя функции>', х0, to1, trace).
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
56
Здесь х0 — начальное значение аргумента, в окрестности которого отыскивается действительный корень функции со значениями, вычисляемыми в М-файле с заданным именем; tol -_ заданная относительная погрешность вычисления корня; trace -. обозначение необходимости выводить на экран промежуточные результаты; z — значение искомого корня. Построение графиков функции одной переменной может быть осуществлено при помощи процедуры fplot. Отличие ее от процедуры plot, состоит в том, что для построения графика функции нет необходимости в предварительном вычислении ее значения и аргумента. Обращение к ней имеет вид: fplot('<Имя функции>', [<интервал>], n), где <интервал> - это вектор-строка из двух чисел, задающих, соответственно, нижнюю и верхнюю границы изменения аргумента; <Имя функции> - имя М-файла с текстом процедуры вычисления значения желаемой функции по заданному значению ее аргумента; n - количество частей, на которые будет разбит указанный интервал. Если последнюю величину не указать, по умолчанию интервал разобьется на 25 частей. Несмотря на то, что количество частей n указано, число значений вектора х может быть значительно большим, за счет того, что функция fplot проводит вычисления с дополнительным ограничением, чтобы приращение угла наклона графика функции на каждом шаге не превышало 10 градусов. Если же оно оказалось большим, осуществляется дробление шага изменения аргумента, но не более чем в 20 раз. Последние два числа (10 и 20) могут быть изменены пользователем, для этого при обращении следует добавить эти новые значения в заголовок процедуры в указанном порядке. Если обратиться к этой процедуре так: [х, V] = fplot(' <Имя функцию ', [<интервал>], n), то график указанной в М-файле функции не отображается на экране (в графическом окне). Вместо этого вычисляется вектор х аргументов и вектор (или матрица) Y соответствующих значений указанной функции. Чтобы при обращении последнего вида построить график, необходимо сделать это в дальнейшем с помощью процедуры plot(x,Y). 1.6 Создание М-файлов MATLAB в командном режиме работы не сохраняет сессии в памяти компьютера. Хранятся только определения созданных в ходе их выполнения переменных и функций. А вот программы на языке программирования MATLAB сохраняются в виде текстовых М-файлов. При этом могут сохраняться как целые программы в виде файлов-сценариев, так и отдельные программные модули - функции. Кроме того, важно, что программа может
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
57
менять структуру алгоритмов вычислений в зависимости от входных данных и данных, создаваемых в ходе вычислений. С позиций программиста язык программирования системы является типичным проблемно-ориентированным языком программирования высокого уровня. Точнее говоря, это даже язык сверхвысокого уровня, содержащий сложные операторы и функции, реализация которых на обычных языках (например, Бейсике, Паскале или Си) потребовала бы много усилий и времени. К таким функциям относятся матричные функции, функции быстрого преобразования Фурье (БПФ) и др., а к операторам - операторы построения разнообразных графиков, генерации матриц определенного вида и т. д. Итак, программами в системе MATLAB являются М-файлы текстового формата, содержащие запись программ в виде программных кодов. Язык программирования системы MATLAB имеет следующие средства: данные различного типа; константы и переменные; операторы, включая операторы математических выражений; встроенные команды и функции; функции пользователя; управляющие структуры; системные операторы и функции; средства расширения языка. Коды программ в системе MATLAB пишутся на языке высокого уровня, достаточно понятном для пользователей умеренной квалификации в области программирования. Язык программирования MATLAB является типичным интерпретатором. Это означает, что каждая инструкция программы распознается и тут же исполняется, что облегчает обеспечение диалогового режима общения с системой. Этап компиляции всех инструкций, т. е. полной программы, отсутствует. Высокая скорость выполнения программ обеспечена наличием заведомо откомпилированного ядра, хранящего в себе критичные к скорости выполнения инструкции, такие как базовые математические и иные функции, а также тщательной отработкой системы контроля синтаксиса программ в режиме интерпретации. Интерпретация означает, что MATLAB не создает исполняемых конечных программ. Они существуют лишь в виде М-файлов. Для выполнения программ необходима среда MATLAB. Однако для программ на языке MATLAB созданы компиляторы, транслирующие программы MATLAB в коды языков программирования С и C++. Это решает задачу создания исполняемых программ, первоначально разрабатываемых в среде MATLAB. Компиляторы для системы MATLAB являются вполне самостоятельными программными средствами и в данном пособии не рассматриваются.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
58
Следует особо отметить, что не все инструкции MATLAB могут компилироваться, так что перед компиляцией программы нуждаются в некоторой доработке. Зато скорость выполнения откомпилированных программ порой возрастает в 10-15 раз (правда, это достигается, как правило, для простых примеров с большими циклами). Начальное представление о переменных, встроенных константах и функциях уже было дано в предшествующих главах. В этой главе эти представления будут существенно расширены с позиций пользователяпрограммиста. М-файлы (то есть программные файлы MATLAB) бывают двух видов: М-файлы сценариев или Script-файлы и М-файлы функций (процедуры). Главным внешним отличием текстов этих двух видов файлов является то, что файл-функции имеют первую строку вида: function <ПКВ> = <Имя процедуры >(<ПВВ>), где ПКВ - Перечень Конечных Величин; ПВВ - Перечень Входных Величин. Script-файлы такой строки не имеют. Принципиальное же отличие заключается в совершенно разном восприятии системой имен переменных в этих файлах. В файл-функциях все имена переменных внутри файла, а также имена переменных, указанные в заголовке (ПКВ и ПВВ), воспринимаются как локальные, т.е. все значения этих переменных после завершения работы процедуры исчезают, и область оперативной памяти ПК, которая была отведена под запись значений этих переменных, освобождается для записи в нее значений других переменных. Для создания М-файлов может использоваться как встроенный редактор, так и любой текстовый редактор, поддерживающий формат ASCII. Подготовленный и записанный на диск М-файл становится частью системы, и его можно вызывать как из командной строки, так и из другого Мфайла. В процессе своего создания они проходят синтаксический контроль с помощью встроенного в систему MATLAB редактора/отладчика Мфайлов. Файл-сценарий, именуемый также Script-файлом, является просто записью серии команд без входных и выходных параметров. Он имеет следующую структуру: %Основной комментарий %Дополнительный комментарий Тело файла с любыми выражениями
Важны следующие свойства файлов-сценариев: они не имеют входных и выходных аргументов; работают с данными из рабочей области;
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
59
в процессе выполнения не компилируются; представляют собой зафиксированную в виде файла последовательность операций, полностью аналогичную той, что используется в сессии. Основным комментарием является первая строка текстовых комментариев, а дополнительным - последующие строки. Обратите внимание на возможность задания комментария на русском языке. Знак % в комментариях должен начинаться с первой позиции строки. Файлы-сценарии работают с данными из рабочей области. Переменные, используемые в файлах-сценариях, являются глобальными, т. е. они действуют одинаково в командах сессии и внутри программного блока, которым является файл-сценарий. Поэтому заданные в сессии значения переменных используются и в теле файла. Имена файлов-сценариев нельзя использовать в качестве параметров функций, поскольку файлы-сценарии не возвращают значений. Можно сказать, что файл-сценарий -это простейшая программа на языке программирования MATLAB М-файл-функция является типичным объектом языка программирования системы MATLAB. Одновременно он является полноценным модулем с точки зрения структурного программирования, поскольку содержит входные и выходные параметры и использует аппарат локальных переменных. Структура такого модуля с одним выходным параметром выглядит следующим образом:
function var=f_name(Cпиcoк_napaмeтpов) %Основной комментарий %Дополнительный комментарий Тело файла с любыми выражениями vаr=выражение
М-файл-функция имеет следующие свойства: он начинается с объявления function, после которого указывается имя переменной var - выходного параметра, имя самой функции и список ее входных параметров; функция возвращает свое значение и может использоваться в виде name(Список_параметров) в математических выражениях; все переменные, имеющиеся в теле файла-функции, являются локальными, т. е. действуют только в пределах тела функции; файл-функция является самостоятельным программным модулем, который общается с другими модулями через свои входные и выходные параметры; правила вывода комментариев те же, что у файлов-сценариев; файл-функция служит средством расширения системы MATLAB;
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
60
при обнаружении файла-функции он компилируется и затем исполняется, а созданные машинные коды хранятся в рабочей области системы MATLAB. Последняя конструкция vаг=выражение вводится, если требуется, чтобы функция возвращала результат вычислений. Приведенная форма файла-функции характерна для функции с одним выходным параметром. Если выходных параметров больше, то они указываются в квадратных скобках после слова function. При этом структура модуля имеет следующий вид:
function [varl,var2....]=f_name(Список_параметров) %Основной комментарий %Дополнительный комментарий Тело файла с любыми выражениями
Как видим, первые строки М-файлов служат для описания их назначения. Они выводятся на экран дисплея после команды help<Имя файла>
Считается правилом хорошего тона вводить в M-файлы достаточно подробные текстовые комментарии. Без таких комментариев даже разработчик программных модулей быстро забывает о сути собственных решений. В текстовых комментариях и в символьных константах могут использоваться буквы русского алфавита — при условии, что установлены содержащие эти буквы наборы шрифтов. 1.6.1 Особенности создания М-файлов в MATLAB Создание программы в среде MATLAB осуществляется при помощи либо собственного встроенного (начиная с версии MATLAB 5), либо стороннего текстового редактора, который вызывается автоматически, если он предварительно установлен с помощью команды Preferences меню File. Окно предварительно установленного редактора появляется на экране, если перед этим вызвана команда М-file из подменю New или выбрано название одного из существующих М-файлов при вызове команды Open Mfile из меню File. В первом случае окно текстового редактора будет пустым, во втором - в нем будет содержаться текст вызванного М-файла. В обоих случаях окно текстового редактора готово для ввода нового текста либо корректировки существующего. Для запуска файла его необходимо записать на диск, используя команду Save as в меню File редактора. На рисунке 1.20 показано окно редактора-отладчика с текстом простого файла в окне редактирования и отладки. После подготовки файла используется команда Save As. После записи файла на диск можно заметить, что команда Runs меню Tools редактора становится активной (до записи файла на диск она пассивна) и позволяет произвести запуск файла. Запустив команду Run, мож-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
61
но наблюдать исполнение М-файла — в нашем случае это построение рисунка в графическом окне (рисунок 1.21) и вывод надписи о делении на ноль в ходе вычисления функции sin(x)/x в командном окне системы.
Рисунок 1.20 – Окно редактора М-файлов
Рисунок 1.21 – График функции записанной в окнге радактора М-файлов Для удобства работы с редактором-отладчиком строки программы в нем последовательно нумеруются. Редактор является многооконным; окно
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
62
каждой программы оформляется как вкладка. Редактор-отладчик М-файлов выполняет синтаксическую проверку программного кода по мере ввода текста. При этом используются следующие цветовые выделения: ключевые слова языка программирования - синий цвет; операторы, константы и переменные - черный цвет; комментарии после знака % - зеленый цвет; символьные переменные (в апострофах) - зеленый цвет; синтаксические ошибки - красный цвет. Благодаря цветовым выделениям вероятность синтаксических ошибок резко снижается. Однако далеко не все ошибки диагностируются. Ошибки, связанные с неверным применением операторов или функций (например, применение оператора - вместо + или функции cos(x) вместо sin(x) и т. д.), не способна обнаружить ни одна система программирования. Устранение такого рода ошибок (их называют семантическими) - дело пользователя, отлаживающего свои программы. Редактор-отладчик М-файлов имеет свое меню и свою инструментальную панель. Назначение ее кнопок следующее: New - создание нового М-файла; Open - загрузка файла; Save - запись файла на диск; Print - печать содержимого текущего окна редактора; Cut - перенос выделенного фрагмента в буфер обмена; Сору - копирование выделенного объекта в буфер; Paste - размещение фрагмента из буфера в позиции текстового курсора; Undo - отмена предшествующей операции; Redo - повтор отмененной операции; Find text - нахождение указанного текста; Show function - показ функции; Set/Clear Breakpoint - установка/сброс точки прерывания; Clear All Breakpoints - сброс всех точек прерывания; Step - выполнение шага трассировки; Step In - пошаговая трассировка с заходом в вызываемые Мфайлы; Step Out - пошаговая трассировка без захода в вызываемые Мфайлы; Save and Run - сохранение и запуск; Exit Debug Mode - завершение отладки. Основным приемом отладкиМ-файлов является установка в их тек-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
63
сте точек прерывания (breakpoints). Они устанавливаются (и сбрасываются) с помощью кнопки Set/Clear Breakpoint. Сброс всех точек прерывания обеспечивается кнопкой Clear All Breakpoints Для установки точки прерывания необходимо поместить текстовый курсор напротив указанного выражения и нажать кнопку Set/ Clear Breakpoint Теперь при запуске программа будет выполнена до точки прерывания, после чего текущие значения переменных будут выведены в окне MATLAB. С помощью кнопки Step можно выполнить очередной шаг вычислений и т. д. Если отпала необходимость останова в точках прерывания, достаточно кнопкой Clear All Breakpoints удалить сразу все точки прерывания. Желтая стрелка указывает, в каком месте программы произошел останов. Каждый шаг исполнения цикла фиксируется в окне командного режима MATLAB. При остановке в точке прерывания вы можете проконтролировать значения переменных как «вручную» (введя имя переменной в командной строке и нажав клавишу Enter), так и с помощью организации просмотра перед точкой прерывания. Вы можете задать выполнение программы без захода (кнопка Step Out) и с заходом в вызываемые М-файлы (кнопка Step In). Кнопка Exit Debug Mode прекращает операции отладки. 1.6.1.1 Создание Script-файлов в среде MATLAB В Script-файлах все используемые переменные образуют так называемое рабочее пространство (Work space). Значения и смысл их сохраняются не только на протяжении работы программы, но и в течение всего сеанса работы с системой, а значит, и при переходе от выполнения одного Script-файла к выполнению другого. Таким образом, рабочее пространство является единым для всех Script-файлов, вызываемых в текущем сеансе работы с системой. Именно благодаря этому длинный Script-файл можно разбить на несколько фрагментов, оформить каждый из них в виде отдельного Script-файла, а в главном Script-файле вместо соответствующего фрагмента записать оператор вызова Script-файла, представляющего этот фрагмент. Таким образом, обеспечивается компактное и наглядное представление даже довольно сложной программы. За исключением указанных отличий, файлы-функции и Scriptфайлы оформляются одинаково. 1.6.1.2. Основные особенности оформления М-файлов В дальнейшем под М-файлом будем понимать любой файл (файлфункцию или Script-файл), записанный на языке системы MATLAB. Рассмотрим основные особенности записи текста программы (Мфайла) на языке MATLAB.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
64
Обычно каждый оператор записывается в отдельной строке текста программы. Признаком конца оператора является символ, (не появляется в окне) возврата каретки и перехода на следующую строку, который вводится в программу при нажатии клавиши [Enter], т.е. при переходе на следующую строку. Можно размещать несколько операторов в одной строке. Тогда предыдущий оператор этой строки должен заканчиваться символом ";" или ",". Длинный оператор можно записывать в несколько строк. При этом предыдущая строка оператора должна заканчиваться тремя точками (...). Если очередной оператор не заканчивается символом ";", результат его действия при выполнении программы будет выведен в командное окно. Поэтому для предотвращения вывода на экран результатов действия оператора программы, запись этого оператора в тексте программы должна заканчиваться символом ";". Строка программы, начинающаяся с символа "%", не выполняется. Эта строка воспринимается системой MATLAB как комментарий. Таким образом, для ввода комментария в любое место текста программы достаточно начать соответствующую строку с символа "%". Строки комментария, предшествующие первому выполняемому оператору программы, т.е. такому, который не является комментарием, воспринимаются системой MATLAB как описание программы. Именно эти строки выводятся в командное окно, если в нем набрана команда help <имя файла>. В программах на языке MATLAB отсутствует оператор окончания текста программы. В языке MATLAB переменные не описываются и не объявляются. Любое новое имя, появляющееся в тексте программы, воспринимается системой MATLAB как имя матрицы. Размер этой матрицы устанавливается при предварительном вводе значений ее элементов либо определяется действиями по установлению значений ее элементов, описанными в предыдущем операторе или процедуре. Эта особенность делает язык MATLAB очень простым в употреблении и привлекательным. В языке MATLAB невозможно использование матрицы или переменной, в которой предварительно не введены или не вычислены значения ее элементов (а значит, и не определены размеры этой матрицы). В этом случае при выполнении программы MATLAB появится сообщение об ошибке "Переменная не опреде-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
65
лена". Имена переменных могут содержать лишь буквы латинского алфавита или цифры и должны начинаться с буквы. Общее число символов в имени может достигать 19. В именах переменных могут использоваться как прописные, так и строчные буквы. Особенностью языка MATLAB является то, что прописные и строчные буквы в именах различаются системой. Например, символы "а" и "А" могут использоваться в одной программе для обозначения разных величин. 1.6.1.3 Создание простейших файл-функций (процедур) Как было отмечено ранее, файл-функция (процедура) должна начинаться со строки заголовка: function[<ПКВ>] = <Имя процедуры>(<ПВВ>). Если перечень конечных (выходных) величин (ПКВ) содержит только один объект (в общем случае — матрицу), то файл-функция представляет собой обычную функцию (одной или нескольких переменных). Фактически даже в этом простейшем случае файл-функция является уже процедурой в обычном смысле других языков программирования, если выходная величина является вектором или матрицей. Первая строка в этом случае имеет вид: function <Имя переменной> = <Имя процедуры>(<ПВВ>). Если же в результате выполнения файл-функции должны быть определены (вычислены) несколько объектов (матриц), такая файл-функция представляет собой уже более сложный объект, который в программировании обычно называется либо процедурой (в языке Паскаль), либо подпрограммой. Общий вид первой строки в этом случае становится таким. function [yl, у2, ..., yN] = <Имя
процедуры>(<ПВВ>),
т.е. перечень выходных величин yl, у2, ..., yN должен быть представлен как вектор-строка с элементами yl, у2, ..., yN (все они могут быть матрицами). В простейшем случае функции одной переменной заголовок приобретет вид: function у = func(x), где func — имя функции (М-файла). В качестве примера рассмотрим составление М-файла для функции
y f1 ( x ) d 3ctg ( x ) sin 4 ( x ) cos4 ( x ) .
(1.2)
Для этого следует активизировать меню File командного окна MATLAB и выбрать в нем сначала команду New, а затем команду M-file. После
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
66
этого на экране появится окно текстового редактора. В нем нужно набрать следующий текст: function у=fl(x,d) %Процедура, вычисляющая значение функции %у = (d^3)*ctg(x)*sqrt(sin(x)^4-cos(x)^4). %Обращение: у = Fl(x,d). у=(d^3)*cot(x).*sqrt(sin(x).^4-cos(x).^4);
Затем необходимо сохранить этот текст в файле под именем Fl.m. Итак, М-файл создан. Теперь можно пользоваться этой функцией при расчетах. Так, если ввести команду: у = fl(l,0.1) то получим результат: у = 4.1421е-004
Следует заметить, что аналогичным образом можно получить вектор сразу всех значений указанной функции при разных значениях аргумента, если последние собрать в некоторый вектор. Так, если сформировать вектор. zet= 0 : 0.3 : 1.8;
и обратиться к той же процедуре: my = fl(zet,l) то получим: Warning: Divide by zero mУ= columns 1 through 4 NaN + Infi 0 + 2.93691 Columns 5 through 7 0.3339 0.0706 -0.2209
0 + 0.8799i
0.3783
Примечание Возможность использования сформированной процедуры, как для отдельных чисел, так и для векторов и матриц обусловлена применением в записи соответствующего М-файла вместо обычных знаков арифметических действий их аналогов с предшествующей точкой. Чтобы избежать вывода на экран нежелательных промежуточных результатов, необходимо в тексте процедуры все вычислительные операторы завершать символом ";". Как показывают приведенные примеры, имена переменных, указанные в заголовке файл-функции могут быть любыми, совпадать или нет с именами, используемыми при обращении к этой файл-функции, т.е. они носят формальный характер. Важно, чтобы структура обращения полностью соответствовала структуре заголовка в записи текста М-файла и чтобы переменные в этом обращении имели тот же тип и размер, как и в заголовке М-файла. Чтобы получить информацию о созданной процедуре, достаточно набрать в командном окне команду:
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
67
help f1
и в командном окне появится: Процедура, вычисляющая значение функции у = (d^3)*ctg(x)*sqrt(sin(x)^4-cos(x)^4). Обращение: у = Fl(x,d).
1.6.1.4 Создание Script-файлов Как уже было отмечено, основные особенности Script-файлов таковы. Script-файлы являются независимо (самостоятельно) исполняемыми блоками операторов и команд; все используемые переменные образуют так называемое рабочее пространство, которое является общим для всех исполняемых Script-файлов, из этого следует, что при выполнении нескольких Script-файлов имена переменных в них должны быть согласованы, так как одно имя означает в каждом из них один и тот же объект вычислений; отсутствует заголовок, т.е. первая строка определенного вида и назначения; обращение к Script-файлам не требует указания никаких имен переменных, все переменные формируются в результате выполнения программы либо сформированы ранее и существуют в рабочем пространстве. Необходимо отметить, что рабочее пространство Script-файлов недоступно для файл-функций, которые в нем используются. В файлфункциях невозможно использовать значения, которые приобретают переменные в Script-файле, обходя заголовок файл-функции (так как все переменные файл-функции являются локальными). Единственной возможностью сделать так, чтобы внутри файл-функции некоторая переменная рабочего пространства сохранила свое значение и имя, является специальное объявление этой переменной в Script-файле как глобальной с помощью служебного слова global. Кроме того, аналогичная запись должна содержаться и в тексте М-файла той файл-функции, которая будет использовать значения соответствующей переменной Script-файла. Например, можно перестроить файл-функции первого и третьего примеров из предыдущего раздела, вводя коэффициенты соответствующих функций как глобальные переменные: function у=dvobl(х) % Вычисления функции % у=К(1)+К(2)*х+К(3)*sin(K(4)*x+K(5)), % где К - глобальный вектор из пяти элементов. % Применяется для определения текущих значений
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
68
% параметров движения подвижного объекта. global К,. у = К(1)+К(2)*х+К(3)*sin(K(4)*x+K(5));
Чтобы использовать новую файл-функцию dvobl в Script-файле, в последнем до обращения к этой функции должна быть записана строка. global К и определен вектор-строка К из пяти элементов (заданы их значения). Если в одной строке объявляются как глобальные несколько переменных, они должны отделяться пробелами (не запятыми!). 1.7 Сообщения об ошибках и исправление ошибок Важное значение при диалоге с системой MATLAB имеет диагностика ошибок. Вряд ли есть пользователь, помнящий точное написание тысяч операторов и функций, входящих в систему MATLAB и в пакеты прикладных программ. Поэтому никто не застрахован от ошибочного написания математических выражений или команд. MATLAB диагностирует вводимые команды и выражения и выдает соответствующие сообщения об ошибках или предупреждения. Пример вывода сообщения об ошибке (деление на 0) только что приводился. Рассмотрим еще ряд примеров. Введем, к примеру, ошибочное выражение » sqr(2) и нажмем клавишу ENTER. Система сообщит об ошибке: ??? Undefined function or variable 'sqr'.
Это сообщение говорит о том, что не определена переменная или функция, и указывает, какая именно - sqr. В данном случае, разумеется, можно просто набрать правильное выражение. Однако в случае громоздкого выражения лучше воспользоваться редактором. Для этого достаточно нажать клавишу вниз для перелистывания предыдущих строк. В результате в строке ввода появится выражение » sqr(2) с курсором в его конце. В версии MATLAB 6 можно теперь нажать клавишу Tab. Система введет подсказку, анализируя уже введенные символы. Если вариантов несколько, клавишу Tab придется нажать еще раз. Из предложенных системой трех операторов выбираем sqrt. Теперь с помощью клавиши вниз вновь выбираем нужную строку и, пользуясь клавишей влево, устанавливаем курсор после буквы г. Теперь нажмем клавишу вверх, а затем клавишу ENTER. Выражение примет следующий вид: » sqrt(2) ans= 1.4142
Если бы был только один вариант окончания введенных символов, то после нажатия клавиши Tab система бы закончила наш ввод без перевода строки. Вычисления дают ожидаемый результат- значение квадратного корня из двух.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
69
В системе MATLAB внешние определения используются точно так же, как и встроенные функции и операторы. Никаких дополнительных указаний на их применение делать не надо. Достаточно лишь позаботиться о том, чтобы используемые определения действительно существовали в виде файлов с расширением .m. Впрочем, если вы забудете об этом или введете имя несуществующего определения, то система отреагирует на это звуковым сигналом (звонком) и выводом сообщения об ошибке: » hsin(1) ??? Undefined function or variable 'hsin'.» sinh(1) ans= 1.1752
В этом примере мы забыли (нарочно), какое имя имеет внешняя функция, вычисляющая гиперболический синус. Система подсказала, что функция или переменная с именем hsin не определена ни как внутренняя, ни как М-функция. Зато далее мы видим, что функция с именем sinh есть в составе функций системы MATLAB - она задана в виде М-функции. Между тем в последнем примере мы не давали системе никаких указаний на то, что следует искать именно внешнюю функцию! И это вычисление прошло так же просто, как вычисление встроенной функции, такой как sin. Разумеется, скорость вычислений по внешним определениям несколько ниже, чем по встроенным функциям или операторам. При этом вычисления происходят следующим образом: вначале система быстро определяет, имеется ли введенное слово среди служебных слов системы. Если да, то нужные вычисления выполняются сразу, если нет, система ищет М-файл с соответствующим именем на диске. Если файла нет, то выдается сообщение об ошибке, и вычисления останавливаются. Если же файл найден, он загружается с жесткого диска в память машины и исполняется. Иногда в ходе вывода результатов вычислений появляется сокращение NaN (от слов Not a Number - не число). Оно обозначает неопределенность, например вида 0/0 или Inf/Inf, где Inf - системная переменная со значением машинной бесконечности. Например, при делении на 0 конечного числа появляется предупреждение «Warning: Devide by Zero.» («Внимание: Деление на ноль»). Диапазон чисел, представимых в системе, лежит от 10-308 до 10+308. Вообще говоря, в MATLAB надо отличать предупреждение об ошибке от сообщения о ней. Предупреждения (обычно после слова Warning) не останавливают вычисления и лишь предупреждают пользователя о том, что диагностируемая ошибка способна повлиять на ход вычислений. Сообщение об ошибке (после знаков ???) останавливает вычисления.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
70
2 Пакет для моделирования Simulink 5 Пакет расширения Simulink служит для имитационного моделирования моделей, состоящих из графических блоков с заданными свойствами (параметрами). В состав моделей могут включаться источники сигналов различного вида, виртуальные регистрирующие приборы, графические средства анимации. Двойной щелчок мышью на блоке модели выводит окно со списком его параметров, которые пользователь может менять. Запуск имитации обеспечивает математическое моделирование построенной модели с наглядным визуальным представлением результатов. Пакет основан на построении блочных схем путем переноса блоков из библиотеки компонентов в окно редактирования создаваемой пользователем модели. Затем модель запускается на выполнение. При этом возможны различные варианты моделирования: во временной области, в частотной области, с событийным управлением, на основе спектральных преобразований Фурье, с использованием метода Монте-Карло (реакция на воздействия случайного характера) и т. д. Для построения функциональной блок-схемы моделируемых устройств Simulink имеет обширную библиотеку блочных компонентов и удобный редактор блок-схем. Он основан на графическом интерфейсе пользователя и по существу является типичным средством визуальноориентированного программирования. Используя палитры компонентов (наборы), пользователь с помощью мыши переносит нужные блоки с палитр на рабочий стол пакета Simulink и соединяет линиями входы и выходы блоков. Таким образом, создается блок-схема системы или устройства, то есть модель. Simulink автоматизирует следующий, наиболее трудоемкий этап моделирования: он составляет и решает сложные системы алгебраических и дифференциальных уравнений, описывающих заданную функциональную схему (модель), обеспечивая удобный и наглядный визуальный контроль за поведением созданного пользователем виртуального устройства. Вам достаточно уточнить (если нужно) вид анализа и запустить Simulink в режиме симуляции (откуда и название пакета - Simulink) созданной модели системы или устройства. В дальнейшем мы будем использовать термин «моделирование». Средства визуализации результатов моделирования в пакете Simulink настолько наглядны, что порой создается ощущение, что созданная в виде блок-схемы модель работает «как живая». Более того, Simulink практически мгновенно меняет математическое описание модели по мере ввода ее новых блоков, даже в том случае, когда этот процесс сопровождается сменой порядка системы уравнений и ведет к существенному качественному изменению поведения системы. Впрочем, это является одной из главных целей пакета Simulink. Ценность Simulink заключается и в обширной, открытой для изу-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
71
чения и модификации библиотеке компонентов (блоков). Она включает источники сигналов с практически любыми временными зависимостями, масштабирующие, линейные и нелинейные. Возможности Simulink охватывают задачи математического моделирования сложных динамических систем в физике, электро- и радиотехнике, в биологии и химии - словом, во всех областях науки и техники. Этим объясняется популярность данного пакета как в университетах и институтах, так и в научных лабораториях. 2.1 Основы работы с пакетом После инсталляции Simulink (отдельно от MATLAB или в его составе) он автоматически интегрируется с MATLAB. Внешне это выражается появлением кнопки Simulink в панели инструментов системы MATLAB (рисунок 2.1). При нажатии этой кнопки открывается окно интегрированного браузера библиотек, показанное на рисунке 2.2.
Рисунок 2.1 – Окно MATLAB с кнопкой Simulink В окне браузера содержится дерево компонентов библиотек Simulink. Для просмотра того или иного раздела библиотеки достаточно выделить его мышью - в правой части окна Simulink Browser Library появится набор пиктограмм компонентов активного раздела библиотеки. На рисунке 2.2 показан основной раздел библиотеки Simulink. С помощью меню браузера или кнопок его панели инструментов можно открыть окно для создания новой модели или загрузить существующую. Работа с Simulink происходит на фоне открытого окна системы MATLAB, в котором нередко можно наблюдать за выполняемыми операциями - если их вывод предусмотрен программой моделирования. Даже не знакомый с Simulink пользователь может быстро оценить возможности этого пакета, воспользовавшись интересными и поучительными примерами, входящими в поставку Simulink. Они находятся в папке MATLAB/TOOLBOX/SIMULINK/SIMDEMOS.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
72
Рисунок 2.2 - Окно браузера библиотек Simulink Для загрузки примеров используется (как обычно) команда Open в меню File браузера библиотеки Simulmk. В окне с названием Open надо войти в указанную папку и выбрать подходящий пример. Окно Open можно растянуть для получения более полного обзора файлов демонстрационных примеров (рисунок 2.3). При открытии нужного примера - появляется окно редактирования графической модели устройства (рисунок 2.4). Интерфейс окна моделирования Simulink полностью соответствует стилю интерфейса типичных приложений Windows 95/98/NT/2000, в том числе интерфейсу системы MATLAB. В то же время он концептуально строг, чтобы не досаждать пользователю многочисленными «излишествами» стандартного интерфейса Windows 95/98/NT/2000. Меню системы содержит следующие пункты: File - работа с файлами моделей и библиотек (их создание, сохранение, считывание и печать); Edit - операции редактирования, работа с буфером обмена и создание подсистем; View - управление отображением панели инструментов и строки состояния;
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
73
Simulation - управление процессом моделирования (старт, пауза, вывод окна настройки параметров моделирования); Format - операции форматирования модели (смена шрифтов, редактирование надписей, повороты блоков, использование тени от блоков, операции с цветами линий блоков, их фоном и общим фоном; Tools - управление видом анализа (в линейной области и в режиме реального времени RTW).
Рисунок 2.3 – Библиотека примеров моделей
Рисунок 2.4 – Пример модель созданной в пакете Simulmk (модель аттрактора Лоренца)
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
74
2.1.1 Параметры компонентов Как можно заметить из примера, графическая модель содержит ряд блоков. Каждый блок имеет наглядное общепринятое обозначение в виде прямоугольника, треугольника и т. д. Блоки имеют входы и выходы и описываются различными математическими зависимостями. Блоки соединяются друг с другом линиями со стрелками, причем стрелка указывает направление от выходов одних блоков к входам других. Имеются также текстовые комментарии и средства для вывода подсказок и открытия окон справочной системы. Аттрактор Лоренца является типичной замкнутой колебательной системой с положительной обратной связью, в которой развиваются колебания очень сложной формы, демонстрирующие явление хаоса. Модель содержит ряд вычислительных модулей, отражающих ее нелинейность и основные особенности структуры, а также два регистрирующих прибора виртуальные осциллограф и графопостроитель. Для пользователя, имеющего хотя бы начальное представление о моделировании, вполне ясно, что любой компонент модели имеет какие то параметры или хотя бы один параметр. Из самой графической модели не видно, какими параметрами обладает тот или иной компонент. Каким же образом узнать, что за параметры компонентов установлены в той или иной модели? Для того чтобы вызвать окно модификации параметров компонента, нужно навести курсор мыши на изображение компонента и дважды щелкнуть левой кнопкой мыши. На рисунке 2.4 справа от модели показаны два таких окна для компонентов с именами у-х и Sigma(y-x). Кроме того, можно просто просмотреть параметры компонента. Для этого нужно, указав курсором мыши интересующий вас компонент, задержать курсор на 2-3 секунды. Под ним появится подсказка с указанием параметров этого компонента - на рисунке 2.4 показана подсказка для компонента 1/s. 2.1.2 Параметры моделирования Перед запуском модели нужно установить общие параметры моделирования. Для этого выполним команду Simulation Parameters в меню Simulation окна Simulink. На фоне окна модели (на рисунке не показано), появится окно установки параметров моделирования, показанное на рисунке 2.5. Это окно имеет ряд вкладок с довольно большим числом параметров. По умолчанию, открыта вкладка - Solver (Решатель). Она позволяет установить параметры решающего устройства системы моделирования Simulink.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
75
Рисунок 2.5 – Окно параметров моделирования К числу важнейших параметров решателя относится время моделирования - Simulation time. Оно задается начальным временем Start time (обычно 0) и конечным временем Stop time (в нашем случае бесконечность inf). Равенство Stop time бесконечности означает, что моделирование будет происходить бесконечно долго, пока мы не прервем его. Однако рекомендуется задавать конечные значения Stop time. Стоит отметить, что время моделирования - величина довольно условная. Не следует думать, что Stop time=50 означает моделирование в течение 50 секунд. Точного соответствия между временем моделирования в секундах и заданным значением нет. Реальное время моделирования сильно зависит от быстродействия компьютера, на котором выполняется моделирование. Первостепенное значение имеют две опции решателя в поле Solver options: тип решения и метод решения. Возможны два типа решения: Variable-step solvers - решение с переменным шагом; Fixed-step solvers - решение с фиксированным шагом. Как правило, лучшие результаты дает решение с переменным шагом (обычно по времени, но не всегда). Метод с фиксированным шагом стоит применять только тогда, когда цель заключается в получении таблицы результатов с фиксированным шагом. Вторая из указанных опций - выбор метода моделирования. Рисунок 2.6 показывает окно установки параметров моделирования отдельно с открытым меню выбора метода моделирования.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
76
Рисунок 2.6 – Вкладка метода моделирования Для решения дифференциальных уравнений можно выбрать следующие методы: discrete (дискретный), ode45, ode23, ode23s, ode113 и ode23t. Методы, в наименовании которых имеется слово stiff, служат для решения жестких систем дифференциальных уравнений. (Подробное описание указанных методов решения дифференциальных уравнений можно найти в книгах по системе MATLAB, рекомендованных в списке использованной литературы.) Следующие три параметра - значения опции auto - обычно задаются автоматически, но в особых случаях их можно ввести явно: Max step size - максимальный шаг интегрирования системы однородных дифференциальных уравнений; Min step size - минимальный шаг интегрирования; Initial step size - начальный шаг интегрирования. Важен и такой параметр моделирования, как точность интегрирования: Relative tolerance - относительная погрешность интегрирования; Absolute tolerance - абсолютная погрешность интегрирования. По умолчанию они заданы соответственно равными 10-3 и 10-6. Если, например, графики результатов моделирования выглядят составленными явно из отдельных фрагментов, это указывает на необходимость уменьшения указанных значений погрешности. Однако слишком малые погрешности могут вызвать значительное увеличение времени вычислений. Не оптимально выбранные значения погрешности (как очень малые, так и очень
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
77
большие) могут вызвать неустойчивость и даже «зацикливание» процесса моделирования. С остальными параметрами и вкладками окна параметров моделирования мы познакомимся в дальнейшем. 2.1.3 Запуск процесса моделирования В конце панели инструментов Simulink находятся две важные кнопки управления моделированием. Одна из них, в виде черного треугольника (Start/Pause Simulation), запускает или приостанавливает начатый процесс моделирования, а другая, в виде черного квадратика (Stop), останавливает его. Все, что нужно для запуска моделирования, - это нажать кнопку с изображением треугольника. Рисунок 2.7 показывает результат запуска выбранной модели. Вместо кнопок можно использовать команды Start и Pause в меню Simulation окна модели.
Рисунок 2.7 – Результат моделирования В данном случае результаты моделирования представлены в виде довольно сложного и неординарного фазового портрета колебаний, построенного с помощью виртуального графопостроителя, и осциллограммы временной зависимости колебаний, полученной с помощью виртуального осциллографа.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
78
Результат моделирования показывает, что даже в такой сравнительно простой нелинейной системе, каковой является аттрактор Лоренца, возникают сложные и отчасти хаотические колебания. Приведенный выше пример является характерным для ситуации, когда моделируется система или устройство, поведение которого описывается дифференциальными уравнениями известного вида. Однако Simulink имеет специальный редактор дифференциальных уравнений, с помощью которого можно задать систему дифференциальных уравнений первого порядка явно в общепринятой форме Коши (см. рисунок 2.8) и тут же начать ее решение с помощью решателя. Для получения доступа к решателю надо загрузить файл dee, который находится в папке MATLAB/ TOOLBOX/SIMULINK/DEE. Вернемся к уже описанному аттрактору Лоренца. Файл deedemo2 дает пример задания системы дифференциальных уравнений для аттрактора Лоренца в явном виде и их решения (рисунок 2.8). Нетрудно заметить, что результат решения совпадает с результатом моделирования, представленным на рисунке 2.7.
Рисунок 2.8 – Применение решателя дифференциальных уравнений В системе MATLAB одну и ту же задачу можно решать рядом способов. В этом случае получение одинаковых результатов (в том числе при
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
79
решении средствами Simulink) дает дополнительную гарантию правильности решения и корректности создаваемых моделей. Помимо самой модели в окне ее редактирования можно вводить текстовые комментарии (аннотации) и гиперссылки в виде прямоугольников разного размера с надписями. На рисунке 2.9, который представляет модель линейного фильтра, приведена гиперссылка на информационное окно, показанное там же. При активизации гиперссылки (это квадратик со знаком ?) выводится информационное окно (рисунок 2.9).
Рисунок 2.9 – Модель линейного фильтра
Рисунок 2.10 – Информационное окно
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
80
Конечно, информацию в окно можно вводить и на русском языке. 2.1.4 Использование субмоделей В пакете Simulink мы сталкиваемся с новой принципиально важной и эффективной возможностью - использованием субмоделей. Субмодель строится практически так же, как и S-модель системы. Она имеет обозначенные цифрами порты входа и выхода, через которые соединяется с основной S-моделью. На рисунке 2.11 показана S-модель, в состав которой входит суб-модель (блок Subsystem1). Схема этого блока показана на рисунке 2.11, справа.
Рисунок 2.11 – S-модель с субмоделью 2.2 Библиотека модулей (блоков) Библиотека блоков Simulink (рисунок 2.2) представляет собой набор визуальных объектов, при помощи которых можно, соединяя модули линиями функциональной связи, составлять блок-схему любого устройства. Библиотека блоков разбита на 13 разделов: Continuous (Непрерывные линейные блоки); DisContinuous (Нелинейные блоки); Discrete (Дискретные элементы); Look-Up Tables (Табличные блоки); Math Operations (Блоки математических операций); Model Verification (Блоки проверки заданных условий); Model-Wide Utilites (Блоки для ввода в S-модель примечаний); Ports & Subsystems (Блоки входных и выходных портов и субмоделей); Signal Atributes (Блоки для установки атрибутов сигналов);
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
81
Signal Routing (Блоки объединения и распределения сигналов); Sinks (Приемники); Sources (Источники); User-Defined Functions (Блоки функций определяемых пользователем). Последний раздел - содержит блоки функций, созданные пользователем и включенные в рабочую конфигурацию пакета. Как видно из рисунка 2.2, перед именем каждого раздела библиотеки имеется прямоугольная кнопка со знаком + (плюс). Нажатие на нее ведет к раскрытию дерева раздела библиотеки. При этом в правом окне появляется набор компонентов этого раздела библиотеки. Из любого окна (браузера или отдельного окна раздела библиотеки) можно перетаскивать компоненты мышью в окно модели. Пользователь может и сам создавать свои собственные библиотеки блоков, но описание этого процесса выходит за рамки настоящего пособия. Рассмотрим некоторые наиболее важные и часто используемые наборы блоков. 2.2.1 Раздел Sinks После перехода к разделу Sinks на экране появляется окно изображенное на рисунке 2.12. В этом разделе размещены три группы блоков, не имеющих выходов (только входы) блоки, которые при моделировании играют роль смотровых окон, к ним относятся: o блок Scope (Floating Scope), который выводит график зависимости величины, подаваемой на его вход, от модельного времени; o блок XY Graph с двумя входами, обеспечивающий построение графика зависимости одной моделируемой величины (один вход) от другой (второй вход); o блок Display с одним входом, предназначенный для отображения численных значений входной величины; блоки для сохранения результатов: o блок То File, обеспечивающий сохранение результатов моделирования в файле; o блок То Workspace, сохраняющий результаты в рабочем пространстве; блоки управления моделированием и связи: o Stop Simulation, который позволяет прервать моделирование при выполнении некоторых условий, блок срабатывает в случае, когда на его вход поступает ненулевой сигнал;
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
82
o Out1 (Выходной порт) обеспечивают связь между подсистемами модели по информации; o Terminator (Ограничитель) могут использоваться в качестве заглушек для тех выходных портов, которые по какой-либо причине оказались не подключенными к другим блокам Sмодели.
Рисунок 2.12 – Блоки раздела Sinks Рассмотрим эти блоки подробнее. 2.2.1.1 Блок Scope Блок Scope (виртуальный осциллограф) пожалуй, самое важное из регистрирующих устройств. Он позволяет представить результаты моделирования в виде временных диаграмм тех или иных процессов в форме, напоминающей осциллограммы современного высокоточного осциллографа с оцифрованной масштабной сеткой (и к тому же лучами разного цвета). Важно отметить, что виртуальные осциллографы фиксируют параметры любого типа, а не только электрические. Это придает некоторым виртуальным приборам уникальный характер. Например, об осциллографе, фиксирующем не только электрические сигналы, но и перемещения механических объектов, изменения температуры или давления и вообще изме-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
83
нения любых физических величин, даже крупные физические лаборатории могут только мечтать. Мы уже приводили пример применения осциллографа, для контроля формы сигналов при моделировании аттрактора Лоренца. Для настройки параметров блока следует после установки блока в поле сборки схемы дважды щелкнуть мышью на его изображении. В результате появится окно Scope. Для управления параметрами графиков и выполнения над ними различных действий в окне имеется панель инструментов, содержащая 11 пиктограмм, назначение которых указано на рисунке 2.13. Автоматическое масштабирование Масштабы по осям Параметры Печать осциллограмм
Запись установок осей Загрузка установок осей Отключение входов Просмотр выбранных осей Выбор входных сигналов
Рисунок 2.13 – Окно блока Scope Размер и пропорции этого окна можно изменять произвольно, используя мышь. По горизонтальной оси откладываются значения модельного времени, а по вертикальной - значения входной величины, соответствующие этим моментам времени. Если входная величина блока Scope представляет собой вектор, в окне строятся графики изменения всех элементов этого вектора, т е столько кривых, сколько элементов во входном векторе, причем, каждая - своего цвета. Одновременно в окне может отображаться до 30 кривых. При нажатии на пиктограмму Parameters (Параметры) открывается окно изображенное на рисунке 2.14 слева. Вторая вкладка этого окна показана справа. Это окно имеет две вкладки: General, которая обеспечивает выбор дискретности измерения отображаемых величин Data history, которая позволяет задавать максимальный объем и способ хранения отображаемых в окне Scope данных. Объем сохраняемых данных (опция Limit rows to last)
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
84
вводится в поле ввода. Способ хранения задается при помощи опции Save data to workspace. Если она установлена, то отображаемые в окне Scope данные сохраняются в рабочем пространстве в виде матрицы аналогичной по структуре М-файлу. Имя матрицы указывается в строке ввода Variable name (по умолчанию - ScopeData)
Рисунок 2.14 – Окно Parameters виртуального осциллографа Опция Number of axes позволяет превратить осциллограф в многоканальный. По умолчанию опция равна 1. Опция Floating scope предназначена для изменения способа использования блока Scope в блок-схеме. Когда она установлена то Scope отображается как блок без входа (если он был связан по входу с другими блоками, то эти связи обрываются). При этом выбор пункта Decimation позволяет задать дискрет измерения характеристик системы в виде целого числа шагов (дискретов) времени, а выбор пункта Sample Time - дискрет изменения модельного времени. Для ввода требуемых значений используется строка ввода, расположенная правее списка. По умолчанию дискрет (шаг) по времени равен нулю, т.е. модельное время предполагается непрерывным, а дискретность измерения равна единице, т.е. измерение осуществляется на каждом шаге времени, которая позволяет установить параметры осей. В нижней части окна расположены кнопки: ОК (Применить и закрыть вкладку); Apply (Применить); Help (Справка) и Cancel (Закрыть). На вкладке устанавливается верхний предел модельного времени, отображаемого на оси абсцисс (поле Time range). Любые произведенные в окне Properties изменения оказывают влияние на окно Scope лишь в случае, если после их ввода нажата кнопка Apply в нижней части окна Properties или ОК. 2.2.1.2 Блок XY Graph Этот блок также представляет собой смотровое окно. В отличие от
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
85
Scope, он имеет два входа: на первый подается сигнал, значения которого откладываются по горизонтальной оси графика, а на второй - по вертикальной оси. Если перетащить этот блок в поле блок-схемы, а затем выполнить на его изображении двойной щелчок, то появится окно настройки блока (рисунок 2.15, справа). Оно позволяет установить пределы изменений входных величин, внутри которых будет выводиться график зависимости второй величины от первой, а также задать дискрет по времени. Приведем пример использования блока XY Graph. Для этого в окно блок-схемы из окна library Simulink/Sinks перетащим изображение этого блока, а из окна Library Simulink/Sources - два блока-источника Sine Wave. Соединим выходы блоков-источников со входами блока XY Graph. Получим блок-схему, приведенную на рисунке 2.15.
Рисунок 2.15 – Блок-схема модели для получения фигур Лиссажу Если теперь в меню Simulation (Моделирование) окна блок-схемы выбрать команду Start (Запуск), то по окончании расчетов в окне блока XY Graph появится изображение, приведенное на рисунке 2.16.
Рисунок 2.16 – Окно установок блока XY Graph
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
86
2.2.1.3 Блок Display Блок предназначен для вывода на экран численных значений величин, фигурирующих в блок-схеме. Он имеет 4 параметра настройки, рисунок 2.17. Список Format задает формат вывода чисел и содержит 5 пунктов short, long, short e, long e, bank. Поле ввода Decimation позволяет задать периодичность (через сколько дискретов времени) вывода значений в окне Display. Опция Floating display позволяет определять блок Display как блок без входа, обрывая его связи.
Рисунок 2.17 – Настройки блока Display Блок Display может использоваться для вывода как скалярных так и векторных величин. Если отображаемая величина является вектором, то исходное вид блока изменяется автоматически, о чем свидетельствует появление маленького черного треугольника в правом нижнем углу блока. Для каждого элемента вектора создается свое мини-окно, но чтобы они стали видимы, необходимо растянуть изображение блока. Для этого следует выделить блок, подвести курсор к одному из его углов, нажать левую кнопку мыши и, не отпуская ее, растянуть изображение блока так, чтобы черный треугольник исчез. 2.2.1.4 Блоки То File и То Workspace Блок То File обеспечивает запись значений величины, поданной на его вход, в МАТ-файл для использования их в других S-моделях. Окно настроек блока показано на рисунке 2.18 слева. Блок имеет следующие параметры настройки: File name - имя МАТ-файла, в который будут записываться значения входной величины; по умолчанию - untitled mat; имя файла выводится на изображении блока в блок-схеме; Variable name - имя переменной, по которому можно будет обращаться к данным, записанным в файле (для того чтобы просмот-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
87
реть или изменить их в командном окне MATLAB); по умолчанию используется системное имя ans; Decimation - дискретность (в количестве дискретов времени) записи данных в файл; Sample Time - величина дискрета времени для данного блока. Блок То Workspace предназначен для сохранения данных в рабочем пространстве системы MATLAB. Данные записываются в виде матрицы, структура которой отличается от структуры данных в МАТ-файле тем, что: значения сохраняемых величин расположены по строкам, а не по столбцам; не записываются значения модельного времени. Блок имеет 5 параметров настройки, (рисунок 2.18 справа): Variable name - имя, под которым данные сохраняются в рабочем пространстве (по умолчанию - simout); Limit data points to last - максимально допустимое число точек, т. e. значений записываемых данных; по умолчанию задается константой inf (данные регистрируются на всем интервале моделирования); Decimation и Sample Time имеют тот же смысл, что и ранее; Save format – формат сохранения данных.
Рисунок 2.18 – Настройки блоков То File и То Workspace 2.2.2 Раздел Sources (Источники) После перехода к разделу Sources (Источники), на экране появляется окно изображенное на рисунке 2.19. Блоки, входящие в раздел Sources (Источники), предназначены для
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
88
формирования сигналов, обеспечивающих управление работой S-модели в целом или отдельных ее частей. Все блоки-источники имеют по одному выходу и не имеют входов. К важнейшим из них относятся:
Рисунок 2.19 – Блоки Sources (Источники) Band-Limited White Noise - генератор белого шума с ограниченной полосой; Chirp Signal - генератор гармонических колебаний с частотой, линейно изменяющейся во времени; Clock - источник непрерывного временного сигнала; Constant - формирует постоянную величину (скаляр, вектор или матрицу); Digital clock - формирует дискретный временной сигнал; Pulse Generator - генератор импульсных сигналов; Ramp - создает линейно нарастающий/убывающий сигнал (сту-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
89
пеньку по скорости или импульсный сигнал); Random Number - источник дискретного сигнала, амплитуда которого является случайной величиной, распределенной по нормальному закону; Signal Builder - позволяет задать сигнал созданный пользователем; Signal Generator - создает по выбору непрерывный колебательный сигнал одной из волновых форм: синусоидальная, прямоугольная, треугольная и случайная; Sine Wave - генерирует гармонический сигнал; Step - генерирует сигнал в виде одиночной ступеньки (скачкообразный сигнал) с заданными параметрами (начала ступеньки и ее высоты); Uniform Random Number - источник дискретного сигнала, амплитуда которого является случайной равномерно распределенной величиной. Два блока из раздела Sources обеспечивают использование в модели данных, полученных ранее. Первый из них - From File - предназначен для ввода в S-модель данных, хранящихся в МАТ-файле. Второй - From Workspace - обеспечивает ввод в S-модель данных непосредственно из рабочего пространства MATLAB. Структура данных в МАТ-файле представляет собой многомерный массив с переменным числом строк, которое определяется числом регистрируемых переменных. Как и другие блоки библиотеки Simulink, блоки раздела Sources могут настраиваться пользователем. Исключением является блок Clock, работа которого основана на использовании аппаратного таймера компьютера. 2.2.2.1 Блок Constant Блок предназначен для установки констант, применяемых при моделировании. Он имеет один параметр настройки — Constant value, который может быть введен и как вектор-строка из нескольких элементов по общим правилам MATLAB. Пример приведен на рисунке 2. 20. 2.2.2.2 Блок Signal Generator Окно настройки этого блока выглядит так, как показано на рисунке 2.21. Как видно, в параметры настройки входят: Wave form - позволяет выбрать одну из следующих форм перио-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
90
дического процесса: o sine - синусоидальные волны; o square - прямоугольные волны; o sawtooth - треугольные волны; o random - случайные колебания; Amplitude - определяет значение амплитуды колебаний; Frequency - задает частоту колебаний; Units - позволяет выбрать одну из единиц измерения частоты; Hertz (Герцы) или Rad/Sec (радианы в секунду).
Рисунок 2.20 – Пример применения блока Constant
Рисунок – 2.21 – Окно настроек блока Signal Generator
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
91
2.2.2.3 Блок Step Блок обеспечивает формирование управляющего сигнала в форме ступеньки (или, как говорят, скачкообразного постоянного сигнала). Блок имеет 3 основных параметра настройки, рисунок 2.22, слева: Step time (время начала ступеньки, те время скачка сигнала) - определяет момент времени, в который происходит скачкообразное изменение сигнала, по умолчанию принимается равным 1; Initial value (начальное значение) - задает уровень сигнала до скачка, исходное значение - 0; Final value (конечное значение) - задает уровень сигнала после скачка, значение его по умолчанию - 1; Рассмотрим пример использования блока. Перетащим посредством мыши из окна библиотеки источников в окно S-модели блоки Step а из окна библиотеки приемников - блок Scope и соединим их. Установим следующие параметры настройки блока Step time - 3,5, Initial value - -2, Final value - 3. После активизации моделирования (команда Start из меню Simulation) получим в окне Scope картину, представленную на рисунке 2.22.
Рисунок 2.22 – Настройки и сигнал на выходе блока Step 2.2.2.4 Блок Ramp Блок формирует постоянно нарастающий сигнал и имеет следующие параметры настройки: Slope - значение крутизны наклона прямой к оси времени;
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
92
Start time - время начала действия нарастающего сигнала; Initial output - значение сигнала в момент начала его действия. На рисунке 2.21 приведен результат применения блока Ramp при следующих значениях параметров Slope - 1, Start time - 3, Initial output 3. 2.2.2.5 Блок Sine Wave Блок Sine Wave имеет такие настройки: Amplitude - определяет амплитуду синусоидального сигнала; Frequensy (rad/sec) - задает частоту колебаний в радианах в секунду; Phase (rad) - позволяет установить начальную фазу в радианах; Sample time - определяет величину дискретности по времени задания значений синусоидального сигнала. На рисунке 2.24 представлен результат применения блока при следующих значениях параметров Amplitude - 4,5, Frequensy - 1 paдиан в секунду и Phase - π/2 радиан. Отличия этого блока от генератора синусоидальных колебаний в блоке Signal Generator состоят в следующем: в рассматриваемом блоке можно устанавливать произвольную начальную фазу; в нем нельзя задать частоту в Герцах.
Рисунок 2.23 – Сигнал блока Ramp
Рисунок 2.24 – Сигнал блока Sine Wave
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
93
2.2.2.6 Блок Repeating Sequence Этот блок содержит две настройки: Time values - вектор значений времени, в которых заданы значения выходной величины; Output values - вектор значений выходной величины, которые она должна принять в указанные в первом векторе соответствующие моменты времени. Блок обеспечивает генерирование колебаний с периодом, равным разности между последним значением вектора Time values и значением первого его элемента. Форма волны внутри периода представляет собой ломаную, проходящую через точки с указанными в векторах Time values и Output values координатами. В качестве примера справа на рисунке 2.25 приведено изображение процесса сгенерированного блоком Repeating Sequence, при параметрах настройки указанных на рисунке 2.25 слева.
Рис 719
Рисунок 2.25 – Настройки и выходной сигнал блока Repeating Sequence 2.2.2.7 Блок Pulse Generator Блок генерирует последовательности прямоугольных импульсов. В число настраиваемых параметров этого блока входят (рисунок 2.26): Amplitude - амплитуда сигнала (высота прямоугольного импульса), Period (secs) - период сигнала, отсчитываемый в секундах; Pulse width (% of period) - ширина импульса в процентах от периода; Phase delay (secs) - величина задержки импульса относительно начала процесса в секундах;
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
94
Pulse type - тип импульсов (привязанный к времени или к шагам дискрет времени модели).
2.2.2.8 Блок Pulse Generator
Рисунок 2.264 – Настройки и сигнал блока Pulse Generator 2.2.2.9 Блок Chirp Signal Этот блок генерирует синусоидальный сигнал единичной амплитуды и переменной частоты, причем частота колебаний изменяется во времени по линейному закону. В соответствии с этим в нем предусмотрены следующие параметры настройки (рисунок 2.27):
Рисунок 2.27 – Нгастройки и выходной сигнал блока Chirp Signal Initial frequency (Hz) - начальное значение (при t = 0) частоты (в Герцах);
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
95
Target time (seсs) - другой (больше нуля) момент времени (в секундах); Frequency at target time (Hz) - значение частоты в этот второй момент времени. 2.2.2.10 Блоки Random Number, Uniform Random Number и Band Limited White Noise Блок Random Number обеспечивает формирование сигналов, амплитуда которых является случайной величиной, распределенной по нормальному закону с заданными параметрами. Блок имеет четыре параметра настройки (показанные на рисуноке 2.28 слева). Первые два - Mean и Variance - являются параметрами нормального закона (среднее и среднее квадратичное отклонение от этого среднего), третий - Initial seed - задает начальное значение базы для инициализации генератора последовательности случайных чисел. При фиксированном значении этого параметра генератор всегда вырабатывает одну и ту же последовательность. Четвертый параметр (Sample time) задает величину дискрета времени. Справа на рисунке 2.28 показан результат использования блока при значениях параметров, установленных в окне настроек.
Рисунок 2.28 – Настройки и выходной сигнал блока Random Number Блок Uniform Random Number формирует сигналы, амплитуда которых является случайной величиной, равномерно распределенной в заданном интервале. В число параметров настройки блока входят: Minimum - нижняя граница случайных чисел; Maximum - верхняя граница;
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
96
Initial seed - начальное значение базы генератора случайных чисел; Sample time - дискрет по времени. Блок Band Limited White Noise формирует процесс в виде частотноограниченного белого шума. Параметры настройки у него следующие: Noise power - значение мощности белого шума; Sample time - значение дискрета времени (определяет верхнее значение частоты процесса); Seed - начальное значение базы генератора случайной величины. 2.2.3 Раздел Continuous Непрерывные (Continuous) блоки также играют важную роль в создании математических моделей многих устройств. Достаточно отметить электрические фильтры, построенные на таких компонентах (например, на операционных усилителях), широко используемые в технике электро- и радиосвязи, или математические блоки, применяемые в аналоговых ЭВМ. На рисунке 2.297 представлен раздел библиотеки Continuous с непрерывными компонентами.
Рисунок 2.29 – Раздел библиотеки с непрерывными блоками Среди блоков этой библиотеки особое значение имеют блоки дифференцирования и интегрирования, выполняющие широко распространенные операции высшей математики, а также блоки временной задержки и решения уравнений и систем уравнений,
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
97
2.2.3.1 Дифференцирующий блок Derivative Дифференцирующий блок Derivative служит для численного дифференцирования входных данных (сигналов). У блока нет никаких параметров настроек. Его окно установки параметров дает только информацию о назначении блока. Блок часто применяется при моделировании решения дифференциальных уравнений и с успехом может быть использован при анализе переходных процессов в электрических цепях. 2.2.3.2 Интегрирующий блок Integrator Блок интегрирования Integrator выполняет функции интегрирования входных данных (сигналов). Окно параметров интегрирующего блока содержит следующие элементы: External reset (внешний сброс) - тип внешнего управляющего сигнала, выбираемый из раскрывающегося списка (nоnе - нет, rising - нарастающий, falling - спадающий, either - любой); Initial condition source - источник начального значения выходного сигнала при интегрировании. В раскрывающемся списке можно выбрать внутренний (internal) или внешний (external) источник; Initial condition (начальное состояние) - установка начального значения выходного сигнала при интегрировании (в виде числа, по умолчанию 0); Limit output - включение/отключение ограничения выходного сигнала; Upper saturation limit - верхний предел ограничения выходного сигнала (по умолчанию inf, то есть +∞); Lower saturation limit - нижний предел ограничения выходного сигнала (по умолчанию -inf, то есть -∞); Show saturation port - управляет отображением порта, выводящего уровни ограничения выходного сигнала; Show state port - управляет отображением порта состояния системы; Absolute tolerance - абсолютная погрешность (по умолчанию автоматический выбор - auto). 2.2.3.3 Блоки фиксированной задержки Transport Delay и управляемой задержки Variable Transport Delay Блок фиксированной задержки Transport Delay обеспечивает времен-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
98
ную задержку входного сигнала на заданное время. Параметры блока: Time Delay - время задержки (по умолчанию 1); Initial input - начальный уровень входа (по умолчанию 0); Buffer size - размер буфера, выделяемого под задержанный сигнал, в байтах (число, кратное 8, по умолчанию 1024 байт); Fade order (for linearization) - порядок линеаризации Паде (по умолчанию 0, но может задаваться как целое положительное число для повышения точности линеаризации). Полезно обратить внимание на то, что задержка может задаваться вещественным числом. Блок управляемой задержки Variable Transport Delay имеет два входа: один для задерживаемого сигнала, а другой для сигнала управления. Он позволяет создавать задержку, заданную уровнем сигнала управления. Параметры этого блока совершенно аналогичны уже описанным параметрам блока фиксированной задержки (за исключением того, что вместо параметра Time delay используется параметр Maximum delay — максимальная задержка). Описание других блоков этого раздела выходит за рамки данного учебного пособия. 2.2.4 Раздел Discontinuous На рисунке 2.30 приведена библиотека блоков Discontinuous. В нее входят блоки с типовыми нелинейностями: BackLash (Люфт) реализует нелинейность типа люфта (зазора). В нем предусмотрено два параметра настройки: Deadband width (Величина люфта) и Initial output (Начальное значение выходной величины). Coulomb & Viscous Friction (Сухое и вязкое трение) реализует нелинейную зависимость типа линейная с предварительным натягом. Если вход положителен, то выход пропорционален входу и увеличен на величину натяга (кулонова трения). Если вход отрицателен, то выход также пропорционален входу (с тем же коэффициентом пропорциональности - коэффициентом вязкого трения) за вычетом величины натяга. При входе, равном нулю, выход также равен нулю. В параметры настройки блока входят величины кулонова трения (натяга) и коэффициента вязкого трения. Dead Zone (Мертвая зона) реализует нелинейность типа зоны не-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
99
чувствительности. Параметров настройки здесь два - начало и конец зоны нечувствительности. Hit Crossing - определяет момент времени, когда входной сигнал пересекает заданное значение. Quantizer (Квантователь) осуществляет дискретизацию входного сигнала по его величине. Параметр настройки блока один - Quantization interval (Интервал квантования) - величина дискрета по уровню входного сигнала. Rate Limiter (Ограничение скорости) старается отслеживать за входным сигналом в условиях задания ограничений на скорость нарастания и спада сигнала. Relay (Релейный блок) имеет разрывную передаточную функцию с гистерезисом (или без него), подобную передаточной функции хорошо известного триггера Шмитта. Если сигнал на входе меньше некоторого порога, то на выходе получается сигнал одного уровня (обычно низкого), а если порог превышен, то сигнал на выходе становится другого уровня (обычно высокого). Если при спаде сигнала достигается другой порог, то сигнал на выходе также скачком меняется. Saturation (Насыщение) реализует линейную зависимость с ограничением. Выходная величина этого блока совпадает с входной, если последняя находится внутри указанного диапазона. Если же входная величина выходит за рамки диапазона, то выходной сигнал принимает значение ближайшей из границ. Значения границ диапазона устанавливаются в окне настройки блока.
Рисунок 2.30 – Библиотека Discontinuous
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
100
2.2.5 Раздел Math Operations Библиотека блоков математических операций Math Operations, показана на рисунке 2.31. В нее входят несколько групп блоков.
Рисунок 2.31 – Библиотека блоков Math Operations 1. Блоки выполнения арифметических операций К числу наибояее простых математических блоков относятся блоки арифметических операций вычисления абсолютного значения числа Abs, скалярного произведения Dot Product, обычного произведения Product, а также суммы Sum. В окне настройки блока сложения/вычитания Sum можно установить вид представления блока (круглый или квадратный) и число входов с выполняемыми по ним операциями. Число входов и операции задаются шаблоном List of sign. Например, шаблон ++ означает, что блок имеет два суммирующих входа, а +-+ - что он имеет три входа, причем средний - вычитающий, а крайние - суммирующие. Блок Product (Умножение) предназначен для умножения и деления ряда входных сигналов. При этом операции задаются подобно тому, как это было описано для блока суммирования/вычитания с применением зна-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
101
ков умножения * или деления / в шаблоне. Для контроля знака служит блок Sign. Он возвращает -1 при отрицательном входном аргументе, 0 при нулевом входном аргументе и 1 - при положительном входном аргументе. 2. Блоки вычисления элементарных функций Это три блока, выполняющих вычисления математических функций Math Function (Математическая функция), Trigonometric Function (Тригонометрическая функция) и Rounding Function (Функция округления). Окна настроек первых из показаны на рисунках 2.32 а и 2.32 б.
а б Рисунок 2.32 - Окна настроек функций Math Function и Trigonometric Function Действие этих функций и установки их параметров достаточно очевидны. Выбор конкретной вычисляемой функции осуществляется в раскрывающемся списке. В нем имеется типовой набор элементарных функций. 3. Блоки для выполнения логических операций Сюда входят блоки: Logical Operation, Bitwise Logical Operation Combinatorial Logic. Блок Logical Operation позволяет задавать любую из известных базовых логических операций: AND - логическое умножение (операция И); OR - логическое сложение (операция ИЛИ); NAND - операция НЕ-И; NOR - операция НЕ-ИЛИ, XOR - операция сложения по модулю 2 (исключающее ИЛИ); NOT - операция логического отрицания (НЕ). Для побитовых логических операций (довольно редких и специфических) служит блок Bitwise Logical Operation.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
102
Блок Combinatorical Logic обеспечивает преобразование входного сигнала в соответствии с правилами, задаваемыми так называемой таблицей истинности. Эта таблица формируется по правилам, принятым в теории конечных автоматов. Помимо рассмотренных групп блоков этой библиотеки в нее входят блоки: Блоки масштабирования Gain и Slider Gain. Они служат умножения данных на заданный коэффициент - константу. В блоке Gain константа вводится в окне параметров (по умолчанию 1), а в блоке Slider Gain ее можно выбирать с помощью ползунка. Для масштабирования матричных данных служит блок Matrix Gain. Блоки обработки комплексных данных Complex to MagnntudeAngle и Complex to Real-lmag служат для вычисления абсолютного значения и фазы комплексного числа и выделения из него действительной и мнимой частей. Можно вычислять либо любой из выходных параметров отдельно либо оба одновременно. Блок Magnntude-Angle to Complex выполняет обратную операцию, по амплитуде и фазе комплексного числа восстанавливает его значение. Для поиска в данных минимального и максимального значений служит блок Мin/Мах. Для выбора выходного параметра (минимума или максимума) служит раскрывающийся список Function в окне установки параметров. Блок алгебраического ограничения Algebraic Constraint служит для вычисления значений переменных исходя из заданных (обычно в виде уравнения или системы уравнений) ограничений. Иными словами, этот блок служит для решения систем уравнений, накладывающих ограничения на значения переменных. Далее мы покажем применение этого блока для решения системы алгебраических уравнений. 2.2.6 Раздел Discrete В раздел Discrete (Дискретные элементы) входят блоки, с помощью которых в модели может быть описано поведение дискретных систем. Различают два основных типа таких систем: системы с дискретным временем и системы с дискретными состояниями. Блоки, входящие в раздел Discrete, обеспечивают моделирование, как тех, так и других. Описание этих блоков можно найти в литературе указанной в конце учебного пособия или в справочной системе MATLAB. 2.2.7 Раздел Look-Up Table Библиотека блоков работы с таблицами Look-Up Table, показана на рисунке 2.33.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
103
Рисунок 2.33 – Библиотека блоков для работы с таблицами Блок Look-up Table выполняет линейную интерполяцию входного сигнала в соответствии с задаваемой табличной функцией. Входом блока является вектор значений входного сигнала, а выходом - вектор соответствующих значений выходного сигнала. Необходимо обратить внимание на то, что блок обеспечивает линейную интерполяцию и экстраполяцию для входных сигналов, уровни которых имеют промежуточные значения (находятся между узловыми точками таблицы) или даже выходят за пределы заданного интервала изменения аргумента. Блок Look-up Table(2D) производит линейную интерполяцию двумерного входного сигнала. Это может быть, например, семейство линий (оно отображается на пиктограмме блока). Как и в предшествующем блоке, предусмотрена линейная интерполяция и экстраполяция входных данных. Блок Look-Up Table (n-D) служит для табличного представления данных и имеет расширенные возможности в части задания размерностей таблиц и интерполяции и экстраполяции их данных. Многомерные таблицы и их описания довольно громоздки и применяются редко. Блок таблицы с прямым доступом Direct Loop-Up Table (n-D) позволяет задавать многомерные таблицы с прямым доступом к их элементам. Отказ от интерполяции и экстраполяции существенно уменьшает время доступа, что бывает нужно, если интерполяция и экстраполяция осуществляются внешними блоками и по специальным алгоритмам. Блок PreLook-Up Index Search обеспечивает вычисление принадлежности одномерных данных к ближайшим узлам при приближении к ним снизу, а также контроль разности (дистанции) в относительных единицах между данными и значениями этих узловых точек. Данные могут быть представлены отдельными значениями или одномерным вектором значений.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
104
Блок Interpolation (n-D) using PreLoop-Up позволяет создать многомерную интерполяционную таблицу для представления в табличном виде функций ряда переменных. 2.2.8 Signal Routing Блоки объединения и распределения сигналов Signal Routing играют важную роль при разработке моделей, поэтому рассмотрим некоторые из них. Окно библиотеки блоков Signal Routing представлено на рисунке 2.34.
Рисунки 2.34 – Блоки библиотеки Signal Routing Библиотека содержит следующие блоки: Bus Creator (Объединение в шину), предназначен для создания шины передачи данных. Сигналы, объединяемые в шину, выбираются из специального окна в панели параметров блока. Bus Selector (Шинный селектор) обеспечивает выбор заданных сигналов из нескольких. Выбор сигналов производится в специальном окне панели параметров блока. Мих (Концентратор) выполняет объединение входных величин в один выходной вектор. При этом входные величины могут быть как скалярными, так и векторными. Длина результирующего вектора равна сумме длин всех суммируемых векторов. Порядок элементов в векторе выхода определяется порядком входов (сверху вниз) и порядком расположения элементов внутри каждого входа. Блок имеет один параметр настройки Number of inputs (Число входов). Demux (Разделитель) выполняет обратную функцию - разделяет входной вектор на заданное число компонентов. Он также имеет единственный параметр настройки Number of outputs (Число выходов).
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
105
Data Store Memory (Запоминание данных с заданным именем в память), Data Store Read (Чтение данных с заданным именем из памяти) и Data Store Write (Запись значений сигналов с заданным именем в память) используются совместно и обеспечивают не только передачу данных, но и их хранение на интервале моделирования. Goto (Перейти) и From (Принять) - используются совместно для организации «беспроводного» передатчика данных. Он необходим в сложных моделях для уменьшения количества линий связи на схеме; Manual Switch (Ручной переключатель) предназначен для переключения направления передачи сигнала. Блок не имеет параметров настройки. У него два входа и один выход. На изображении блока показано перемычкой, какой именно из двух входов подключен к выходу. Блок позволяет вручную переключить входы. Для этого необходимо дважды щелкнуть мышью на изображении блока. При этом изменится изображение блока на нем выход уже будет соединен перемычкой с другим входом. Switch (Переключатель) имеет три входа: два (1-й и 3-й) информационных и один (2-й) — управляющий и один выход. Если величина управляющего сигнала, поступающего на 2-й вход, не меньше некоторого заданного порогового значения (параметр Threshold - порог), то на выход блока передается сигнал с 1-го входа, в противном случае - сигнал с 3-го входа. Selector (Селектор) выбирает во входном векторе и передает на выход только те элементы, номера которых указаны в одном из параметров настройки блока. Существенным достоинством блока является то, что значения параметров его настройки отображаются в графической форме на изображении блока. 2.3 Пакет SimPowerSystems Пакет SimPowerSystems в программе Simulink 5 это новая, существенно переработанная версия пакета Power Systems Bloclset 2.0, который входил в состав программы Simulink 4. Пакет служит для моделирования энергетических (силовых) систем и устройств. Этот пакет занимает особое положение, поскольку больше, чем другие пакеты, ориентирован на моделирование технических устройств и систем вполне конкретного назначения. Именно данный пакет мы использовали для моделирования электрических устройств, описанных в третьей части пособия. Функционально полный набор библиотек и компонентов, превосходный графический интерфейс пользователя системы Simulink, обширные вычислительные возможности базовой матричной системы MATLAB, высокая степень достоверности имитации (моделирования) энергетических устройств и систем и превосходная степень визуализации результатов мо-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
106
делирования — все это сделало пакет SimPowerSystems одним из лучших среди пакетов такого рода, доступных для установки на персональных компьютерах с операционной системой Windows 95/98/2000/NT/ХР. В окне браузера библиотек Simulink можно выбрать библиотеку SimPowerSystems. Состав данного пакета представлен на рисунке 2.35.
Рисунок 2.35 – Состав пакета SimPowerSystems (на левой панели) В его состав входят библиотеки следующего назначения: Connectors - подключающие устройства; Electrical Sources - источники электрической энергии и сигналов; Elements - линейные и нелинейные компоненты электротехнических и электронных устройств; Extra Library - дополнительные библиотеки специальных энергетических устройств с расширенными возможностями; Machines - электрические машины; Measurements - измерительные и контрольные устройства; Power Electronics - устройства энергетической электроники. Их применение позволяет создавать модели самых разных энергетических устройств и выполнять их моделирование в режиме работы виртуальных устройств. Это дает наглядное представление о работе реальных устройств. При указании параметров компонентов и единиц измерения при настройке блоков используются обозначения, приведенные в таблице 5 (в
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
107
скобках даны обозначения, принятые в русскоязычной литературе): Таблица 5 – Обозначение электротехнических параметров Параметр Обозначение Единицы Time (время) second s (с) Length (длина) meter m (м) Mass (масса) kilogram kg (кг) Energy (энергия) joule J (Дж) Current (ток) ampere A (A) Voltage (напряжение) volt V(B) Frequence (частота) Hertz Hz (Гц) Active power (активная мощность) watt W (Вт) Apparent power (полная мощность) volt ampere VA(BA) Reactive power (реактивная мощvar var (ВАр) ность) Impedance (импеданс) ohm Ω (Ом) Resistance (импеданс) ohm Ω (Ом) Inductance (индуктивность) henry H (Гн) Capacity (емкость) farad F(Ф) Flux linkage (поток сцепления) volt-second V-S (B-c) radians per second rad/s (рад/с) Rotation speed (угловая скорость) revolutions per minute rpm (пер/мин) Torque (вращающий момент) newton·meter N·-m (Н·-м) 2 Inertia (момент инерции) kilogram (meter) kg-m2(Kr·-M2) Friction factor (коэффициент треnewton·meter·second N·m·s (Н·м·с) ния) В этой таблице приведены лишь основные параметры и единицы измерения. Некоторые из параметров будут рассмотрены по мере описания моделей. 2.3.1 Библиотека источников электрической энергии Electrical Sources В состав библиотеки Electrical Sources входят блоки, показанные на рисунке 2.36. Источники электрической энергии являются первичными компонентами энергетических систем и устройств. Большинство электротехнических устройств является потребителями энергии, вырабатываемой этими источниками, либо ее преобразователями. Пакет SimPowerSystems имеет модели источников, позволяющих имитировать реальные источники электроэнергии. В библиотеку включено семь типов источников электрической энергии:
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
108
3-Phase Programmable Voltage - 3-х фазный программируемый источник напряжения; 3-Phase Source - 3-х фазный источник напряжения; АС Current Source - источник переменного тока; АС Voltage Source - источник переменного напряжения; Controlled Current Source - регулируемый источник тока; Controlled Voltage Source - регулируемый источник напряжения; DC Voltage Source - источник постоянного напряжения.
Рисунок 2.36 – Библиотека Electrical Sources Эти источники образуют функционально полный набор источников электрической энергии и минимальный набор источников сигналов (в других расширениях MATLAB, кроме источников синусоидальных сигналов можно задавать великое множество источников сигналов самой разной формы). Этих наборов вполне достаточно для проектирования энергетических устройств. Трехфазные источники, входящие в данную библиотеку, применяются для моделирования мощных энергетических устройств, и здесь мы их рассматривать не будем. АС Current Source является источником идеального (с бесконечно большим внутренним сопротивлением) переменного тока с заданной амплитудой, частотой и фазой. AC Current Source задает ток, который меняется по синусоидальному закону и описывается выражением: I=Amplitude x sin(2pi x Frequency x t + Phase x pi/180).
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
109
Рисунок 2.37 показывает пример применения модели источника переменного тока. Здесь показан случай суммирования двух токов в резисторе 50 Ом. В результате суммирования двух токов с разными частотами (50 и 60 Гц) наблюдается биение тока с разностной частотой. i + -
Scope
I test AC Current Source
AC Current Source1
50 Ohm
Рисунок 2.37 - Схема, демонстрирующая суммирование токов от двух источников (слева), и осциллограмма тока в резисторе (справа) AC Voltage Source1 AC Voltage Source 2
50 Ohm
+ - v
Utest
Scope
Риунок 2.38. Схема, суммирования напряжений от двух источников напряжения (слева) и осциллограмма результирующего сигнала
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
110
Следует отметить, что хотя осциллограммы токов с биениями напоминают модулированные токи, они таковыми не являются - модуляция возможна в нелинейной системе, а данные простейшие системы являются линейными. Этот компонент имеет следующие параметры (рисунок 2.37): амплитуда тока (Peak amplitude) в амперах; частота в герцах (Frequency); фаза (Phase) в градусах (а не в радианах). Идеальный источник (с нулевым внутренним сопротивлением) напряжения переменного тока с заданной амплитудой, частотой и фазой AC Voltage Source задает напряжение, меняющееся по синусоидальнему закону и описываемое выражением: U=Amplitude x sin(2pi x Frequency x t + Phase x pi/180). Параметры источника задаются в окне, см. рисунок 2.38. Амплитуда напряжения (Peak amplitude) задается в вольтах. Приведенный пример демонстрирует суммирование двух напряжений переменного тока на резисторе с сопротивлением 50 Ом. В результате сложения двух переменных напряжений с частотами 50 и 60 Гц видны характерные биения с разностной частотой 10 Гц. Данная цепь также является линейной. Источник напряжения постоянного тока DC Voltage Source задается только одним параметром - выходным напряжением Е (такой источник также называется идеальным источником напряжения постоянного тока). Пример использования такого источника мы приводим далее, в разделе, посвященном моделированию электрических цепей постоянного тока. Управляемый источник тока Controlled Current Sour задает во внешней цепи ток, который зависит от начального тока и величины управляющего тока. В окне параметров этого источника (рисунок 2.39) задается только начальный ток (по умолчанию равный 0) и род источника: постоянный (DC) или переменный (AC). При этом временная зависимость выходного тока определяется временной зависимостью управляющего тока. Пример применения управляемого источника тока представлен на рисугнке 2.39. Обратите внимание на то, что управляющий сигнал создается операциями суммирования и умножения сигналов двух источников переменного тока и одного источника постоянного тока. Для этого используются блоки системы Simulink, например, из математической библиотеки. Суть работы схемы этого примера вполне очевидна: на резисторе 10 Ом получается модулированный ток. Источником модулируемого тока является источник 100 А, 60 Гц, модулирующим является источник 1 А, 5
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
111
Гц. Операция перемножения токов ведет к тому, что цепь в данном примере становится нелинейной. Обратите внимание на вид окна осциллографа Scope. В окне его прароаметров (рисунок 2.14) опция Tick labels установлена в значение – none. Управляемый источник напряжения Controlled Voltage Source задает на зажимах внешней цепи напряжение, которое зависит от начального напряжения и величины управляющего сигнала. Его применение и окно параметров аналогично предыдущему блоку. i + signal
100A, 60 Hz
1
Product
Controlled Current Source
-
Current Measurement
Scope
Constant
1A, 5 Hz
Рисунок 2.39 – Пример применения управляемого источника тока Управляемые источники напряжения и тока позволяют моделировать такой важный класс электрических цепей, как параметрические цепи (цепи, параметры которых зависят от времени). 2.3.2 Библиотека соединительных элементов Connectors Состав библиотеки Connectors приведен на рисунке 2.40. Большинство соединительных элементов имеют вполне очевидное назначение. Например, заземляющие элементы служат для подключения других элементов к общему проводу - земле (блок Ground). Элементы L Connector и T Connector служат для соединения проводников образующих ветви схемы. Эти элементы не имеют параметров. Более детально эти элементы рассматривать не имеет смысла ввиду очевидности их назначения.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
112
Рисунок 2.40 – Библиотека соединительных элементов 2.3.3 Библиотека элементов электрических цепей Elements Основная библиотека компонентов (рисунок 2.41) содержит ряд моделей, имеющих достаточно универсальный характер. с помощью одной модели можно, как правило, создать модели нескольких компонентов. Эта библиотека содержит несколько характерных компонентов для моделирования однофазных цепей: Series RLC Branch - последовательная RLC-цепь; Series RLC Load - последовательная RLC-цепь с нагрузкой; Parallel RLC Branch - параллельная RLC-цепь; Parallel RLC Load - параллельная RLC-цепь с нагрузкой; Linear Transformer - линейный трансформатор; Saturable Transformer - нелинейный трансформатор; Mutual Inductance - блок взаимной индуктивности; Surge Arrester - ограничитель пиковых напряжений (варистор); Breaker - выключатель управляемый; PI Section Line - линия с сосредоточенными параметрами; Distributed Parameters Line - линия с рапределенными параметрами. Практически аналогичные компоненты имеются и для трехфазных
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
113
цепей.
Рисунок 2.41 – Библиотека элементов электрических цепей Elements В состав библиотеки входят две последовательные и две параллельные RLС-цепи. Для цепей Series RLC Branch и Series RLC Branch задаются три параметра: сопротивление R, индуктивность L и емкость C. У так называемых нагрузочных цепей (последовательной Series RLC Load и параллельной Parallel RLC Load) параметры задаются допустимыми мощностями: активной для резистора, и реактивными для индуктивности и конденсатора). Для ввода отдельных элементов (резистора R, конденсатора С или индуктивности L) можно использовать любую из RLC-цепей, задав параметрам значения, соответствующие отсутствию ненужных элементов. Например, если с помощью последовательной RLC-цепи нужно задать только резистор R, то надо задать L=0 (индуктивность при этом исчезает и будет заменена проводником) и С=inf (inf означает бесконечное значение
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
114
емкости, что превращает ее также в проводник). Это правило модификации распространяется и на другие сложные компоненты, например нак модели ключей (они будут описаны ниже). При этом меняется и вид изображения блока. Благодаря этому правилу число простых моделей в пакете сокращено. Кроме того, это правило позволяет быстро модернизировать отдельные цепи, например превращать резистор R в RL- или RLC-цепь, не вводя новые компоненты в уже составленную схему, а просто задав их в окне параметров RLC-цепей. Примеры моделирования RLC-цепей будут приведены далее. Модель линейного трансформатора Linear Transformer задается индуктивностью Lm и сопротивлением потерь в сердечнике Rm первичной обмотки трансформатора, а также омическими сопротивлениями Ri, и индуктивностями рассеяния Li, всех обмоток трансформатора (i=1,2, 3). При описании параметров трансформатора используется дополнительная система параметров, принятая в европейской промышленности и называемая в описании пакета pu-системой. При этом вводятся обозначения, представленные далее и показаны примеры пересчета. Запись обозначений здесь не вполне корректна, так как при формальном математическом подходе означает pu = Rbilst. = Lbasu, что является грубой ошибкой. На самом деле в системе pu-единиц под 1 pu понимаются разные параметры. (Vn )2 Rbase 1 pu , Pn Rbase Lbase 1 pu , 2 f n
( 424,35 103 ) 2 Rbase , 250 105 720,3 Lbase 1,91 H , 2 60 R1 0,002 pu 720,3 1,44 , L1 0,08 pu 1,91 H 0,1528 H , Rm 500 pu 720,3 H 3,6 105 . В окне параметров трансформатора некоторые параметры задаются списками, поскольку трансформатор может иметь несколько обмоток. Модель линейного трансформатора значительно идеализирована, поэтому, в библиотеку включена модель нелинейного трансформатора Saturable Transformer. Она отличается от модели линейного трансформатора тем, что индуктивность первичной обмотки Lm заменена на нелинейную индуктивность Lsat. Для нелинейных трансформаторов также может использоваться pu-система параметров. В примерах данной работы, мы не
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
115
применяем эту модель, поэтому более подробно ее не рассматриваем. Для моделирования взаимной индуктивности в пакете SimPowerSystems служит блок взаимной индуктивности Mutual Inductance на основе идеального трансформатора. Он соответствует теоретической модели взаимной индуктивности. Для имитации выключателей (рубильников) служит управляемый выключатель Breaker. Он обеспечивает включение или выключение переменного тока. Пример применения этого элемента будет рассмотрен далее. В окне параметров выключателя возможно задание паразитных сопротивлений и индуктивности выключателя, что позволяет (при необходимости) моделировать эффекты, связанные с неидеальностью выключателя. Для моделирования процессов в длинных линиях в пакет SimPowerSystems включены модели линий передачи с сосредоточенными и распределенными параметрами PI Section Line и Distributed Parameters Line. 2.2.4 Библиотека длоков энергетической электроники Power Electronics Современная силовая электроника основана на импульсном способе преобразования электрической энергии, обеспечивающем высокий коэффициент полезного действия преобразовательных устройств. Поэтому в библиотеку рассматриваемого пакета включен достаточно представительный набор блоков коммутирующих устройств (рисунок 2.42).
Рисунок 2.42 – Состав библиотеки энергетической электроники
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
116
Представлены следующие типы ключей: Ideal Swith - идеальный управляемый ключ; Mosfet - полевой транзистор с изолированным затвором; Gto - запираемый тиристор (Gate turn off); Diode - полупроводниковый диод; Thyristor - упрощенная модель тиристора; Detailed thyristor - уточненная модель тиристора; IGBT - силовой биполярно-полевой модуль типа JGBT; Universal Bridge - универсальный модуль моста. Некоторое удивление может вызвать отсутствие модели биполярного транзистора. Отчасти это связано с тем, что в последнее время силовые биполярные транзисторы вытесняются полевыми транзисторами, а отчасти и тем, что пользователь (в случае необходимости) может составить подсистему биполярного транзистора, например на основе модели идеального ключа. Нужно отметить, что блоки данной библиотеки предназначены для моделирования в основном мощных энергетических цепей и устройств. В них, тонкие различия и особенности в работе полупроводниковых приборов разных марок не важны. Типы и марки используемых приборов очень важную роль играют при моделировании устройств промышленной электроники. Поэтому пакет SimPowerSystems не может применяться для создания моделей устройств маломощной электроники. Для этой цели, следует воспользоваться специализированными программами, такими как WorkBench, Micro-Cap, OrCad, Dr.Spise, DesignLab и др. Все модели коммутирующих элементов содержат гасящую выбросы напряжения последовательную RsCs-цепь, которая подключается к силовым выводам моделей. Задание бесконечного значения Сs и нулевого Rs закорачивает модель (пиктограмма устройства при этом заменяется пиктограммой проводника). Модели имеют также выход m для подключения измерительных приборов. На этом выходе формируется список значений тока, протекающего через устройство, и напряжения на нем в процессе моделирования, что позволяет строить системы, управляемые этими параметрами. Идеальный ключ Ideal Swith моделирует ключ, который во включенном состоянии имеет сопротивление Ron и индуктивность Lon. Сопротивление Ron позволяет приближенно учитывать статические потери в ключе во включенном состоянии, а индуктивность Lon - инерционные процессы при переключении. Задание Lon=0 недопустимо, поскольку ведет к неразрешимости системы уравнений, описывающих работу электрических цепей, из-за деления на ноль. Сопротивление ключа в выключенном состоянии считается равным бесконечности. Если требуется задать конечное сопротивление, то это легко моделируется включением резистора
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
117
соответствующею номинала параллельно зажимам ключа. В исходном состоянии ключ может быть закрыт или открыт в зависимости от параметра Initial State. Кроме того, можно использовать последовательную RsCs-цепь, которая включается параллельно ключу для ограничения выбросов напряжения и подавления дуги. Модель диода Diode представляет собой последовательно соединенные источник напряжения Vf на диоде в прямом включении, резистор Ron и паразитную индуктивность Lon в прямом направлении, когда диод проводит ток. В обратном направлении сопротивление диода считается бесконечно большим. Предусмотрен учет включения параллельно диоду последовательной гасящей цепи RsCs (эта цепь является внутренней и в составе модели не показана). Все эти возможности дает окно установки параметров диода Следует отметить, что модель диода довольно приближенная. Тем не менее, принятые приближения вполне соответствуют тем, что применяются в практике использования диодов при проектировании силовых устройств. Полевые транзисторы с изолированным затвором в последнее время стали основным типом переключающих транзисторов малой и средней (а иногда и большой) мощности. В пакете SimPowerSystems предусмотрена простая модель полевого транзистора Mosfet. Фактически он рассматривается как силовой ключ с сопротивлением Ron и индуктивностью Lon во включенном состоянии и бесконечно большим сопротивлением в выключенном состоянии. Можно также задать включение параллельно транзистору диода, открытого при закрытом транзисторе и характеризующегося сопротивлением Rd. Наконец, можно добавить подключенную к выводам сток-исток последовательную RsCs-цепь. Модель тиристора Thyristor также построена на основе идеального ключа с элементами, имитирующими остаточные параметры включенного тиристора. Это сопротивление во включенном состоянии Ron, индуктивность Lon и падение напряжения в прямом направлении Vf. В выключенном состоянии (обратное направление) сопротивление устройства считается равным бесконечности. Тиристор выключается, если управляющий сигнал равен нулю, а также в тех случаях, когда прямой ток тиристора падает до нуля или напряжение на тиристоре достигает значения обратного напряжения. Предусмотрено также параллельное включение (между анодом и катодом) последовательной RsCs-цепи. Имеется более детальная модель тиристора - Detail Thyristor. Окно параметров этой модели имеет два дополнительных параметра: ток Il при котором тиристор выключается, и время выключения Tq (в секундах), которое характеризует задержку выключения. Эта модель позволяет более
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
118
точно моделировать переходные процессы в схеме. Запираемые тиристоры Gto - сравнительно новый и перспективный тип мощных силовых коммутирующих элементов. Они имеют управляющие сигналы малой мощности и способны переключать большие напряжения и токи, чем полевые транзисторы с изолированным затвором. Однако для этих устройств характерно значительное время выключения. В последнее время они вытесняются модулями типа IGBT, описанными ниже. Кроме набора параметров, общих с обычными тиристорами, запираемые тиристоры имеют два новых специфических параметра: время спада тока до уровня 0.1 от тока в момент выключения (Тf) и время окончательного спада тока до нуля (Tt). Временная зависимость спада тока приближенно описывается двумя линейными участками с указанными длительностями. Gto-модули обычно используются в преобразовательных устройствах, работающих на частоте промышленной сети переменного тока 50 или 60 Гц. Работе на более высоких частотах препятствует отмеченная выше инерционность процесса выключения. Они также находят применение в импульсных преобразователях постоянного тока с невысокими частотами преобразования. Силовой модуль IGBT - новый перспективный элемент энергетической электроники. Он создан на основе комбинации биполярных транзисторов с полевыми. В прежних версиях описываемого пакета блок IGBTмодуля отсутствовал. Благодаря широкому применению мостовых схем в новую версию пакета SimPowerSystems был включен универсальный мостовой модуль Universal Bridge. Его схема соответствует мостовому одно-, двух-, или трехфазному выпрямитьелю или инвертору. Однако такой модуль может быть создан и на основе других описанных выше силовых коммутирующих элементов. Большинство параметров вполне очевидны и соответствуют описанным выше параметрам силовых устройств. Кроме того, можно задавать число элементов моста - параметр Number of bridge arms (1, 2 или 3), а также конфигурацию моста - параметр Port configuration. Как уже отмечалось, библиотека пакета SimPowerSystems содержит модели ряда электрических машин постоянного тока, а также синхронных и асинхронных машин переменного тока. Машины могут моделироваться в режимах двигателя или генератора. Это открывает возможности моделирования, как самих машин, так и достаточно сложных схем управления ими (устройст электропривода). Ввиду ограниченности объема данной книги мы не будем останавливаьбся на деталях моделирования электрических машин. некоторык из них будут рассмотрены далее.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
119
2.3.5 Библиотека блоков измерительных приборов Measurement На рисунке 2.43 показан состав этой библиотеки. Блоки Voltage Measurement и Current Measurement предназначены для соединения блоков библиотеки пакета SimPowerSystems с блоками приемников сигналов библиотеки Sink. Блок Impedance Measurement позволяет измерять частотную зависимость полного сопротивления между двумя точками исследуемой схемы. Блок Three-Phase V-I Measurement предназначен для измерения напряжений и/или токов в трехфазной цепи. Причем могут измерятся как фазные, так и линейные величины.
Рисунок 2.43 – Библиотека Measurement Особый интерес представляет блок Multimeter. Он позволяет измерить электрические переменные, выбранные в окне Measurement соответствующих элементов, рисунок 2.41. Окно настройки блока Multimeter имеет два поля, рисунок 2.44.
Рисунок 2.44 – Окно блока Multimeter
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
120
В первом (Available Measurement) после нажатия кнопки Update появляются соответствующие измеряемые величины. Все или часть из них могут быть с помощью кнопки >> переведены во второе окно (Selected Measurement) для измерения и регистрации результатов. Флажок Plot selected measurements позволяет вывести измеряемые сигналы в виде временных зависимостей. Данный блок позволяет избавиться от многочисленных вспомогательных измерительных блоков на модели, что упрщает ее, делает более удобной и понытной. Примеры применения этого блока мы увидим далее. В моделях, приведенных далее в главе 4 работы, встречаются блоки, не рассмотренные здесь. Их описания и пояснения по применению мы будем приводить по ходу изложения примеров моделирования. 2.4. Построение блок-схем Рассмотрим, какие операции выполняют в процессе построения блок-схем сложных динамических систем. 2.4.1 Выделение объектов При создании и редактировании S-модели нужно выполнять такие операции, как копирование или удаление блоков и линий. Для этого предварительно необходимо выделить один или несколько блоков и линий (объектов). Чтобы выделить отдельный объект, нужно щелкнуть на нем мышью один раз. В результате по углам выделенного блока или в начале и конце линии появятся маленькие черные метки. При этом все другие ранее выделенные объекты станут невыделенными. Если щелкнуть на объекте второй раз, он станет невыделенным. Для выделение нескольких объектов необходимо нажать клавишу [Shift] и, удерживая ее нажатой, выполнить щелчки на каждом выделяемом объекте. Затем клавишу [Shift] отпустить. Группу объектов можно выделить также с помощью рамки. Если требуется выделить всю S-модель, т.е. все объекты в активном окне блок-схемы, то для этого следует воспользоваться командой Select All (Выбрать все) из меню Edit (Правка) или комбинацией клавиш [Ctrl+A]. 2.4.2 Операции с блоками 2.4.2.1 Копирование и перестановка блоков Можно копировать блоки из библиотеки или другой модели в текущую S-модель. Для этого достаточно открыть нужную библиотеку или окно модели-прототипа и перетащить мышью нужный блок в окно создавае-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
121
мой модели. Блоки можно копировать и при помощи команд меню. Последовательность действий при этом такова: В окне библиотеки или модели выделите блок/блоки, подлежащие копированию. Выберите в меню Edit (Правка) активного окна команду Сору (Копировать). Сделайте активным окно, в которое нужно скопировать блок, и выберите в нем команду Paste (Вставить) из меню Edit (Правка). Каждому скопированному блоку Simulink присваивает имя. Первый скопированный блок будет иметь то же имя, что и блок в библиотеке. Каждый следующий блок того же типа будет иметь такое же имя с добавлением порядкового номера. Пользователь может переименовать блок. При копировании блок получает те же значения настраиваемых параметров, что и блок-оригинал. Перестановка блока внутри модели осуществляется путем перетаскивания его мышью. При этом Simulink автоматически перерисовывает линии, связывающие этот блок с другими блоками. Чтобы переставить несколько блоков вместе с соединительными линиями и с сохранением относительных расстояний, необходимо их выделить и перетащить мышью один из блоков. Все другие выделенные блоки также займут новые места. Копирование блоков одной модели можно выполнить двумя способами: Перетащить блок в нужное положение, удерживая клавишу [Ctrl]. Перетащить блок, удерживая нажатой правую кнопку мыши. 2.4.2.2 Установка параметров блока Функции, которые выполняет блок, зависят от значений параметров блока. Установка этих значений осуществляется в окне настройки блока, которое вызывается после двойного щелчка на изображении блока в блоксхеме. Окна настройки параметров для некоторых блоков показаны выше. Далее, при рассмотрении конкретных примеров моделирования электрических схем, мы, если это необходимо, будем приводить вид этих окон. 2.4.2.3 Удаление блоков Для удаления ненужных блоков из блок-схемы достаточно выделить эти блоки так, как было указано ранее, и нажать клавишу [Del] или [Backspace]. Можно также вызвать команду Clear (Очистить) или Cut (Вырезать) из меню Edit (Правка) окна блок-схемы. Если использована команда
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
122
Cut, то в дальнейшем удаленные блоки можно скопировать в S-модель при помощи команды Paste (Вставить) того же меню. 2.4.2.4 Отсоединение блока Чтобы отсоединить блок от линий, достаточно нажать клавишу [Shift] и, не отпуская ее, перетащить блок в другое место. 2.4.2.5 Изменение угловой ориентации блока В начальном состоянии сигнал проходит через блок слева направо (по левую сторону располагаются входы блока, а по правую сторону — выходы). Чтобы изменить угловую ориентацию блока следует: Выделить блок, который нужно повернуть. Выбрать в меню Format (Формат) окна блок-схемы одну из следующих команд - Flip Block (Поворот блока на 180 градусов) или Rotate Block (Поворот блока по часовой стрелке на 90 градусов). Меню Format можно вызвать, выделив блок и нажав правую кнопку мыши. 2.4.2.6 Изменение размеров и имени блока Изменение размеров блока выполняется следующим образом. Выделите блок и установите указатель мыши на одну из угловых меток блока. Форма указателя при этом изменится - он примет вид двунаправленной стрелки. "Захватите" мышью эту метку и перетяните ее в новое положение. Все имена блоков в модели должны быть уникальными и состоять хотя бы из одного символа. Чтобы изменить имя блока, нужно выполнить щелчок на имени, а затем, используя обычные приемы редактирования, внести необходимые изменения. Для изменения шрифта следует выделить блок, вызвать команду Font (Шрифт) из меню Format (Формат) окна модели и затем выбрать шрифт в открывшемся диалоговом окне. По умолчанию имя блока располагается следующим образом. Если блок ориентирован слева направо, то имя находится под блоком, если справа налево - над блоком, если же сверху вниз или снизу вверх - по правой стороне блока. Изменить местоположение имени выделенного блока можно двумя способами: перетащить имя мышью на противоположную сторону блока; воспользоваться командой Flip Name из меню Format окна модели - она также переносит имя на противоположную сторону блока. Скрыть имя блока можно, используя команду Hide Name (Скрыть имя) меню Format (Формат) окна модели. Чтобы восстановить отображение имени, следует воспользоваться командой Show Name (Показать имя)
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
123
того же меню. 2.4.2.7 Создание соединительных линий Сигналы в модели передаются по линиям. Каждая линия может передавать или скалярный, или векторный сигнал. Линия соединяет выходной порт одного блока с входным портом другого блока. Линия может также разветвляться и соединять один блок с несколькими блоками. Чтобы соединить выходной порт одного блока с входным портом другого, нужно выполнить следующие действия: Установить указатель мыши на выходной порт первого блока (при этом курсор должен принять форму перекрестия). Нажать левую кнопку мыши и, удерживая ее в этом положении, передвинуть указатель ко входному порту второго блока; Отпустить кнопку мыши. Simulink заменит символы портов соединительной линией с указанием направления передачи сигнала. Линии можно рисовать как от входного порта к выходному, так и наоборот, рисунок 2.45. Разветвленная линия, эта такая, которая ответвляется. Она начинается с существующей и передает ее сигнал к входному порту другого блока. Эти липии передают один сигнал. Разветвленная линия дает возможность передать один и тот же сигнал к нескольким блокам. Чтобы образовать ответвление от существующей линии, необходимо выполнить следующие действия: Установить курсор в точку ответвления; Нажать клавишу [Ctrl] и левую кнопку мыши и удерживать их нажатыми; Провести линию ко входному порту нужного блока; Отпустить клавишу [Ctrl] и левую кнопку мыши рисунок 2.45,а. 0
0 1
1
Display
Display
Constant
Constant
Signal Generator
Scope
XY Graph
Signal Generator
Gain
Сигнал №2
Scope
1
1 Sine Wave
Постоянная
Sine Wave
Scope1
Gain
Scope1
Сигнал №1
а
б Рисунок 2.45 – Соединение и разветвление линии
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
XY Graph
124
Блоки можно соединять ломаными линиями, состоящими из нескольких сегментов, рисунок 2.45,б. Для создания следующего сегмента необходимо установить курсор в конец предыдущего сегмента и нарисовать (удерживая левую клавишу мыши) следующий сегмент. Чтобы переместить отдельный сегмент линии, необходимо выполнить следующие действия: Установить указатель на перемещаемом сегменте. Нажать и удерживать левую кнопку мыши. Курсор при этом должен принять форму креста. Переместить указатель в новое положение сегмента и отпустить кнопку мыши. Примечание Сегмент, непосредственно прилегающий к порту блока, переместить невозможно При необходимости линию можно разделить на два сегмента. Для этого следует выполнить следующие действия: Выделить линию и установить курсор в точку излома линии. Нажать клавишу [Shift] и левую кнопку мыши. Курсор при этом примет форму окружности, а на линии образуется излом. Переместить курсор (излом) в новое положение. Отпустить клавишу [Shift] и кнопку мыши. 2.4.2.8 Проставление меток сигналов и комментариев Для наглядности и удобства блок-схемы линии можно снабдить метками, указывающими, какие сигналы по ним проходят. Метки размещают под или над горизонтальной линией, по левую или по правую сторону от вертикальной линии. Метка может быть расположена в начале, в конце или посередине линии, рисунок 2.45,б. Чтобы создать метку сигнала, нужно дважды щелкнуть на сегменте линии и затем ввести текст. Причем двойной щелчок следует выполнять точно на линии, так как в противном случае будет создан комментарий к модели. Перемещение метки осуществляется путем перетаскивания ее мышью на новое место. Если при этом удерживать нажатой клавишу [Ctrl], то метка будет скопирована в новое место. Скопировать метку можно также, выполнив двойной щелчок на другом сегменте линии. Чтобы отредактировать метку, следует щелкнуть на ней и затем внести соответствующие изменения в ее текст. Чтобы удалить метку, выделите ее, удерживая клавишу [Shift], и нажмите клавишу [Del] или [Backspace]. При этом будут уделены все метки
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
125
этой линии. Распространение меток линии - это процесс автоматического переноса метки/меток к сегментам линии, разорванной блоками From/Goto и Mux. Чтобы распространить метку, создайте во втором и последующих сегментах линии метки с именем "<" и вызовите команду Update Diagram (Обновить схему) из меню Edit (Правка) или нажмите комбинацию клавиш [Ctrl+D]. В результате метки в этих сегментах будут проставлены автоматически. Комментарии дают возможность сопровождать блок-схемы текстовой информацией о модели и отдельных ее составляющих. Комментарии можно проставлять в любом свободном месте блок-схемы. После двойного щелчка в любом свободном месте блок-схемы появляется прямоугольная рамка, в которую можно ввести текст комментария. Перемещение комментария осуществляется путем перетаскивания его с помощью мыши. Если при этом удерживать нажатой клавишу [Ctrl], комментарий будет скопирован в новое место. Созданный комментарий можно отредактировать. Для этого нужно выполнить на нем щелчок, а потом внести соответствующие изменения. Чтобы изменить при этом параметры шрифта комментария, необходимо выделить текст комментария и выбрать команду Font (Шрифт) из меню Format (Формат) окна блок-схемы. После этого появится диалоговое окно, в котором следует выбрать название шрифта, его размер, атрибуты и стиль и нажать кнопку ОК. Комментарий можно удалить. Для этого выделите комментарий, удерживая клавишу [Shift], и нажмите клавишу [Del] или [Backspace]. 2.4.2.9 Создание субмоделей Если блок-схема модели слишком сложная и имеет большие размеры, ее можно упростить, группируя блоки в субмодель. Использование субмоделей дает следующие преимущества: сокращается количество блоков, которые выводятся в окне модели; появляется возможность объединить в одну группу (подсистему) функционально связанные блоки; появляется возможность создания иерархических блок-схем. Подсистему можно создать двумя способами: добавить блок Subsystem в S-модель, потом войти в этот блок и создать субмодель в появившемся окне субмодели; выделить часть блок-схемы модели и объединить ее в субмодель. Создания субмодели путем добавления блока Subsystem.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
126
В этом случае нужно поступить так: Скопировать блок Subsystem в окно модели, перетянув его из раздела Connections; Открыть окно блока Subsystem, дважды щелкнув на изображении блока в блок-схеме; В пустом окне модели создать субмодель, используя блоки In и Out для создания входов и выходов субмодели. Создание субмодели путем группировки существующих блоков. Если блок-схема уже содержит блоки, которые нужно объединить в субмодель, то, последнюю можно создать так: Выделить при помощи рамки блоки и соединяющие их линии, которые нужно включить в состав подсистемы, рисунок 2.46,а; Выбрать команду Create Subsystem (Создать подсистему) из меню Edit (Правка). В результате Simulink заменит выделенные блоки одним блоком Subsystem (рисунок 2.46,б). Чтобы увидеть блок-схему созданной субмодели, следует дважды щелкнуть на блоке Subsystem, рисунок 2.47. Как видно из рисунка, Simulink добавил в блок-схему блоки In и Out, представляющие входы и выходы в систему высшего уровня.
sin
Pulse Generator
Sine Wave
Trigonometric Function
In1
Scope
Out1
Pulse Generator
In2
Scope Subsystem
0.5 Gain
Sine Wave
а
б
Рисунок 2.46 – Создание субмодели (подсистемы) 1 In1 sin 2 In2
Trigonometric Function
1 Out1
0.5 Gain
Рисунок 2.47 - Вид созданной субмодели
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
127
2.4.2.10 Запись и печать S-модели Для записи модели (блок-схемы) на диск нужно вызвать команду Save (Сохранить) или Save As (Сохранить как) из меню File (Файл) окна модели. При этом Simulink записывает в указанную вами папку файл с заданным (введенным с клавиатуры) именем, присваивая ему расширение .mdl. Чтобы распечатать S-модель (блок-схему), следует воспользоваться командой Print (Печать) из меню File (Файл) окна модели. Блок-схему можно вставить в документ любого текстового редактора, например Word. Для этого следует сначала вызвать команду Copy Model (Копировать S-модель) из меню Edit (Правка) окна модели, а затем перейти в окно текстового редактора и нажать комбинацию клавиш [Shift+Ins]. Таким способом были получены приведенные в данном пособии схемы моделей.
3 Расчет электрических цепей 3.1 Цепи постоянного тока 3.1.1 Общие положения и определения Электрической цепью называется искусственно созданный путь для электрического тока. Цепью постоянного тока называется такая, в которой ЭДС, токи и напряжения остаются постоянными по величине и не зависят от времени. Цепи делятся на два больших класса: линейные, содержащие только элементы с линейными вольтамперными характеристиками; нелинейные, содержащие элементы с нелинейными характеристиками. Только линейные элементы подчиняются закону Ома: U U U RI ; R ; I , (3.1) I R где R – сопротивление участка цепи, U – напряжение на участке, I – ток. Ток протекает по проводнику цепи, поэтому стрелку тока принято размечать на самом проводнике. Напряжение на любом участке цепи есть реакция на ток, поэтому стрелку напряжения принято размечать параллельно элементу и всегда против ранее размеченной стрелки тока. По закону сохранения энергии количество вырабатываемой в цепи энергии всегда равно количеству энергии потребляемой цепью. Следует
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
128
всегда помнить, при составлении баланса энергии в цепи, что не всякий источник энергии, действующий в цепи является генератором, а именно:
I
+ Е
Когда действительный ток через источник совпадает по направлению с ЭДС источника, то этот источник вырабатывает энергию, то есть является генератором.
I
+ Е
Когда действительный ток через источник протекает навстречу ЭДС источника, то этот источник потребляет энергию, то есть является нагрузкой (пример: зарядка аккумулятора).
Тогда: PГ P1 E1 I - мощность генерируемая в цепи.
PH RO1I 2 RI 2 RO 2 I E2 I - потребляемая энергия. Таким образом PГ РН 0 . (3.2) Законы Кирхгофа являются основными расчетными законами электротехники. Закон Ома частный случай законов Кирхгофа. Сложная цепь состоит из узлов и ветвей, то есть из 2-х элементов, поэтому и законов Кирхгофа два. Первый закон Кирхгофа управляет узлами, а второй - ветвями (контурами). Первый закон Кирхгофа гласит: в любом узле сложной цепи алгебраическая сумма токов равна нулю. in I i 0 , (3.3) i 1 A где i - количество токов связанных с рассматриваемым узлом; А - обозначение рассматриваемого узла. Первый закон основан на принципе невозможности накопления электрического заряда в одной точке цепи. Принято токи, притекающие к узлам цепи, считать положительными и брать со знаком плюс, а токи, оттекающие от узлов, считать отрицательными и брать со знаком минус. Число независимых уравнений, составляемых по первому закону Кирхгофа, равно числу независимых узлов в сложной цепи и равно общему числу узлов в цепи без одного. Число независимых узлов = n 1 , где n - общее число узлов сложной цепи. Второй закон Кирхгофа гласит: в любом контуре сложной цепи алгебраическая сумма ЭДС и напряжений, действующих в этом контуре равна нулю.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
129
i n
k m
Ei U k i 1
0,
(3.4)
k 1
где i – количество источников ЭДС в рассматриваемом контуре; k – количество напряжений входящих в данный контур. Данная формулировка справедлива, если стрелки напряжений на схеме цепи расставлены против стрелок токов. Второй закон Кирхгофа записывается только для независимых контуров. Независимыми контурами сложной цепи называются такие, которые отличаются друг от друга хотя бы одним элементом цепи не использованным в ранее намеченных контурах. Число уравнений по 2-му закону Кирхгофа = q n 1 , где q - общее число ветвей всей цепи. При обходе контура ЭДС и напряжения, совпадающие с направлением обхода, берутся со знаком плюс, а, встречные - со знаком минус. В зависимости от конфигурации и условий заданной цепи применяются для расчета цепи различные методы. Однако все методы расчета основаны на законах Кирхгофа. Во всех случаях, после составления системы уравнений следует решить полученную систему. Рассмотрим, как можно использовать для данной цели программную среду MATLAB. 3.1.2 Расчет цепей постоянного тока в системе MATLAB 3.1.2.1 Элементарные средства решения систем линейных уравнений Решение систем линейных уравнений (СЛУ) относится к самой массовой области применения матричных методов, для которых программа MATLAB приспособлена наилучшим образом. Как известно, обычная СЛУ имеет вид: а11X1, а12,X2..., а1nXn=b1.
(3.5)
Здесь а11, а, 2,..., апп - коэффициенты, образующие матрицу А, которые могут иметь действительные или комплексные значения, x1, х2,..., хп неизвестные, образующие вектор X, и b1, b2,..., bп - свободные члены (действительные или комплексные), образующие вектор В. Эта система может быть представлена в матричном виде как АХ=В, где А - матрица коэффициентов уравнений, X - искомый вектор неизвестных и В - вектор свободных членов. В зависимости от вида матрицы А и ее характерных особенностей MATLAB позволяет реализовать различные методы решения. Если А - матрица размера пхп, а В - вектор-столбец с п компонентами или матрица с несколькими подобными столбцами, тогда Х=А\В - решение уравнения АХ=В, которое находится хорошо известным методом исключения Гаусса.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
130
3.1.2.2 Пример расчета цепи постоянного тока Пример 1. Исходные данные к расчету Дано: Е1=200 В, Е3=50 В, R1=100 Ом, R2=100 Ом, R3=150 Ом. Рисунок 3.1 – Расчетная схема цепи постоянного тока Как и другие примеры расчета электрических цепей, он основан на решении системы линейных алгебраических уравнений. В данном случае, уравнения составляются по методу законов Кирхгофа, рисунок 3.1. Решение Система уравнений, составленная по законам Кирхгофа, будет:
I1 I 2 I 3 0
R1 I 1 R 2 I 2 0 I 3 E1 . R1 I 1 0 I 2 R3 I 3 E1 E 3
(3.6)
Для решения системы уравнений (3.6) составляем матрицу из коэффициентов при неизвестных токах и свободных членов, стоящих в правой части уравнений. Условием правильного решения, является одинаковая размерность данных матриц, поэтому, столбец свободных членов, дополняем нулями, для равенства размерностей. Исходные данные и система коэффициентов для решения линейной системы алгебраических уравнений будут выглядеть так: % Исходные данные R1=100; R2=100; R3=150; E1=200; E3=50; % Матрицы коэффициентов уравнений A=[1 -1 -1; R1 R2 0; R1 0 R3]; B=[0 0 0; E1 0 0; E1-E3 0 0]; % Решение
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
131
I=A\B U1=R1*I(1,1) U2=R2*I(1,2) U3=R3*I(1,3)
В результате решения получаем матрицу токов, первый столбец которой представляет искомые токи, а остальные элементы нули и столбец напряжений: I = 1.125 0.875 0.25
0 0 0
0 0 0
U1 = 137.5 U2 = 62.5 U3 = 112.5
Выполним проверку решения на баланс мощности: % Мощность генератора Рg (Вт): Pg=I(1,1)*E1-I(3,1)*E3 Pg = 212.5 % Мощность нагрузки Рn (Вт): Pn=I(1,1)^2*R1+I(2,1)^2*R2+I(3,1)^2*R3 Pn = 212.5
Видим, что Pg=Pn, следовательно, расчет выполнен, верно. 3.2 Цепи переменного однофазного синусоидального тока 3.2.1 Основные положения и определения Теория переменных токов изучает электрические цепи, в которых токи и напряжения зависят и от величин сопротивлений и от времени. Синусоидальным током называется такой ток, величина и направление которого изменяется в зависимости от времени по закону синуса. Время Т, в течение которого синусоида претерпевает полный цикл своего изменения называется периодом, рисунок 3.2. Размерность периода - Т сек . Число периодов в секунду опреде1 ляет частоту переменного тока - f . T 1 Частота измеряется в герцах - f Герц Гц . За один сек герц принимается частота тока в один период в одну секунду. Мгновенное значение переменного тока можно записать в форме: i I m sin( t ) , (3.7)
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
132
где I m - амплитуда синусоиды, амплитудой называют наибольшее мгновенное Im значение; - угловая частота в рад/сек; t t - время в сек; - начальная фаза или фаза включения. 0 Она показывает, какое мгновенное значение синусоидальной величины имеет T место в момент включения; ( t ) - аргумент синусоиды. Таким Рисунок 3.1 - Синусоидальный образом, синусоида выражается через ток амплитуду и аргумент. Действующим значением переменного тока называется такой постоянный ток, который на том же сопротивлении и за то же время выделяет столько же тепла, что и данный переменный ток. Электрические машины, аппараты, измерительные приборы работают на действующих значениях Для синусоидального переменного тока действующие значения тока (I) и напряжения (U) будут такими: I U (3.8) I m 0,707 I m ; U m 0,707 U m . 2 2 Средним значением переменного тока I cp или напряжения U cp наi
зывается такой переменный ток, произведение которого на интервал времени, равен интегралу данного переменного тока за тот же интервал времени. Для синусоидальной формы тока и напряжения средние значения будут таковы: 2I 2E I cp m 0,637 I m ; U cp m 0,637 U m . (3.9) Стрелки в цепях переменного тока размечаются и в цепях постоянного тока. В цепях, работающих на переменном токе, приходится осуществлять математические действия над синусоидальными величинами. Для этого имеется ряд способов, среди которых наиболее употребительный символический способ. Он основан на замене геометрического сложения векторов, сложением алгебраическим комплексных чисел, изображающих эти вектора. В системе MATLAB используется алгебраическая форма записи комплексных чисел:
c с a jb ,
(3.10)
где c - комплексное число. Оно обозначается точкой над символом, или подчеркиванием с;
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
133
a - действительная часть комплексного числа; jb - мнимая часть комплексного числа. Величина j - называется мнимой единицей или оператором поворота на 90 в положительную сторону. Все существующие электрические цепи, состоят из различных сочетаний четырех основных элементов: активного сопротивления R , рисунок 3.3,а; индуктивности L (катушка), рисунок 3.3,б; емкости С (конденсатор), рисунок 3.3,в; усилительно-преобразовательный элемент (диод, транзистор и т.п.). Первые три элемента в приведенном списке, называемые так же пассивными элементами цепи.
а
б
в
Рисунок 3.3 – Идеальное активное сопротивление Полной цепью переменного тока называется такая цепь, в которой активный, индуктивный и емкостной элементы соединены друг с другом последовательно. Часто такие цепи называются - цепями RLC . Если на входе цепи действует синусоидальное напряжение u U m sin t , и параметры цепи R , L и C известны, то, амплитудное I m , действующее I и мгновенное i значения тока и сдвиг фаз - , между входными током и напряжением по закону Ома равны: Um U Im , I , (3.11) 2 2 1 1 R 2 L R 2 L C C i I m sin( t ) . (3.12) Здесь , сдвиг по фазе между входным током и напряжением: 1 L C arctg x L xC arctg X , arctg (3.13) R R R где x L L 2fL - сопротивление катушки на переменном токе, оно называется индуктивным реактивным сопротивлением; 1 1 xC - сопротивление конденсатора, оно называется емкостным C 2fC реактивным сопротивлением;
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
134
1 1 X x L xC L 2fL - общее реактивное сопротивление, C 2fC полученное для случая последовательного соединения катушки и конденсатора. Полное сопротивление цепи Z : 1 2 2 2 2 2 R (x x ) R X . L C C Тогда ток в цепи будет равен: U U U U I . 2 R2 X 2 Z R 2 x L xC 2 1 2 R L C Z R 2 L
(3.14)
(3.15)
3.2.2 Примеры расчетов цепей однофазного переменного синусоидального тока Пример 2. Решение цепи переменного тока методом законов Кирхгофа, рисунок 2.4. Здесь используется возможность программы MATLAB работать с комплексными числами. Исходные данные к расчету R1
XL1 R2 XL3
E XC2
E=100 В, R1=20 Ом, XL1=10j Ом, R2=15 Ом, XC2=-10j Ом, XL3=20j Ом
Рисунок 3.4 – Схема цепи Решение Первым шагом расчета, определяем комплексные сопротивления, в ветвях цепи. Они изображены на рисунке 3.5. Затем расставляем на схеме стрелки токов и напряжений. Стрелки токов рисуем на проводниках цепи, а стрелки напряжений изображаем рядом с соответствующими сопротивлениями ветвей. Направление токов, можно выбирать произвольно, но в цепи с одним источником, их можно сразу нарисовать в правильном направлении. Стрелки напряжений должны быть направлены против стрелок токов. Расчетная схема цепи изображена на рисунке 3.6.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
135
Z1=10+j20
Z1
I1 I2
U1 E1=100
Z2=15-j10
Z3=j20
E1
Z2
Z3 U2
Рисунок 3.5 – Цепь с комплексными сопротивлениями в ветвях
I3
U3
Рисунок 3.6 – Расчетная схема цепи
Система уравнений, составленная по законам Кирхгофа, будет такова: I1 I2 I3 0 Z 1 I1 Z 2 I2 0 I3 E1
(3.16)
0 I1 Z 2 I2 Z 3 I3 0
Для решения системы уравнений (3.16), как и ранее составляем матрицу из коэффициентов при неизвестных токах и свободных членов, стоящих в правой части уравнений. Последнюю матрицу, дополняем нулями, для равенства размерностей. Поскольку MATLAB не поддерживает надстрочные индексы, комплексы сопротивлений Z i будем записывать как Zi, а токи Ii , как Ii. Модули полных сопротивлений и токов будем записывать, как abs(Zi) или abs(Ii), соответственно. При расчетах мощности в цепях переменного тока необходимо пользоваться сопряженными значениями величин. Для получения сопряженного значения используется команда conj(X), которая возвращает сопряженное значение числа Х. Однако, вместо данной команды можно использовать и знак ('), который вводится после числа, например, X'. Вывод результатов решения, в том виде, который показан в Примере 1, неудобен, так, как лишние нули в матрице решения затрудняют восприятие и занимают дополнительное место на листе. Для подавления вывода лишних нулей после команды I=(A\B); ставим точку с запятой (;), которая подавляет вывод всей матрицы с решением задачи и в конец программы вводим команды: k=1:1:3; I=I(k,1)
При этом, k прибегает значения от 1 до 3 с шагом 1 и выводятся соответствующие строки первого столбца матрицы решений. Эти команды позволяют выводить только первый столбец матрицы. Исходные данные и система коэффициентов для решения линейной системы алгебраических уравнений (3.16) будут выглядеть таким образом: % Ввод исходных данных E=100;
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
136
Z1=10+20j; Z2=15-10j; Z3=20; % Матрица коэффициентов уравнений A=[1 -1 -1; Z1 Z2 0; 0 Z2 -Z3]; B=[0 0 0 E 0 0 0 0 0]; % Решение I=(A\B); k=1:1:3; I=I(k,1); format short g; I = 2.9178 2.5496i 1.9263 0.90652i 0.9915 1.6431i
Выполним проверку решения на баланс мощности. % Мощность генератора Sg: Sg=I(1,1)'*100 Sg = 291.78 + 254.96i % Мощность нагрузки Sn: Sn=abs(I(1,1))^2*Z1+abs(I(2,1))^2*Z2+abs(I(3,1))^2*Z3 Sn = 291.78 + 254.96i
Видим, что Sg=Sn, следовательно, расчет выполнен, верно. Расчет подобной цепи можно выполнить и методом линейных преобразований, последовательно упрощая схему, а затем развертывая ее. Пример 3. Расчет цепи переменного тока, заданной в Примере 2, методом линейных преобразований. Схема преобразований показана на рисунке 3.7.
Рисунок 3.7 – Порядок преобразований схемы Порядок решения задачи 1. Определяем сопротивление параллельных ветвей Z 1 и Z 2 . Z 2 Z 3 Z 23 . Z2 Z3
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
137
2. Находим входное сопротивление Z 1 Z 23 . 3. Определяем входной ток. E1 I . Z 1 Z 23 4. Находим напряжение на параллельных ветвях U 2 U 3 . U 2 U 3 I Z 23 . 5. Определяем токи I2 и I3 . I2 U 2 / Z 2 , I3 U 2 / Z 3 . 6. Проверяем токи на баланс по первому закону Кирхгофа. I1 I2 I3 0 . 7. Проверяем расчет на баланс мощности. 2 2 2 Sg E1 I1 , Sn I1 Z 1 I2 Z 2 I3 Z 3 ,
Sg Sn 0 . Программа для решения такой задачи будет следующая: % Исходные данные Z1=20+10j; Z2=15-10j; Z3=20j; E=100; % РЕШЕНИЕ % Определение сопротивления параллельных ветвей Z2 и Z3. Z23=Z2*Z3/(Z2+Z3); % Токи в ветвях I1=E/(Z1+Z23) I2=I1*Z23/Z2 I3=I1*Z23/Z3 % Напряжения на элементах U1=I1*Z1 U2=E-U1 U3=U2 % Баланс токов I0=I1-I2-I3 % Вывод токов и напряжений I1 = 2.9178 2.5496i I2 = 1.9263 0.90652i I3 = 0.9915 1.6431i U1 = 80.17 + 32.861i U2 = 19.83 32.861i U3 =
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
138
19.83 32.861i I0 = -3.3307e-016 +2.2204e-016i
Выполним проверку решения на баланс мощности. % Баланс мощности % Мощность генератора Sg: Sg=I1'*E Sg = 291.78 + 254.96i % Мощность нагрузки Sn: Sn=abs(I1)^2*Z1+abs(I2)^2*Z2+abs(I3)^2*Z3 Sn = 291.78 + 254.96i
Как и следовало ожидать, значения токов и мощностей получились такими же, как и ранее. Но в более сложных цепях, с несколькими источниками или с большим количеством ветвей, данный метод не применим. Рассмотрим решение более сложной цепи переменного тока с двумя источниками. Пример 4. Решение цепи переменного тока методом законов Кирхгофа, рисунок 3.8. Здесь иллюстрируется применение программы к более сложным цепям переменного тока. Исходные данные к расчету R1
XL1
XC2
R3
XL4
E3
E1 R5
R6
Рисунок 3.8 – Схема цепи
E1=100 В; E3=50 В; R1=20 Ом XL1=10j Ом; XC2=-20 Омj; R3=10 Ом; XL4=15j Ом; R5=5 Ом; R6=20 ом;
Решение Первым шагом расчета, определяем комплексные сопротивления, в ветвях цепи. Они изображены на рисунке 3.9. Затем расставляем на схеме стрелки токов и напряжений. Стрелки токов рисуем непосредственно на проводниках цепи, а стрелки напряжений изображаем рядом с соответствующими сопротивлениями ветвей. Направление токов, можно выбирать произвольно, но стрелки напряжений должны быть направлены против стрелок токов. Расчетная схема цепи изображена на рисунке 3.10.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
139
Рисунок 3.9 – Цепь с комплексными сопротивлениями в ветвях
Рисунок 3.10 – Расчетная схема цепи
Система уравнений, составленная по законам Кирхгофа, будет такова:
I1 I2 I3 0 I4 0 I5 0 I6 0 0 I1 I2 0 I3 I4 I5 0 I6 0
0 I1 0 I2 I3 I4 0 I5 I6 0 Z 1 I1 Z 2 I 2 0 I 3 0 I 4 Z 5 I 5 0 I 3 E1 0 I1 Z 2 I2 Z 3 I3 Z 4 I4 0 I5 0 I3 E 3 0 I1 0 I2 0 I3 Z 4 I4 Z 5 I5 Z 6 I3 0
(3.17)
Для решения системы уравнений (3.17), как и ранее составляем матрицу из коэффициентов при неизвестных токах и свободных членов, стоящих в правой части уравнений. Последнюю матрицу, дополняем нулями, для равенства размерностей. Исходные данные и система коэффициентов для решения линейной системы алгебраических уравнений будут таковы: % Ввод исходных данных E1=200; E3=50; Z1=20+10j; Z2=-20j; Z3=10; Z4=15j; Z5=5; Z6=20; % Матрица коэффициентов A=[Z1 Z2 0 0 Z5 0; 0 Z2 -Z3 Z4 0 0; 0 0 0 -Z4 Z5 -Z6; 1 -1 -1 0 0 0 ; 0 1 0 -1 -1 0; 0 0 1 1 0 -1]; B=[E1 0 0 0 0 0; E3 0 0 0 0 0;
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
140
0 0 0 0 0 0; 0 0 0 0 0 0; 0 0 0 0 0 0; 0 0 0 0 0 0]; I=(A\B); format short g; k=1:1:6; I=I(k,1) I = 4.6377 + 0.98568i 3.8212 + 5.4325i 0.81646 4.4468i 2.1305 + 3.3656i 1.6908 + 2.0668i 2.9469 1.0811i
Выполним проверку на баланс мощности: % Мощность генератора Sg: Sg=I(1,1)'*E1-I(3,1)'*E3 Sg = 886.72 419.47i % Мощность нагрузки Sn: Sn=abs(I(1,1))^2*Z1+abs(I(2,1))^2*Z2+abs(I(3,1))^2*Z3+abs (I(4,1))^2*Z4+abs(I(5,1))^2*Z5+abs(I(6,1))^2*20 Sn = 886.72 419.47i
Видим, что Sg=Sn, следовательно, расчет выполнен, верно. В программах Примеров 3 и 4 перед выводом решения введены команды: format short g. Они устанавливают формат выводимых чисел с четырьмя знаками после запятой и в десятичной форме. Как видим, алгоритм решения таких задач достаточно прост. Вначале, тем или иным методом, составляются системы уравнений описывающие электрическую цепь. Затем вводятся исходные значения параметров, составляется матрица коэффициентов и запускается счет. 3.3 Расчет резонансных цепей 3.3.1 Общие положения и определения Режим резонанса может наступать лишь тогда, когда частота внешних воздействий на систему равна собственной частоте системы, рисунок 3.11. 2 f 0 2 f 0 , (3.18) 0 где , f - угловая и временная частота внешних воздействий; Рисунок 2.11 - Возникновение 0 , f 0 - угловая и временная собственная резонанса частота системы.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
141
Собственной частотой системы называется число переливаний энергии внутри системы из одной формы в другую за одну секунду. В электрических цепях энергия может сосредотачиваться в разных формах в двух элементах цепи: индуктивном (магнитное поле) и в емкостном (электрическое поле). Таким образом, электрическая цепь обладает собственной частотой 0 , если в ней имеется хотя бы одна катушка и один конденсатор. Катушка и конденсатор могут соединяться друг с другом только двумя способами: последовательно и параллельно. В связи с этим имеется лишь два вида электрических резонансов: резонанс напряжений (при их последовательном соединении) и резонанс токов (при параллельном). Электрические резонансы сопровождаются резким увеличением напряжения или тока, т.е. являются усилительными режимами. Любая пассивная электрическая цепь, находящаяся в режиме резонанса, характеризуется следующими особенностями: 1) входное реактивное сопротивление или входная реактивная проводимость цепи равны нулю X 0, b 0; (3.19) вх
вх
входное напряжение и ток совпадают по фазе U вх Iвх вх 0 ; 2) входная мощность чисто активная S Pвх jQвх Pвх j 0 Pвх .
(3.20) (3.21)
Рассмотрим теперь каждый из резонансных режимов в отдельности. 3.3.2 Резонанс напряжений Резонанс напряжений возникает при последовательном соединении индуктивности и емкости. Схема резонансной цепи приведена на рисунке 3.12. На основании общего положения о резонансах (3.19), имеем выражение для собственной (резонансной) частоты: 1 1 X вх x L xC 0 L 0 ; 02 LC 1 откуда 0 . (3.22) 0C LC Определим входное сопротивление цепи при режиме резонанса.
Z p R 2 ( x L xC ) 2 R . (3.23) При резонансе напряжений сопротивление цепи для резонансной частоты является чисто активным и минимально по величине. Ток при резонансе найдется по выражению: U U IP max . (3.24) ZP R
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
142
При резонансе напряжений ток в цепи максимальный и имеет активный характер. Действительно, x xC 0 p arctg L arctg 0 , U вх IP вх 0 . (3.25) R R При резонансе напряжений входное напряжение и ток совпадают по фазе. S вх Pвх jQвх U вх I p cos p jU вх I p sin p 2 (3.26) U вх U вх I p cos 0 jU вх I p sin 0 Pвх . R При резонансе напряжений цепь потребляет от источника, через входные клеммы только активную энергию. Напряжение на активном сопротивлении равно напряжению источника энергии, питающему цепь. Напряжения на реактивных элементах будут таковы: (3.27) U L U C x L I p xC I p . Сопротивление реактивных элементов при резонансе будет: 1 L x L xC 0 L . 0C C
(3.28)
Величина - называется волновым сопротивлением контура. Определим отношение U L или U C к U , которая называется добротностью контура. U L U C x L I p xC I p I p Q. (3.29) U U RI p RI p RI p R Добротность контура Q показывает во сколько раз при резонансе напряжение на индуктивности или емкости больше, чем напряжение, приложенное к цепи. Из приведенных выше выражений следует, что основная особенность резонанса напряжений состоит в том, что напряжения на катушке и на конденсаторе по абсолютной величине равны друг другу и могут значительно превышать напряжение источника, питающего цепь. При изучении таких цепей студенты обычно выполняют лабораторные работы, на которых исследуют поведение такой цепи и экспериментально определяют частотные характеристики (зависимости тока и напряжений от частоты) резонансной цепи. Но не меньший интерес и пользу может принести расчет их на компьютере, что позволит сравнить расчетные и опытные кривые.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
143
Рисунок 3.12 – Схема цепи в которой возможен резонанс напряжений Пример 5. Расчет частотных характеристик цепи с резонансом напряжений. % Программа для исследования резонанса напряжений % Задание вектора угловой частоты w=50:5:1000; % Задание параметров цепи U=10; R=300; L=1; C=0.000003; % РАСЧЕТ % Вычисление модуля полного входного сопротивления цепи Z=abs(R+(w.*L-1./(w.*C))*j); % Определение тока, напряжения на L и С, % коэффициента мощности cosf I=U./Z; UL=I.*w.*L; UC=I./(w.*C); cosf=R./Z; % --------------------------------------------% Построение графика полного сопротивления цепи subplot(2,2,1), plot(w,Z) % Установка русского шрифта и его размера set(gca,'FontName','Arial Unicode MS','FontSize',10) % Название осей xlabel('Угловая частота - w, рад/с') ylabel('Полное сопротивление - Z, Ом') % Название графика title('Зависимость Z=f(w)') % Включение отображения сетки grid on % --------------------------------------------% Построение графика входного тока subplot(2,2,2), plot(w,I) % Установка русского шрифта и его размера set(gca,'FontName','Arial Unicode MS','FontSize',10) % Название осей xlabel('Угловая частота - w, рад/с')
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
144
ylabel('Входной ток - I, А') % введение название графика title('Зависимость I=f(w)') % Включение отображения сетки grid on % --------------------------------------------% Построение графика напряжений на L и C subplot(2,2,3), plot(w,UL,w,UC) % Установка русского шрифта и его размера set(gca,'FontName','Arial Unicode MS','FontSize',10) % Название осей xlabel('Угловая частота - w, рад/с') ylabel('Напряжения UL и UC, В') % введение название графика title('Зависимость Ul=f(w) и UC=f(w)') % Включение отображения сетки grid on % ---------------------------------------------% Построение графика коэффициента мощности subplot(2,2,4), plot(w,cosf) % Установка русского шрифта и его размера set(gca,'FontName','Arial Unicode MS','FontSize',10) % Название осей xlabel('Угловая частота - w, рад/с') ylabel('Коэффициент мощности') % введение название графика title('Зависимость Cosf=f(w)') % Включение отображения сетки grid on
Построенные графики приведены на рисунке 3.13. Каждый график выведен в свое окно сформированное командой subplot(X,Y,N).Число X - определяет количество подокон организуемое в окне графика по горизонтали, Y – число подокон по вертикали, а число N номер текущего окна в которое направляется вывод графика. Сам график строится командой plot(w,f(w)). Переменная w – вектор входных значений, который откладывается по горизонтали графика, в данном случае угловая частота, а f(w) – функция от входного вектора, которая откладывается в окне графика по вертикали. График строится в диапазоне заданном вектором w. По вертикальной оси масштаб выбирается автоматически в зависимости от полученных значений функции f(w). Графики выполнены утолщенной линией, причем графики напряжений обозначены сплошной и пунктирной линиями. На график напряжений нанесена legend, то есть примечание, описывающие кривые. Такое форматирование возможно программным способом. Но в данном случае, мы воспользовались возможностью форматировать графики из его собственного меню, рисунок 2.14.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
145
Рисунок 3.13 – Частотные характеристики при резонансе напряжений
Рисунок 3.14 – Доступ к окну форматирования графика командами Edit/Current Object Properties
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
146
Команда меню, Edit/Current Object Properties открывает окно форматирования графика, показанное на рисунке 3.15.
Рисунок 3.15 –Окно форматирование графика Property Editor
Рисунок 3.16 – Отображение примечания на графике
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
147
В окне Edit Properties for выбирается объект, подлежащий форматированию. Это может быть line, axis или другие доступные объекты. Далее в разделе Line Properties устанавливаются стиль, ширина и цвет линии. Если необходимо, в следующем разделе окна Marker Properties устанавливаются стиль, размер и цвета маркера линии. Если на график необходимо ввести примечание, то следует, установив курсор на поле соответствующего графика, щелкнуть правой кнопкой мыши. При этом открывается дополнительное меню форматирования, где надо выбрать пункт Snow legend, показанное на рисунке 3.16. На графике появится примечание, текст которого можно менять, просто щелкнув на его поле. Пункт меню Properties, выводит окно форматирования примечания, показанное на рисунке 3.17.
Рисунок 3.17 – Форматирование примечания 3.3.3 Резонанс токов Резонанс при параллельном соединении индуктивности и емкости называется резонансом токов. Схема такой цепи показана на рисунке 3.18
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
148
I1
R1
L
I2
R2
C
I U
Рисунок 3.18 – Цепь в которой возможен резонанс токов Полные сопротивления ветвей схемы в комплексной форме можно записать так: 1 Z1 R1 jx1 R1 jL ; Z 2 R2 jx2 R2 j . (3.30) C Полная входная проводимость цепи при параллельном соединении ветвей является суммой проводимостей отдельных ветвей Y Y1 Y2 g jb ( g1 g 2 ) j (b2 b1 ) или
R x R x Y g jb 2 1 2 2 2 2 j 2 2 2 2 1 2 . (3.31) R1 x1 R2 x2 R2 x2 R1 x1 Найдем собственную частоту цепи. На основании общего положения о резонансах (3.19), имеем x x b 2 2 2 2 1 2 0 , откуда после ряда преобразований следуR2 x2 R1 x1 ет: L R12 2 R12 1 1 C 0 , (3.32) LC L R 2 LC 2 R 2 2 2 C где L - волновое сопротивление цепи. C В момент резонанса входная проводимость согласно (3.16) будет R YP 2 . (3.33) 2 Соответственно входное сопротивление будет 1 2 ZP . (3.34) YP 2 R Входной ток всей цепи определяется следующим образом:
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
149
U 2R U2 2 . (3.35) ZP Токи, протекающие в ветвях схемы в момент резонанса, будут равI P UYP
ны:
ILp UY1 p U ( g1 jb1 ) jUb1 ; ICp UY2 p U ( g 2 jb2 ) jUb2 . В выражении (3.37) реактивные проводимости равны: x 1 1 x 1 1 b1 2 1 2 ; b2 2 2 2 . R1 x1 x1 p R2 x2 x2 p Выясним, как относятся токи ветвей к входному току. ILp ICp U 2 Q, I I U 2 R 2 R p
(3.36) (3.37)
(3.38)
p
где Q - добротность контура. При резонансе токов, токи в ветвях равны по абсолютной величине, противоположны по фазе и могут во много раз превышать входной ток цепи. Определим фазовый сдвиг на входе цепи. b 0 P arctg P arctg 0 , cos cos 0 1 max . (3.39) P gP gP Коэффициент мощности на входе цепи при резонансе токов максимален и равен единице. Следовательно, цепь работает в самом экономичном режиме. Входная мощность цепи при резонансе будет 2R S P PP UI P U 2 . (3.40) 2 Видим, что цепь потребляет от источника только активную мощность. Пример 6. Расчет частотных характеристик цепи с резонансом токов. Рассмотрим цепь изображенную на рисунке 3.18. Зададим ее параметры и рассчитаем частотные характеристики. Графики полученных результатов приведены на рисунке 3.19. Здесь для вывода графика в документ использована опция Copy Figure, рисунок 3.14. % Программа для исследования резонанса токов % Задание вектора угловой частоты w=50:5:1000; % Задание параметров цепи U=10;
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
150
R1=100; R2=100; L=1; C=0.000003; % Вычисление модуля полного входного сопротивления цепи ZL=R1+w.*L; ZC=(R2+1./(w.*C))*j; ZP=ZL.*ZC./(ZL+ZC); Z=abs(ZP); % Определение токов, и коэффициента мощности IL=U./ZL; IC=U./ZC; I=IL+IC; ILd=abs(IL); ICd=abs(IC); Id=abs(I); cosf=real(ZP)./Z; % ----------------------------------------------% Построение графика полного сопротивления цепи subplot(2,2,1), plot(w,Z) % Установка русского шрифта и его размера set(gca,'FontName','Arial Unicode MS','FontSize',10) % Название осей xlabel('Угловая частота - w, рад/с') ylabel('Полное сопротивление - Z, Ом') % Название графика title('Зависимость Z=f(w)') % Включение отображения сетки grid on % ----------------------------------------------% Построение графика входного тока subplot(2,2,2), plot(w,Id) % Установка русского шрифта и его размера set(gca,'FontName','Arial Unicode MS','FontSize',10) % Название осей xlabel('Угловая частота - w, рад/с') ylabel('Входной ток - I, А') % введение название графика title('Зависимость Id=f(w)') % Включение отображения сетки grid on % ------------------------------------------------% Построение графика токов в ветвях с L и C subplot(2,2,3), plot(w,ILd,w,ICd) % Установка русского шрифта и его размера set(gca,'FontName','Arial Unicode MS','FontSize',10) % Название осей xlabel('Угловая частота - w, рад/с') ylabel('Токи в ветвях с L и C, А') % введение название графика
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
151
title('Зависимость lLd=f(w) и ICd=f(w)') % Включение отображения сетки grid on % --------------------------------------------------% Построение графика коэффициента мощности subplot(2,2,4), plot(w,cosf) % Установка русского шрифта и его размера set(gca,'FontName','Arial Unicode MS','FontSize',10) % Название осей xlabel('Угловая частота - w, рад/с') ylabel('Коэффициент мощности') % введение название графика title('Зависимость Cosf=f(w)') % Включение отображения сетки grid on Зависимость Id=f(w) 0.07 Входной ток - I, А
Полное сопротивление - Z, Ом
Зависимость Z=f(w) 500
400
300
200
100 0
200 400 600 800 Угловая частота - w, рад/с
1000
0.06 0.05 0.04 0.03 0.02 0
Зависимость lLd=f(w) и ICd=f(w) IL IC
Коэффициент мощности
Токи в ветвях с L и C, А
1
0.06
0.04
0.02
0
1000
Зависимость Cosf=f(w)
0.08
0
200 400 600 800 Угловая частота - w, рад/с
200 400 600 800 Угловая частота - w, рад/с
1000
0.8
0.6
0.4
0.2 0
200 400 600 800 Угловая частота - w, рад/с
1000
Рисунок 3.19 – Частотные характеристики резонанса токов На график частотных характеристик токов в ветвях цепи, нанесено примечание (legend). Для его формирования, как и ранее, использовано окно, показанное на рисунке 3.17.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
152
Использование возможности копирования окна с графикой в документ, позволяет легко связывать программу MATLAB с офисными приложениями, например, с редактором Word. 3.4 Расчет трехфазных цепей 3.4.1 Общие положения и определения Трехфазная цепь - это совокупность трех электрических цепей, в каждой из которых действует своя ЭДС, причем, все они одинаковы по величине и сдвинуты по фазе относительно друг друга на треть периода. Трехфазный генератор вырабатывает три ЭДС, которые записываются в комплексном виде следующим образом: E A E A ; (3.41) E E ( 0,5 j 0,866) ; B
A
EC E C ( 0,5 j 0,866) . Обмотки генератора и нагрузка могут соединяться двумя способами: в звезду и треугольник. 3.4.1.1 Соединение в звезду Для соединения потребителей Z A , Z B , Z C звездой (рисунок 3.20) три их конца – X1, Y1, Z1 соединяют в одну общую точку N1 – нейтральную точку. Начало фаз приемника А1, В1, С1 соединяют с началом обмоток генератора (А, В, С) проводами, называемыми линейными (АА1, ВВ1, СС1). Четвертый провод, соединяющий нейтральные точки генератора N и приемника N1, называется нейтральным. На схеме (рисунок 3.20) изображена четырехпроводная цепь, где показаны условно положительные направления, принятые для всех токов и напряжений трехфазной цепи. ЭДС между началом каждой фазы генератора и его нейтральной точки называется фазным ЭДС генератора Е А , Е В , Е С , а между началами фаз – линейными ЭДС генератора Е , Е , Е . A
B
C
Для приемника фазные напряжения определяются так же, как и для генератора. Если пренебречь сопротивлениями всех линейных проводов, то потенциалы точек «А» и «А1», «В» и «В1», «С» и «С1» будут равны, поэтому в четырехпроводной цепи фазные напряжения приемника и ЭДС генератора всегда равны (3.42) Е A U A1 , Е B U B1 , Е C U C1 .
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
153 IA
Е
А
IN
U CA
U А1
U АB
ZA
ZC
Е
Е
С
В
IB
IC
ZB
U C1 U B1
U BC
Рисунок 3.20 – Схема соединения потребителя звездой Соотношение между линейными и фазными напряжениями определяются в общем случае по второму закону Кирхгофа (в геометрической или комплексной форме): (3.43) U AB U A1-U B1; U BC U B1 U C1; U CA U C1 U A1 . В симметричной цепи при Z A Z B Z C и несимметричной, когда Z A Z B Z C при малых сопротивлениях линейных проводов существует связь между линейными и фазными напряжениями: UЛ 3 U . Ф
(3.44)
Ток бывает фазный и линейный: фазный – это ток в фазах генератора или приемника, линейный – это ток в линейных провода. В звезде участки фаз генератора, линии и фаз нагрузки соединены последовательно, поэтому Iл I . (3.45) ф В четырехпроводной цепи при отсутствии сопротивления в нулевом проводе токи могут быть найдены по закону Ома в комплексной форме U U U I A A ; IB B ; IC C . (3.46) ZA ZB ZC Угол сдвига фаз этих токов по отношению к соответствующим фазным напряжениям определяется характером нагрузки (активная, индуктивная, емкостная). Для симметричной нагрузки углы сдвига фаз обязательно равны между собой. Если применять второй закон Кирхгофа для узла N1 (рисунок 3.20), то можно определить вектор нейтрального тока
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
154 (3.47) IN 1 I A IB IC или IN IA IB IC . При симметричной нагрузке сумма (3.47) равна нулю. Отсюда следует вывод: при симметричной нагрузке ток в нейтральном проводе отсутствует, поэтому необходимость в нем отпадает. При несимметричной нагрузке с нейтральным проводом токи в фазах, различны, но за счет нейтрального провода напряжение на каждой фазе приемника с изменением нагрузки практически остается постоянным и равным фазному напряжению генератора. Значит, нейтральный провод обеспечивает симметрию фазных напряжений приемника при несимметричной нагрузке. Активная мощность в несимметричной цепи трехфазного тока определяется как сумма мощностей отдельных ее фаз и мощность рассеиваемая на нагрев нулевого провода P PФА РФВ РФС P или когда сопротив0 лением нулевого провода можно пренебречь, или цепь симметрична: P Е А I А cos А Е В I В cos В ЕС I С cosС , или
P U А I А cos А U В I В cos В U С I С cosС ,
(3.48)
где cos А cos В cosС 1 при чисто активной нагрузке, при чисто реактивной нагрузке cos А cos В cosС 0 , а в остальных случаях имеет промежуточное значение. В симметричной цепи трехфазного тока активная мощность может быть найдена из выражений: (3.49) Р 3U Л I Л cosФ , Q 3U Л I Л sin Ф . В случае, когда сопротивлениями в линейных и нейтральном проводах нельзя пренебрегать, расчет такой цепи может быть выполнен по любому известному методу, например, методу контурных токов. Пример 7. Расчет трехфазной цепи соединенной в звезду методом контурных токов. Расчетная схема цепи изображена на рисунке 3.21. Обозначения на схеме даны в соответствии с возможностью индексирования в MATLAB. Расчет сделан с учетом наличия некоторых сопротивлений в проводах линии и нейтральном проводе. В данном примере, для пояснения выводимых данных применена функция disp('ТЕКСТ'). Она позволяет в любом месте программы вывести на экран любой текст, введенный в нее и заключенный в кавычки. Данная функция может выводить только текстовые значения переменных, поэтому если необходимо вывести их числовое значение, то предварительно значение переменной следует преобразовать в текстовый формат. Это достигается применением функции num2str(Sg). Функции disp и num2str позволяют осуществить вывод рассчитанных значений переменных в удоб-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
155
ной для восприятия форме, в строчку, как показано далее. В начале программы применен оператор clc, который каждый раз при выполнении программы очищает окно текущей сессии от старых данных, что весьма удобно на практике. В конце программы, помещен оператор clear all, который очищает все переменные и рабочее пространство программы, высвобождая тем самым оперативную память.
Рисунок 3.21 – Расчетная схема трехфазной цепи при соединении генератора и нагрузки по схеме звезда/звезда %Программа для расчета 3-х фазной цепи звезда/звезда %Расчет выполнен методом контурных токов clc % Очистка окна сессии перед выводом результатов решения % Исходные данные E=220; Zla=5+5*j; % Полное сопротивление линейного провода АА1 Zlb=5+10*j; % Полное сопротивление линейного провода ВВ1 Zlc=5+15*j; % Полное сопротивление линейного провода СС1 Zo=2+5*j; % Полное сопротивление линейного провода ОО1 Za=50+15*j; % Полное сопротивление фазы А Zb=50+15*j; % Полное сопротивление фазы В Zc=50+15*j; % Полное сопротивление фазы С % РЕШЕНИЕ % Определяем фазные и линейные напряжения генератора Ea=E; Eb=E*(-0.5-0.866*j); Ec=E*(-0.5+0.866*j); Eab=Ea-Eb; Ebc=Eb-Ec; Eca=Ec-Ea; % Вводим матрицы коэффициентов уравнений по законам Кирхгофа A=[Zla+Za+Zo Zo Zo;
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
156
Zo Zlb+Zb+Zo Zo; Zo Zo Zlc+Zc+Zo]; B=[Ea 0 0; Eb 0 0; Ec 0 0]; I=(A\B); disp('Линейные токи выводятся в следующем порядке: Ia, Ib, Ic, А') k=1:1:3; I=I(k,1) disp('Ток в нулевом проводе, Io, А') Io=I(1,1)+I(2,1)+I(3,1) % Определяем фазные напряжения и потери в линии disp('Фазные напряжения: Ua, Ub, Uc и смещение нуля Uo, В') Ua=Za*I(1,1) Ub=Zb*I(2,1) Uc=Zc*I(3,1) Uo=Zo*Io disp('Действующие значения фазных напряжений: Ua, Ub, Uc и смещения нуля Uo, В') Uda=abs(Ua) Udb=abs(Ub) Udc=abs(Uc) Udo=abs(Uo) disp('Потери в линии UIa, UIb, UIc, В') Ula=Zla*I(1,1) Ulb=Zlb*I(2,1) Ulc=Zlc*I(3,1) %Мощность генератора Sg, ВА: Sg=I(1,1)'*Ea+I(2,1)'*Eb+I(3,1)'*Ec; %Мощность нагрузки Sn, ВА: Sn=abs(I(1,1))^2*(Zla+Za)+abs(I(2,1))^2*(Zlb+Zb)+abs(I(3, 1))^2*(Zlc+Zc)+abs(Io)^2*Zo; Sb=Sg-Sn; disp([' Мощность генератора, ВА Sg =',num2str(Sg)]) disp([' Мощность нагрузки, ВА Sn =',num2str(Sn)]) disp([' Баланс мощности, ВА Sb =',num2str(Sb)]) Id=[I(1,1) I(2,1) I(3,1) Io]; clear all
В результате выполнения программы имеем: Линейные токи выводятся в следующем порядке:
Ia, Ib, Ic,
А I = 3.5095 1.3145i -2.9873 2.1445i -0.11096 + 3.4861i Ток в нулевом проводе, Io, А Io = 0.41126 + 0.027081i
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
157
Фазные напряжения: Ua, Ub, Uc и смещение нуля Uo, В Ua = 195.19 13.085i Ub = -117.2 152.04i Uc = -57.84 + 172.64i Uo = 0.68711 + 2.1105i Действующие значения фазных напряжений: Ua, Ub, Uc и смещения нуля Uo, В Uda = 195.63 Udb = 191.96 Udc = 182.07 Udo = 2.2195 Потери в линии UIa, UIb, UIc, В Ula = 24.12 + 10.975i Ulb = 6.5088 40.595i Ulc = -52.847 + 15.766i Мощность генератора, ВА Sg =2185.6482+984.77636i Мощность нагрузки, ВА Sn =2185.6482+984.77636i Баланс мощности, ВА Sb =-4.5475e-013-4.5475e-013i
3.4.1.2 Соединение в треугольник Если три фазы приемника с фазными сопротивлениями Z A , Z B , Z C включить непосредственно между линейными проводами трехпроводной цепи, то получим соединение приемников треугольником (рисунок 3.22). Так как при соединении треугольником к концам каждой фазы потребителя приложено линейное напряжение, то линейные напряжения будут являться одновременно и фазными, т. е. UAB(л) = UAB(ф); UBC(л) = UBC(ф); UCA(л) = UCA(ф). (3.50) Если пренебречь сопротивлениями линейных проводов, то фазные напряжения приемника равны соответствующим линейным напряжениям источника питания, а они практически неизменны. (3.51) Е AВ U AВ , Е BС U BС , ЕCА U CА . Фазные и линейные токи не равны между собой, соотношениё между ними можно получить по первому закону Кирхгофа, записанному для узлов схемы геометрической форме
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
158
IA IAB ICA , IB IBC IAB , IC ICA IBC .
(3.52)
I A
I AВ Е CA
Е
Е АB
А
U CA
IСA
Е
С
Е
Е BC
В IC
U АB
ZC
ZA ZB
U BC
IBС
IB
Рисунок 3.22 - Схема соединение потребителей треугольником Из уравнений (3.52) следует, что любой из линейных токов равен геометрической разности токов тех двух фаз нагрузки, которые соединяются с данным линейным проводом. Независимо от характера нагрузки геометрическая сумма линейных токов в трехпроводной цепи равна нулю: (3.53) IA IB IC 0 . Если сопротивления фаз приемника известны, то пренебрегая сопротивлением линейных проводов, величину фазных токов определяют по закону Ома U U U I AB ; I BC ; I CA . (3.54) AB Z BC Z CA Z AB CA BC При симметричной нагрузке линейные и фазные токи равны по величине, причем (3.55) I Л 3 IФ . Активная и реактивная мощности определятся с учетом выражения (3.50) для симметричной цепи таким образом: P U АB I АB cos А U ВC I ВC cos В U СA I СA cos С ,
P U АB I АB sin А U ВC I ВC sin В U СA I СA sin С . (3.56) В случае, когда сопротивлениями в линейных проводах нельзя пренебрегать, расчет такой цепи может быть выполнен по любому известному методу, например, методу контурных токов. Пример 8. Расчет трехфазной цепи соединенной в треугольник методом контурных токов. Расчетная схема приведена на рисунке 3.23.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
159
% Программа расчета цепи трехфазного тока звезда/треугольник % методом контурных токов % Исходные данные clc E=220; Zla=5+5*j; Zlb=6-3*j; Zlc=7+5*j; Za=50+50*j; Zb=75+20*j; Zc=45+10*j; % РЕШЕНИЕ % Определяем фазные и линейные напряжения генератора Ea=E; Eb=E*(-0.5-0.866*j); Ec=E*(-0.5+0.866*j); Eab=Ea-Eb; Ebc=Eb-Ec; Eca=Ec-Ea; % Вводим матрицы коэффициентов уравнений по законам Кирхгофа A=[(Zla+Zlc+Zc) -Zlc -Zc; -Zlc (Zlb+Zb+Zlc) -Zb; Zc Zb -(Zc+Za+Zb)]; B=[(Ea-Ec) 0 0; (Ec-Eb) 0 0; 0 0 0]; I=(A\B); disp('Контурные токи выводятся в следующем порядке: I1, I2, I3, А') k=1:1:3; I=I(k,1) disp('Реальные токи будут равны, А:') Ia=I(1,1) Ib=-I(2,1) Ic=I(2,1)-I(1,1) Iab=I(3,1) Ibc=I(3,1)-I(2,1) Ica=I(3,1)-I(1,1) % Определяем фазные напряжения и потери в линии disp('Фазные напряжения: Ua, Ub, Uc, В') Ua=Za*Iab Ub=Zb*Ibc Uc=Zc*Ica disp('Действующие значения фазных напряжений: Ua, Ub, Uc, В') Uda=abs(Ua) Udb=abs(Ub) Udc=abs(Uc)
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
160
disp('Потери в линии UIa, UIb, UIc, В') Ula=Zla*Ia Ulb=Zlb*Ib Ulc=Zlc*Ic %Мощность генератора Sg: Sg=Ia'*Ea+Ib'*Eb+Ic'*Ec; %Мощность нагрузки Sn: Sn=abs(Iab)^2*Za+abs(Ibc)^2*Zb+abs(Ica)^2*Zc+abs(Ia)^2*Zl a+abs(Ib)^2*Zlb+abs(Ic)^2*Zlc; Sb=Sg-Sn; disp([' Мощность генератора, ВА Sg =',num2str(Sg)]) disp([' Мощность нагрузки, ВА Sn =',num2str(Sn)]) disp([' Баланс мощности, ВА Sb =',num2str(Sb)]) clear all
Рисунок 3.23 – Расчетная схема трехфазной цепи при соединении нагрузки в треугольник для метода контурных токов В результате выполнения программы имеем: Контурные токи выводятся в следующем порядке: I3, А I = 7.6485 4.8642i 5.2643 + 3.5032i 3.9671 0.53968i Реальные токи будут равны, А: Ia = 7.6485 4.8642i Ib = -5.2643 3.5032i Ic = -2.3842 + 8.3675i Iab = 3.9671 0.53968i
I1, I2,
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
161
Ibc = -1.2972 -
4.0429i
Ica = -3.6814 + 4.3245i Фазные напряжения: Ua, Ub, Uc, В Ua = 225.34 + 171.37i Ub = -16.431 329.16i Uc = -208.91 + 157.79i Действующие значения фазных напряжений: Ua, Ub, Uc, В Uda = 283.1 Udb = 329.57 Udc = 261.8 Потери в линии UIa, UIb, UIc, В Ula = 62.564 + 13.922i Ulb = -42.096 5.2264i Ulc = -58.527 + 46.651i Мощность генератора, ВА Sg =4785.6232+2153.9125i Мощность нагрузки, ВА Sn =4785.6232+2153.9125i Баланс мощности, ВА Sb =0-4.5475e-013i
Как видим, и в Примере 7 и в Примере 8 баланс мощности сошелся, значит, расчет выполнен, верно. 3.5 Расчет цепей несинусоидального тока 3.5.1 Общие положения и определения Цепями несинусоидального тока называют такие цепи, в которых действуют токи и напряжения по форме, отличные от синусоиды. Отклонение токов и напряжений от синусоидальной формы в силовых цепях может происходить по многим причинам, из главные: 1) несимметричная форма ЭДС генератора (ха счет формы полюсных наконечников, расположения проводов на роторе и статоре); 2) нелинейность нагрузки (цепи со стальными магнитопроводами, керамическими конденсаторами, электронными полупроводниковыми приборами и т.д.). Любая несинусоидальная периодическая функция f ( t ) может быть разложена в ряд Фурье вида:
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
162
f ( t ) A0 A1m sin( t 1 ) A2m sin( t 2 ) ... , k
f ( t )
Akm sin( k t k ) ,
(3.57)
k 0
. 2 В такой форме ряд Фурье называется разложением на гармоники. Коэффициенты ряда А0 и Akm могут быть определены: C 2 2 Akm Bkm Ckm и k arctg km , (3.58) Bkm
где при k 0, Akm A0 , а k 0
где
1 A0 2 Bkm
1
2
f ( t ) d ( t ) ; 0 2
f ( t ) sin k t d ( t ) ; 0 2
(3.59)
1 f ( t ) cos k t d ( t ) . 0 Если периодическая кривая симметрична относительно оси абсцисс, то постоянный член ряда А0 0 , и отсутствуют четные гармоники. Если функция симметрична относительно оси ординат, то начальные фазы всех гармоник равны нулю 1 2 3 ... 0 . Для расчета цепей несинусоидального тока цепь решается столько раз, сколько гармоник входит в исходный ряд Фурье. Затем, полученные решения объединяются. Поскольку электрические величины для различных гармоник имеют разную частоту, то складываться могут только мгновенные значения соответствующих токов и напряжений. Сам расчет цепи для отдельной гармоники совершенно аналогичен расчету цепи синусоидального переменного тока. Разложения в ряд Фурье не математическая абстракция, в реальных цепях гармоники могут быть выделены с помощью резонансных цепей. Выделение гармоник из входного сигнала может производиться и при его численной обработке. Пример 9. Определение гармоник сложного несинусоидального напряжения методом быстрого преобразования Фурье. 1. Создадим трехчастотный сигнал со средней частотой 200 Гц и соседними частотами 150 и 250 Гц и амплитудами 1 В, 0,4 В и 0,4 В соответственно. Программа для его формирования будет такова: Ckm
%Исходные данные clc t=0:0.0005:1;
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
163
x=sin(2*pi*200*t)+0.4*sin(2*pi*150*t)+0.4*sin(2*pi*250*t); plot(x(1:100)) % Установка русского шрифта и его размера set(gca,'FontName','Arial Unicode MS','FontSize',10) % введение название осей xlabel('Время, с') % введение название графика title('Трехчастотный сигнал') % Включение отображения сетки grid on clear all
Полученный сигнал изображен на рисунке 3.24. Т ре хч аст от ны й си гн ал 2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 0
20
40
60
80
100
В р е м я, с
Рисунок 3.24 – Трехчастотный сигнал Кривая на рисунке 3.24 строится в функции номера элемента вектора от 0 до 100. Более удобно, чтобы кривая являлось функцией времени. Соответствующий отрезок времени будет равен: 0 – 0,0005·100, т.е. 0 – 0,05 с. Поэтому, для получения шкалы по оси х в отметках времени, можно ввести свою шкалу в диапазоне от 0 до 0,05 с. 2. Применим к полученной кривой быстрое преобразование Фурье. Это действие осуществляется оператором fft(x,n) (Fast Fourier Transformation), где x – входной вектор, а n – число элементов заданного вектора x. Программа для получения спектра будет такова: %Исходные данные clc t=0:0.0005:1; % Задание интервала времени x=sin(2*pi*200*t)+0.4*sin(2*pi*150*t)+0.4*sin(2*pi*250*t); Y=fft(x,1024); % Быстрое преобразование Фурье Pyy=Y.*conj(Y)/1024; % Вектор спектра
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
164
f=2000*(0:150)/1024; plot(f,Pyy(1:151)) % Установка русского шрифта и его размера set(gca,'FontName','Arial Unicode MS','FontSize',10) % введение название осей xlabel('Частота, Гц') ylabel('Спектральная плотность мощности сигнала') % введение название графика title('Спектральная плотность мощности') % Включение отображения сетки grid on clear all
Выходные данные показывают, что в сигнале присутствуют 3 частоты 150, 200 и 250 Гц, соответственно. Но их амплитуды не соответствуют заданным, они пропорциональны спектральной плотности мощности отдельных гармоник. Это обусловлено различием между определениями Фурье-изображения и комплексного спектра. 150
Сп ек тр ал ьн ая п ло тн ос ть м ощ но ст и
100
50
0 0
50
100
150
200
250
300
Ч а с т о т а, Г ц
Рисунок 3.25 – Спектр трехчастотного сигнала Для получения комплексного спектра, следует извлечь корень из суммы квадратов действительной и мнимой части вектора Y, и разделить полученное значение на число точек рассматриваемой области. В приведенной выше программе, для этого следует заменить строчку (% Вектор спектра) на следующее выражение: Pyy=sqrt((Y.*conj(Y)/1024)/150);
В результате получим график изображенный на рисунке 3.26.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
165
Полученные данные примерно соответствуют заданным по частоте и амплитуде. При уменьшении времени квантования, точность преобразования будет увеличиваться. Ам пл иту да г арм он ик
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 0
50
100
150
200
250
300
Ч а с т о т а, Г ц, с
Рисунок 3.26 –Разложение трехчастотного сигнала в ряд Фурье Пример 10. Сложение гармоник для получения реального сигнала. Пусть задана пилообразная кривая, амплитудой 0,5 В и частотой 1 Гц, наложенная на постоянную составляющую 0,5 В. Она может быть построена программой: clc t=0:0.001:3; % Задание интервала времени y=0.5+0.5*sawtooth(pi*t/0.5,0.5); plot(t,y)
Генерация пилообразных колебаний производится процедурой sawtooth(t,width). В векторе y формируются пилообразные волны с периодом 2 в моменты времени, которые задаются вектором t. Параметр width определяет часть периода, в которой сигнал увеличивается. Согласно справочникам, разложение в ряд Фурье для данной кривой – это сумма нечетных гармоник. 8A 1 1 (3.60) f ( t ) 2 (sin t sin 3 t sin 5 t ...) , 9 25 где А – амплитуда пилообразной кривой. Возьмем 3 гармоники и построим суммарную кривую. Программа для ее построения приведена ниже, а результат на рисунке 3.27,а. % Получение пилообразной кривой из 3-х отдельных гармоник clc t=0:0.001:3; % Задание интервала времени
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
166
% Построение идеальной кривой y=0.5+0.5*sawtooth(pi*t/0.5,0.5); plot(t,y) % Процедура вычисления суммы 3-х гармоник y3=0.5+(1.5/pi)*(sin(2*pi*t-pi/2)-sin(6*pi*t3*pi/2)/9+cos(10*pi*t-5*pi/2)/25; hold on % Разрешение отображать все кривые на одном графике plot(t,y3) % Построение графика суммы 3-х гармоник hold off % Установка русского шрифта и его размера set(gca,'FontName','Arial Unicode MS','FontSize',10) % введение название осей xlabel('Время, с') % введение название графика title('Замена пилообразнеого сигнала 3-м гармониками') % Включение отображения сетки grid on clear all Замена пил ообразнеог о сигнала 5 -ю гармоник ами
Замена пил ообразнеог о сигнала 3 -м гармоник ами 1.2
1.2
1
1
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0
0
-0.2 0
0.5
1
1.5
В р е м я, с
2
2.5
3
-0.2 0
0.5
1
1.5
2
2.5
3
В р е м я, с
а б Рисунок 3.27 – аппроксимация пилообразной кривой суммой гармоник Увеличим число гармоник до пяти. Заменим в предыдущей программе процедур вычисления суммы 3-х гармоник процедурой вычисления суммы 5-ти гармоник. % Процедура вычисления суммы 5-х гармоник y3=0.5+(1.5/pi)*(sin(2*pi*t-pi/2)-sin(6*pi*t3*pi/2)/9+cos(10*pi*t-5*pi/2)/25-sin(14*pi*t7*pi/2)/49+sin(18*pi*t-9*pi/2)/81);
Полученный график приведен на рисунке 2.27,б. Как видим, уже три гармоники достаточно верно отражают пилообразную форму кривой, поэтому увеличения их количества мало влияет на точность аппроксимации. Пример 11. Сложение гармоник для получения реального сигнала.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
167
Пусть задана кривая в форме прямоугольных импульсов, амплитудой 1 В и частото1 1 Гц. Она строится программой: clc t=0:0.001:3; % Задание интервала времени y=square(pi*t/0.5,50); % Построение прямоугольных импульсов plot(t,y)
Здесь генерация прямоугольных колебаний производится процедурой square(t,duty). В векторе y формируются прямоугольные импульсы с периодом 2 в моменты времени, которые задаются вектором t. Параметр duty определяет длительность положительной полуволны в процентах от периода импульсов. Согласно справочникам, разложение в ряд Фурье для данной кривой – это сумма нечетных гармоник. 4A 1 1 f ( t ) (sin t sin 3 t sin 5 t ...) , (3.60) 3 5 где А – амплитуда пилообразной кривой. Возьмем 3 гармоники и построим суммарную кривую. Программа ее построения приведена ниже, а результат на рисунке 3.28,а. % Получение прямоугольной кривой из 3-х гармоник clc t=0:0.001:3; % Задание интервала времени % Построение кривой в виде прямоугольных импульсов y=square(pi*t/0.5,50); plot(t,y) % Вычисление суммы 3-х гармоники y3=(4/pi)*(sin(2*pi*t)+sin(6*pi*t)/3+sin(10*pi*t)/5); hold on % Разрешение отображать все кривые на одном графике plot(t,y3) % Построение графика сумы 3-х гармоник hold off % Установка русского шрифта и его размера set(gca,'FontName','Arial Unicode MS','FontSize',10) % введение название осей xlabel('Время, с') % введение название графика title('Замена прямоугольного сигнала 3-мя гармониками') % Включение отображения сетки grid on clear all
Как видим, три гармоники весьма приближенно описывают прямоугольную кривую. Увеличим число гармоник до девяти. Заменим в предыдущей программе процедуру вычисления суммы 3-х гармоник процедурой вычисления суммы 9-ти гармоник. % Процедура вычисления суммы 9-ти гармоник
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
168
y3=(4/pi)*(sin(2*pi*t)+sin(6*pi*t)/3+sin(10*pi*t)/5+sin(1 4*pi*t)/7+sin(18*pi*t)/9+sin(22*pi*t)/11+sin(26*pi*t)/13+ sin(30*pi*t)/15+sin(34*pi*t)/17);
Полученный график приведен на рисунке 3.28,б. Замена пря моугольного сигнала 3- мя гармоник ами 1.5
Замена пря моугольного сигнала 9- ю гармоника ми 1.5
1
1
0.5
0.5
0
0
-0.5
-0.5
-1
-1
-1.5 0
0.5
1
1.5 В р е м я, с
2
2.5
3
-1.5 0
0.5
1
1.5 В р е м я, с
2
2.5
3
а б Рисунок 3.28 – Аппроксимация прямоугольной кривой суммой гармоник
3.6 Расчет переходных процессов в линейных цепях 3.6.1 Общие положения и определения Переходным процессом называют такой процесс, протекающий в цепи, при котором общее количество энергии, связанное с цепью в виде электрического и магнитного полей, динамически изменяется во времени. Главной причиной, которая вызывает переходный процесс, является перераспределение энергии в цепи. Переходный процесс не может происходить мгновенно, так как на перераспределение энергии требуется определенное (теоретическое бесконечное) время. В электротехнике рассматриваются коммутационные переходные процессы. Это такие режимы, которые возникают при включении, выключении, коротких замыканиях, различного рода переключениях, внезапных изменениях параметров цепи. При анализе переходных процессов широко используют законы коммутации. Первый закон коммутации. В любой ветви с индуктивностью ток и магнитный поток в момент коммутации сохраняют те же значения, которые они имели до коммутации, и дальше начинают изменяться именно с этих значений. Второй закон коммутации.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
169
В любой ветви с емкостью напряжение и заряд в момент коммутации будут R иметь те же значения, которые они имели UR до коммутации, и в дальнейшем будут изL U UL меняться, начиная с этих значений. UC i Переходные процессы в линейных цепях рассчитываются двумя способами C или методами: классическим и операторным. Рисунок 3.29 – Включение В данной работе мы рассмотрим перкатушки на постоянное вый метод. напряжение классический метод расчета переходных процессов заключается в интегрировании дифференциальных уравнений, связывающих токи и напряжения цепи в переходном процессе. Программа MATLAB позволяет легко решать дифференциальные уравнения, которые только требуется представить в форме Коши. Рассмотрим несколько примеров. Пример 12. Расчет переходного процесса в цепи RL при включении ее на постоянное напряжение. Дана цепь, представленная на рисунке 3.29. Решение таких задач в программе MATLAB базируется на решении обыкновенных дифференциальных уравнений (ОДУ). Их, как правило, представляют в виде системы из дифференциальных уравнений первого порядка в форме Коши. dy y ' ; y ' f ( y, t ) , (3.62) dt с граничными условиями y (t0 , tend , p ) b , где t0 , t end - начальные и конечные точки интервалов. Вектор b задает начальные и конечные условия. Покажем применение решателя ОДУ на ставшем классическим примере – решении уравнения Ван-дер-Поля, записанного в виде системы из двух дифференциальных уравнений. Y1 Y2 , Y2 100 Y2 (1 Y1 ) 2 Y1 . (3.63) При начальных условиях: Y1 (0) 0 ; Y2 (0) 1 . Перед решением нужно записать систему дифференциальных уравнений в виде М-функции. Для этого в главном меню выберем File>New>M-File и введем: K1
function dydt = vdp100(t,y) dydt =zeros(2,1); % Вектор столбец dydt(1)=y(2); dydt(2)=100* y(2)*(1-y(l))^2-y(1);
Сохраним М-файл функцию. Тогда решение ode15s решателем и сопровождающий его график можно получить, используя следующие команды:
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
170
[T,Y]=ode15s(@vdp100,[0 30],[2 0]); plot(T,Y) hold on:gtext(‘y1’),gtext(‘y2’);
В нашем случае нет необходимости записывать дифференциальное уравнение в виде системы уравнений, так как наше уравнение, описывающее цепь, будет линейным неоднородным дифференциальным уравнением первого порядка. di L Ri U . (3.64) dt В форме Коши, выражение (3.64) будет таким: di U R i. (3.65) dt L L Для решения данного уравнения необходимо сформировать М-файл, который будет таким: function dydt = RL(t,y,E,R,L); dydt =E/L-(R/L)*y;
Файл следует записать с именем RL.m, для вызова в последующей программе. Программа для расчета переходного процесса в данной цепи при R 10 Ом, L 1 Гн и Е=100 В приведена ниже, а результаты расчета на рисунке 3.30.а. % Построение переходного процесса в цепи RL tspan=[0, 0.75]; % Интервал времени процесса y0=[0; 0]; % Начальные условия % Исходные данные E=100; R=10; L=0.1; [t,y] = ode15s(@RL, tspan, y0,[],E,R,L); % Построение графика plot(t,y(:,1)) % Установка русского шрифта и его размера set(gca,'FontName','Arial Unicode MS','FontSize',10) % введение название осей xlabel('Время,с') % Введение названия графика title('Напряжение на конденсаторе') % Включение отображения сетки grid on
Большой интерес представляет исследование влияния параметров цепи на вид переходного процесса. Для этого в предыдущей программе можно организовать цикл, внутри которого значение параметра, например, L, будет изменяться в некотором диапазоне. Структура такой программы приведена ниже. В ней индуктивность катушки меняется от 1 до 3 Гн с шагом 0,2 Гн. Семейство получившихся кривых приведено на рисунке 3.30,б.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
171
Ток в перех одном процес се при включ ении це пи RL 12
12
10
10
8
8
Ток в пере ходном про цессе при из менении L
6
6
4
4
2
2
0 0
0.1
0.2
0.3
0.4 0.5 В р е м я, с
0.6
0.7
0.8
0 0
L=1,00 L=1,20 L=1,40 L=1,60 L=1,80 L=2,00 L=2,20 L=2,40 L=2,60 L=2,80 L=3,00 0.1
0.2
0.3
0.4 0.5 В р е м я, с
0.6
0.7
0.8
а б Рисунок 3.30 – Переходный процесс при включении катушки % Построение семейства кривых процесса при изменении L for K=0:0.2:2 . . . L=1+K; . . . % Разрешение вывода всех графиков в одно окно hold on end hold off;
Пример 13. Расчет переходного процесса в цепи RLC при включении ее на постоянное напряжение. Дана цепь, представленная на рисунке 3.31. Дифференциальное уравнение, описывающее данную цепь, будет иметь вид: K1 d 2i R di 1 i U . (3.66) R dt 2 L dt LC UR На основе примера, приведенного выL U UL ше, для решения данного уравнения сформиUC руем М-файл, который будет таким: i C
function dydt = RLC(t,y,E,R,L,C) dydt =[y(2); U/(L*C)-1/(L*C)*y(1)(R/L)*y(2)];
Рисунок 3.31 – Включение Файл следует сохранить под именем цепи RLC на постоянное RLC.m, для вызова в последующей програмнапряжение ме, в решателе ode45. Программа для расчета переходного процесса в данной цепи при R 100 Ом, L 0,1 Гн, С 10 мкФ и Е=100 В приведена ниже, а результаты расчета на рисунке 3.32,а. % Построение переходного процесса в цепи RLC tspan=[0, 0.1]; y0=[0; 0]; E=100;
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
172
R=100; L=0.1; C=0.00001; [t,y] = ode45s(@RLC, tspan, y0,[],E,R,L,C); % Построение графика plot(t,y(:,1)) % Установка русского шрифта и его размера set(gca,'FontName','Arial Unicode MS','FontSize',10) % введение название осей xlabel('Время,с') % Введение названия графика title('Напряжение на конденсаторе') % Включение отображения сетки grid on
Для исследования влияния параметров цепи на вид переходного процесса организуем цикл, внутри которого значение параметра, например, L, будет изменяться в некотором диапазоне. Такая программа приведена ниже. В ней индуктивность катушки меняется от 0,1 до 1,1 Гн с шагом 0,25 Гн. Семейство получившихся кривых приведено на рисунке 3.32,б. % Построение семейства кривых переходного процесса при %изменении L for K=0:0.25:1 . . . L=0.1+K; . . . % Разрешение вывода всех графиков в одно окно hold on end hold off; Н а п р я ж е н и е н а к о н д е н с а т о р е, В
Нап ряжение на конденсато ре, В 180
120
L=0,10 L=0,35 L=0,60 L=0,85 L=1,10
L=0,1 H
160 100
140
H H H H H
120
80
100 60
80 60
40
40 20
20 0 0
0.02
0.04 0.06 В р е м я, с
0.08
0.1
0 0
0.02
0.04 0.06 Вре мя, с
0.08
а б Рисунок 3.32 – Переходный процесс при включении цепи RLC на постоянное напряжение
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
0.1
173
3.7 Визуализация расчетов электромагнитных полей Подробное изложение раздела о решении задач на расчет электромагнитных полей выходит далеко за рамки настоящей работы. Здесь мы только покажем некоторые возможности программы MATLAB, которые позволяют сделать анализ полевых структур более наглядным и понятным студенту. Рассмотрим несколько примеров. Пример 14. Рассчитаем электростатическое поле между двумя экранированными кабелями. Схема кабеля приведена на рисунке 3.33, а. Исходные данные R 10 мм – внутренний радиус кабеля; l 10 мм – расстояние между жилами кабеля; d 0,5 мм – диаметр жилы; r 1 - относительная диэлектрическая проницаемость среды между жилами (воздух); U 100 В – напряжение между жилами кабеля.
R
Рисунок 3.33 – К расчету поля двухпроводного кабеля Решение Заменим кабель системой четырех заряженных осей так, чтобы оболочка кабеля осталась эквипотенциальной поверхностью, рисунок 3.33,б. Для этого должны быть: l s a ; s 2 a 2 R 2 , откуда 2 R2 l R2 l 2R 2 a 7,5 мм; s 12,5 мм, s a 20 мм. l 4 l 4 l Запишем потенциал любой точки поля двух двухпроводных линий, принимая 0 при x 0 . ( x 0,5) 2 y 2 ( x 2) 2 y 2 7,9ln ln . (3.67) 2 2 2 2 ( x 0 , 5 ) y ( x 2 ) y
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
174
Полученное выражение совершенно не выразительно. Для того, чтобы результат решения задачи стал более понятен, построим график потенциала поля по (3.67). Программа для этой процедуры приведена ниже, а результаты расчета показаны на рисунке 3.34. % Построение графика потенциала поля % двухпроводного кабеля clc x=-6:0.1:6; % Задаем координаты построения графика y=-3:0.1:3; [xx,yy]=meshgrid(x,y) % Вычисляем потенциал поля в точках заданных координат a=((xx-0.5).^2+yy.^2)./((xx+0.5).^2+yy.^2); b=((xx+2).^2+yy.^2)./((xx-2).^2+yy.^2); zx=7.9.*(log(a)+log(b)); contour3(xx,yy,zx,100) view([0 0 10]) % Установка русского шрифта и его размера set(gca,'FontName','Arial Unicode MS','FontSize',10) % введение название осей xlabel('Х, м') ylabel('У, м') % введение название графика title('Потенциал поля двухпроводного кабеля') % Включение отображения сетки grid on П о т ен ц и а л п о л я д ву х п р о в о д н о го к а б е л я 3
2
Y, m
1
0
-1
-2
-3 -6
-4
-2
0
2
4
6
X, m
Рисунок 3.34 – Поле двухпроводного кабеля
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
175
П о те н ц и а л п ол я д в у х пр о в о д н о го к а б е л я
80 60 40 20 0 -20 -40 -60 -80 -100 2 1
4 2
0 0 -1
-2 -2
Y, m
-4
X, m
Рисунок 3.35 – График поля двухпроводного кабеля Замена оператора построения графика contour3(xx,yy,zx,100)на оператор meshc(xx,yy,zx), приводит к выводу графика, показанного на рисунке 3.35. Проекции эквипотенциалей на плоскость ху, позволяют яснее представить себе конфигурацию исследуемого поля. Пример 15. Рассчитаем электростатическое поле между диэлектрическим уголком и параллельным, длинным заряженным проводником, рисунок 3.36. Исходные данные
y
h l 20 мм; d 5 мм – диаметр проводника; 0,2 мкКл/км – погонный заряд; Внешняя среда – вакуум; r1 20 - диэлектрическая постоянная материала уголка.
l
h x Рисунок 3.36 – Поперечник уголка
Решение По методу зеркальных отражений получим выражение для потенциала поля внутри уголка: rr r r rr r r ln 1 2 34 4 0,18 ln 1 2 34 4 , (3.68) 2 r1 0 4h 4h
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
176
где r1 ( x 2 )2 ( y 2) 2 , r2 ( x 2) 2 ( y 2) 2 ,
r3 ( x 2) 2 ( y 2) 2 , r4 ( x 2) 2 ( y 2) 2 . Программа для расчета потенциала поля дана ниже, графики потенциала приведены на рисунке 3.37. % Построение графика потенциала поля внутри % диэлектрического уголка clc x=0:0.2:50; % Задаем координаты построения графика y=0:0.2:50; [xx,yy]=meshgrid(x,y); r1=sqrt((xx-2).^2+(yy-2).^2); % Вычисляем потенциал поля r2=sqrt((xx+2).^2+(yy-2).^2); % в заданных точках r3=sqrt((xx-2).^2+(yy+2).^2); r4=sqrt((xx+2).^2+(yy+2).^2); zx=-0.18.*log(r1.*r2.*r3.*r4./4.*0.01.^4); contour3(xx,yy,zx,100) % Установка русского шрифта и его размера set(gca,'FontName','Arial Unicode MS','FontSize',10) % введение название осей xlabel('Х, м') ylabel('У, м') % введение название графика title('Потенциал поля уголка') П оте нц иа л п ол я уг ол ка
4 3 2 1 0 0 10 20 30 40
У, м
50
50
40
30
20
10
0
Х, м
Рисунок 3.37 – Поле диэлектрического уголка
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
177
4 Моделирование электрических цепей и устройств Приложение Simulink является своего рода «виртуальной лабораторией» позволяющей собирать и исследовать работу многих видов электрических цепей и устройств. В данной главе мы рассмотрим некоторые из них. 4.1 Моделирование цепей постоянного тока Для разработки модели выберем цепь, которую мы уже рассматривали ранее в Примере 1, рисунок 3.1. В нее входят источник постоянного напряжения DC Voltage Source, последовательные цепи Series RLC Branch (включенные в режим резисторов) и измерительные элементы – блоки Voltage Measurement и Current Measurement с дисплеями – блоки Display. Схема модели приведена на рисунке 4.1. 12.5
0.25
Display
Display3 U1
Display4 U2
Display1
+ v -
112.5 + v -
1.125
i + -
A1
i + -
R1
R3
A2 E3
i + -
A3 E1
R2
0.875 Display2 + - v
U3
87.5 Display5
R6
+ - v
25
U1
Display6
Рисунок 4.1 – Модель цепи постоянного тока с измерительными приборами На дисплеях представлен результат моделирования, который соответствует расчетному (в Примере 1). При моделировании можно обойтись без включения в модель многочисленных приборов. Для сложных схем они засоряют схему и затрудняют ее чтение. В пакете SimPowerSystems предусмотрен прибор Multimeter и блок Powergui. В окне блока Multimeter, как это показано в разделе 2.3.5, устанавливаются величины, подлежащие измерению. Предварительно, в окнах настройки элементов схемы (поле Measurement) устанавливаются те параметры, которые нуждаются в измерении. В результате схема принимает вид, показанный на рисунке 4.2, слева.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
178
Окно блока Multimeter показано на рисунке 4.2, справа. Для визуализации измеренных величин следует раскрыть блок Powergui, его окно показано на рисунке 4.3, слева. Выбор пункта меню Steady-State Voltages and Currents открывает окно с измеренными параметрами модели, рисунок 4.3, справа.
R1
R3 E3
7 Multimeter
E1 R2
R6
Powergui -Continuous
Рисунок 4.2 – Модель цепи с блоками Multimeter и Рowergui
Рисунок 4.3 – Окна блока Рowergui
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
179
Следует отметить, что использование блоков Multimeter и Рowergui упрощая схему, в то же время, делает ее более «виртуальной». Введение измерительных блоков Voltage Measurement и Current Measurement с дисплеями, позволяет приблизить вид исследуемого устройства к реальному лабораторному стенду с вольтметрами и амперметрами. Поэтому в относительно простых схемах, использование измерительных блоков в моделях на наш взгляд, более методически оправдано. Моделирование электрических цепей на уровне систем уравнений можно производить, используя блок Algebraic Constraint из библиотеки Math Operations. Схема решения системы уравнений (3.6) для данной задачи с помощью решателей алгебраических уравнений Algebraic Constraint представлена на рисунке 4.4. 100 R1
Product
I1
Solve z f(z) = 0
1.125
f(z)
Ток I1
Algebraic Constraint
200 E1 100 R2
f(z)
Product1
Solve f(z) = 0
I2 0.875
z
Ток I2
Algebraic Constraint1
50 E2
150 R3
Solve z f(z) = 0
f(z)
Product2
Algebraic Constraint2
I3 0.25 Ток I3
Рисунок 4.4 – Модель цепи на основе решателей алгебраических уравнений Algebraic Constraint Безусловно, такая модель дает ответ, совпадающий с предыдущей моделью, но к электрической цепи она имеет отдаленное отношение. Данный пример показывает, что одна и та же задача, может быть решена в системе Simulink совершенно различными путями. 4.2 Моделирование цепей переменного тока Для моделирования выберем схему изображенную на рисунке 4.5. В ее состав, кроме пассивных элементов R, L и C, входят амперметры и вольтметры, и в частности приборы для измерения активной Р и реак-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
180
тивной Q мощности. Параметры цепи: U=100 B, R1=R3=100 Ом, C2=10 мкФ, C3=30 мкФ, L1=0,3 Гн, L3=0,5 Гн. Схема модели дана на рисунке 4.6. Для измерения токов и напряжений используем блоки Multimeter и Рowergui. В блоке Multimeter включим опцию Plot selected measurement. Она позволяет вывести график выбранной величины, у нас это входное напряжение. Результаты моделирования возникают в окне Powergui/ Steady-State Voltages and Currents, рисунок 4.7 , там же приведен график входного напряжения.
Рисунок 4.5– Схема цепи переменного тока R1
i + -
L1
L3
A1
V
18.17 PQ
8.688
I
Active & Reactive Power + - v
Uvx
U
C3 1
C2 R3
P+jQ1
Powergui -Continuous
Multimeter
Рисунок 4.6 – Модель цепи переменного тока
Рисунок 4.7 – Результаты моделирования
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
181
Для измерения мощности в цепях переменного тока удобно использовать блок Active & Reactive Power. На его входы через блоки Voltage Measurement и Current Measurement подают напряжение (верхний вход) и ток (нижний вход). Подключенный к выходу блока дисплей индицирует активную и реактивную (нижняя цифра) мощности. 4.3 Моделирование резонансных цепей Резонансные цепи представляют особый интерес для моделирования, поскольку аналитический расчет их достаточно громоздок. Для моделирования выберем последовательную цепь, в которой возможен резонанс напряжений. В качестве источника напряжения возьмем блок управляемого источника напряжения Controlled Voltage Source на вход которого будем подавать сигнал линейно нарастающей частоты от блока Chirp Signal, окно параметров изображено на рисунке 4.8, схема модели на рисунке 4.9.
Рисунок 4.8 – Настройки блока Chirp Signal i + -
+ signal -
Chirp Signal
Series Current RLC Measurement Branch
Scope
Controlled Voltage Source
Рисунок 4.9 – Модель резонансной цепи и результат моделирования
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
182
Ток в цепи будем контролировать по осциллографу Scope. В окне настроек блока Chirp Signal, установим время нарастания напряжения численно равным конечной частоте сигнала. В этом случае на экране осциллографа ось х – будет осью частоты входного напряжения. Из рисунка видно, что с ростом частоты входного напряжения, амплитуда тока возрастает, а затем снижается. Максимальное значение амплитуды соответствует резонансной частоте, в нашем случае 29 Гц. Данная модель дает лишь качественную картину процесса, для получения более точного результата, воспользуемся блоками Multimeter и Рowergui. Схема модели показана на рисунке 4.10. После запуска и окончания моделирования, следует войти в окно блока Рowergui/Use LT1 Viewer. В открывшемся окне динамической связи с пакетом Control Systems Toolbox, который служит для линейного анализа цепи, будет указан источник входного сигнала (в левом поле). В правом поле будут показаны те токи и напряжения, измерение которых предусмотрено в блоке Multimeter. Следует помнить, что при линейном анализе цепи программа генерирует стандартный выходной сигнал источника равный 1 В. Выходным сигналом для анализа выбран в данном случае ток в цепи.
1 AC Voltage Source
Series RLC Branch
Multimeter
Powergui -Phasors
Рисунок 4.10 – Частотный анализ резонансной цепи
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
183
Для проведения линейного анализа следует щелкнуть правой кнопкой нам пункт меню Open new LT1. Затем в появившемся окне нажав правую кнопку мыши вызвать динамическое меню. Из строки Plot Tipe выбрать тип линейного анализа Bode, при котором реализуется анализ амплитудной и фазной характеристики цепи. Результат анализа представлен на рисунке 4.10. Для определения резонансной частоты следует навести курсор на кривую, нажать левую кнопку мыши и удерживая ее постараться найти максимальное значение амплитуды сигнала и соответствующее ей значение фазы. 4.4 Моделирование трехфазных цепей Для моделирования трехфазных цепей потребуется использовать блоки трехфазных источников и нагрузок. Составление модели из однофазных элементов, увеличивает количество блоков, не давая преимуществ. Будем моделировать четырехпроводную трехфазную цепь при соединении обмоток генератора и фазных нагрузок приемника в звезду. В модели будем использовать три новых блока: трехфазный источник напряжения (Inductive source with neutral); однофазная нагрузка задаваемая величинами активной и реактивной мощности (Series RLC Load) и блок измерения трехфазных токов и напряжений (Three-Phase V-I Measurement). Окно настройки трехфазного источника питания приведено на рисунке 4.11.
а б Рисунок 4.11 – Окон настройки трехфазного источника питания и блока измерения в трехфазных цепях
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
184
В нем задаются амплитуда напряжения, начальная фаза напряжения фазы А, частота и внутренние параметры источника (сопротивление и индуктивность фазы генератора). Введем параметры источника указанные на рисунке 4.11,а. Если вид окна после его открытия отличается от приведенного выше, нужно убрать галочку в пункте Specity impedance using short-circuit level. Окно настройки параметров блока Three-Phase V-I Measurement приведено на рисунке 4.11,б. Описание блока дано в самом окне (по английски). Данный блок может заменить в трехфазных цепях блок Multimeter, так как измеренные им величины наблюдаются в окне блока Рowergui. В окне блока следует установить вариант измерения напряжений (фазаноль) или (фаза-фаза). Удобно включить метки напряжений и токов, поставив, галочки в пунктах меню Use label. Окно настройки параметров нагрузки приведено на рисунке 4.12.
Рисунок 4.12 – Окно настроек параметров нагрузки Здесь задаются только действующее напряжение и частота нагрузки (220 В, 50 Гц), которые должны быть равны действующему напряжению и частоте источника, активная и реактивная мощности нагрузки (500 Вт и 300 Вар). В нашем случае установлена только индуктивная мощность нагрузки, емкостная составляющая отсутствует. Схема модели показана на рисунке 4.13. Окно блока Рowergui показано на рисунке 4.14. Здесь кроме напряжений и токов в фазах, измеряются напряжение U 0 и ток I 0 . Данные в окне блока могут быть представлены в виде пиковых (амплитудных) значений, либо в виде действующих. В последнем случае, необходимо в выпа-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
185
дающем списке Units выбрать строку RMS values. При этом рядом со значениями токов и напряжений появляется надпись – rms. v
+ -
Voltage Measurement
A A
Series RLC Load i + -
B
N
B
B
C
C
Series RLC Load2
3-Phase Source
Powergui -Continuous
Current Measurement
Series RLC Load1
A
Vabc
500.3 488.6
C Iabc
V
499.7 PQ
Three-Phase V-I Measurement
294.8
I
288.9
Active & Reactive Power
281.8 Display
Рисунок 4.13 – Модель трехфазной цепи
Рисунок 4.14 –Окно блока Рowergui с измеренными параметрами цепи Аналогично можно смоделировать и трехфазную цепь при соединении в треугольник.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
186
4.5 Моделирование переходных процессов в линейных цепях постоянного и переменного тока Рассмотрим переходный процесс в цепи RLC при включении ее на постоянное напряжение. Для решения данной задачи можно использовать два пути. Во первых - воспользоваться встроенными в Simulink связями с пакетом для линейного анализа систем Control Systems Toolbox, в котором предусмотрено исследование реакции системы на скачок входного сигнала (в нашем случае напряжения источника питания). Во вторых, разработать модель цепи, включающую переключатель и позволяющую исследовать цепь при любых входных воздействиях. Рассмотрим оба варианта моделирования. Схема модели для первого варианта представлена на рисунке 4.15. Она состоит из источника входного постоянного напряжения, элемента Series RLC Branch и блоков Multimeter и Рowergui. Параметры цепи задаем такими: R=22 Ом; L=0,021 Гн; C=1 мкФ. Величина напряжения источника питания в данном варианте моделирования никакого значения не имеет, так как при анализе пакетом Control Systems Toolbox в модели автоматически осуществляется масштабирование, т.е. входной сигнал задается равным единице независимо от величины установленной в настройках блока.
Series RLC Branch DC Voltage Source
Powergui -Continuous
1 Multimeter
Рисунок 4.15 – Моделирование переходного процесса в цепи RLC После окончания процесса моделирования в окне блока Рowergui выбираем пункт меню Use LT1 Viewer, в открывшемся окне нажимаем кнопку Open new LT1 и происходит запуск пакета Control Systems Toolbox. В динамическом меню, вызываемого правой кнопкой мыши, выбира-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
187
ем строку Plot Tipe. Здесь, в столбце перечислены все доступные виды анализа, в том числе и определение реакции системы на единичный скачок Step. Выбирая этот пункт меню, получаем окно с переходным процессом в цепи при воздействии на нее скачка напряжения величиной 1 В. Результат моделирования приведен на рисунке 4.15, справа. Недостатком данной модели является невозможность моделирования поведения цепей при переключениях или отключениях элементов, а так же исследования реакции цепи при других входных воздействиях, например, при включении цепи на переменное напряжение. Рассмотрим второй вариант моделирования цепи. Он приведен на рисунке 4.16. В нем для создания единичного скачка напряжения источника применяется блок Breaker, который включается сигналом с блока Step. Настройки блока Step приведены на рисунке 4.15. Настройки блока Breaker на рисунке 4.16. После блока Breaker, параллельно входу цепи включен резистор R2. Он необходим для инициации расчета, чтобы он не влиял на результаты, величина этого резистора должна быть принятой очень большой, значительно больше, чем входное сопротивление цепи. В нашем случае он равен 100 кОм. Для визуализации полученного переходного процесса можно использовать как осциллограф, так и блок Multimeter с включенной опцией Plot selected Measurements. При использовании данного блока, необходимо установить соответствующие опции в окнах настройки элементов. Для индикации скачка напряжения и формы тока в цепи, в окнах настройки блоков R2 и Series RLC Branch1 установлены опции Branch voltage и Branch current, соответственно. Результат моделирования приведен на рисунке 4.17. Series RLC Branch1
1 2 c
Step DC Voltage Source
Breaker
R2
2 Multimeter
Рисунок 4.16 – Модель цепи RLC с блоком Breaker и окно настроек блока Step
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
188
Рисунок 4.17 – Результат моделирования и окно настройки блока Breaker Как видим, вид переходного процесса не изменился, что естественно, но данная модель позволяет определить реакцию цепи и на другие виды воздействия. Рассмотрим процесс включения цепи на переменное напряжение. Для этого заменим источник постоянного напряжения в модели на источник переменного напряжения амплитудой 100 В и частотой 50 Гц. Параметры схемы возьмем такие: R=1 Ом; L=0,021 Гн; C=100 мкФ. Изменим, момент включения. Окна настроек блоков Series RLC Branch1 и Step приведены на рисунке 4.18,а. Series RLC Branch1
1 2 c
Step AC Voltage Source
Breaker
R2
2 Multimeter
а
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
189
Ib: Series RLC Branch1 20 10 0 -10 -20
0
0.02
0.04 0.06 Ub: R2
0.08
0.1
0
0.02
0.04
0.08
0.1
100 50 0 -50 -100 0.06
б Рисунок 4.18 – Схема модели, результат моделирования и окна настроек блоков Series RLC Branch1 и Step Схема модели и результаты моделирования также приведены на рисунке 4.18,б. Для формирования результата моделирования в документе была использована команда Edit/Copy Figure меню окна Simulation result for: Multimeter. По данной команде в буфер обмена копируется графики с результатами моделирования, но без меню. Окаймляющие графики поля могут быть цвета полей окна осциллографа, белого цвета или прозрачные. Характеристики копирования устанавливаются в меню Fail/Preferences /Figure Copy Template/Copy Options. 4.6 Моделирование схем с трансформаторами Пакет SimPowerSystems предлагает целый ряд средств для моделирования различных силовых электрических цепей. Рассмотрим пример моделирования силового однофазного трехобмоточного трансформатора, подключенного к двум нагрузкам. По истечении 0,05 секунды с момента начала моделирования рубильник в цепи одной из нагрузок отключается. К выходу трансформатора остается подключенной только одна нагрузка. Модель позволяет определить характер изменения во времени потребляемой трансформатором активной и реактивной мощности и график тока в нейтральном проводе, рисунки 4.19 и 4.20. Обратите внимание, что надписи на модели, названия блоков и соответствующие сообщения в окне Powergui сделаны на русском языке. Для того, чтобы стало возможным вводить обозначения в модели на русском языке, следует после составления модели, выполнить команду меню:
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
190
Edit/Select all. После этого все объекты в окне модели окажутся выделенными. Затем в меню окна модели следует выбрать пункт: Format/Font. В открывшемся окне форматирования шрифтов нужно выбрать шрифт, имеющий символы русского языка, например, @Arial Unicode MS. После нажатия кнопки ОК в данном окне, выбранный шрифт будет установлен. Но мы не рекомендуем переходить на русский шрифт, так как, иногда нарушается работа модели, появляются сбои.
Рисунок 4.19 – Модель однофазного трансформатора
Рисунок 4.20 – Результаты моделирования и окно Powergui с измеренными величинами (на заднем плане)
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
191
4.7 Моделирование схем с электрическими машинами Исследование схем с электрическими машинами при изучении курса электротехники производится обычно на физических макетах в лаборатории. Необходимость таких практических работ неоспорима. Однако реальные установки имеют ряд ограничений. Прежде всего, они недостаточно универсальны, работа на них небезопасна. Поскольку работа производится, как правило, бригадой из нескольких человек, то невозможно дать индивидуальное задание студенту. При дистанционной форме обучения учащийся вообще не имеет возможности работать в лаборатории. Поэтому моделирование работы электрических машин и установок оказывается весьма полезно. В качестве примера рассмотрим модель двигателя постоянного тока с пусковым трехступенчатым реостатом. Исследуем переходный процесс в системе при пуске в функции времени. Моделью будет служить блок DC_Motor из библиотеки Machines, рисунок 4.21, а. В файле help программы MATLAB его описание отсутствует. Рассмотрим блок подробнее. Он выполнен в виде субмодели, схема, которой приведена в правой части рисунка 4.21, в. Блок имеет пять входов (F+, F-, A+, A-, TL) и один шинный выход (m). Входы A+ и A- - являются концами обмотки якоря (плюсовым и минусовым соответственно). Входы F+ и F – концы обмотки возбуждения. Вход TL, является входом, к которому приложена величина нагрузочного момента. Нагрузочный момент, то есть момент сил сопротивления вращению вала двигателя, определяется, как функция частоты вращения вала и должен быть вычислен в модели. На выходе m модели формируется четырехэлементный вектор, состоящий из: w – угловой частоты вращения вала двигателя; Ia – тока якоря; If – тока обмотки возбуждения; Te – электромагнитного момента на валу. Для более ясного представления о блоке, обозначения выводов модели были нами заменены русскоязычными, рисунок 4.21 б. Примечание Введение обозначений блоков, сигналов и примечаний на русском языке полезно для ясного понимания протекающих процессов в модели и позволяет более наглядно пояснять заложенную в нее идею. Но иногда переименование блоков ведет к неработоспособности модели. Так, например, в данной схеме название блока DC_Motor, оставлено в английском варианте. Блок сам является субмоделью. Переименование его приводит к потере пути к библиотеке, где блок записан.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
192
Работа субмодели двигателя соответствует принципу работы машины и ясна из рисунка. Окно настроек двигателя приведено на рисунке 4.22.
а
б Рисунок 4.21 – Блок DC_Motor и его внутренняя схема
Рисунок 4.22 – Окно настроек блока DC_Motor
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
193
В окне дается краткое описание блока с указанием назначения выводов. В поле Armature resistance and inductance вводятся в виде вектора сопротивление якоря в Ом и индуктивность в Гн. В поле Field resistance and inductance вводят сопротивление и индуктивность обмотки возбуждения, соответственно. В поле Field- Armature mutual inductance Laf вводят коэффициент взаимоиндукции между обмотками возбуждения и якоря, в Гн. В поле Total inertia J вводят приведенный к якорю полный момент инерции в кг·м2. В поле Viscous friction coefficient Bm вводят коэффициент вязкого трения в Н·м·с. В поле Coulomb friction torque Tf вводят момент сухого трения в Н·м. В поле Initial speed вводят начальную скорость вращения вала, она необходима для начала вычислений и может быть весьма низкой. По умолчанию 1 рад/с. Схема модели изображена на рисунке 4.23,а. +v -
V_я
Eв=240 V
Vя
w(рад\с) Iя (A) В+
3 step 1
2
In
Я+
starter Пусковой реостат
Таймер g
Out
m
Мнагр
ЯМэл w
DC_Motor 3,7 кВт; 240 В; 16.2 A; 1220 об/мин
Рубильник E 240 В
В-
10 кОм
Demux Iя
Мнагр=Кн*w
Мэл
0.2287 ?
Powergui -Continuous
Момент сил сопротивления на валу пропорционален частоте вращения: Мнагр=Кн*w
Примечание
а 1 c
2.8 s 1 In
1
2
Breaker
3.66 ohm
c
4.8 s
1
2
c
Breaker1
6.8
1.64 ohm
2
Breaker2
0.74 ohm
1 Out
б Рисунок 4.23 – Схема модели и субмодели блока «Пусковой реостат»
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
194
В ней к источнику постоянного тока напряжением 240 В, через пусковой рубильник и пусковой реостат подключен двигатель постоянного тока, нагрузка которого пропорциональна частоте вращения. Схема работает таким образом. Через 0,05 с после начала моделирования включается «Рубильник» (блок Ideal Switch, переименованный в «Рубильник»). Затем последовательно через 2,8; 4,8; 6,8 секунд включаются контакторы (блоки Breaker) в блоке «Пусковой реостат», последовательно закорачивая ступени пускового сопротивления. Данный блок является субмоделью, схема которого приведена на рисунке 4.23,б. Наименование блоков субмоделей нами не изменялось.
Рисунок 4.24 – Напряжение и ток якоря
Рисунок 4.25 – Момент и частота вращения В результате двигатель начинает разгоняться. Зависимость напряжения, подаваемого на двигатель от времени показана на рисунке 4.24, слева, зависимость тока якоря от времени на рисунке 4.24, справа.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
195
Графики момента на валу и частоты вращения вала двигателя показаны на рисунке 4.25, слева и 4.25, справа, соответственно. Графопостроитель строит зависимость частоты вращения (в рад/с) от тока якоря, то есть от момента на валу. График дан на рисунке 4.26, слева.
Рисунок 4.26 – Пуск двигателя постоянного тока в функции времени В модель можно вводить комментарии с помощью блока Model info. Он размещается на поле модели и в него вводится необходимый текст. В нашем примере этот блок назван «Примечание» и содержание его приведено на рисунке 4.25, справа. Как видим, модель весьма полно отражает происходящие в схеме процессы. На графике напряжения якоря даже видны выбросы, возникающие при переключении ступеней реостата. Рассмотрим пример моделирования работы асинхронного двигателя. Блок, моделирующий асинхронный двигатель возьмем из библиотеки Machines. Его вид приведен на рисунке 4.27,а. Как и ранее, изменим обозначения внутри блока на русскоязычные. Вид получившегося блока приведен на рисунке 4.27,б.
а б в Рисунок 4.27 – Блоки асинхронного двигателя и блок измерений
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
196
Выводы А, В, С – начала обмотки статора, a, b, c – ее концы. На вход Мнагр подается величина равная моменту сил сопротивления нагрузки. С вывода m – снимается вектор измеренных величин. Рядом с блоком можно ввести его параметры, например, мощность, напряжение и т.д. Окно настройки блока содержит величины характеризующие машину, которые легко могут быть вычислены по паспортным данным. Окно настройки показано на рисунке 4.28 и содержит следующие поля: Rotor type – тип ротора: Wound – короткозамкнутый или Squirrel-cage – фазный. Reference frame – вид регулировки: Rotor – по ротору (реостатное); Stationary – нерегулируемый; Synchronous - частотное. Nom. Power, L-L volt and freg. [Pn(VA),Vn(Vrms),fn(Hz)] – номинальная полная мощность, потребляемая двигателем в ВА, номинальное линейное напряжение в В и частота в Гц. Stator [Rs(ohm) Lls(H)] – сопротивление фазы обмотки статора в Ом и ее индуктивность в Гн. Rotor [Rr’(ohm) Llr’(H)] – приведенное сопротивление фазы обмотки ротора в Ом и ее приведенная индуктивность в Гн. Mutual inductance Lm(H) – взаимная индуктивность обмоток статора и ротора в Гн. Inertia, friction factor and pairs Рисунок 4.28 – Окно настроек блока of poles [J(kg.m^2) F(N.m.s) p()] приведенный момент инерции ротора в кг·м2, коэффициент сопротивления в Н·м·с и число пар полюсов. Initial conditions (read the details in the description above) – Начальные условия (обычно принимаются по умолчанию). Важным элементом модели является блок измерений - Machines Measurement Demux, он также выбирается из библиотеки Machines. Его назначение – осуществлять связь между М-файлом модели двигателя и внешними измерительными устройствами. В процессе моделирования вычисляется большое количество электрических параметров машины, но да-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
197
леко не все требуется вывести в качестве результата. Поэтому в измерительном блоке предусмотрена возможность, отмечать галочками те величины, которые необходимы исследователю. В нашем случае их четыре: ток ротора; ток статора; частота вращения ротора и электромагнитный момент машины. Окно настроек этого блока показано на рисунке 4.29,а. В модели название блока Machines Measurement Demux заменено на «Блок измерений», как это показано на рисунке 4.27,в. Момент нагрузки
Signal 1
Мнагр
Signal Builder
б
в б
а
в
Рисунок 4.29 – Окно настроек блока Machines Measurement Demux Для задания входного сигнала в модели используется блок Signal Builder, рисунок 4.29,б. Он позволяет задать сигнал произвольной формы, который проектируется пользователем. В модели блок переименован в соответствии с выполняемым назначением и называется «Момент нагрузки». Окно настроек блока показано на рисунке 4.29,в. Схема модели представлена на рисунке 4.30. Модель представляет собой асинхронный двигатель с короткозамкнутым ротором мощностью 2,2 кВт. Пуск двигателя осуществляется прямым включением. Двигатель работает на нагрузку, величина которой задается блоком «Момент нагрузки». При пуске она равна 20 Нм, затем через 0,4 с после пуска, момент увеличивается 150 Нм, а, начиная с 0,6 с после пуска, момент принимает значение 50 Нм, рисунок 4.29,в. Блок «Анализатор спектра» переименованный нами блок Fourier из библиотеки SimPowerSystems /Extra library/ Measurements, предназна-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
198
чен для выделения из кривой напряжения заданной гармоники. В нашем случае на его выходе формируется величина равная амплитуде напряжения соответствующей гармоники, которая пересчитывается в действующее напряжение. Действующее напряжение источника индицируется на дисплее. 2,2 кВт - 220 В 50 Hz - 1437 об/мин A
a
B
b
C
c
Мнагр
vab + -
ir_abc
m is_abc
Момент нагрузки Vab (V) Мнагр
v
Ток ротора(фазы А) и ток статора (фазы А) ir,is (A) ir_a (A)
is_a (A)
m
Частота вращени
Мнагр (Н.m) wm
C
B
A
Амплитуда
N
З-х фазный генеретор
Угол
Анализатор спектра
Вычислитель действующего значени
N (об/мин)
0
1/(sqrt(2))
Сигнал
25/pi
Линейное напр
Электромагнитный момент Te
Мэл (Н.м) Блок измерений
Рисунок 4.30 – Модель пуска асинхронного двигателя Результаты моделирования представлены на рисунках 4.31 и 4.32.
а б Рисунок 4.31– Кривая напряжения на двигателе (а) и нагрузка на валу (б) Зависимость числа оборотов вала от времени машины, изображена на рисунке 4.33. Как видим, в момент увеличения нагрузки наблюдается провал скорости вращения и увеличение токов в обмотках статора и ротора. Заметим, что частота тока в обмотках ротора значительно ниже, чем частота напряжения питания машины.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
199
а б Рисунок 4.32 – Токи ротора и статора (а, электромагнитный момент (б)
Рисунок 4.33 – Переходный процесс разгона двигателя при скачкообразном изменении нагрузки на валу
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
200
4.8 Моделирование схем преобразовательной техники
a
k
m
Программа Simulink может применяться и для моделирования электронных силовых устройств, выпрямителей, инверторов и Diode других устройств преобразовательной техники. Рассмотрим модель трехфазного одноРисунок 4.34 – Блок Diode полупериодного выпрямителя. В нее входят три однофазных источника переменного тока напряжением 220 В и частотой 50 Гц, сдвинутые друг относительно друга на 120?. Последовательно с ними, включены реакторы (индуктивности) величиной 0,003 Гн. Диоды (рисунок 4.34) моделируются блоком Diode из библиотеки Power Electronics. В их параметры входят: сопротивление Ron и индуктивность Lon при обратном включении; сопротивление Rs и емкость Cs при обратном включении; напряжение, при котором начинается протекание тока через диод Vf; начальное значение тока через диод Ic (обычно принимается по умолчанию – 0). Схема модели приведена на рисунке 4.35. Трехфазный однополупериодный выпрямитель + v -
Vd
+ -i
L =200 мH
Id
Напряжение на нагрузке Vd
Selector
Ток нагрузки Id Mux
Осциллограф
k
D3 a
D2 a
a
D1
Напряжение на диоде D3
m
k
m
k
m
Demux
Токи диодов D2 и D3
Rн 10 Oм L1
L2
L3 L1=L2=L3=0,003 Гн
v1
v2
v3
Напряжение фазы 220 В, частота 50 Гц
Рисунок 4.35 – Модель трехфазного однополупериодного выпрямителя Результаты моделирования приведены на рисунке 4.36. К сожалению, моделирование маломощных выпрямителей, усилителей и других устройств электроники здесь невозможно. Точнее, такое мо-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
201
делирование слишком будет весьма приближенным, так как особенности типов аналоговой электроники, их тонкие различия в характеристиках, влияние температуры, разброса параметров и т.д. здесь учесть весьма затруднительно, а по большей части и просто невозможно - слишком упрощенные модели лежат в основе работы данных электронных блоков. Но при моделировании мощных устройств – эта особенность моделей оказывается достоинством, поскольку позволяет не отвлекаться на мелочи (например, выбор марки диода, тиристора и т.д. из тысяч имеющихся разновидностей).
Рисунок 4.36 – Результаты моделирования выпрямителя Рассмотрим еще один пример из области преобразовательной техники – широтно-импульсный преобразователь напряжения постоянного тока в переменный. Такие преобразователи широко применяются в технике при питании устройств от источников ограниченной мощности постоянного тока, например, аккумуляторов. Принцип работы устройства в том, что напряжение источника постоянного тока периодически подключается к нагрузке с высокой частотой. Эта частота постоянна, но длительность импульсов изменяется по синусоидальному закону. При высокой частоте коммутации, нагрузка реаги-
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
202
рует на усредненное значение напряжения, которое оказывается почти синусоидальным. Высшие гармоники в полученном токе тем меньше, чем больше индуктивность нагрузки и могут быть, при необходимости, значительно снижены применением фильтров. Для получения двухполярного напряжения нужен двухполярный (т.е. со средней точкой) источник постоянного напряжения и два ключа управляемых специальным генератором импульсов, скважность которых (т.е. относительная длительность) меняется в противофазе. Схема такой модели приведена на рисунке 4.37.
Рисунок 4.37 – Модель ШИМ преобразователя напряжения Блок «Универсальный мост» это переименованный блок Universal Bridge в котором установлены опции: Number of bridge arms – 1 и Power Electronic device – IGBT/Diodes. Силовой модуль IGBT – новый перспективный элемент электроники. Он создан на основе комбинации биполярных транзисторов с полевыми. Статическая вольтамперная характеристика модуля может быть представлена в виде двух отрезков прямых (рисунок 4.38,а). горизонтальный участок – выключенное состояние модуля, наклонный – включенное. Наклон последнего задается сопротивлением устройства во включенном состоянии. Остаточное напряжение на малых токах учитывается параметром Vf (как у диода). Внутренняя структура модуля показана на рисунке 4.38,б.
а б Рисунок 4.38 – Вольтамперная характеристика и внутренняя структура модуля IBGT
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
203
Он представляет собой ключ, имеющий некоторое сопротивление и индуктивность (они вводятся в окне параметров блока) и управляющий элемент, который по сигналу пришедшему извне открывает или закрывает ключ. Результат моделирования приведен на рисунке 4.39.
Рисунок 4.39 – Ток нагрузки и широтно-модулированное напряжение на нагрузке Как видим, ток в нагрузке имеет незначительные пульсации искажающие его форму. Для анализа искажений, откроем блок Powergui и запустим процесс частотного анализа кнопкой FFT Analysis. При этом открывается окно показанное на рисунке 4.39 в котором представлен перечень имеющихся гармоник в анализируемой величине (в нашем случае токе нагрузки). Видно, что по отношению к основной гармонике 50 Гц остальные значительно меньше (100 Гц – 0,49%, 150 Гц – 0,35%, 200 Гц – 0,57% и т.д.). Мы рассмотрели далеко не все возможности моделирования электротехнических устройств. В прилагаемых демонстрационных файлах к системе MATLAB имеются десятки примеров таких моделей. Доступ к ним осуществляется из меню программы командой Help/Demos. Изучение этих примеров может быть весьма полезно при освоении системы. Многие практические задачи могут быть смоделированы просто корректировкой имеющегося демонстрационного варианта. Учащийся, освоивший работу с программой Simulink может создавать свои собственные библиотеки блоков, что открывает дополнительные возможности для творческой работы с программой.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
204
Рисунок 4.39 – Окно частотного анализа
Заключение Данное пособие не претендует на законченность в описании возможностей для работы с программой MATLAB. Язык технических вычислений (такое название дано этой программе) позволяет по новому взглянуть на процесс изучении курса «Электротехники», «Электрических машин», «Электропривода», «Электроснабжения» и других электротехнических предметов не только с точки зрения студента, учащегося, но и с точки зрения преподавателя. Не скованные узкими рамками вычислительного процесса задания выдаваемые студентами могут быть не только чисто учебными, но и содержать достаточную исследовательскую составляющую. Это дает возможность на самых первых курсах, (электротехника изучается на втором курсе в большинстве вузов), приобщить учащегося к научной работе, заинтересовать его изучаемым предметом и повысить, как следствие, качество учебного процесса. Мы надеемся, что данное пособие послужит учащимся первой ступенькой в освоении современных методов инженерных вычислений и позволит им стать настоящими специалистами в выбранной ими области инженерной деятельности.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
205
Библиографический список 1. Потемкин В.Г. Система MatLAB: Справ, пособие. — М.: ДИАЛОГМИФИ, 1997. - 350 с. 2. Потемкин В.Г. MatLAB 5 для студентов: Справ, пособие. — М : ДИАЛОГ-МИФИ, 1998. - 314 с. 3. Потемкин В.Г., Рудаков П.И. MatLAB 5 для студентов. — 2-е изд., испр. и дополн. - М.: ДИАЛОГ-МИФИ, 1999. — 448 с. 4. Потемкин В.Г. Система инженерных и научных расчетов MatLAB 5х: — В 2-х т. Том 1. — М.: ДИАЛОГ-МИФИ, 1999. — 366 с. 5. Потемкин В.Г. Система инженерных и научных расчетов MatLAB 5.x: — В 2-х т. Том 2. — М.: ДИАЛОГ-МИФИ, 1999. — 304 с. 6. Гультяев А.К. MatLAB 5.2. Имитационное моделирование в среде Windows: Практическое пособие. — СПб.: КОРОНА Принт, 1999. — 288 с. 7. Дьяконов В.П. MATLAB учебный курс. — СПб.: Питер, 2001. — 533 с. 8. Лазарев Ю.Ф. MatLAB 5.х. — К.. "Ирина",BHV, 2000. — 381 с. 9. Краснопрошина А. А. Репникова Н.Б., Ильченко А.А. Современный анализ систем управления с применением MATLAB, Simulink, Control System' Учебное пособие. — К.: "Корншчук", 1999 — 144 с. 10. Дьяконов В.П. Абраменкова И.В. MATLAB 5.0/5 3. Система символьной математики. — М.: Нолидж, 1999. — 640 с. 11. Медведев В.С Потемкин В.Г. Control System Toolbox. MatLAB 5 для студентов. — М.: ДИАЛОГ-МИФИ, 1999. — 287 с. 12. Дьяконов В.П. Simulink 4. Специальный справочник. – СПб.: Питер, 2002. – 518 с.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
206
Содержание Введение ........................................................................................................... 4 1 Основные сведения о системе MATLAB..................................................... 7 1.1 Установка системы MATLAB .............................................................. 14 1.2 Запуск MATLAB и работа в режиме диалога...................................... 15 1.3 MATLAB в роли суперкалькулятора ................................................... 19 1.4 Визуализация вычислений ................................................................... 29 1.4.1 Двумерные графики........................................................................ 29 1.4.2 Трехмерные графики ...................................................................... 35 1.5 Управления вычислительным процессом............................................ 48 1.5.1 Оператор условного перехода........................................................ 50 1.5.2 Оператор переключения................................................................. 51 1.5.3 Операторы цикла ............................................................................ 51 1.5.4 Функции функций........................................................................... 53 1.6 Создание М-файлов .............................................................................. 56 1.6.1 Особенности создания М-файлов в MATLAB.............................. 60 1.7 Сообщения об ошибках и исправление ошибок ................................. 68 2 Пакет для моделирования Simulink 5......................................................... 70 2.1 Основы работы с пакетом..................................................................... 71 2.1.1 Параметры компонентов ................................................................ 74 2.1.2 Параметры моделирования ............................................................ 74 2.1.3 Запуск процесса моделирования.................................................... 77 2.1.4 Использование субмоделей............................................................ 80 2.2 Библиотека модулей (блоков) .............................................................. 80 2.2.1 Раздел Sinks..................................................................................... 81 2.2.3 Раздел Continuous ........................................................................... 96 2.2.4 Раздел Discontinuous ....................................................................... 98 2.2.5 Раздел Math Operations ................................................................. 100 2.2.6 Раздел Discrete .............................................................................. 102 2.2.7 Раздел Look-Up Table ................................................................... 102 2.2.8 Signal Routing ................................................................................ 104 2.3 Пакет SimPowerSystems...................................................................... 105 2.3.1 Библиотека источников электрической энергии Electrical Sources .................................................................................... 107 2.3.2 Библиотека соединительных элементов Connectors ................... 111 2.3.3 Библиотека элементов электрических цепей Elements............... 112 2.2.4 Библиотека длоков энергетической электроники Power ............ 115 Electronics............................................................................................... 115 2.3.5 Библиотека блоков измерительных приборов Measurement ...... 119 2.4. Построение блок-схем ....................................................................... 120 2.4.1 Выделение объектов ..................................................................... 120 2.4.2 Операции с блоками ..................................................................... 120
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
207
3 Расчет электрических цепей ..................................................................... 127 3.1 Цепи постоянного тока ....................................................................... 127 3.1.1 Общие положения и определения................................................ 127 3.1.2 Расчет цепей постоянного тока в системе MATLAB ................. 129 3.2 Цепи переменного однофазного синусоидального тока................... 131 3.2.1 Основные положения и определения .......................................... 131 Электрические машины, аппараты, измерительные приборы работают на действующих значениях........................................................................... 132 3.2.2 Примеры расчетов цепей однофазного переменного ................. 134 синусоидального тока ........................................................................... 134 3.3 Расчет резонансных цепей.................................................................. 140 3.3.1 Общие положения и определения................................................ 140 3.3.2 Резонанс напряжений ................................................................... 141 3.3.3 Резонанс токов .............................................................................. 147 3.4 Расчет трехфазных цепей ................................................................... 152 3.4.1 Общие положения и определения................................................ 152 3.4.1.1 Соединение в звезду............................................................... 152 3.4.1.2 Соединение в треугольник..................................................... 157 3.5 Расчет цепей несинусоидального тока .............................................. 161 3.5.1 Общие положения и определения................................................ 161 3.6 Расчет переходных процессов в линейных цепях............................. 168 3.6.1 Общие положения и определения................................................ 168 3.7 Визуализация расчетов электромагнитных полей ............................ 173 4 Моделирование электрических цепей и устройств ................................. 177 4.1 Моделирование цепей постоянного тока........................................... 177 4.2 Моделирование цепей переменного тока .......................................... 179 4.3 Моделирование резонансных цепей .................................................. 181 4.4 Моделирование трехфазных цепей .................................................... 183 4.5 Моделирование переходных процессов в линейных цепях постоянного и переменного тока ............................................................. 186 4.6 Моделирование схем с трансформаторами ....................................... 189 4.7 Моделирование схем с электрическими машинами ......................... 191 4.8 Моделирование схем преобразовательной техники ......................... 200 Заключение ................................................................................................... 204 Библиографический список ......................................................................... 205 Содержание .................................................................................................. 206
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)
208
Михаил Семенович Лурье Ольга Михайловна Лурье
Применение программы MATLAB при изучении курса электротехники
Научный редактор доц. М.С.Лурье Редактор РИЦ Техн. редактор Т.П.Попова ___________________________________________________________ Сдано в производство 25.01.2006 г. Формат 60х84 1/16 Усл. печ. л. 12,25 Уч.-изд. л. 12,25 Изд. № 566 Тираж экз. 500 Заказ № 56/3 Лицензия ИД № 06543 16.01.2002 г. ___________________________________________________________ Редакционно-издательский центр СибГТУ 660049, г.Красноярск, пр. Мира, 82.
Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)