+ All Categories
Home > Documents > Применение программы MATLAB при изучении курса...

Применение программы MATLAB при изучении курса...

Date post: 28-Jun-2020
Category:
Upload: others
View: 13 times
Download: 0 times
Share this document with a friend
208
М.С.Лурье, О.М.Лурье Применение программы MATLAB при изучении курса электротехники Утверждено редакционно-издательским советом СибГТУ в качестве учебного пособия для студентов всех специальностей и форм обучения Красноярск 2006
Transcript
Page 1: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

М.С.Лурье, О.М.Лурье

Применение программы MATLAB при изучении курса электротехники

Утверждено редакционно-издательским советом СибГТУ

в качестве учебного пособия для студентов всех специальностей и форм обучения

Красноярск 2006

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 2: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

2

Федеральное агентство по образованию

ГОУВПО «Сибирский государственный технологический университет»

М.С. Лурье О.М. Лурье

Применение программы MATLAB при изучении курса электротехники

Для студентов всех специальностей и всех форм обучения

Красноярск 2006

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 3: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 4: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

4

Введение Электротехника - это наука о практическом применении электриче-

ства, что требует навыков практического решения конкретных расчетных задач. Поэтому, при изучении курсов "Теоретические основы электротех-ники", "Общая электротехника", "Промышленная электроника", "Электри-ческие машины", "Основы электропривода" и других специальных дисци-плин много времени уделяется как рассмотрению решения различных за-дач, так и самостоятельному выполнению студентами расчетно-графических заданий.

При выполнении заданий студент должен использовать знания, по-лученные в курсе математики. Это разделы: решения систем линейных ал-гебраических уравнений, комплексные числа, вектора и действия над ни-ми, дифференциальное исчисление, решение обыкновенных дифференци-альных уравнений, ряды Фурье и спектральный анализ, теория функций комплексного переменного и д.р. К сожалению, численные расчеты, вы-полняемые студентами, зачастую производятся с помощью калькулятора, то есть практически вручную. Современная вычислительная техника если и используется, то часто лишь для окончательного оформления работы. В то же время, студент должен не только уметь решать те или иные электро-технические задачи, но и делать это по возможности современными мето-дами, то есть, применяя персональный компьютер.

В последние годы в университетских и инженерно-технических кру-гах мира (прежде всего - Европы) получает широкое распространение но-вая компьютерная система проведения математических расчетов и инже-нерных вычислений - MATLAB (MATrix LABoratory - матричная лабора-тория).

Матрицы широко применяются в сложных математических расчетах, например при решении задач линейной алгебры и математического моде-лирования статических и динамических систем и объектов. Они являются основой автоматического составления и решения уравнений состояния ди-намических объектов и систем. Примером может служить расширение MATLAB - Simulink. Это существенно повышает интерес к системе MATLAB, вобравшей в себя лучшие достижения в области быстрого ре-шения матричных задач.

Однако в настоящее время MATLAB далеко вышла за пределы спе-циализированной матричной системы и стала одной из наиболее мощных универсальных интегрированных СКМ. Слово «интегрированная» указы-вает на то, что в этой системе объединены удобная оболочка, редактор вы-ражений и текстовых комментариев, вычислитель и графический про-граммный процессор.

Основные преимущества MATLAB, выгодно выделяющие ее среди

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 5: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

5

существующих ныне математических систем и пакетов (MathCad, Mathe-matica и др.), заключаются в следующем:

система 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)

Page 6: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

6

ствления сложных численных расчетов, моделирования поведения техни-ческих и физических систем, оформления результатов этих расчетов в на-глядном виде.

В целом MATLAB - это уникальная коллекция реализаций совре-менных численных методов компьютерной математики, созданных за по-следние три десятка лет. Она вобрала в себя и опыт, правила и методы ма-тематических вычислений, накопленные за тысячи лет развития математи-ки. Это сочетается с мощными средствами графической визуализации и даже анимационной графики. Систему с прилагаемой к ней обширной до-кументацией вполне можно рассматривать как фундаментальный много-томный электронный справочник по математическому обеспечению ЭВМ - от массовых персональных компьютеров до супер-ЭВМ. Увы, пока пред-ставленный полностью лишь на английском и частично на японском язы-ках.

MATLAB предназначена для довольно сложных расчетов Это и оп-ределяет круг ее пользователей: инженеры-проектировщики и разработчи-ки новых устройств, студенты и аспиранты, научные работники, физики и математики. Система приспособлена к любой области науки и техники, содержит средства, которые особенно удобны для электро- и радиотехни-ческих расчетов (операции с комплексными числами, матрицами, вектора-ми и полиномами, обработка данных, анализ сигналов и цифровая фильт-рация).

В данной работе, сделана попытка, дать некоторые начальные сведе-ния о системе MATLAB, работе с ней, а также об использовании одного из самых эффективных ее приложений пакета Simulink для решения различ-ных задач электротехники. Рассмотрены вопросы расчета цепей постоян-ного и переменного тока, анализа переходных процессов и цепей несину-соидального тока. Приведены некоторые сведения о решении задач из об-ласти теории поля. Изложение каждого раздела предваряется краткими теоретическими сведениями и снабжено примерами расчетов. Все приме-ры содержат, как текст программы, или схему модели, так и полученные в ходе решения результаты в виде числовых или графических данных. Про-граммы снабжены комментариями и необходимыми пояснениями. Студент может использовать их для решения своих домашних заданий, минималь-но скорректировав текст.

Данное пособие будет полезно при выполнении расчетно-графических, курсовых работ, а так же для дипломного проектирования студентам всех специальностей, изучающим электротехнику, а так же сту-дентам, изучающим другие электротехнические дисциплины.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 7: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

7

1 Основные сведения о системе MATLAB Система MATLAB была разработана Молером (С. В. Moler) и с кон-

ца 70-х гг. широко использовалась на больших ЭВМ. В начале 80-х гг. Джон Литл (John Little) из фирмы MathWorks, Inc. разработал версии сис-темы PC MATLAB для компьютеров класса IBM PC, VAX и Macintosh. Сейчас свыше десятка популярных компьютерных платформ могут рабо-тать с системой MATLAB.

К расширению системы были привлечены крупнейшие научные школы мира в области математики, программирования и естествознания. И вот теперь появилась версия этой системы - MATLAB 6. Привлекательной особенностью системы является то, что она содержит развитую встроен-ную матричную и комплексную арифметику. Система поддерживает вы-полнение операций с векторами, матрицами и массивами данных, реализу-ет сингулярное и спектральное разложения, расчет ранга и чисел обуслов-ленности матриц, поддерживает работу с алгебраическими полиномами, решение нелинейных уравнений и задач оптимизации, интегрирование в квадратурах, решение дифференциальных и разностных уравнений, по-строение различных видов графиков, трехмерных поверхностей и линий уровня. В ней реализована удобная операционная среда, позволяющая фор-мулировать проблемы и получать решения в привычной, математической форме, не прибегая к рутинному программированию.

Основным объектом системы MATLAB является прямоугольный чи-словой массив, который допускает комплексные элементы и ввод матриц без явного указания их размеров. Система позволяет решать многие вы-числительные задачи за значительно меньшее время, нежели то, которое необходимо для написания соответствующих программ на языках FOR-TRAN, Basic и С.

Система MATLAB выполняет операции с векторами и матрицами даже в режиме непосредственных вычислений без какого-либо програм-мирования. Ею можно пользоваться как мощнейшим калькулятором, в ко-тором наряду с обычными арифметическими и алгебраическими дейст-виями могут использоваться такие сложные операции, как обращение мат-рицы, вычисление ее собственных значений и векторов, решение систем линейных алгебраических уравнений и много других. Однако основная от-личительная черта системы - это легкость ее модификации и адаптации к конкретным задачам пользователя. Пользователь может ввести в систему любую новую команду, оператор или функцию и пользоваться затем ими так же просто, как и встроенными операторами и функциями. При этом, в отличие от языков программирования, таких как Basic, Pascal или С, нет необходимости в их предварительном описании. Новые программы, функ-ции и процедуры в системе MATLAB сохраняются в виде файлов, имею-

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 8: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

8

щих расширение .m. Это делает набор операторов и функций практически неограниченным.

В базовый набор слов системы входят: спецзнаки; знаки арифме-тических и логических операций; арифметические, тригонометрические и некоторые специальные математические функции; функции быстрого пре-образования Фурье и фильтрации; векторные и матричные функции; сред-ства для работы с комплексными числами; операторы построения графи-ков в декартовой и полярной системах координат, трехмерных поверхно-стей и т.д. Таким образом, MATLAB предоставляет пользователю большой набор готовых средств (около половины из них - внешние расширения в виде М-файлов).

Система MATLAB имеет собственный язык программирования, на-поминающий Basic. Запись программ в системе является традиционной и поэтому привычной для большинства пользователей персональных ком-пьютеров. К тому же система дает возможность редактировать программы при помощи любого привычного для пользователя текстового редактора.

MATLAB имеет большие возможности для работы с сигналами, для расчета и проектирования аналоговых и цифровых фильтров, для построе-ния их частотных, импульсных и переходных характеристик. Имеются в наличии и средства для спектрального анализа и синтеза, в частности, для реализации прямого и обратного преобразования Фурье. Благодаря этому система довольно привлекательна для проектирования электронных уст-ройств.

С системой MATLAB поставляется свыше сотни М-файлов, которые содержат демонстрационные примеры и определения новых операторов и функций. Эта библиотека, все файлы которой подробно прокомментирова-ны, - настоящая сокровищница прекрасных примеров программирования на языке системы. Изучение этих примеров и возможность работы в режи-ме непосредственных вычислений значительно облегчают знакомство с системой серьезных пользователей, заинтересованных в использовании математических расчетов.

Работа в среде MATLAB может осуществляться в двух режимах: в режиме калькулятора, когда вычисления производятся непо-

средственно после набора очередного оператора или команды MATLAB; при этом значения результатов вычисления могут при-сваиваться некоторым переменным, либо результаты получаются непосредственно, без присваивания (как в обычных калькулято-рах);

путем вызова программы, составленной и записанной на диске, на языке MATLAB, которая содержит все необходимые команды, обеспечивающие ввод данных, организацию вычислений и вывод результатов на экран (программный режим).

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 9: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 10: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 11: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 12: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

12

Благодаря текстовому формату М-файлов пользователь может ввести в систему любую новую команду, оператор или функцию и затем пользо-ваться ими столь же просто, как и встроенными операторами или функ-циями. При этом в отличие от таких языков программирования, как Бей-сик, Си или Паскаль не требуется никакого объявления этих новых функ-ций. Это роднит MATLAB с языками Лого и Форт, имеющими словарную организацию операторов и функций и возможности пополнения словаря новыми определениями-словами. Но, поскольку новые определения в сис-теме MATLAB хранятся в виде файлов на диске, это делает набор операто-ров и функций практически неограниченным.

В базовый набор слов системы входят спецзнаки, знаки арифметиче-ских и логических операций, арифметические, алгебраические, тригоно-метрические и некоторые специальные функции, функции быстрого пре-образования Фурье и фильтрации, векторные и матричные функции, сред-ства для работы с комплексными числами, операторы построения графи-ков в декартовой и полярной системах координат, трехмерных поверхно-стей и т. д. Словом, MATLAB предоставляет пользователю обширный на-бор готовых средств (большая часть из них - это внешние расширения в виде m-файлов).

Многие математические системы создавались исходя из предполо-жения, что пользователь будет решать свои задачи, практически не зани-маясь программированием. Однако с самого начала было ясно, что подоб-ный путь имеет недостатки и, вообще говоря, порочен. Ведь многие задачи нуждаются в развитых средствах программирования, которые упрощают запись алгоритмов задач и порой открывают новые методы создания алго-ритмов.

С одной стороны, MATLAB содержит огромное число операторов и функций, которые решают множество практических задач, для чего ранее приходилось готовить достаточно сложные программы. К примеру, это функции обращения или транспонирования матриц, вычисления значений производной или интеграла и т. д. Число таких функций с учетом пакетов расширения системы уже достигает многих тысяч и непрерывно увеличи-вается.

Но, с другой стороны, система MATLAB с момента своего создания создавалась как мощный математико-ориентированный язык программи-рования высокого уровня. И многие рассматривали это как важное досто-инство системы, свидетельствующее о возможности ее применения для решения новых, наиболее сложных математических задач.

Система MATLAB имеет входной язык, напоминающий Бейсик (с примесью Фортрана и Паскаля). Запись программ в системе традиционна и потому привычна для большинства пользователей компьютеров. К тому же система дает возможность редактировать программы с помощью любого

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 13: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 14: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

14

Уже в ранних версиях была введена эффектная возможность быстро-го вращения графиков в любом направлении. В MATLAB 6 она улучшена — теперь вращать в пространстве можно даже плоскость с двумерными графиками.

1.1 Установка системы MATLAB Версия системы MATLAB 6 - весьма громоздкий программный ком-

плекс, который (при полной установке) требует до 1000 - 1500 Мбайт дис-ковой памяти (в зависимости от конкретной поставки, полноты справочной системы и числа устанавливаемых пакетов прикладных программ). Поэто-му он поставляются исключительно на компакт-дисках. Полный комплект системы размещается на двух компакт-дисках только для чтения (CD-ROM), на одном из которых размещены 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)

Page 15: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 16: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 17: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 18: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

18

Продолжение таблицы 1 Esc Очистка строки ввода Ins Включение/выключение режима вставки PgUp Перелистывание страниц сессии вверх PgDn Перелистывание страниц сессии вниз Эти возможности кажутся примитивными, но позволяют пользовате-

лю быстро работать в стиле первых версий MATLAB для MS-DOS. Они обеспечивают важное свойство новых версий систем — их совместимость со старыми версиями в части преемственности навыков работы. Позже вы увидите, что в новых версиях есть вполне современный редактор со сред-ствами отладки создаваемых документов - М-файлов.

Обратите особое внимание на применение клавиш вверх и вниз. Они используются для подстановки после маркера строки ввода » ранее вве-денных строк, например для их исправления, дублирования или дополне-ния. При этом указанные клавиши обеспечивают перелистывание ранее введенных строк снизу вверх или сверху вниз. Такая возможность сущест-вует благодаря организации специального стека, хранящего строки с ис-полненными ранее командами 1.2.2 Команды управления окном

Полезно сразу усвоить некоторые команды управления окном ко-мандного режима:

clс - очищает экран и размещает курсор в левом верхнем углу пус-того экрана.

home - возвращает курсор в левый верхний угол окна. echo <file_name> on - включает режим вывода на экран текста

Script-файла (файла-сценария). echo <file_name> off - выключает режим вывода на экран текста

Script-файла. echo <fi1e_name> - меняет режим вывода на противоположный. 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)

Page 19: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 20: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 21: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 22: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 23: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 24: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 25: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

25

десятичный показатель числа записывается в виде целого числа после предварительной записи символа е;

между записью мантиссы числа и символом е (который отделяет ее от показателя) не должно быть никаких символов, включая и символ пробела.

Если, например, ввести в командном окне MATLAB строку » 1.20357651e-17 то после нажатия клавиши [Enter] в этом окне появится следующая

запись » 1.20357651e-17 ans = 1.2036e-017

Как видно, число, которое выведено на экран, не совпадает с введен-ным. Это обусловлено только тем, что установленный по умолчанию фор-мат представления чисел (Short) не позволяет вывести больше 6 значащих цифр числа. На самом деле введенное число внутри MATLAB сохраняется со всеми введенными цифрами. Например, если выбрать формат Long е, то, повторяя те же действия, получим результат, где все цифры ото-бражены верно.

Выбирая нужный вид представления чисел с помощью мыши, можно обеспечить в дальнейшем вывод чисел в командное окно именно в такой форме.

Следует помнить, что: введенные числа и результаты всех вычислений в системе MAT-

LAB сохраняются в памяти ПК с относительной погрешностью около 2.е-16 (т.е. с точными значениями в 15 десятичных разря-дах);

диапазон представления модуля действительных чисел лежит в промежутке между 10~308 и 10+308.

Следует отметить, что результат выводится в виде (формате), кото-рый определяется предварительно установленным форматом представле-ния чисел Этот формат может быть установлен с помощью команды Pref-erences из меню 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)

Page 26: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 27: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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 - 0.83759i » y=abs(x) y = 2.5304

В 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)

Page 28: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

28

Приспособленность большинства функций MATLAB к опериро-ванию с комплексными числами позволяет значительно проще строить вычисления с действительными числами, результат которых является ком-плексным (например, находить комплексные корни квадратных уравне-ний). 1.3.3 Элементарные математические функции

Функции — это имеющие уникальные имена объекты, выполняющие определенные преобразования своих аргументов и при этом возвращаю-щие результаты этих преобразований. Возврат результата - отличительная черта функций. При этом результат вычисления функции с одним выход-ным параметром подставляется на место ее вызова, что позволяет исполь-зовать функции в математических выражениях, например функцию sin в 2*sin(pi/2). Функции в общем случае имеют список аргументов (параметров), заклю-ченный в круглые скобки. Общая форма вызова функции в MATLAB име-ет следующий вид:

<Имя результата> = <Имя функции>(<Список имен аргументов>) В языке MATLAB предусмотрены элементарные арифметические

функции, приведеные в таблицах 2, 3 и 4. Таблица 2 - Тригонометрические и гиперболические функции sin(Z) синус числа Z sinh(Z) гиперболический синус asin(Z) арксинус (в радианах, в диапазоне от -к/2 до +тс/2) asinh(Z) обратный гиперболический синус cos(Z) Косинус cosh(Z) гиперболический косинус acos(Z) арккосинус (в диапазоне от 0 до тс) acosh(Z) обратный гиперболический косинус tan(Z) Тангенс tanh(Z) гиперболический тангенс atan(Z) арктангенс (в диапазоне от -π/2 до +π/2) atan2(X,Y) четырехквадрантный арктангенс (угол в диапазоне от

-π до +π между горизонтальным правым лучом и лучом, проходящим через точку с координатами 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)

Page 29: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

29

Прождолжение таблицы 2

cot(Z) Котангенс coth(Z) гиперболический котангенс acot(Z) Арккотангенс acoth(Z) обратный гиперболический котангенс

Таблица 3 - Экспоненциальные функции exp(Z) Экспонента числа Z Iog(Z) Натуральный логарифм loglO(Z) Десятичный логарифм sqrt(Z) Квадратный корень из числа Z abs(Z) Модуль числа Z

Таблица 4 - Целочисленные функции fix(Z) Округление до ближайшего целого в сторону нуля floor(Z) Округление до ближайшего целого в сторону отрицательной бесконечно-

сти ceil(Z) Округление до ближайшего целого в сторону положительной бесконечно-

сти round(Z) Обычное округление числа Z до ближайшего целого rem(X,Y) Вычисление остатка от деления X на Y sign(Z) Вычисление сигнум-функции числа 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)

Page 30: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 31: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 32: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 33: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 34: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 35: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 Y= 13 13 13 13 14 14 14 14 15 15 15 15 16 16 16 16 17 17 17 17 Приведем еще один пример применения функции meshgrid:

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 36: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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,:) и соединяет их отрезками прямых.

Ниже дан пример построения трехмерной поверхности, описываемой функцией 22),( yxyxZ :

[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)

Page 37: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 38: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 39: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 40: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 41: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 42: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 43: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 44: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 45: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 46: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 47: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 48: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 49: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

49

команд. Поэтому сложные, с прерываниями, запутанными переходами по оп-

ределенным условиям, с часто повторяемыми однотипными действиями вычисления, которые, к тому же, необходимо проводить неоднократно при измененных входных данных, требуют их специального оформления в ви-де записанных на диске файлов, т.е. в виде программ. Преимущество про-грамм в том, что становится возможным неоднократное обращение к од-ним и тем же операторам и к программе в целом. Создание программ по-зволяет значительно упростить и сократить процесс подготовки повторяе-мых вычислений, сделать процесс вычислений более наглядным и про-зрачным, а благодаря этому — резко уменьшить вероятность появления принципиальных ошибок при разработке программ. Кроме того, в про-граммах появляется возможность автоматизировать и процесс изменения значений входных параметров в диалоговом режиме.

Для организации вычислительного процесса, который записывается в виде некоторого текста программы, необходимы операторы управления. При этом к операторам управления вычислительным процессом обычно относят операторы безусловного перехода, условных переходов (разветв-ления вычислительного процесса) и операторы организации циклических процессов. Однако система MATLAB построена таким образом, что эти операторы могут быть использованы и при работе MATLAB в режиме калькулятора.

В языке MATLAB отсутствует оператор безусловного перехода, и поэтому нет понятия метки. Это является недостатком языка MATLAB и затрудняет организацию возвращения вычислительного процесса к любо-му предыдущему или последующему оператору программы.

Все операторы цикла и условного перехода построены в MATLAB в виде сложного оператора, который начинается служебным словом if, while, switch или for и заканчивается служебным словом end. Операторы между этими словами воспринимаются системой как части одного сложного опе-ратора. Поэтому нажатие клавиши [Enter] для перехода к следующей стро-ке не приводит в данном случае к выполнению этих операторов. Выполне-ние операторов начинается только тогда, когда введена "закрывающая скобка" сложного оператора в виде слова end, а затем нажата клавиша [En-ter]. Если несколько сложных операторов такого типа вложены один в дру-гой, вычисления начинаются лишь тогда, когда записан конец (end) наибо-лее охватывающего (внешнего) сложного оператора. Из этого вытекает возможность осуществления даже в режиме калькулятора довольно слож-ных и объемных (состоящих из многих строк и операторов) вычислений, если они охвачены сложным оператором.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 50: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 51: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 52: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 53: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

53

ла. В этом случае <операторы> внутри цикла выполняются несколько раз (каждый раз при новом значении управляющей переменной) до тех пор, пока значение управляющей переменной не выйдет за пределы интервала между <НЗ> и <КЗ>. Если параметр <Ш> не указан, по умолчанию его значение принимается равным единице.

Чтобы досрочно выйти из цикла (например, при выполнении некото-рого условия), применяют оператор break. Если в программе встречается этот оператор, выполнение цикла досрочно прекращается и начинает вы-полняться следующий после слова end оператор.

Для примера используем предыдущее задание: a=[' i ',' x ',' sin(x) ']; for i=1:5 x=i/5; si=sin(x); if i==1 disp(a) end disp([i,x,si]) end i x sin(x) 1 0.2 0.19867 2 0.4 0.38942 3 0.6 0.56464 4 0.8 0.71736 5 1 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)

Page 54: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

54

функции>. Функция quad использует квадратурные формулы Ньютона-Котеса четвертого порядка.

Аналогичная процедура quad8 использует более точные формулы 8-го порядка.

Интегрирование обыкновенных дифференциальных уравнений осу-ществляют функции ode23 и ode45. Они могут применяться как для реше-ния простых дифференциальных уравнений, так и для моделирования сложных динамических систем.

Известно, что любая система обыкновенных дифференциальных уравнений (ОДУ) может быть представлена в так называемой форме Коши.

),( txfdtdy , (1.1)

где у - вектор переменных состояния системы; 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)

Page 55: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 56: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 57: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 58: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 59: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 60: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

60

при обнаружении файла-функции он компилируется и затем ис-полняется, а созданные машинные коды хранятся в рабочей об-ласти системы MATLAB.

Последняя конструкция vаг=выражение вводится, если требуется, чтобы функция возвращала результат вычислений.

Приведенная форма файла-функции характерна для функции с од-ним выходным параметром. Если выходных параметров больше, то они указываются в квадратных скобках после слова function. При этом струк-тура модуля имеет следующий вид:

function [varl,var2....]=f_name(Список_параметров) %Основной комментарий %Дополнительный комментарий Тело файла с любыми выражениями Как видим, первые строки М-файлов служат для описания их назна-

чения. Они выводятся на экран дисплея после команды help<Имя файла>

Считается правилом хорошего тона вводить в M-файлы достаточно подробные текстовые комментарии. Без таких комментариев даже разра-ботчик программных модулей быстро забывает о сути собственных реше-ний. В текстовых комментариях и в символьных константах могут исполь-зоваться буквы русского алфавита — при условии, что установлены со-держащие эти буквы наборы шрифтов.

1.6.1 Особенности создания М-файлов в MATLAB Создание программы в среде MATLAB осуществляется при помощи

либо собственного встроенного (начиная с версии MATLAB 5), либо сто-роннего текстового редактора, который вызывается автоматически, если он предварительно установлен с помощью команды Preferences меню File. Окно предварительно установленного редактора появляется на экране, ес-ли перед этим вызвана команда М-file из подменю New или выбрано на-звание одного из существующих М-файлов при вызове команды Open M-file из меню 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)

Page 61: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

61

но наблюдать исполнение М-файла — в нашем случае это построение ри-сунка в графическом окне (рисунок 1.21) и вывод надписи о делении на ноль в ходе вычисления функции sin(x)/x в командном окне системы.

Рисунок 1.20 – Окно редактора М-файлов

Рисунок 1.21 – График функции записанной в окнге радактора М-файлов

Для удобства работы с редактором-отладчиком строки программы в нем последовательно нумеруются. Редактор является многооконным; окно

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 62: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 63: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

63

сте точек прерывания (breakpoints). Они устанавливаются (и сбра-сываются) с помощью кнопки Set/Clear Breakpoint. Сброс всех точек пре-рывания обеспечивается кнопкой Clear All Breakpoints

Для установки точки прерывания необходимо поместить текстовый курсор напротив указанного выражения и нажать кнопку Set/ Clear Break-point Теперь при запуске программа будет выполнена до точки прерывания, по-сле чего текущие значения переменных будут выведены в окне 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)

Page 64: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 65: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

65

лена". Имена переменных могут содержать лишь буквы латинского ал-

фавита или цифры и должны начинаться с буквы. Общее число символов в имени может достигать 19. В именах переменных мо-гут использоваться как прописные, так и строчные буквы. Осо-бенностью языка MATLAB является то, что прописные и строч-ные буквы в именах различаются системой. Например, символы "а" и "А" могут использоваться в одной программе для обозначе-ния разных величин.

1.6.1.3 Создание простейших файл-функций (процедур) Как было отмечено ранее, файл-функция (процедура) должна начи-

наться со строки заголовка: function[<ПКВ>] = <Имя процедуры>(<ПВВ>). Если перечень конечных (выходных) величин (ПКВ) содержит толь-

ко один объект (в общем случае — матрицу), то файл-функция представ-ляет собой обычную функцию (одной или нескольких переменных). Фак-тически даже в этом простейшем случае файл-функция является уже про-цедурой в обычном смысле других языков программирования, если вы-ходная величина является вектором или матрицей. Первая строка в этом случае имеет вид:

function <Имя переменной> = <Имя процедуры>(<ПВВ>). Если же в результате выполнения файл-функции должны быть опре-

делены (вычислены) несколько объектов (матриц), такая файл-функция представляет собой уже более сложный объект, который в программиро-вании обычно называется либо процедурой (в языке Паскаль), либо под-программой. Общий вид первой строки в этом случае становится таким.

function [yl, у2, ..., yN] = <Имя процедуры>(<ПВВ>), т.е. перечень выходных величин yl, у2, ..., yN должен быть представлен как вектор-строка с элементами yl, у2, ..., yN (все они могут быть матрицами).

В простейшем случае функции одной переменной заголовок приоб-ретет вид:

function у = func(x), где func — имя функции (М-файла).

В качестве примера рассмотрим составление М-файла для функции

)(cos)(sin)()( 4431 xxxctgdxfy . (1.2)

Для этого следует активизировать меню File командного окна MAT-LAB и выбрать в нем сначала команду New, а затем команду M-file. После

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 66: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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 0 + 0.8799i 0.3783 Columns 5 through 7 0.3339 0.0706 -0.2209

Примечание Возможность использования сформированной процедуры, как для

отдельных чисел, так и для векторов и матриц обусловлена применением в записи соответствующего М-файла вместо обычных знаков арифметиче-ских действий их аналогов с предшествующей точкой.

Чтобы избежать вывода на экран нежелательных промежуточных ре-зультатов, необходимо в тексте процедуры все вычислительные операторы завершать символом ";".

Как показывают приведенные примеры, имена переменных, ука-занные в заголовке файл-функции могут быть любыми, совпадать или нет с именами, используемыми при обращении к этой файл-функции, т.е. они носят формальный характер. Важно, чтобы структура обращения полно-стью соответствовала структуре заголовка в записи текста М-файла и что-бы переменные в этом обращении имели тот же тип и размер, как и в заго-ловке М-файла.

Чтобы получить информацию о созданной процедуре, достаточно набрать в командном окне команду:

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 67: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 68: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 69: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 70: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 71: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

71

чения и модификации библиотеке компонентов (блоков). Она включает источники сигналов с практически любыми временными зависимостями, масштабирующие, линейные и нелинейные.

Возможности Simulink охватывают задачи математического моде-лирования сложных динамических систем в физике, электро- и радиотех-нике, в биологии и химии - словом, во всех областях науки и техники. Этим объясняется популярность данного пакета как в университетах и ин-ститутах, так и в научных лабораториях.

2.1 Основы работы с пакетом После инсталляции Simulink (отдельно от MATLAB или в его со-

ставе) он автоматически интегрируется с MATLAB. Внешне это выражает-ся появлением кнопки Simulink в панели инструментов системы MATLAB (рисунок 2.1). При нажатии этой кнопки открывается окно интегрирован-ного браузера библиотек, показанное на рисунке 2.2.

Рисунок 2.1 – Окно MATLAB с кнопкой Simulink

В окне браузера содержится дерево компонентов библиотек Simu-link. Для просмотра того или иного раздела библиотеки достаточно выде-лить его мышью - в правой части окна 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)

Page 72: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 73: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

73

Simulation - управление процессом моделирования (старт, пауза, вывод окна настройки параметров моделирования);

Format - операции форматирования модели (смена шрифтов, ре-дактирование надписей, повороты блоков, использование тени от блоков, операции с цветами линий блоков, их фоном и общим фоном;

Tools - управление видом анализа (в линейной области и в ре-жиме реального времени RTW).

Рисунок 2.3 – Библиотека примеров моделей

Рисунок 2.4 – Пример модель созданной в пакете Simulmk

(модель аттрактора Лоренца)

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 74: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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 (Решатель). Она позволяет уста-новить параметры решающего устройства системы моделирования Simu-link.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 75: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 76: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 77: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 78: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 79: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

79

решении средствами Simulink) дает дополнительную гарантию правильно-сти решения и корректности создаваемых моделей.

Помимо самой модели в окне ее редактирования можно вводить тек-стовые комментарии (аннотации) и гиперссылки в виде прямоугольников разного размера с надписями.

На рисунке 2.9, который представляет модель линейного фильтра, приведена гиперссылка на информационное окно, показанное там же. При активизации гиперссылки (это квадратик со знаком ?) выводится информа-ционное окно (рисунок 2.9).

Рисунок 2.9 – Модель линейного фильтра

Рисунок 2.10 – Информационное окно

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 80: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 81: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 82: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 83: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 84: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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 лишь в случае, если после их ввода нажата кнопка Ap-ply в нижней части окна Properties или ОК.

2.2.1.2 Блок XY Graph Этот блок также представляет собой смотровое окно. В отличие от

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 85: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 86: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 87: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 88: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 89: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 90: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 91: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 92: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 93: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 94: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 95: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 96: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 97: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 98: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 99: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

99

чувствительности. Параметров настройки здесь два - начало и конец зоны нечувствительности.

Hit Crossing - определяет момент времени, когда входной сигнал пересекает заданное значение.

Quantizer (Квантователь) осуществляет дискретизацию входного сигнала по его величине. Параметр настройки блока один - Quan-tization interval (Интервал квантования) - величина дискрета по уровню входного сигнала.

Rate Limiter (Ограничение скорости) старается отслеживать за входным сигналом в условиях задания ограничений на скорость нарастания и спада сигнала.

Relay (Релейный блок) имеет разрывную передаточную функцию с гистерезисом (или без него), подобную передаточной функции хорошо известного триггера Шмитта. Если сигнал на входе меньше некоторого порога, то на выходе получается сигнал одно-го уровня (обычно низкого), а если порог превышен, то сигнал на выходе становится другого уровня (обычно высокого). Если при спаде сигнала достигается другой порог, то сигнал на выходе также скачком меняется.

Saturation (Насыщение) реализует линейную зависимость с ог-раничением. Выходная величина этого блока совпадает с вход-ной, если последняя находится внутри указанного диапазона. Ес-ли же входная величина выходит за рамки диапазона, то выход-ной сигнал принимает значение ближайшей из границ. Значения границ диапазона устанавливаются в окне настройки блока.

Рисунок 2.30 – Библиотека Discontinuous

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 100: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 101: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 102: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

102

Блок Combinatorical Logic обеспечивает преобразование входного сигнала в соответствии с правилами, задаваемыми так называемой таб-лицей истинности. Эта таблица формируется по правилам, принятым в теории конечных автоматов.

Помимо рассмотренных групп блоков этой библиотеки в нее входят блоки:

Блоки масштабирования Gain и Slider Gain. Они служат умножения данных на заданный коэффициент - константу. В блоке Gain константа вводится в окне параметров (по умолчанию 1), а в блоке Slider Gain ее можно выбирать с помощью ползунка. Для масштабирования матричных данных служит блок Matrix Gain.

Блоки обработки комплексных данных Complex to Magnntude-Angle и 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)

Page 103: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 104: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 105: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 106: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 107: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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 (Н·-м) Inertia (момент инерции) kilogram (meter)2 kg-m2(Kr·-M2) Friction factor (коэффициент тре-ния) newton·meter·second N·m·s (Н·м·с)

В этой таблице приведены лишь основные параметры и единицы из-мерения. Некоторые из параметров будут рассмотрены по мере описания моделей.

2.3.1 Библиотека источников электрической энергии Electrical Sources

В состав библиотеки Electrical Sources входят блоки, показанные на рисунке 2.36.

Источники электрической энергии являются первичными компонен-тами энергетических систем и устройств. Большинство элект-ротехнических устройств является потребителями энергии, выра-батываемой этими источниками, либо ее преобразователями. Пакет Sim-PowerSystems имеет модели источников, позволяющих имитировать ре-альные источники электроэнергии.

В библиотеку включено семь типов источников электрической энер-гии:

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 108: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 109: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

109

Рисунок 2.37 показывает пример применения модели источника пе-ременного тока. Здесь показан случай суммирования двух токов в резисто-ре 50 Ом. В результате суммирования двух токов с разными частотами (50 и 60 Гц) наблюдается биение тока с разностной частотой.

Рисунок 2.37 - Схема, демонстрирующая суммирование токов от двух источников (слева), и осциллограмма тока в резисторе (справа)

Риунок 2.38. Схема, суммирования напряжений от двух источников

напряжения (слева) и осциллограмма результирующего сигнала

+- v

Utest Scope

AC Voltage Source1

AC Voltage Source 2

50 Ohm

Scope+

i-

I test

ACCurrentSource1

ACCurrentSource

50 Ohm

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 110: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 111: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

111

Гц. Операция перемножения токов ведет к тому, что цепь в данном приме-ре становится нелинейной. Обратите внимание на вид окна осциллографа Scope. В окне его прароаметров (рисунок 2.14) опция Tick labels установ-лена в значение – none.

Управляемый источник напряжения Controlled Voltage Source зада-ет на зажимах внешней цепи напряжение, которое зависит от начального напряжения и величины управляющего сигнала. Его применение и окно параметров аналогично предыдущему блоку.

Рисунок 2.39 – Пример применения управляемого источника тока Управляемые источники напряжения и тока позволяют моделиро-

вать такой важный класс электрических цепей, как параметрические цепи (цепи, параметры которых зависят от времени).

2.3.2 Библиотека соединительных элементов Connectors Состав библиотеки Connectors приведен на рисунке 2.40. Большинство соединительных элементов имеют вполне очевидное

назначение. Например, заземляющие элементы служат для подключения других элементов к общему проводу - земле (блок Ground).

Элементы L Connector и T Connector служат для соединения про-водников образующих ветви схемы. Эти элементы не имеют параметров.

Более детально эти элементы рассматривать не имеет смысла ввиду очевидности их назначения.

Scope

Product

+i-

Current Measurement

signal

Control led Current Source1

Constant

1A, 5 Hz

100A, 60 Hz

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 112: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 113: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 114: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

114

емкости, что превращает ее также в проводник). Это правило модифика-ции распространяется и на другие сложные компоненты, например нак мо-дели ключей (они будут описаны ниже). При этом меняется и вид изобра-жения блока.

Благодаря этому правилу число простых моделей в пакете сокраще-но. Кроме того, это правило позволяет быстро модернизировать отдельные цепи, например превращать резистор R в RL- или RLC-цепь, не вводя но-вые компоненты в уже составленную схему, а просто задав их в окне па-раметров RLC-цепей. Примеры моделирования RLC-цепей будут приве-дены далее.

Модель линейного трансформатора Linear Transformer задается индуктивностью Lm и сопротивлением потерь в сердечнике Rm первич-ной обмотки трансформатора, а также омическими сопротивлениями Ri, и индуктивностями рассеяния Li, всех обмоток трансформатора (i=1,2, 3).

При описании параметров трансформатора используется дополни-тельная система параметров, принятая в европейской промышленности и называемая в описании пакета pu-системой. При этом вводятся обозначе-ния, представленные далее и показаны примеры пересчета. Запись обозна-чений здесь не вполне корректна, так как при формальном математическом подходе означает pu = Rbilst. = Lbasu, что является грубой ошибкой. На самом деле в системе pu-единиц под 1 pu понимаются разные параметры.

PnVnpuRbase

2)(1 ,

nfRbasepuLbase

21

,

10250

)1035,424(5

23Rbase ,

H91,16023,720

Lbase ,

1,44 3,720002,01 puR , H0,1528 H91,108,01 puL ,

103,6 H3,720500 5puRm . В окне параметров трансформатора некоторые параметры задаются

списками, поскольку трансформатор может иметь несколько обмоток. Модель линейного трансформатора значительно идеализирована, по-

этому, в библиотеку включена модель нелинейного трансформатора Satur-able Transformer. Она отличается от модели линейного трансформатора тем, что индуктивность первичной обмотки Lm заменена на нелинейную индуктивность Lsat. Для нелинейных трансформаторов также может ис-пользоваться pu-система параметров. В примерах данной работы, мы не

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 115: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

115

применяем эту модель, поэтому более подробно ее не рассматриваем. Для моделирования взаимной индуктивности в пакете SimPowerSys-

tems служит блок взаимной индуктивности Mutual Inductance на основе идеального трансформатора. Он соответствует теоретической модели вза-имной индуктивности.

Для имитации выключателей (рубильников) служит управляемый выключатель Breaker. Он обеспечивает включение или выключение пере-менного тока. Пример применения этого элемента будет рассмотрен далее. В окне параметров выключателя возможно задание паразитных сопротив-лений и индуктивности выключателя, что позволяет (при необходимости) моделировать эффекты, связанные с неидеальностью выключателя.

Для моделирования процессов в длинных линиях в пакет SimPower-Systems включены модели линий передачи с сосредоточенными и распре-деленными параметрами 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)

Page 116: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 117: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 118: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 119: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 120: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

120

В первом (Available Measurement) после нажатия кнопки Update появляются соответствующие измеряемые величины. Все или часть из них могут быть с помощью кнопки >> переведены во второе окно (Selected Measurement) для измерения и регистрации результатов. Флажок Plot se-lected 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)

Page 121: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

121

мой модели. Блоки можно копировать и при помощи команд меню. Последова-

тельность действий при этом такова:

В окне библиотеки или модели выделите блок/блоки, подлежащие копированию.

Выберите в меню Edit (Правка) активного окна команду Сору (Копировать).

Сделайте активным окно, в которое нужно скопировать блок, и выберите в нем команду Paste (Вставить) из меню Edit (Правка). Каждому скопированному блоку Simulink присваивает имя.

Первый скопированный блок будет иметь то же имя, что и блок в библиотеке. Каждый следующий блок того же типа будет иметь такое же имя с добавлением порядкового номера. Пользователь может переимено-вать блок. При копировании блок получает те же значения настраиваемых параметров, что и блок-оригинал.

Перестановка блока внутри модели осуществляется путем перетас-кивания его мышью. При этом Simulink автоматически перерисовывает линии, связывающие этот блок с другими блоками.

Чтобы переставить несколько блоков вместе с соединительными ли-ниями и с сохранением относительных расстояний, необходимо их выде-лить и перетащить мышью один из блоков. Все другие выделенные блоки также займут новые места.

Копирование блоков одной модели можно выполнить двумя спосо-бами:

Перетащить блок в нужное положение, удерживая клавишу [Ctrl].

Перетащить блок, удерживая нажатой правую кнопку мыши.

2.4.2.2 Установка параметров блока Функции, которые выполняет блок, зависят от значений параметров

блока. Установка этих значений осуществляется в окне настройки блока, которое вызывается после двойного щелчка на изображении блока в блок-схеме. Окна настройки параметров для некоторых блоков показаны выше. Далее, при рассмотрении конкретных примеров моделирования электриче-ских схем, мы, если это необходимо, будем приводить вид этих окон.

2.4.2.3 Удаление блоков Для удаления ненужных блоков из блок-схемы достаточно выделить

эти блоки так, как было указано ранее, и нажать клавишу [Del] или [Back-space]. Можно также вызвать команду Clear (Очистить) или Cut (Выре-зать) из меню Edit (Правка) окна блок-схемы. Если использована команда

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 122: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 123: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

123

того же меню.

2.4.2.7 Создание соединительных линий Сигналы в модели передаются по линиям. Каждая линия может пе-

редавать или скалярный, или векторный сигнал. Линия соединяет выход-ной порт одного блока с входным портом другого блока. Линия может также разветвляться и соединять один блок с несколькими блоками.

Чтобы соединить выходной порт одного блока с входным портом другого, нужно выполнить следующие действия:

Установить указатель мыши на выходной порт первого блока (при этом курсор должен принять форму перекрестия).

Нажать левую кнопку мыши и, удерживая ее в этом положении, передвинуть указатель ко входному порту второго блока;

Отпустить кнопку мыши. Simulink заменит символы портов соединительной линией с указа-

нием направления передачи сигнала. Линии можно рисовать как от вход-ного порта к выходному, так и наоборот, рисунок 2.45.

Разветвленная линия, эта такая, которая ответвляется. Она начинает-ся с существующей и передает ее сигнал к входному порту другого блока. Эти липии передают один сигнал. Разветвленная линия дает возможность передать один и тот же сигнал к нескольким блокам.

Чтобы образовать ответвление от существующей линии, необходимо выполнить следующие действия:

Установить курсор в точку ответвления; Нажать клавишу [Ctrl] и левую кнопку мыши и удерживать их на-

жатыми; Провести линию ко входному порту нужного блока; Отпустить клавишу [Ctrl] и левую кнопку мыши рисунок 2.45,а.

а б

Рисунок 2.45 – Соединение и разветвление линии

XY Graph

Sine Wave

SignalGenerator

Scope1

Scope

1

Gain

0

Display1

Constant

Сигнал 1

Сигнал 2XY Graph

Sine Wave

SignalGenerator

Scope1

Scope

1

Gain

0

Display1

Constant

Постоянная

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 124: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 125: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 126: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

126

В этом случае нужно поступить так: Скопировать блок Subsystem в окно модели, перетянув его из раз-

дела Connections;

Открыть окно блока Subsystem, дважды щелкнув на изображении блока в блок-схеме;

В пустом окне модели создать субмодель, используя блоки In и Out для создания входов и выходов субмодели.

Создание субмодели путем группировки существующих блоков. Если блок-схема уже содержит блоки, которые нужно объединить в

субмодель, то, последнюю можно создать так: Выделить при помощи рамки блоки и соединяющие их линии, ко-

торые нужно включить в состав подсистемы, рисунок 2.46,а; Выбрать команду Create Subsystem (Создать подсистему) из меню Edit (Правка). В результате Simulink заменит выделенные блоки одним блоком Subsystem (рисунок 2.46,б). Чтобы увидеть блок-схему созданной субмодели, следует дважды

щелкнуть на блоке Subsystem, рисунок 2.47. Как видно из рисунка, Simu-link добавил в блок-схему блоки In и Out, представляющие входы и выхо-ды в систему высшего уровня.

а б Рисунок 2.46 – Создание субмодели (подсистемы)

1Out1

sin

TrigonometricFunction

0.5

Gain

2In2

1In1

Рисунок 2.47 - Вид созданной субмодели

sin

TrigonometricFunction

Sine Wave

ScopePulse

Generator

0.5

Gain

In1

In2Out1

Subsystem

Sine Wave

ScopePulse

Generator

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 127: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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 Общие положения и определения Электрической цепью называется искусственно созданный путь для

электрического тока. Цепью постоянного тока называется такая, в которой ЭДС, токи и на-

пряжения остаются постоянными по величине и не зависят от времени. Цепи делятся на два больших класса: линейные, содержащие только элементы с линейными вольтампер-

ными характеристиками; нелинейные, содержащие элементы с нелинейными характеристи-

ками. Только линейные элементы подчиняются закону Ома:

RUI

IURRIU ; ; , (3.1)

где R – сопротивление участка цепи, U – напряжение на участке, I – ток.

Ток протекает по проводнику цепи, поэтому стрелку тока принято размечать на самом проводнике.

Напряжение на любом участке цепи есть реакция на ток, поэтому стрелку напряжения принято размечать параллельно элементу и всегда против ранее размеченной стрелки тока.

По закону сохранения энергии количество вырабатываемой в цепи энергии всегда равно количеству энергии потребляемой цепью. Следует

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 128: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

128

всегда помнить, при составлении баланса энергии в цепи, что не всякий источник энергии, действующий в цепи является генератором, а именно:

Когда действительный ток через источник совпадает

по направлению с ЭДС источника, то этот источник выра-батывает энергию, то есть является генератором.

Когда действительный ток через источник протекает

навстречу ЭДС источника, то этот источник потребляет энергию, то есть является нагрузкой (пример: зарядка ак-кумулятора).

Тогда: IEPPГ 11 - мощность генерируемая в цепи.

IEIRRIIRP OOH 2222

1 - потребляемая энергия. Таким обра-зом 0 НГ РP . (3.2) Законы Кирхгофа являются основными расчетными законами элек-

тротехники. Закон Ома частный случай законов Кирхгофа. Сложная цепь состоит из узлов и ветвей, то есть из 2-х элементов,

поэтому и законов Кирхгофа два. Первый закон Кирхгофа управляет узла-ми, а второй - ветвями (контурами).

Первый закон Кирхгофа гласит: в любом узле сложной цепи алгеб-раическая сумма токов равна нулю.

01

A

ni

iiI , (3.3)

где i - количество токов связанных с рассматриваемым узлом; А - обозначение рассматриваемого узла.

Первый закон основан на принципе невозможности накопления электрического заряда в одной точке цепи.

Принято токи, притекающие к узлам цепи, считать положительными и брать со знаком плюс, а токи, оттекающие от узлов, считать отрицатель-ными и брать со знаком минус.

Число независимых уравнений, составляемых по первому закону Кирхгофа, равно числу независимых узлов в сложной цепи и равно обще-му числу узлов в цепи без одного. Число независимых узлов = 1n , где n - общее число узлов сложной цепи.

Второй закон Кирхгофа гласит: в любом контуре сложной цепи ал-гебраическая сумма ЭДС и напряжений, действующих в этом контуре рав-на нулю.

I

Е

+

I

Е

+

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 129: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

129

011

mk

kk

ni

ii UE , (3.4)

где i – количество источников ЭДС в рассматриваемом контуре; k – количество напряжений входящих в данный контур.

Данная формулировка справедлива, если стрелки напряжений на схеме цепи расставлены против стрелок токов.

Второй закон Кирхгофа записывается только для независимых кон-туров.

Независимыми контурами сложной цепи называются такие, которые отличаются друг от друга хотя бы одним элементом цепи не использован-ным в ранее намеченных контурах. Число уравнений по 2-му закону Кирх-гофа = 1 nq , где 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)

Page 130: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

130

3.1.2.2 Пример расчета цепи постоянного тока Пример 1. Исходные данные к расчету

Рисунок 3.1 – Расчетная схема цепи

постоянного тока

Дано:

Е1=200 В, Е3=50 В,

R1=100 Ом, R2=100 Ом, R3=150 Ом.

Как и другие примеры расчета электрических цепей, он основан на решении системы линейных алгебраических уравнений. В данном случае, уравнения составляются по методу законов Кирхгофа, рисунок 3.1.

Решение Система уравнений, составленная по законам Кирхгофа, будет:

313320111302211

0321

EEIRIIREIIRIR

III. (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)

Page 131: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

131

I=A\B U1=R1*I(1,1) U2=R2*I(1,2) U3=R3*I(1,3) В результате решения получаем матрицу токов, первый столбец ко-

торой представляет искомые токи, а остальные элементы нули и столбец напряжений:

I = 1.125 0 0 0.875 0 0 0.25 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. Размерность периода - секТ . Число периодов в секунду опреде-

ляет частоту переменного тока - T

f 1 .

Частота измеряется в герцах - ГцГерцсек

f

1 . За один

герц принимается частота тока в один период в одну секунду. Мгновенное значение переменного тока можно записать в форме:

) sin( tmIi , (3.7)

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 132: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

132

где mI - амплитуда синусоиды, ампли-тудой называют наибольшее мгновенное значение; - угловая частота в рад/сек; t - время в сек; - начальная фаза или фаза включения. Она показывает, какое мгновенное зна-чение синусоидальной величины имеет место в момент включения;

) ( t - аргумент синусоиды. Таким образом, синусоида выражается через амплитуду и аргумент.

Действующим значением переменного тока называется такой посто-янный ток, который на том же сопротивлении и за то же время выделяет столько же тепла, что и данный переменный ток.

Электрические машины, аппараты, измерительные приборы работа-ют на действующих значениях

Для синусоидального переменного тока действующие значения тока (I) и напряжения (U) будут такими:

mm I

II 707,0

2; m

m UU

U 707,02

. (3.8)

Средним значением переменного тока cpI или напряжения cpU на-

зывается такой переменный ток, произведение которого на интервал вре-мени, равен интегралу данного переменного тока за тот же интервал вре-мени.

Для синусоидальной формы тока и напряжения средние значения будут таковы:

.637,02 ;637,02mUmE

cpUmImIcpI

(3.9)

Стрелки в цепях переменного тока размечаются и в цепях постоян-ного тока.

В цепях, работающих на переменном токе, приходится осуществлять математические действия над синусоидальными величинами. Для этого имеется ряд способов, среди которых наиболее употребительный символи-ческий способ. Он основан на замене геометрического сложения векторов, сложением алгебраическим комплексных чисел, изображающих эти векто-ра. В системе MATLAB используется алгебраическая форма записи ком-плексных чисел:

jbaсc , (3.10)

где c - комплексное число. Оно обозначается точкой над символом, или подчеркиванием с;

Рисунок 3.1 - Синусоидальный ток

i

0

t

T

Im

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 133: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

133

a - действительная часть комплексного числа; jb - мнимая часть комплексного числа.

Величина j - называется мнимой единицей или оператором поворота на 90 в положительную сторону.

Все существующие электрические цепи, состоят из различных соче-таний четырех основных элементов:

активного сопротивления R , рисунок 3.3,а; индуктивности L (катушка), рисунок 3.3,б; емкости С (конденсатор), рисунок 3.3,в; усилительно-преобразовательный элемент (диод, транзистор и

т.п.). Первые три элемента в приведенном списке, называемые так же пас-

сивными элементами цепи.

а б в

Рисунок 3.3 – Идеальное активное сопротивление Полной цепью переменного тока называется такая цепь, в которой

активный, индуктивный и емкостной элементы соединены друг с другом последовательно. Часто такие цепи называются - цепями RLC . Если на входе цепи действует синусоидальное напряжение tUu m sin , и пара-метры цепи R , L и C известны, то, амплитудное mI , действующее I и мгновенное i значения тока и сдвиг фаз - , между входными током и на-пряжением по закону Ома равны:

22 1

CLR

UI mm

, 2

2 1

CLR

UI

, (3.11)

) sin( tIi m . (3.12) Здесь , сдвиг по фазе между входным током и напряжением:

RX

Rxx

RC

LCL arctgarctg

1arctg

, (3.13)

где fLLLx 2 - сопротивление катушки на переменном токе, оно на-зывается индуктивным реактивным сопротивлением;

fCCxC 2

11 - сопротивление конденсатора, оно называется емкостным

реактивным сопротивлением;

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 134: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

134

fCfL

CLxxX CL

2

121 - общее реактивное сопротивление,

полученное для случая последовательного соединения катушки и конден-сатора.

Полное сопротивление цепи Z :

22222

2 )(1 XRCxLxRC

LRZ

. (3.14)

Тогда ток в цепи будет равен:

ZU

XR

U

xxR

U

CLR

UICL

22222

2 1

. (3.15)

3.2.2 Примеры расчетов цепей однофазного переменного синусоидального тока

Пример 2. Решение цепи переменного тока методом законов Кирх-гофа, рисунок 2.4. Здесь используется возможность программы MATLAB работать с комплексными числами.

Исходные данные к расчету R1

R2XL3E

XL1

XC2

Рисунок 3.4 – Схема цепи

E=100 В,

R1=20 Ом, XL1=10j Ом, R2=15 Ом,

XC2=-10j Ом, XL3=20j Ом

Решение Первым шагом расчета, определяем комплексные сопротивления, в

ветвях цепи. Они изображены на рисунке 3.5. Затем расставляем на схеме стрелки токов и напряжений. Стрелки токов рисуем на проводниках цепи, а стрелки напряжений изображаем рядом с соответствующими сопротив-лениями ветвей. Направление токов, можно выбирать произвольно, но в цепи с одним источником, их можно сразу нарисовать в правильном на-правлении. Стрелки напряжений должны быть направлены против стрелок токов. Расчетная схема цепи изображена на рисунке 3.6.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 135: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

135

Z1=10+j20

Z2=15-j10 Z3=j20E1=100

Рисунок 3.5 – Цепь с комплексными

сопротивлениями в ветвях

Z1

Z2 Z3E1U2 U3

U1

I1

I2 I3

Рисунок 3.6 – Расчетная схема цепи

Система уравнений, составленная по законам Кирхгофа, будет тако-ва:

03322101302211

0321

IZIZIEIIZIZ

III

(3.16)

Для решения системы уравнений (3.16), как и ранее составляем мат-рицу из коэффициентов при неизвестных токах и свободных членов, стоя-щих в правой части уравнений. Последнюю матрицу, дополняем нулями, для равенства размерностей. Поскольку MATLAB не поддерживает над-строчные индексы, комплексы сопротивлений iZ будем записывать как 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)

Page 136: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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. Определяем сопротивление параллельных ветвей 1Z и 2Z .

323223

ZZZZZ .

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 137: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

137

2. Находим входное сопротивление 231 ZZ . 3. Определяем входной ток.

2311ZZ

EI

.

4. Находим напряжение на параллельных ветвях 32 UU . 2332 ZIUU .

5. Определяем токи 2I и 3I . 2/22 ZUI , 3/23 ZUI .

6. Проверяем токи на баланс по первому закону Кирхгофа. 0321 III .

7. Проверяем расчет на баланс мощности.

11 IESg , 332211 222 ZIZIZISn ,

0 SnSg .

Программа для решения такой задачи будет следующая: % Исходные данные 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)

Page 138: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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

R5 R6E1

XL1

XC2 E3XL4

R3

Рисунок 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)

Page 139: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

139

Рисунок 3.9 – Цепь с комплексными сопротивлениями в ветвях

Рисунок 3.10 – Расчетная схема

цепи

Система уравнений, составленная по законам Кирхгофа, будет тако-ва:

036554430201033050443322101305540302211

065043201006054302100605040321

IZIZIZIIIEIIIZIZIZIEIIZIIIZIZ

IIIIIIIIIIIIIIIIII

(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)

Page 140: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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.

00 2 2 ff , (3.18) где f , - угловая и временная частота внешних воздействий;

00 , f - угловая и временная собственная частота системы.

Рисунок 2.11 - Возникновение

резонанса

0

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 141: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

141

Собственной частотой системы называется число переливаний энер-гии внутри системы из одной формы в другую за одну секунду. В электри-ческих цепях энергия может сосредотачиваться в разных формах в двух элементах цепи: индуктивном (магнитное поле) и в емкостном (электриче-ское поле). Таким образом, электрическая цепь обладает собственной час-тотой 0 , если в ней имеется хотя бы одна катушка и один конденсатор.

Катушка и конденсатор могут соединяться друг с другом только двумя способами: последовательно и параллельно. В связи с этим имеется лишь два вида электрических резонансов: резонанс напряжений (при их последовательном соединении) и резонанс токов (при параллельном).

Электрические резонансы сопровождаются резким увеличением на-пряжения или тока, т.е. являются усилительными режимами.

Любая пассивная электрическая цепь, находящаяся в режиме резо-нанса, характеризуется следующими особенностями:

1) входное реактивное сопротивление или входная реактивная проводимость цепи равны нулю

0вхX , 0вхb ; (3.19) входное напряжение и ток совпадают по фазе

0 вхвхIвхU ; (3.20) 2) входная мощность чисто активная

вхвхвхвх PjPjQPS 0 . (3.21) Рассмотрим теперь каждый из резонансных режимов в отдельности.

3.3.2 Резонанс напряжений Резонанс напряжений возникает при последовательном соединении

индуктивности и емкости. Схема резонансной цепи приведена на рисунке 3.12.

На основании общего положения о резонансах (3.19), имеем выра-жение для собственной (резонансной) частоты:

01

00

CLxxX CLвх

; 120 LC откуда

LC1

0 . (3.22)

Определим входное сопротивление цепи при режиме резонанса. RxxRZ CLp 22 )( . (3.23)

При резонансе напряжений сопротивление цепи для резонансной частоты является чисто активным и минимально по величине.

Ток при резонансе найдется по выражению: max

RU

ZUI

PP . (3.24)

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 142: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

142

При резонансе напряжений ток в цепи максимальный и имеет актив-ный характер. Действительно,

00arctgarctg

RR

xx CLp , 0 вхPвх IU . (3.25)

При резонансе напряжений входное напряжение и ток совпадают по фазе.

.R

UPIjUIU

IjUIUjQPS

вхвхpвхpвх

ppвхppвхвхвхвх

20 sin0 cos

sin cos

(3.26)

При резонансе напряжений цепь потребляет от источника, через входные клеммы только активную энергию.

Напряжение на активном сопротивлении равно напряжению источ-ника энергии, питающему цепь. Напряжения на реактивных элементах бу-дут таковы:

pCpLCL IxIxUU . (3.27) Сопротивление реактивных элементов при резонансе будет:

CL

CLxx CL

00

1 . (3.28)

Величина - называется волновым сопротивлением контура. Определим отношение LU или CU к U , которая называется доброт-

ностью контура.

QRRI

IRI

IxRI

IxU

UU

U

p

p

p

pC

p

pLCL

. (3.29)

Добротность контура Q показывает во сколько раз при резонансе напряжение на индуктивности или емкости больше, чем напряжение, при-ложенное к цепи.

Из приведенных выше выражений следует, что основная особен-ность резонанса напряжений состоит в том, что напряжения на катушке и на конденсаторе по абсолютной величине равны друг другу и могут значи-тельно превышать напряжение источника, питающего цепь.

При изучении таких цепей студенты обычно выполняют лаборатор-ные работы, на которых исследуют поведение такой цепи и эксперимен-тально определяют частотные характеристики (зависимости тока и напря-жений от частоты) резонансной цепи. Но не меньший интерес и пользу может принести расчет их на компьютере, что позволит сравнить расчет-ные и опытные кривые.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 143: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 144: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 145: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

145

Рисунок 3.13 – Частотные характеристики при резонансе напряжений

Рисунок 3.14 – Доступ к окну форматирования графика командами

Edit/Current Object Properties

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 146: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 147: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 148: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

148

C

I

U

R1 L

R2

I1

I2

Рисунок 3.18 – Цепь в которой возможен резонанс токов

Полные сопротивления ветвей схемы в комплексной форме можно записать так:

LjRjxRZ 1111 ;

CjRjxRZ

1

2222 . (3.30)

Полная входная проводимость цепи при параллельном соединении ветвей является суммой проводимостей отдельных ветвей

)()( 122121 bbjggjbgYYY или

2

121

122

22

222

22

221

21

1

xRx

xRxj

xRR

xRRjbgY . (3.31)

Найдем собственную частоту цепи. На основании общего положения о резонансах (3.19), имеем

021

21

122

22

2

xR

xxR

xb , откуда после ряда преобразований следу-

ет:

22

2

21

2

22

21

011

R

RLCR

CL

RCL

LC

, (3.32)

где CL - волновое сопротивление цепи.

В момент резонанса входная проводимость согласно (3.16) будет

22RYP . (3.33)

Соответственно входное сопротивление будет

RYZ

PP 2

1 2 . (3.34)

Входной ток всей цепи определяется следующим образом:

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 149: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

149

22 2

RUZUUYI

PPP . (3.35)

Токи, протекающие в ветвях схемы в момент резонанса, будут рав-ны:

1111 )( jUbjbgUYUI pLp ;

2222 )( jUbjbgUYUI pCp . (3.36) В выражении (3.37) реактивные проводимости равны:

11

121

21

11

pxxRxb ;

11

222

22

22

pxxRxb . (3.37)

Выясним, как относятся токи ветвей к входному току.

QRRU

UII

II

p

Cp

p

Lp 22

2

, (3.38)

где Q - добротность контура. При резонансе токов, токи в ветвях равны по абсолютной величине,

противоположны по фазе и могут во много раз превышать входной ток це-пи.

Определим фазовый сдвиг на входе цепи.

00arctgarctg PgPg

PbP , max10coscos P . (3.39)

Коэффициент мощности на входе цепи при резонансе токов макси-мален и равен единице. Следовательно, цепь работает в самом экономич-ном режиме.

Входная мощность цепи при резонансе будет

22 2

RUUIPS PPP . (3.40)

Видим, что цепь потребляет от источника только активную мощ-ность.

Пример 6. Расчет частотных характеристик цепи с резонансом токов. Рассмотрим цепь изображенную на рисунке 3.18. Зададим ее пара-метры и рассчитаем частотные характеристики. Графики полученных ре-зультатов приведены на рисунке 3.19. Здесь для вывода графика в документ использована опция Copy Fig-ure, рисунок 3.14.

% Программа для исследования резонанса токов % Задание вектора угловой частоты w=50:5:1000; % Задание параметров цепи U=10;

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 150: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 151: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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

0 200 400 600 800 1000100

200

300

400

500

Угловая частота - w, рад/с

Пол

ное

сопр

отив

лени

е - Z

, Ом

Зависимость Z=f(w)

0 200 400 600 800 10000.02

0.03

0.04

0.05

0.06

0.07

Угловая частота - w, рад/с

Вхо

дной

ток

- I,

АЗависимость Id=f(w)

0 200 400 600 800 10000

0.02

0.04

0.06

0.08

Угловая частота - w, рад/с

Токи

в в

етвя

х с

L и

C, А

Зависимость lLd=f(w) и ICd=f(w)

0 200 400 600 800 10000.2

0.4

0.6

0.8

1

Угловая частота - w, рад/с

Коэф

фиц

иент

мощ

ност

и

Зависимость Cosf=f(w)

ILIC

Рисунок 3.19 – Частотные характеристики резонанса токов

На график частотных характеристик токов в ветвях цепи, нанесено примечание (legend). Для его формирования, как и ранее, использовано окно, показанное на рисунке 3.17.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 152: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

152

Использование возможности копирования окна с графикой в доку-мент, позволяет легко связывать программу MATLAB с офисными прило-жениями, например, с редактором Word.

3.4 Расчет трехфазных цепей

3.4.1 Общие положения и определения

Трехфазная цепь - это совокупность трех электрических цепей, в ка-ждой из которых действует своя ЭДС, причем, все они одинаковы по вели-чине и сдвинуты по фазе относительно друг друга на треть периода.

Трехфазный генератор вырабатывает три ЭДС, которые записывают-ся в комплексном виде следующим образом:

AA EE ;

)866,05,0( jEE AB ; (3.41)

)866,05,0( jEE CC . Обмотки генератора и нагрузка могут соединяться двумя способами:

в звезду и треугольник.

3.4.1.1 Соединение в звезду Для соединения потребителей AZ , BZ , CZ звездой (рисунок 3.20)

три их конца – X1, Y1, Z1 соединяют в одну общую точку N1 – нейтральную точку.

Начало фаз приемника А1, В1, С1 соединяют с началом обмоток гене-ратора (А, В, С) проводами, называемыми линейными (АА1, ВВ1, СС1). Четвертый провод, соединяющий нейтральные точки генератора N и при-емника N1, называется нейтральным.

На схеме (рисунок 3.20) изображена четырехпроводная цепь, где по-казаны условно положительные направления, принятые для всех токов и напряжений трехфазной цепи.

ЭДС между началом каждой фазы генератора и его нейтральной точ-ки называется фазным ЭДС генератора АЕ , ВЕ , СЕ , а между началами

фаз – линейными ЭДС генератора AЕ , BЕ , CЕ . Для приемника фазные напряжения определяются так же, как и для

генератора. Если пренебречь сопротивлениями всех линейных проводов, то по-

тенциалы точек «А» и «А1», «В» и «В1», «С» и «С1» будут равны, поэтому в четырехпроводной цепи фазные напряжения приемника и ЭДС генера-тора всегда равны

1AA UЕ , 1BB UЕ , 1CC UЕ . (3.42)

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 153: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

153

ВЕСЕ

АЕ1АU

1BU1CU

AZ

BZCZ

AI

CI

BI

NI АBU

BCU

CAU

Рисунок 3.20 – Схема соединения потребителя звездой

Соотношение между линейными и фазными напряжениями опреде-ляются в общем случае по второму закону Кирхгофа (в геометрической или комплексной форме):

111111 ACCACBBCBAAB UUU; UUU; U-UU . (3.43) В симметричной цепи при CBA ZZZ и несимметричной, когда

CBA ZZZ при малых сопротивлениях линейных проводов существует связь между линейными и фазными напряжениями:

Ф UU Л 3 . (3.44) Ток бывает фазный и линейный: фазный – это ток в фазах генератора

или приемника, линейный – это ток в линейных провода. В звезде участки фаз генератора, линии и фаз нагрузки соединены последовательно, поэто-му

фIлI . (3.45)

В четырехпроводной цепи при отсутствии сопротивления в нулевом проводе токи могут быть найдены по закону Ома в комплексной форме

A

AA Z

UI

;

B

BB Z

UI

;

C

CC Z

UI

. (3.46)

Угол сдвига фаз этих токов по отношению к соответствующим фаз-ным напряжениям определяется характером нагрузки (активная, индук-тивная, емкостная).

Для симметричной нагрузки углы сдвига фаз обязательно равны между собой.

Если применять второй закон Кирхгофа для узла N1 (рисунок 3.20), то можно определить вектор нейтрального тока

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 154: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

154

CBAN IIII 1 или CBAN IIII . (3.47) При симметричной нагрузке сумма (3.47) равна нулю. Отсюда сле-

дует вывод: при симметричной нагрузке ток в нейтральном проводе отсут-ствует, поэтому необходимость в нем отпадает.

При несимметричной нагрузке с нейтральным проводом токи в фа-зах, различны, но за счет нейтрального провода напряжение на каждой фа-зе приемника с изменением нагрузки практически остается постоянным и равным фазному напряжению генератора. Значит, нейтральный провод обеспечивает симметрию фазных напряжений приемника при несиммет-ричной нагрузке.

Активная мощность в несимметричной цепи трехфазного тока опре-деляется как сумма мощностей отдельных ее фаз и мощность рассеиваемая на нагрев нулевого провода 0PРРPP ФСФВФА или когда сопротив-лением нулевого провода можно пренебречь, или цепь симметрична:

СССВВВААА IЕIЕIЕP coscoscos , или

СССВВВААА IUIUIUP coscoscos , (3.48) где 1coscoscos СВА при чисто активной нагрузке, при чисто ре-активной нагрузке 0coscoscos СВА , а в остальных случаях имеет промежуточное значение.

В симметричной цепи трехфазного тока активная мощность может быть найдена из выражений:

ФЛЛ IUР cos3 , ФЛЛ IUQ sin3 . (3.49) В случае, когда сопротивлениями в линейных и нейтральном прово-

дах нельзя пренебрегать, расчет такой цепи может быть выполнен по лю-бому известному методу, например, методу контурных токов.

Пример 7. Расчет трехфазной цепи соединенной в звезду методом контурных токов. Расчетная схема цепи изображена на рисунке 3.21. Обозначения на схеме даны в соответствии с возможностью индексирования в MATLAB. Расчет сделан с учетом наличия некоторых сопротивлений в проводах ли-нии и нейтральном проводе.

В данном примере, для пояснения выводимых данных применена функция disp('ТЕКСТ'). Она позволяет в любом месте программы вывес-ти на экран любой текст, введенный в нее и заключенный в кавычки. Дан-ная функция может выводить только текстовые значения переменных, по-этому если необходимо вывести их числовое значение, то предварительно значение переменной следует преобразовать в текстовый формат. Это дос-тигается применением функции num2str(Sg). Функции disp и num2str по-зволяют осуществить вывод рассчитанных значений переменных в удоб-

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 155: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 156: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 157: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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 Соединение в треугольник Если три фазы приемника с фазными сопротивлениями AZ , BZ , CZ

включить непосредственно между линейными проводами трехпроводной цепи, то получим соединение приемников треугольником (рисунок 3.22).

Так как при соединении треугольником к концам каждой фазы по-требителя приложено линейное напряжение, то линейные напряжения бу-дут являться одновременно и фазными, т. е.

UAB(л) = UAB(ф); UBC(л) = UBC(ф); UCA(л) = UCA(ф). (3.50) Если пренебречь сопротивлениями линейных проводов, то фазные

напряжения приемника равны соответствующим линейным напряжениям источника питания, а они практически неизменны.

AВAВ UЕ , BСBС UЕ , CАCА UЕ . (3.51) Фазные и линейные токи не равны между собой, соотношениё между

ними можно получить по первому закону Кирхгофа, записанному для уз-лов схемы геометрической форме

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 158: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

158

CAABA III , ABBCB III , BCCAC III . (3.52)

ВЕСЕ

АЕ

AZ

BZ

CZ

AI

CI

BI

АBU

BCU

CAU

СAI

AВI

BСI

АBЕ

BCЕ

CAЕ

Рисунок 3.22 - Схема соединение потребителей треугольником

Из уравнений (3.52) следует, что любой из линейных токов равен геометрической разности токов тех двух фаз нагрузки, которые соединя-ются с данным линейным проводом.

Независимо от характера нагрузки геометрическая сумма линейных токов в трехпроводной цепи равна нулю:

0 CBA III . (3.53) Если сопротивления фаз приемника известны, то пренебрегая сопро-

тивлением линейных проводов, величину фазных токов определяют по за-кону Ома

AB

ABAB Z

UI

;

BC

BCBC Z

UI

;

CA

CACA Z

UI

. (3.54)

При симметричной нагрузке линейные и фазные токи равны по ве-личине, причем

Ф II Л 3 . (3.55) Активная и реактивная мощности определятся с учетом выражения

(3.50) для симметричной цепи таким образом: ССAСAВВCВCААBАB IUIUIUP coscoscos ,

ССAСAВВCВCААBАB IUIUIUP sinsinsin . (3.56) В случае, когда сопротивлениями в линейных проводах нельзя пре-

небрегать, расчет такой цепи может быть выполнен по любому известному методу, например, методу контурных токов.

Пример 8. Расчет трехфазной цепи соединенной в треугольник мето-дом контурных токов. Расчетная схема приведена на рисунке 3.23.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 159: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 160: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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*Zla+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 – Расчетная схема трехфазной цепи при соединении нагрузки

в треугольник для метода контурных токов В результате выполнения программы имеем:

Контурные токи выводятся в следующем порядке: I1, I2, 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

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 161: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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) нелинейность нагрузки (цепи со стальными магнитопроводами, керамическими конденсаторами, электронными полупроводнико-выми приборами и т.д.).

Любая несинусоидальная периодическая функция ) ( tf может быть разложена в ряд Фурье вида:

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 162: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

162

...) sin() sin() ( 22110 tAtAAtf mm ,

k

kkkm tkAtf

0) sin() ( , (3.57)

где при 0 ,0 AAk km , а 20 k .

В такой форме ряд Фурье называется разложением на гармоники. Коэффициенты ряда 0А и kmA могут быть определены:

22kmkmkm CBA и

km

kmk B

Carctg , (3.58)

где

) ( ) (21 2

00 tdtfA

;

) ( sin) (1 2

0tdtktfBkm

; (3.59)

) ( cos) (1 2

0tdtktfCkm

.

Если периодическая кривая симметрична относительно оси абсцисс, то постоянный член ряда 00 А , и отсутствуют четные гармоники.

Если функция симметрична относительно оси ординат, то начальные фазы всех гармоник равны нулю 0...321 .

Для расчета цепей несинусоидального тока цепь решается столько раз, сколько гармоник входит в исходный ряд Фурье. Затем, полученные решения объединяются. Поскольку электрические величины для различ-ных гармоник имеют разную частоту, то складываться могут только мгно-венные значения соответствующих токов и напряжений.

Сам расчет цепи для отдельной гармоники совершенно аналогичен расчету цепи синусоидального переменного тока.

Разложения в ряд Фурье не математическая абстракция, в реальных цепях гармоники могут быть выделены с помощью резонансных цепей.

Выделение гармоник из входного сигнала может производиться и при его численной обработке.

Пример 9. Определение гармоник сложного несинусоидального на-пряжения методом быстрого преобразования Фурье.

1. Создадим трехчастотный сигнал со средней частотой 200 Гц и со-седними частотами 150 и 250 Гц и амплитудами 1 В, 0,4 В и 0,4 В соответ-ственно. Программа для его формирования будет такова:

%Исходные данные clc t=0:0.0005:1;

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 163: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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.

0 20 40 60 80 100-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

В р е м я, с

Т р е х ч а с т о т н ы й с и г н а л

Рисунок 3.24 – Трехчастотный сигнал Кривая на рисунке 3.24 строится в функции номера элемента вектора

от 0 до 100. Более удобно, чтобы кривая являлось функцией времени. Со-ответствующий отрезок времени будет равен: 0 – 0,0005·100, т.е. 0 – 0,05 с. Поэтому, для получения шкалы по оси х в отметках времени, можно ввести свою шкалу в диапазоне от 0 до 0,05 с.

2. Применим к полученной кривой быстрое преобразование Фурье. Это действие осуществляется оператором fft(x,n) (Fast Fourier Trans-formation), где 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)

Page 164: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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 Гц, соответственно. Но их амплитуды не соответствуют заданным, они пропорциональны спектральной плотности мощности от-дельных гармоник. Это обусловлено различием между определениями Фу-рье-изображения и комплексного спектра.

0 50 100 150 200 250 3000

50

100

150

Ч а с т о т а, Г ц

С п е к т р а л ь н а я п л о т н о с т ь м о щ н о с т и

Рисунок 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)

Page 165: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

165

Полученные данные примерно соответствуют заданным по частоте и амплитуде. При уменьшении времени квантования, точность преобразова-ния будет увеличиваться.

0 50 100 150 200 250 3000

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Ч а с т о т а, Г ц, с

А м п л и т у д а г а р м о н и к

Рисунок 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 определяет часть периода, в которой сигнал увеличивается.

Согласно справочникам, разложение в ряд Фурье для данной кривой – это сумма нечетных гармоник.

...) 5sin251 3sin

91 (sin8) ( 2 tttAtf

, (3.60)

где А – амплитуда пилообразной кривой. Возьмем 3 гармоники и построим суммарную кривую. Программа

для ее построения приведена ниже, а результат на рисунке 3.27,а. % Получение пилообразной кривой из 3-х отдельных гармоник clc t=0:0.001:3; % Задание интервала времени

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 166: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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*t-

3*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

0 0.5 1 1.5 2 2.5 3-0.2

0

0.2

0.4

0.6

0.8

1

1.2

В р е м я, с

З а м е н а п и л о о б р а з н е о г о с и г н а л а 3 - м г а р м о н и к а м и

0 0.5 1 1.5 2 2.5 3-0.2

0

0.2

0.4

0.6

0.8

1

1.2

В р е м я, с

З а м е н а п и л о о б р а з н е о г о с и г н а л а 5 - ю г а р м о н и к а м и

а б

Рисунок 3.27 – аппроксимация пилообразной кривой суммой гармоник Увеличим число гармоник до пяти. Заменим в предыдущей про-

грамме процедур вычисления суммы 3-х гармоник процедурой вычисления суммы 5-ти гармоник.

% Процедура вычисления суммы 5-х гармоник y3=0.5+(1.5/pi)*(sin(2*pi*t-pi/2)-sin(6*pi*t-3*pi/2)/9+cos(10*pi*t-5*pi/2)/25-sin(14*pi*t-7*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)

Page 167: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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 определяет длительность положительной полуволны в процен-тах от периода импульсов.

Согласно справочникам, разложение в ряд Фурье для данной кривой – это сумма нечетных гармоник.

...) 5sin51 3sin

31 (sin4) ( tttAtf

, (3.60)

где А – амплитуда пилообразной кривой. Возьмем 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)

Page 168: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

168

y3=(4/pi)*(sin(2*pi*t)+sin(6*pi*t)/3+sin(10*pi*t)/5+sin(14*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,б.

0 0.5 1 1.5 2 2.5 3-1.5

-1

-0.5

0

0.5

1

1.5

В р е м я, с

З а м е н а п р я м о у г о л ь н о г о с и г н а л а 3 - м я г а р м о н и к а м и

0 0.5 1 1.5 2 2.5 3-1.5

-1

-0.5

0

0.5

1

1.5

В р е м я, с

З а м е н а п р я м о у г о л ь н о г о с и г н а л а 9 - ю г а р м о н и к а м и

а б

Рисунок 3.28 – Аппроксимация прямоугольной кривой суммой гармоник

3.6 Расчет переходных процессов в линейных цепях 3.6.1 Общие положения и определения

Переходным процессом называют такой процесс, протекающий в цепи, при котором общее количество энергии, связанное с цепью в виде электрического и магнитного полей, динамически изменяется во времени.

Главной причиной, которая вызывает переходный процесс, является перераспределение энергии в цепи.

Переходный процесс не может происходить мгновенно, так как на перераспределение энергии требуется определенное (теоретическое беско-нечное) время.

В электротехнике рассматриваются коммутационные переходные процессы. Это такие режимы, которые возникают при включении, выклю-чении, коротких замыканиях, различного рода переключениях, внезапных изменениях параметров цепи.

При анализе переходных процессов широко используют законы коммутации.

Первый закон коммутации. В любой ветви с индуктивностью ток и магнитный поток в момент

коммутации сохраняют те же значения, которые они имели до коммута-ции, и дальше начинают изменяться именно с этих значений.

Второй закон коммутации.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 169: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

169

В любой ветви с емкостью напряже-ние и заряд в момент коммутации будут иметь те же значения, которые они имели до коммутации, и в дальнейшем будут из-меняться, начиная с этих значений.

Переходные процессы в линейных цепях рассчитываются двумя способами или методами: классическим и оператор-ным.

В данной работе мы рассмотрим пер-вый метод.

классический метод расчета переход-ных процессов заключается в интегрировании дифференциальных уравне-ний, связывающих токи и напряжения цепи в переходном процессе.

Программа MATLAB позволяет легко решать дифференциальные уравнения, которые только требуется представить в форме Коши.

Рассмотрим несколько примеров. Пример 12. Расчет переходного процесса в цепи RL при включении

ее на постоянное напряжение. Дана цепь, представленная на рисунке 3.29. Решение таких задач в программе MATLAB базируется на решении

обыкновенных дифференциальных уравнений (ОДУ). Их, как правило, представляют в виде системы из дифференциальных уравнений первого порядка в форме Коши.

'ydtdy

; ),(' tyfy , (3.62)

с граничными условиями bptty end ),,( 0 , где 0t , endt - начальные и конеч-ные точки интервалов. Вектор b задает начальные и конечные условия.

Покажем применение решателя ОДУ на ставшем классическим при-мере – решении уравнения Ван-дер-Поля, записанного в виде системы из двух дифференциальных уравнений.

21 YY , 12

122 )1(100 YYYY . (3.63) При начальных условиях: 0)0(1 Y ; 1)0(2 Y . Перед решением нужно записать систему дифференциальных урав-

нений в виде М-функции. Для этого в главном меню выберем File>New>M-File и введем:

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 решателем и со-

провождающий его график можно получить, используя следующие коман-ды:

Рисунок 3.29 – Включение катушки на постоянное

напряжение

i UL U

UR

C

K1

R

UC L

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 170: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

170

[T,Y]=ode15s(@vdp100,[0 30],[2 0]); plot(T,Y) hold on:gtext(‘y1’),gtext(‘y2’); В нашем случае нет необходимости записывать дифференциальное

уравнение в виде системы уравнений, так как наше уравнение, описываю-щее цепь, будет линейным неоднородным дифференциальным уравнением первого порядка.

URidtdiL . (3.64)

В форме Коши, выражение (3.64) будет таким:

iLR

LU

dtdi

. (3.65)

Для решения данного уравнения необходимо сформировать М-файл, который будет таким:

function dydt = RL(t,y,E,R,L); dydt =E/L-(R/L)*y; Файл следует записать с именем RL.m, для вызова в последующей

программе. Программа для расчета переходного процесса в данной цепи при

10R Ом, 1L Гн и Е=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)

Page 171: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

171

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.80

2

4

6

8

10

12

В р е м я, с

Т о к в п е р е х о д н о м п р о ц е с с е п р и в к л ю ч е н и и ц е п и R L

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.80

2

4

6

8

10

12Т о к в п е р е х о д н о м п р о ц е с с е п р и и з м е н е н и и L

В р е м я, с

L=1,00L=1,20L=1,40L=1,60L=1,80L=2,00L=2,20L=2,40L=2,60L=2,80L=3,00

а б

Рисунок 3.30 – Переходный процесс при включении катушки % Построение семейства кривых процесса при изменении L for K=0:0.2:2 . . . L=1+K; . . . % Разрешение вывода всех графиков в одно окно hold on end hold off; Пример 13. Расчет переходного процесса в цепи RLC при включении

ее на постоянное напряжение. Дана цепь, представленная на рисунке 3.31. Дифференциальное уравнение, описывающее данную цепь, будет

иметь вид:

UiLCdt

diLR

dtid

1

2

2. (3.66)

На основе примера, приведенного вы-ше, для решения данного уравнения сформи-руем М-файл, который будет таким: function dydt = RLC(t,y,E,R,L,C) dydt =[y(2); U/(L*C)-1/(L*C)*y(1)-(R/L)*y(2)];

Файл следует сохранить под именем RLC.m, для вызова в последующей програм-ме, в решателе ode45.

Программа для расчета переходного процесса в данной цепи при 100R Ом, 1,0L Гн, 10С мкФ и Е=100 В приведена ниже, а результа-

ты расчета на рисунке 3.32,а. % Построение переходного процесса в цепи RLC tspan=[0, 0.1]; y0=[0; 0]; E=100;

Рисунок 3.31 – Включение цепи RLC на постоянное

напряжение

i UL U

UR

C

K1

R

UC L

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 172: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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;

0 0.02 0.04 0.06 0.08 0.10

20

40

60

80

100

120

В р е м я, с

Н а п р я ж е н и е н а к о н д е н с а т о р е , В

L=0,1 H

0 0.02 0.04 0.06 0.08 0.10

20

40

60

80

100

120

140

160

180

В р е м я , с

Н а п р я ж е н и е н а к о н д е н с а т о р е, В

L=0,10 HL=0,35 HL=0,60 HL=0,85 HL=1,10 H

а б

Рисунок 3.32 – Переходный процесс при включении цепи RLC на постоянное напряжение

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 173: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

173

3.7 Визуализация расчетов электромагнитных полей Подробное изложение раздела о решении задач на расчет электро-

магнитных полей выходит далеко за рамки настоящей работы. Здесь мы только покажем некоторые возможности программы MATLAB, которые позволяют сделать анализ полевых структур более наглядным и понятным студенту. Рассмотрим несколько примеров.

Пример 14. Рассчитаем электростатическое поле между двумя экра-нированными кабелями. Схема кабеля приведена на рисунке 3.33, а.

Исходные данные 10R мм – внутренний радиус кабеля;

10l мм – расстояние между жилами кабеля; 5,0d мм – диаметр жилы;

1r - относительная диэлектрическая проницаемость среды между жилами (воздух);

100U В – напряжение между жилами кабеля.

R

Рисунок 3.33 – К расчету поля двухпроводного кабеля

Решение Заменим кабель системой четырех заряженных осей так, чтобы обо-

лочка кабеля осталась эквипотенциальной поверхностью, рисунок 3.33,б. Для этого должны быть:

2las ; 222 Ras , откуда

5,74

2

ll

Ra мм; 5,124

2

ll

Rs мм, 202 2

lRas мм.

Запишем потенциал любой точки поля двух двухпроводных линий, принимая 0 при 0x .

22

22

22

22

)2()2(ln

)5,0()5,0(ln9,7

yxyx

yxyx . (3.67)

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 174: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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

-6 -4 -2 0 2 4 6-3

-2

-1

0

1

2

3П о т е н ц и а л п о л я д в у х п р о в о д н о г о к а б е л я

X, m

Y, m

Рисунок 3.34 – Поле двухпроводного кабеля

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 175: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

175

-4-2

02

4

-2

-1

0

1

2-100

-80

-60

-40

-20

0

20

40

60

80

X, m

П о т е н ц и а л п о л я д в у х п р о в о д н о г о к а б е л я

Y, m

Рисунок 3.35 – График поля двухпроводного кабеля Замена оператора построения графика contour3(xx,yy,zx,100)на

оператор meshc(xx,yy,zx), приводит к выводу графика, показанного на рисунке 3.35. Проекции эквипотенциалей на плоскость ху, позволяют яснее представить себе конфигурацию исследуемого поля.

Пример 15. Рассчитаем электростатическое поле между диэлектри-ческим уголком и параллельным, длинным заряженным проводником, ри-сунок 3.36.

Исходные данные

20 lh мм; 5d мм – диаметр проводника;

2,0 мкКл/км – погонный заряд; Внешняя среда – вакуум;

201 r - диэлектрическая постоянная материала уголка.

Решение По методу зеркальных отражений получим выражение для потен-

циала поля внутри уголка:

44321

44321

01 4ln18,0

4ln

2 hrrrr

hrrrr

r

, (3.68)

y

xh

l

Рисунок 3.36 – Поперечник уголка

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 176: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

176

где 221 )2()2( yxr , 22

2 )2()2( yxr , 22

3 )2()2( yxr , 224 )2()2( yxr .

Программа для расчета потенциала поля дана ниже, графики потен-циала приведены на рисунке 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('Потенциал поля уголка')

010

2030

4050

010

2030

4050

0

1

2

3

4

П о т е н ц и а л п о л я у г о л к а

У, м Х, м

Рисунок 3.37 – Поле диэлектрического уголка

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 177: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

177

4 Моделирование электрических цепей и устройств Приложение Simulink является своего рода «виртуальной лаборато-

рией» позволяющей собирать и исследовать работу многих видов электри-ческих цепей и устройств. В данной главе мы рассмотрим некоторые из них.

4.1 Моделирование цепей постоянного тока Для разработки модели выберем цепь, которую мы уже рассматрива-

ли ранее в Примере 1, рисунок 3.1. В нее входят источник постоянного на-пряжения DC Voltage Source, последовательные цепи Series RLC Branch (включенные в режим резисторов) и измерительные элементы – блоки Voltage Measurement и Current Measurement с дисплеями – блоки Dis-play. Схема модели приведена на рисунке 4.1.

+- v

U3

+- v

U1R6

R3

R2

R1

E3

E1 25

Display687.5

Display5

12.5

Display4

112.5

Display3

0.875

Display2

0.25

Display1

1.125

Display

+i-

A3

+i-

A2

+i-

A1

+ -v

U2

+ -v

U1

Рисунок 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)

Page 178: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

178

Окно блока Multimeter показано на рисунке 4.2, справа. Для визуа-лизации измеренных величин следует раскрыть блок Powergui, его окно показано на рисунке 4.3, слева. Выбор пункта меню Steady-State Voltages and Currents открывает окно с измеренными параметрами модели, рису-нок 4.3, справа.

Рисунок 4.2 – Модель цепи с блоками Multimeter и Рowergui

Рисунок 4.3 – Окна блока Рowergui

Powergui-ContinuousR6

R3

R2

R17

Multimeter

E3

E1

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 179: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

179

Следует отметить, что использование блоков Multimeter и Рowergui упрощая схему, в то же время, делает ее более «виртуальной». Введение измерительных блоков Voltage Measurement и Current Measurement с дисплеями, позволяет приблизить вид исследуемого устройства к реально-му лабораторному стенду с вольтметрами и амперметрами. Поэтому в от-носительно простых схемах, использование измерительных блоков в моде-лях на наш взгляд, более методически оправдано.

Моделирование электрических цепей на уровне систем уравнений можно производить, используя блок Algebraic Constraint из библиотеки Math Operations.

Схема решения системы уравнений (3.6) для данной задачи с помо-щью решателей алгебраических уравнений Algebraic Constraint представ-лена на рисунке 4.4.

I1

I2

I30.25

Ток I3

0.875

Ток I2

1.125

Ток I1

150

R3

100

R2

100

R1

Product2

Product1

Product

50

E2

200

E1

f(z) zSolvef(z) = 0

Algebraic Constraint2

f(z) zSolvef(z) = 0

Algebraic Constraint1

f(z) zSolvef(z) = 0

Algebraic Constraint

Рисунок 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)

Page 180: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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– Схема цепи переменного тока

Powergui-Continuous

+- v

U

R1 L1

18.17

8.688

P+jQ1

1

Multimeter

L3

C3

R3C2

V

IPQ

Active & ReactivePower

+i-

A1

Uvx

Рисунок 4.6 – Модель цепи переменного тока

Рисунок 4.7 – Результаты моделирования

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 181: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

181

Для измерения мощности в цепях переменного тока удобно исполь-зовать блок Active & Reactive Power. На его входы через блоки Voltage Measurement и Current Measurement подают напряжение (верхний вход) и ток (нижний вход). Подключенный к выходу блока дисплей индицирует активную и реактивную (нижняя цифра) мощности.

4.3 Моделирование резонансных цепей Резонансные цепи представляют особый интерес для моделирования,

поскольку аналитический расчет их достаточно громоздок. Для моделирования выберем последовательную цепь, в которой воз-

можен резонанс напряжений. В качестве источника напряжения возьмем блок управляемого источника напряжения Controlled Voltage Source на вход которого будем подавать сигнал линейно нарастающей частоты от блока Chirp Signal, окно параметров изображено на рисунке 4.8, схема модели на рисунке 4.9.

Рисунок 4.8 – Настройки блока Chirp Signal

Series RLC

Branch

Scope+

i-

Current Measurement

signal+-

ControlledVoltageSource

Chirp Signal

Рисунок 4.9 – Модель резонансной цепи и результат моделирования

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 182: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

182

Ток в цепи будем контролировать по осциллографу Scope. В окне настроек блока Chirp Signal, установим время нарастания напряжения численно равным конечной частоте сигнала. В этом случае на экране ос-циллографа ось х – будет осью частоты входного напряжения. Из рисунка видно, что с ростом частоты входного напряжения, амплитуда тока возрас-тает, а затем снижается. Максимальное значение амплитуды соответствует резонансной частоте, в нашем случае 29 Гц.

Данная модель дает лишь качественную картину процесса, для полу-чения более точного результата, воспользуемся блоками Multimeter и Рowergui. Схема модели показана на рисунке 4.10.

После запуска и окончания моделирования, следует войти в окно блока Рowergui/Use LT1 Viewer. В открывшемся окне динамической свя-зи с пакетом Control Systems Toolbox, который служит для линейного анализа цепи, будет указан источник входного сигнала (в левом поле). В правом поле будут показаны те токи и напряжения, измерение которых предусмотрено в блоке Multimeter. Следует помнить, что при линейном анализе цепи программа генерирует стандартный выходной сигнал источ-ника равный 1 В. Выходным сигналом для анализа выбран в данном случае ток в цепи.

Powergui-Phasors

Series RLC

Branch

1

MultimeterAC VoltageSource

Рисунок 4.10 – Частотный анализ резонансной цепи

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 183: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

183

Для проведения линейного анализа следует щелкнуть правой кноп-кой нам пункт меню Open new LT1. Затем в появившемся окне нажав пра-вую кнопку мыши вызвать динамическое меню. Из строки Plot Tipe вы-брать тип линейного анализа Bode, при котором реализуется анализ ам-плитудной и фазной характеристики цепи. Результат анализа представлен на рисунке 4.10.

Для определения резонансной частоты следует навести курсор на кривую, нажать левую кнопку мыши и удерживая ее постараться найти максимальное значение амплитуды сигнала и соответствующее ей значе-ние фазы.

4.4 Моделирование трехфазных цепей Для моделирования трехфазных цепей потребуется использовать

блоки трехфазных источников и нагрузок. Составление модели из одно-фазных элементов, увеличивает количество блоков, не давая преимуществ.

Будем моделировать четырехпроводную трехфазную цепь при со-единении обмоток генератора и фазных нагрузок приемника в звезду.

В модели будем использовать три новых блока: трехфазный источ-ник напряжения (Inductive source with neutral); однофазная нагрузка за-даваемая величинами активной и реактивной мощности (Series RLC Load) и блок измерения трехфазных токов и напряжений (Three-Phase V-I Meas-urement). Окно настройки трехфазного источника питания приведено на рисунке 4.11.

а б Рисунок 4.11 – Окон настройки трехфазного источника питания и

блока измерения в трехфазных цепях

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 184: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

184

В нем задаются амплитуда напряжения, начальная фаза напряжения фазы А, частота и внутренние параметры источника (сопротивление и ин-дуктивность фазы генератора). Введем параметры источника указанные на рисунке 4.11,а.

Если вид окна после его открытия отличается от приведенного выше, нужно убрать галочку в пункте Specity impedance using short-circuit level.

Окно настройки параметров блока Three-Phase V-I Measurement приведено на рисунке 4.11,б. Описание блока дано в самом окне (по анг-лийски). Данный блок может заменить в трехфазных цепях блок Multime-ter, так как измеренные им величины наблюдаются в окне блока Рowergui. В окне блока следует установить вариант измерения напряжений (фаза-ноль) или (фаза-фаза). Удобно включить метки напряжений и токов, по-ставив, галочки в пунктах меню Use label.

Окно настройки параметров нагрузки приведено на рисунке 4.12.

Рисунок 4.12 – Окно настроек параметров нагрузки

Здесь задаются только действующее напряжение и частота нагрузки (220 В, 50 Гц), которые должны быть равны действующему напряжению и частоте источника, активная и реактивная мощности нагрузки (500 Вт и 300 Вар). В нашем случае установлена только индуктивная мощность на-грузки, емкостная составляющая отсутствует. Схема модели показана на рисунке 4.13.

Окно блока Рowergui показано на рисунке 4.14. Здесь кроме напря-жений и токов в фазах, измеряются напряжение 0U и ток 0I . Данные в ок-не блока могут быть представлены в виде пиковых (амплитудных) значе-ний, либо в виде действующих. В последнем случае, необходимо в выпа-

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 185: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

185

дающем списке Units выбрать строку RMS values. При этом рядом со зна-чениями токов и напряжений появляется надпись – rms.

Powergui-Continuous

+-v

Voltage Measurement

A

B

C

A

B

C

Vabc

Iabc

Three-PhaseV-I Measurement

Series RLC Load2

Series RLC Load1

Series RLC Load

500.3

488.6

499.7

294.8

288.9

281.8

Display

+i-

CurrentMeasurement

V

IPQ

Active & ReactivePower

NABC

3-Phase Source

Рисунок 4.13 – Модель трехфазной цепи

Рисунок 4.14 –Окно блока Рowergui с измеренными параметрами цепи

Аналогично можно смоделировать и трехфазную цепь при соедине-нии в треугольник.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 186: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

186

4.5 Моделирование переходных процессов в линейных цепях постоянного и переменного тока

Рассмотрим переходный процесс в цепи RLC при включении ее на

постоянное напряжение. Для решения данной задачи можно использовать два пути. Во первых - воспользоваться встроенными в Simulink связями с пакетом для линейного анализа систем Control Systems Toolbox, в кото-ром предусмотрено исследование реакции системы на скачок входного сигнала (в нашем случае напряжения источника питания). Во вторых, раз-работать модель цепи, включающую переключатель и позволяющую ис-следовать цепь при любых входных воздействиях.

Рассмотрим оба варианта моделирования. Схема модели для первого варианта представлена на рисунке 4.15.

Она состоит из источника входного постоянного напряжения, элемента Se-ries RLC Branch и блоков Multimeter и Рowergui. Параметры цепи задаем такими: R=22 Ом; L=0,021 Гн; C=1 мкФ. Величина напряжения источника питания в данном варианте моделирования никакого значения не имеет, так как при анализе пакетом Control Systems Toolbox в модели автомати-чески осуществляется масштабирование, т.е. входной сигнал задается рав-ным единице независимо от величины установленной в настройках блока.

Рисунок 4.15 – Моделирование переходного процесса в цепи RLC После окончания процесса моделирования в окне блока Рowergui

выбираем пункт меню Use LT1 Viewer, в открывшемся окне нажимаем кнопку Open new LT1 и происходит запуск пакета Control Systems Tool-box. В динамическом меню, вызываемого правой кнопкой мыши, выбира-

Powergui-Continuous

Series RLC Branch

1

Multimeter

DC Voltage Source

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 187: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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.

Рисунок 4.16 – Модель цепи RLC с блоком Breaker и окно настроек блока Step

Step

SeriesRLC

Branch1

R22

Multimeter

1

c2

Breaker

DC Voltage Source

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 188: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

188

Рисунок 4.17 – Результат моделирования и окно настройки блока Breaker

Как видим, вид переходного процесса не изменился, что естественно, но данная модель позволяет определить реакцию цепи и на другие виды воздействия.

Рассмотрим процесс включения цепи на переменное напряжение. Для этого заменим источник постоянного напряжения в модели на источ-ник переменного напряжения амплитудой 100 В и частотой 50 Гц.

Параметры схемы возьмем такие: R=1 Ом; L=0,021 Гн; C=100 мкФ. Изменим, момент включения. Окна настроек блоков Series RLC

Branch1 и Step приведены на рисунке 4.18,а.

а

Step

SeriesRLC

Branch1

R22

Multimeter

1

c2

Breaker

ACVoltageSource

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 189: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

189

б Рисунок 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 сделаны на русском языке. Для того, чтобы стало возможным вводить обозначения в модели на русском языке, следует после составления модели, выполнить команду меню:

0 0.02 0.04 0.06 0.08 0.1-20

-10

0

10

20Ib: Series RLC Branch1

0 0.02 0.04 0.06 0.08 0.1-100

-50

0

50

100Ub: R2

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 190: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 191: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 192: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 193: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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,а.

3,7 кВт;240 В;16.2 A;

1220 об/мин

Момент сил сопротивления на валу пропорционален частоте вращения: Мнагр=Кн*w

1

g

2

m

Рубильник

In Out3 step

starterПусковойреостат

?

Примечание

Мэл

0.2287

Мнагр=Кн*w

w(рад\с) Iя (A)

w

Powergui-Continuous

+- v

V_я

Eв=240 V

E240 В

Demux

В+

Я+

Мнагр

В-

Я-

Мэл

DC_Motor

10 кОм

Таймер

а

1Out

1c

2

Breaker2

1c

2

Breaker1

1c

2

Breaker 6.84.8 s

3.66 ohm

2.8 s

1.64 ohm 0.74 ohm

1In

б Рисунок 4.23 – Схема модели и субмодели блока «Пусковой реостат»

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 194: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 195: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

195

Графики момента на валу и частоты вращения вала двигателя пока-заны на рисунке 4.25, слева и 4.25, справа, соответственно.

Графопостроитель строит зависимость частоты вращения (в рад/с) от тока якоря, то есть от момента на валу. График дан на рисунке 4.26, слева.

Рисунок 4.26 – Пуск двигателя постоянного тока в функции времени В модель можно вводить комментарии с помощью блока Model info.

Он размещается на поле модели и в него вводится необходимый текст. В нашем примере этот блок назван «Примечание» и содержание его приве-дено на рисунке 4.25, справа.

Как видим, модель весьма полно отражает происходящие в схеме процессы. На графике напряжения якоря даже видны выбросы, возникаю-щие при переключении ступеней реостата.

Рассмотрим пример моделирования работы асинхронного двигателя. Блок, моделирующий асинхронный двигатель возьмем из библиотеки Ma-chines. Его вид приведен на рисунке 4.27,а. Как и ранее, изменим обозна-чения внутри блока на русскоязычные. Вид получившегося блока приведен на рисунке 4.27,б.

а б в

Рисунок 4.27 – Блоки асинхронного двигателя и блок измерений

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 196: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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 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. Его назначение – осуществлять связь между М-файлом модели двигателя и внешними измерительными устройствами. В процессе моделирования вы-числяется большое количество электрических параметров машины, но да-

Рисунок 4.28 – Окно настроек блока

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 197: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

197

леко не все требуется вывести в качестве результата. Поэтому в измери-тельном блоке предусмотрена возможность, отмечать галочками те вели-чины, которые необходимы исследователю. В нашем случае их четыре: ток ротора; ток статора; частота вращения ротора и электромагнитный момент машины. Окно настроек этого блока показано на рисунке 4.29,а. В модели название блока Machines Measurement Demux заменено на «Блок измере-ний», как это показано на рисунке 4.27,в.

б в б

а в

Рисунок 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, предназна-

Signal 1

Signal Builder

Момент нагрузки

Мнагр

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 198: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

198

чен для выделения из кривой напряжения заданной гармоники. В нашем случае на его выходе формируется величина равная амплитуде напряжения соответствующей гармоники, которая пересчитывается в действующее на-пряжение. Действующее напряжение источника индицируется на дисплее.

Ток ротора(фазы А)и ток статора (фазы А)

Частота вращени

Электромагнитный момент

Момент нагрузки

Мэл (Н.м)

Мнагр (Н.m)

0

Линейноенапр

1/(sqrt(2))

Вычислительдействующего

значени

m

ir_abc

is_abc

wm

Te

Блок измерений

Сигнал

Амплитуда

Угол

Анализатор спектра

+

-v

vab

ir,is (A)

Vab (V)

N (об/мин)

A

B

C

Мнагр

a

b

c

m

2,2 кВт - 220 В50 Hz - 1437 об/мин

N

A B C

З-х фазный генеретор

25/pi

Мнагр

ir_a (A)

is_a (A)

Рисунок 4.30 – Модель пуска асинхронного двигателя

Результаты моделирования представлены на рисунках 4.31 и 4.32.

а б Рисунок 4.31– Кривая напряжения на двигателе (а) и нагрузка на валу (б)

Зависимость числа оборотов вала от времени машины, изображена на рисунке 4.33. Как видим, в момент увеличения нагрузки наблюдается провал скорости вращения и увеличение токов в обмотках статора и рото-ра. Заметим, что частота тока в обмотках ротора значительно ниже, чем частота напряжения питания машины.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 199: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

199

а б Рисунок 4.32 – Токи ротора и статора (а, электромагнитный момент (б)

Рисунок 4.33 – Переходный процесс разгона двигателя при

скачкообразном изменении нагрузки на валу

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 200: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

200

4.8 Моделирование схем преобразовательной техники

Программа Simulink может применять-ся и для моделирования электронных сило-вых устройств, выпрямителей, инверторов и других устройств преобразовательной техни-ки.

Рассмотрим модель трехфазного одно-полупериодного выпрямителя. В нее входят три однофазных источника переменного тока

напряжением 220 В и частотой 50 Гц, сдвинутые друг относительно друга на 120?. Последовательно с ними, включены реакторы (индуктивности) ве-личиной 0,003 Гн.

Диоды (рисунок 4.34) моделируются блоком Diode из библиотеки Power Electronics. В их параметры входят: сопротивление Ron и индук-тивность Lon при обратном включении; сопротивление Rs и емкость Cs при обратном включении; напряжение, при котором начинается протека-ние тока через диод Vf; начальное значение тока через диод Ic (обычно принимается по умолчанию – 0).

Схема модели приведена на рисунке 4.35.

Трехфазный однополупериодный выпрямитель

Напряжениефазы 220 В, частота 50 Гц

L1=L2=L3=0,003 Гн

Осциллограф

v3v2v1

+- v

Vd

Selector

Rн 10 Oм

Mux

L3L2L1

L =200 мH

+ i-

Id

Demux

ak m

D3

ak m

D2

ak m

D1

Напряжение на нагрузке VdТок нагрузки Id

Токи диодов D2 и D3Напряжение на диоде D3

Рисунок 4.35 – Модель трехфазного однополупериодного выпрямителя

Результаты моделирования приведены на рисунке 4.36. К сожалению, моделирование маломощных выпрямителей, усилите-

лей и других устройств электроники здесь невозможно. Точнее, такое мо-

ak m

Diode

Рисунок 4.34 – Блок Diode

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 201: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

201

делирование слишком будет весьма приближенным, так как особенности типов аналоговой электроники, их тонкие различия в характеристиках, влияние температуры, разброса параметров и т.д. здесь учесть весьма за-труднительно, а по большей части и просто невозможно - слишком упро-щенные модели лежат в основе работы данных электронных блоков. Но при моделировании мощных устройств – эта особенность моделей оказы-вается достоинством, поскольку позволяет не отвлекаться на мелочи (на-пример, выбор марки диода, тиристора и т.д. из тысяч имеющихся разно-видностей).

Рисунок 4.36 – Результаты моделирования выпрямителя

Рассмотрим еще один пример из области преобразовательной техни-ки – широтно-импульсный преобразователь напряжения постоянного тока в переменный. Такие преобразователи широко применяются в технике при питании устройств от источников ограниченной мощности постоянного тока, например, аккумуляторов.

Принцип работы устройства в том, что напряжение источника по-стоянного тока периодически подключается к нагрузке с высокой часто-той. Эта частота постоянна, но длительность импульсов изменяется по си-нусоидальному закону. При высокой частоте коммутации, нагрузка реаги-

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 202: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 203: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 204: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

204

Рисунок 4.39 – Окно частотного анализа

Заключение Данное пособие не претендует на законченность в описании воз-

можностей для работы с программой MATLAB. Язык технических вычис-лений (такое название дано этой программе) позволяет по новому взгля-нуть на процесс изучении курса «Электротехники», «Электрических ма-шин», «Электропривода», «Электроснабжения» и других электротехниче-ских предметов не только с точки зрения студента, учащегося, но и с точки зрения преподавателя. Не скованные узкими рамками вычислительного процесса задания выдаваемые студентами могут быть не только чисто учебными, но и содержать достаточную исследовательскую составляю-щую. Это дает возможность на самых первых курсах, (электротехника изу-чается на втором курсе в большинстве вузов), приобщить учащегося к на-учной работе, заинтересовать его изучаемым предметом и повысить, как следствие, качество учебного процесса.

Мы надеемся, что данное пособие послужит учащимся первой сту-пенькой в освоении современных методов инженерных вычислений и по-зволит им стать настоящими специалистами в выбранной ими области ин-женерной деятельности.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

Page 205: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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, Con-trol 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)

Page 206: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 207: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)

Page 208: Применение программы MATLAB при изучении курса …promiko.com.ua/books/Lure_MATLAB.pdfmatlab, и с рядом частных, в которых

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)


Recommended