Моделирование движения точки
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Моделирование колебательного движения
Колебательная система состоит из тела массой m, находящегося на пружине с жесткостью k в вязкой.
Моделирование движения электронов в гиротроне
Нужно построить построить семейство окружностей,центры которых лежат на окружности с заданным.
Моделирование движения электрона в магнитном поле
Привет всем. Сразу оговорюсь, дабы избежать дальнейших вопросов и осуждений меня, только начинаю.
Моделирование движения физического маятника в вязкой среде
Здравствуйте уважаемые формучане, нужна Ваша помощь. Моделирование движения физического маятника.
Зосима, хм, да, сглупил Тогда нужно на прямую y=ax+b. Но программа будет какая по уровню сложности по пятибальной шкале?)
Если попытаюсь написать, то буду сюда задавать вопросы касательно неё, если возникнут
Затем будем думать, как правильно его отразить.
*Чуток причесал, т.к. у меня виднелась только дрожащая точка
Но возникает по ходу дела несколько проблем: 1) направить точку влева мне так и не удалось, как бы я не игрался с иксом, отнимая от него или его самого от чего, 2) при изменении параметра а изменяется и скорость точки, которую бы надо как-то откорректировать, 3) некоторое возвращение к пунтку 1, при некоторых отражениях точка меняет направление движения с движения в сторону минуса по оси х в сторону плюса, а предугадать это направление пока не знаю как
Добавлено через 18 минут
почему-то если изменить в этой строчке
*лично мне не нравится использовать set
Модельно-ориентированное проектирование на коленке, идентификация систем в MATLAB/Simulink
Сегодня я хочу показать простой пример идентификации системы, основываясь на наблюдениях и экспериментальных данных. Это первая и крайне важная ступень в разработке системы управления устройством, которое описать аналитически либо невозможно, либо слишком сложно, либо неохота. Для начала рассмотрим метод «черного ящика с котом», «серый» и «белый» методы оставим на следующий раз.
Интересующихся прошу под кат.
Оборудование и программное обеспечение в наличии
В данном ПК (а это по сути и есть IBM совместимый ПК) присутствуют платы ввода-вывода с аналоговыми, дискретными, и прочими входами и выходами, которые я использую как для сбора данных, так и для управления ходом эксперимента. Но самое главное — я могу одним нажатием запускать на ней модели Simulink в режиме жесткого реального времени. О таких машинках (да простят мне уменьшительно-ласкательное дальнейшее к Ней обращение:-) я много еще могу рассказать. Если интересно — можно выделить для этого отдельный топик.
В собранном виде, если это можно назвать собранностью, все выглядит так:
Постановка задачи
Есть система — необходимо получить её модель для дальнейшей работы. Проще некуда.
Поведение системы и её модели должно максимально совпадать в пределах допустимых входных воздействий. Метод «черного ящика» подразумевает, что мы не будем, или почти не будем, принимать во внимание физику процессов внутри системы, а будем рассматривать её с общей точки зрения теории управления.
В детали я вдаваться в этот раз не буду, поначалу все и так видно, на глаз.
Но следует учесть, что за кулисами остаются архиважные и преинтереснейшие темы — планирование эксперимента (DOE) и дисперсионный анализ (ANOVA), которые заслуживают отдельного рассмотрения.
20 секунд тестового воздействия.
Выглядит тестовый вектор так:
На выходе системы я ожидаю увидеть хоть что-то подобное 🙂
Для успешной идентификации тестовый вектор должен покрывать максимальное количество режимов работы системы, в которых она будет, или может работать. Метод «черного ящика» не позволяет в полной мере исследовать аварийные режимы ввиду ограниченности количества экспериментальных образцов. Я буду исследовать систему в рабочих режимах плавного пуска и старт-стоп.
Дискретизация величин, временные задержки, моменты инерции механических деталей, трение спокойствия, трение скольжения, трение качения, механический люфт, разбалансировка, резонансные явления, коммутация индуктивных цепей, скользящий контакт, искрение — не полный перечень факторов, с которыми нам пришлось бы столкнуться при попытке описать данную систему аналитически. А ведь это — всего лишь ардуинка с моторчиком!
Соглашусь, некоторыми нюансами вполне можно пренебречь, но на практике, решение пренебречь каким-либо фактором — не самое простое решение.
Так выглядит ШИМ из Arduino (желтый) и напряжение на чисто резистивной нагрузке, которая подключена к шилду:
А вот графики при подключенном двигателе в режимах, когда двигатель еще не вращается, и уже вращается:
Коммутация индуктивной нагрузки с механическим контактом полупроводниковыми ключами — крайне интересная тема для исследований, но сегодня мы внимания ей уделять не будем. Мы срежем по прямой — будем рассматривать только вход и выход системы, не вникая в физику процессов.
Модели Simulink
На машине реального времени я запускаю вот такую модель:
Структура её крайне проста. Есть блоки для входов, выходов, общие настройки плат ввода-вывода, вывод информации на дисплей машинки и простая внутренняя логика пересчета тиков от квадратурного энкодера в угол и скорость.
Модель для получения прошивки под Arduino выглядит следующим образом:
Таблица истинности, которая отслеживает знак сигнала и управляет входами Motor Shield
Код алгоритма можно посмотреть под спойлером:
Весь проект можно скачать здесь.
Модель, которую я буду использовать для проверки результатов:
Все модели можно скачать здесь.
«Открыл и запустил» может не сработать, есть нюансы. С вопросами в личку, или в комментарии.
Видео
Результаты
Вот, что получилось в итоге:
Синий — это входной сигнал с пределами от -255 до +255. В пересчете на вольты будет примерно от -8,5 до 8,5.
Зеленый — скорость вращения вала двигателя.
Видим временную задержку, отсутствие вращения, либо крайне малое вращение при подаче ШИМ менее 25%. Также наблюдаем классический апериодический переходной процесс.
А вот информация, которая выводится во время проведения эксперимента на дисплей, подключенный к машине реального времени:
Идентификация
Одна из подсистем, а именно двигатель, может быть описан следующей передаточной функцией:
Так нам говорит курс ТАУ, с неё мы и начнем.
В составе MATLAB есть прекрасный инструмент для идентификации систем — System Identification Toolbox. Он доступен как в виде графического интерфейса, так и в виде набора функций, которые можно использовать в скриптах MATLAB. Рассмотрим сперва работу в графическом интерфейсе.
Импортируем данные, полученные в ходе эксперимента и тестовое воздействие:
После импорта нам становятся доступны инструменты предварительной обработки данных. Мы имеем возможность, например, разделить массивы данных на две части — для идентификации и отдельно для верификации. Но это для более сложных случаев, давайте же скорее перейдем к делу!
Выбираем из выпадающего списка «Estimate» пункт Transfer Function Models.
Получаем передаточную функцию:
Давайте сравним поведение полученной функции и системы:
Синим отображен отклик передаточной функции на исходный тестовый вектор. Видно, что данную функцию можно использовать как модель исходной системы только в режиме старт-стоп. И не удивительно — нелинейное поведение, которое присутствует в системе, не может быть описано таким способом.
Продвигаемся дальше, используем шаблон модели Хаммерштейна-Винера, которая дает возможность описывать нелинейное поведение системы:
В качестве входной нелинейности выберем Dead Zone — отсутствие реакции системы на входной сигнал менее определенного порогового значения. Такой тип нелинейности должен взять на себя описание трения спокойствия и влияния постоянных магнитов, которое имеет место в системе.
Остальные параметры по умолчанию, жмем Estimate.
Update#1 по просьбе MichaelBorisov:
Более подробно настройка нелинейной части выглядит так:
Для случая с Dead Zone все просто — задаем тип и пороговые значения.
Настройка линейной части позволяет предварительно указать порядок и оценить задержку:
Несмотря на то, что это «черный ящик» — на практике получение адекватного результата очень зависит от колличества знаний о системе, которые Вы вложили в конфигурацию расчета.
endOfUpdate#1 по просьбе MichaelBorisov:
Сравниваем полученный результат с экспериментальными данными:
Выглядит гораздо лучше! Не идеально — заметно некоторое аномальное поведение, но мы ведь только слегка коснулись идентификации нелинейных систем.
Теперь нам остается только экспортировать данную модель в Simulink, где мы можем приступить к разработке системы управления. Но об этом в следующем топике!
Благодарю за внимание, надеюсь было интересно?
И еще раз благодарю за ответы на небольшой опрос:
Моделирование СМО в Simulink MATLAB
Найдены возможные дубликаты
Здорово, конечно, но зачем на пикабу то выкладывать? Это же развлекательный сайт. Тут люди не понимают ничего, что хоть немного выходит за рамки школьного курса, а часто и его приходится разъяснять.
Ну и разбирать код. Лучше выложи его архивом, может, пригодится кому.
Вы недооцениваете людей.
Это было бы неплохо.
К сожалению, в формат поста было сложно включить более подробное рассмотрение СМО, т.к. основной темой всё-таки был Simulink. Вы можете задавать вопросы в комментариях.
Здравствуйте! Можете более подробно расписать процесс создания модели? Я вот схему построил, а код писать куда не понял.
Давно интересует вопрос. Вот в метро на эскалаторе часто люди встают с правой стороны. Для пропуска торопящихся. И из-за этого очередь становится ещё больше. Внимание, вопрос знатокам. Если бы все вставали нормально на ступеньки (пусть не вплотную, а то будет сложно сходить, а хотя бы в шахматном порядке), сильно изменилась бы пропускная способность, в среднем? Ведь реально спускаются по “выделенке” лишь немногое
если в шахматном, то уменьшится на число пробегающих, если по двое, то пропускная способность будет X*2-Y где X- первоначальная пропускная способность, Y- число пробегающих за промежуток времени, который стоит в знаменателе единицы измерения пропускной способности.
уменьшится на число пробегающих
Разве? Дополнение. Люди, которые встают в один правый ряд, всё равно встают через ступеньку
Х+(Х/2)-Y с ошибкой в 2 или 1 человека, т.к. неизвестно в таком порядке они встают с первого или со второго, и четное количество рядов или нечетное.
ВСЕМУ ВИНОЙ СПЕЦИАЛЬНО ОБУЧЕННЫЕ ОБЕЗЬЯНЫ, СТОЯЩИЕ У МАТЕМАТИЧЕСКИХ АППАРАТОВ!
Время обслуживания в общем виде есть случайная величина. В посте рассмотрен пример когда эта величина имеет экспоненциальное распределение, однако вообще можно рассмотреть в т.ч. и распределение общего вида, которое будет учитывать и события «человек пробил один товар и заплатил без сдачи», и события «человеку пробили один товар, потом он бегал взвешивать конфеты, потом пришлось сделать отмену и в конце концов при попытке расплатиться карточкой зависла касса».
а каким образом в Simulink можно задать распределение общего вида?
Честно говоря, перешла на линукс и потому точно ответить на вопрос не смогу. Если не ошибаюсь, там была возможность задавать ивентам атрибуты. Т.е. ивент проходит через спецблок, который ему присваивает атрибут с каким-то значением. Это значение можно генерировать случайно (был там какой-то блок, уже не помню как называется). Это позволяет делать ивенты с дискретным распределением, не непрерывным.
я не о недостатках конкретно вашей модели, я о недостатках моделирования в целом, чисто по результатам моделирования судить о каком-либо процессе, в полной мере нельзя.
З.Ы. Сам пишу кандидатскую по моделированию, только электромеханических процессов. до этой мысли дошел, когда сделали макетный образец, а некоторые результаты моделирования не сходятся, думаю что придется усложнять модель, а так неохота.
ЯННП, но мне понравилось
Светлое будущее
Логика и лояльность
Звоню в МегаФон:
— я у вас 15 лет, дайте скидку хоть 10%
— нет, хорошего дня, оцените качество консультации.
Иду в Теле2, перенос номера.
Звонит МегаФон:
— вот вам скидка 50%, оставайтесь у нас.
Конец.
Перепись не удалась
Знакомый работает в перепеси бегунком по квартирам. За несколько дней работы двери открывали лишь 5% квартир. В итоге, в такой ситуации, сверху придумали гениальную мысль: перенести данные с последней переписи населения на текущую. Гениально. Мой знакомый теперь сидит дома, никуда не ходит, а просто за чашечкой кофе переписывает всех с 2010 (вроде как) года.
Стиви Уандер
Или кто-то против?
Даже Ройзман не выдержал
Обычная многодетная семья в Канаде
И это правда))
Ответ на пост «Совсем уже обнаглели»
Люди работают по 25-30 лет, текучка минимальная, руководство знает всех сотрудников и всегда при встрече жмет руку. Коллектив больше 600 человек. И это в Москве.
Школа MATLAB. Урок 1. Моделирование устройств силовой электроники. Основные инструментарии Simulink
Краткие сведения
Система MATLAB (от слов Matrix Laboratory — матричная лаборатория) создана специалистами фирмы Math Works Inc. с привлечением большого количества партнеров. Существует она около двадцати лет. Это лицензионный программный продукт высочайшего уровня, который постоянно совершенствуется, что проявляется в появлении новых более совершенных версий. Так, в 2001 году фирма Math Works выпустила в свет версию MATLAB 6.1, ставшую явным лидером в классе подобных систем и получившую развитие в последующей версии MATLAB 6.5 (Release 13). Летом 2004 года фирмой Math Works объявлено о начале поставок MATLAB 7.0 (Release 14), но эта версия пока еще не получила должного распространения.
Размещается система MATLAB 6.5 (Release 13) на трех компакт-дисках и ее рекомендуется устанавливать на персональный компьютер на базе процессоров типа Pentium II, Pentium III, Pentium IV, Xeon, AMD Athlon, Athlon XP при условии, что оперативная память имеет объем не менее 128 Mбайт (предпочтительнее 256 Mбайт). Полная версия системы занимает объем памяти на жестком диске свыше 1,1 Гбайт. Совмещается с Microsoft Word 8.0 (Office 97), Office 2000 или Office XP. В то же время, Office 95 не имеет полной поддержки. Установка системы MATLAB осуществляется в соответствии с инструкцией, расположенной на первом компакт-диске в файле install_guide.pdf (книга Installation Guide for Windows). Отметим, что вся документация системы MATLAB выполнена на английском языке.
Уроки школы MATLAB в журнале «Силовая электроника» рассчитаны на специалистов в области проектирования устройств силовой электроники, электропривода, систем автоматического управления, а также на аспирантов и студентов, обучающихся указанным специальностям. Предполагается, что читатель в достаточной мере знаком с персональным компьютером, пакетами Windows, Microsoft Office, имеет навыки работы с РС с помощью мыши. Желательно знание технического английского языка.
Введение
Система MATLAB представляет собой язык программирования высокого уровня, предназначенный для инженерных и научных вычислений и создания средств моделирования различных устройств и систем. Базируется на алгоритмах матричных вычислений с выполнением операций над наборами векторов, что определяет основное отличие этой системы от других известных пакетов — MathCAD, Maple, Mathematika и других. За счет матричного и векторного представления данных разработчикам удалось существенно повысить скорость вычислений, экономно использовать ресурсы памяти и обеспечить высокую точность расчетов. В MATLAB реализован модульный принцип построения с широкими возможностями модификации и расширения, что подтверждает состав этого продукта, а именно: несколько десятков пакетов прикладных программ и более двух сотен приложений и расширений, богатейшая библиотека функций (свыше 800), а также огромный объем документации, насчитывающий десятки тысяч страниц.
Для удобства пользования вся система MATLAB поделена на разделы, оформленные в виде пакетов программ, наиболее общие из которых образовали ядро. Другие пакеты объединены или существуют индивидуально в виде так называемых Toolboxes. Особо следует выделить пакет Simulink, предназначенный для моделирования линейных и нелинейных динамических систем. Он базируется на принципах визуальноориентированного программирования с использованием моделей в виде комбинаций компонентов-блоков, путем соединения которых между собой составляются функциональные модели устройств и систем. При этом математическая модель, описывающая поведение такой системы, формируется и решается автоматически. Для исследователя Simulink создает массу возможностей, начиная от функционального представления устройства и вплоть до генерирования кодов, используемых для программирования микропроцессоров. Пакет Simulink вместе с пакетом расширения SimPowerSystems (в более ранних версиях — Power Systems Blockset) являются основой для изучения и исследования устройств силовой электроники и электромеханических устройств.
Система MATLAB 6.5 объединена с версиями пакетов Simulink 5.0 и SimPowerSystems 2.3. Важно отметить, что оба указанных пакета снабжены обширными библиотеками. Библиотека Simulink содержит блоки, в основном ориентированные на моделирование конкретных устройств в виде функциональных схем. В нее входят источники сигналов, масштабирующие, линейные и нелинейные блоки, квантователи, интеграторы, дифференциаторы, измерители и т. д. В библиотеку SimPowerSystems входит набор блоков для имитационного моделирования электротехнических устройств в виде пассивных и активных электротехнических элементов, источников энергии, электродвигателей, трансформаторов, полупроводниковых элементов. С помощью Simulink и SimPowerSystems можно имитировать работу устройств во временной области, а также выполнять анализ их свойств — рассчитывать импеданс цепи, получать амплитудно- и фазочастотные характеристики, выполнять гармонический анализ токов и напряжений.
Несомненное достоинство Simulink и Sim PowerSystems состоит в возможности построения моделей сложных электротехнических систем на основе методов имитационного и функционального моделирования. Так для построения силовой части полупроводникового преобразователя используются блоки SimPowerSystems, имитирующие элементы и устройства, а в его системе управления — функциональные блоки Simulink, которые отражают алгоритм ее работы без представления электрической схемы. За счет такого подхода, в отличие от известных пакетов схемотехнического моделирования типа OrCAD, PSpice, DesignLab, Workbench и т. п., модель упрощается, экономится память, повышается скорость расчета и работоспособность ПК. Важно отметить, что после построения функциональной модели исключается сложный этап составления и решения алгебраических и дифференциальных уравнений и обеспечивается возможность визуального контроля поведения созданной модели и протекающих в ней процессов.
При построении моделей с применением элементов SimPowerSystems и блоков из библиотеки Simulink допустимо привлечение функций самой системы MATLAB, что существенно расширяет возможности моделирования электротехнических систем и полупроводниковых устройств. Несмотря на обширность библиотеки SimPowerSystems, возможны случаи, когда нужный блок как таковой в библиотеке отсутствует. В этих случаях пользователь может разрабатывать свои собственные блоки, используя имеющиеся в библиотеке элементы и применяя созданные подсистемы в Simulink. Все указанное позволяет утверждать, что SimPowerSystems и Simulink — это современные постоянно развивающиеся пакеты с широкими возможностями моделирования устройств силовой электроники, электромеханических устройств и систем автоматического управления.
Урок 1. Основные инструментарии Simulink
Цель первого урока состоит в знакомстве читателя с построением окон, которые необходимы для функционального моделирования в Simulink, и с применяемыми в них меню опций, кнопками управления и элементами контроля. Излагается порядок построения S-моделей и основные правила их редактирования. Даются краткие сведения по разделам библиотеки Simulink.
Запуск пакета Simulink
Рис. 1. Командное окно системы MATLAB 6.5
Работа с пакетом Simulink начинается с запуска системы MATLAB с помощью выведенного на «Рабочий стол» ярлыка (см. рисунок), либо через кнопку на панели задач Пуск/Программы/MATLAB (здесь и ниже через косую черту указывается последовательность нужных пунктов или действий в меню, подменю и т. д.). В результате открывается окно (рис. 1), содержащее:
Запуск пакета Simulink осуществляется одним из следующих способов:
Последний из перечисленных способов следует применять для запуска отлаженной модели, в которую не требуется добавлять какие-либо блоки. Сразу отметим, что под S-моде-лью понимается модель, созданная в Simulink, а под SPS-моделью — модель, созданная в SimPowerSystems. Основные манипуляции в процессе работы осуществляются с помощью левой кнопки мыши (в дальнейшем — ЛК мыши). Использование правой кнопки мыши (ПК мыши) будет оговариваться особо. Открывать окно браузера нужно в тех случаях, когда либо создается новая модель, либо в имеющуюся модель добавляются новые блоки из библиотеки.
Окно браузера библиотеки Simulink (рис. 2, сверху вниз) содержит:
Рис. 2. Окно браузера (обозревателя) библиотеки Simulink
При вызове окна браузера автоматически открывается раздел библиотеки Simulink в левой (подстрочное подменю в виде дерева) и правой (пиктограммы подразделов) частях окна. Заметим, в нижнем отделе списка левой части окна имеется строка с названием раздела SimPowerSystems. С разделами в левой части правила работы общие для подобных списков: в пиктограмме свернутого узла дерева знак «+», а у развернутого «-». Щелчком ЛК мыши по указанному знаку можно развернуть или свернуть узел дерева.
На панели меню окна браузера имеются 4 меню (рис. 2):
Кнопки, располагающиеся на панели инструментов окна браузера:
Окно для создания S-модели
Рис. 3. Окно для создания S-модели
Вновь открытое окно модели имеет имя Untitled— «Без названия» с соответствующим номером, если открыты несколько окон модели. При сохранении созданной модели в виде mdl-файла через пункты меню File-Save as… открывается окно сохранения в папку Work системы MATLAB. В нижнем текстовом окне следует набрать название модели и выполнить операцию сохранения. Название должно начинаться с букв (использовать только латинский шрифт) и содержать при необходимости цифры. В качестве разделителя допускается использовать только черту подчеркивания. Пример названия: Diod_3_04. После того, как выполнено сохранение, название модели автоматически присваивается в качестве названия окну.
Меню содержат опции для настройки, редактирования модели, управления процессом моделирования и т. п.:
При работе с моделью целесообразно пользоваться кнопками панели инструментов, основные из которых пронумерованы (рис. 3). Не проставлены номера у кнопок с общепринятыми обозначениями. Приведем перечень пронумерованных кнопок:
В строке состояния располагаются комментарии к задействованным кнопкам инструментов и к пунктам меню, на которых находится указатель мыши. Кроме того, в этой строке отражается состояние Simulink: Ready (Готов), Running (Выполнение), а также:
Более подробно функции указанных меню и инструментов рассматриваются ниже по мере надобности.
Построение S-модели
Рис. 4. Окно источников Sources (а) и приемников Sinks (б) сигналов в окне браузера Simulink
Найдем пиктограмму блока Constant (Источник постоянного сигнала), поместим на него указатель мыши и, нажав ЛК мыши, переместим блок в окно модели и отпустим ЛК. Пиктограмма блока, точнее, ее копия, останется в окне модели (рис. 5а). Это же перемещение можно осуществить так. Выделяется пиктограмма щелчком ЛК мыши и затем в окне браузера выполняется действие в меню Edit/Add to the current model. Выбранный блок сам переместится в окно модели. Вновь щелчком ЛК мыши в левой части браузера по пиктограмме Sinks вызовем в правой части набор пиктограмм блоков этого подраздела (рис. 4б). Найдем измерительный блок Display (Цифровой вольтметр). Перетащим пиктограмму с помощью ЛК мыши в окно модели (рис. 5б). Теперь необходимо соединить оба блока, чтобы собрать схему измерения. У блока Constant справа имеется «воронка» (маленький треугольник), направленная наружу (выход имеется у всех источников), а у блока Display она расположена слева и направлена внутрь (вход имеется у всех приемников). Соединение блоков возможно двумя способами:
В результате операции между блоками возникнет связь в виде соединительной линии со стрелкой, направленной к входу блока Display (рис. 5в). Теперь необходимо настроить блоки. У блока Constant выставляется выходное напряжение 10 В. При двойном щелчке ЛК мыши по пиктограмме этого блока открывается окно настройки Block parameters: Constant. В текстовом окне Constant value с клавиатуры надо исправить 1 на 10 (рис. 5г). Сохраняется введенное значение нажатием ЛК мыши кнопки Apply (окно при этом не закрывается) или кнопки Ok (введенное значение сохранится, а окно закроется). В пиктограмме блока Constant вместо 1 появится 10 (рис. 5д). Блок Display можно не настраивать, хотя настройки у него также имеются. Для запуска построенной модели следует нажать кнопку запуска Н. Процесс моделирования в такой задаче выполняется относительно быстро, что видно по изменениям надписей на строке состояния окна. По окончании на экране блока Display появляется результат измерения, равный 10 (рис. 5е). Итак, порядок действий при построении S-модели следующий:
Рис. 5. Порядок построения S-модели
Основные операции при редактировании S-модели:
При работе с блоками можно изменять пиктограммы и их окраску, разворачивать на плоскости, изменять и перемещать их названия (блочные подписи), шрифт текста и т. д. Эти действия сгруппированы в меню Format окна модели.
Основные разделы библиотеки Simulink
Рассмотрим основные блоки библиотеки Simulink, которые в дальнейшем будут использоваться при построении систем управления для устройств силовой электроники. Вызовем последовательно из окна браузера Simulink Library Browser библиотеку Simulink и раздел Sources.
Sources — источники сигналов
Генератор синусоидального напряжения Sine Wave
Пиктограмма генератора синусоидального напряжения.
Назначение — получение сигна ла синусоидальной формы с заданной частотой, амплитудой, фазой и смещением.
Окно параметров блока (рис. 6), вызываемое двойным щелчком ЛК мыши по пиктограмме генератора, содержит:
Рис. 6. Окно настройки параметров генератора синусоидального напряжения
Формирование сигнала осуществляется в соответствии с алгоритмом, выбираемым в текстовом окне Sine type: Time based или Sample based. В первом случае сигнал формируется по текущему времени для непрерывных систем
u = Um sin (2xpixfxt + φ) + U0
Параметры блока: Amplitude— амплитуда Um, Bias — постоянная составляющая (смещение) в сигнале U0, Frequency— частота f (рад/с), задается значение в (2xpixf), Phase— начальная фаза (рад), Sample time— такт дискретности TS, Interpret vector parameters as 1-D — интерпретация вектора как массива скаляров. В MATLAB число к обозначается «pi».
Во втором случае Sample based формирование сигнала осуществляется по количеству тактов в периоде
u = Umsin (2xpixfxkxTs + φ) + U0 = Um sin(2xpixk + lφ))/N + U0
где f — частота сигнала в Гц, N — количество тактов в секунду, k — номер текущего шага от 0 до N-1, l — начальная фаза, заданная количеством тактов.
Параметры блока: Amplitude— амплитуда Um, Bias — постоянная составляющая в сигнале U0, Sample per period — количество тактов за период N = 1/ (fxTS) или p = 2xpixN, Number of offset samples — начальная фаза в тактах дискретности l = ср xp/(2xpi), Sample time — такт дискретности TS, Interpret vector parameters as 1-D — интерпретация вектора как массива скаляров.
В качестве примера приведена функциональная модель (рис. 7а) и результат моделирования (рис. 7б) в виде временной диаграммы — осциллограммы. В модели использован новый блок измерения — осциллограф (Scope), который будет рассмотрен далее.
Рис. 7.
а) Функциональная модель с генератором синусоидального напряжения;
б) результат моделирования
Генератор ступенчатого сигнала Step
Пиктограмма генератора ступенчатого сигнала.
Назначение — получение сигнала в виде единичного скачка.
Параметры блока: Step time — время начала перепада сигнала, Initial value — начальное значение сигнала, Final value — конечное значение сигнала (оба значения могут быть положительными или отрицательными), Sample time — такт дискретности TS, Interpret vector parameters as 1-D— интерпретация вектора как массива скаляров, Enable zero crossing detection — определение прохождения сигнала через нуль.
Функциональная модель с генератором ступенчатого сигнала и осциллографом (Scope), а также результат моделирования приведены на рис. 8.
Рис. 8.
а) Функциональная модель с генератором ступенчатого сигнала;
б) результат моделирования (б)
Генератор импульсного сигнала Pulse Generator
Пиктограмма генератора импульсного сигнала.
Назначение— формирование импульсного напряжения.
Параметры блока: Pulse Type — способ формирования сигнала:
Amplitude — амплитуда, Period — период (задается в секундах для режима TB или количеством тактов для SB), Pulse width — ширина импульса (задается в процентах по отношению к периоду для TB или количеством тактов для SB), Phase delay— фазовая задержка (задается в секундах для режима TB или количеством тактов для SB), Sample time — такт дискретности TS, Interpret vector parameters as 1-D — интерпретация вектора как массива скаляров. Схема с использованием Pulse Generator и результаты моделирования приводятся на рис. 9.
Рис. 9.
а) Функциональная модель с генератором импульсного сигнала;
б) результаты моделирования (б)
Генератор сигналов Signal Generator
Пиктограмма генератора сигналов.
Назначение — формирование периодических сигналов.
Параметры блока: Wave form —вид формируемого сигнала:
Amplitude— амплитуда, Frequency— частота, Units — единицы измерения частоты (Hertz — Гц, rad/sec — рад/с), Interpret vector parameters as 1-D — интерпретация вектора как массива скаляров.
На рис. 10 представлены функциональная модель с Signal Generator и результат моделирования.
Рис. 10.
а) Функциональная модель с генератором сигналов;
б) результат моделирования пилообразного сигнала
Sinks — приемники сигналов
Вызовем раздел Sinks в окне браузера Simulink. В этом разделе библиотеки располагаются блоки для измерения и контроля сигналов. Наиболее часто используется измерительное устройство — осциллограф Scope, который следует рассмотреть подробнее.
Осциллограф Scope
Назначение — построение временных диаграмм сигналов.
Рис. 11.
а) Окно с осциллограммой;
б) панель инструментов для его настройки;
в) окно настройки оси координат
Дает возможность наблюдения за ходом процессов при моделировании. Окно для наблюдения за сигналами (окно осциллограммы) открывается двойным щелчком ЛК мыши по пиктограмме Scope, что выполняется на любой фазе моделирования. Такое окно с осциллограммой прямоугольных импульсов показано на рис. 11 а. Для настройки этого окна используются кнопки панели инструментов (рис. 11б):
Изменение масштаба осциллограммы:
Для настройки осциллографа используется окно задания параметров ‘Scope’ parameters, которое вызывается кнопкой Parameters и содержит две закладки: General — общие параметры и Data history — параметры сохранения сигнала в рабочем пространства Workspace системы MATLAB (рис. 12а и 12б соответственно). На закладке General задаются Number axes (число осей или число входов осциллографа); Time range (величина временного интервала, на котором отображается график — модельное время); Tick labels — вывод и скрытие осей и меток: all — подписи для всех осей; none — без осей и подписей к ним; bottom axis only — подписи горизонтальной оси только для нижнего графика. Sampling — установка параметров вывода графиков в окне: Decimation — прореживание (кратность вывода точек графика, так, при кратности 2 выводится каждая вторая точка); Sample time — шаг модельного времени (интервал дискретизации при отображении сигнала); Floating scope — изменяющийся режим (перевод осциллографа в изменяющийся режим).
Рис. 12. Окно настройки параметров Scope
На закладке Data history задаются следующие параметры: Limit data points to last — максимальное количество отображаемых расчетных точек графика (если этот флажок не установлен, то количество отображаемых точек определяется количеством расчетных значений); Save data to workspace — сохранить расчетные значения сигналов в рабочем пространстве MATLAB; Variable name — имя переменной для сохранения сигналов в рабочем пространстве; Format — формат данных для сохранения сигналов в рабочем пространстве: Array — массив; Structure — структура (массив записей); Structure with time — структура (массив записей) с дополнительным полем времени.
Графопостроитель XY Graph
Назначение — построение гра фика значений одного сигнала в функции другого.
Параметры блока: x-min и x-max — минимальное и максимальное значения сигнала по оси X; y-min и y-max — минимальное и максимальное значения сигнала по оси Y, Sample time— такт дискретности TS.
Другие блоки из библиотеки Simulink будут рассмотрены далее по мере надобности.
Установка параметров моделирования
Перед моделированием необходимо задать основные параметры анализируемых процессов. Для этого в окне модели выполняются действия в меню Simulation/ Simulation Parameters. Появляется окно (рис. 13), имеющее 5 закладок: Solver — решатель для установки параметров моделирования; Workspace I/O — ввод-вывод данных в рабочую область; Diagnostics — диагностика для настройки параметров диагностирования; Advanced — дополнительные параметры; Real-Time Workshop — параметры инструмента ‘Мастерская реального времени’.
Рис. 13. Окно настройки параметров моделирования решателя Solver (а) и ввода/вывода данных в рабочее пространство (б)
В закладке решателя Solver имеется три группы параметров (рис. 13а):
Важный момент при установке параметров решателя — это выбор метода интегрирования (Type) при решении дифференциальных уравнений: ode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb, которые отличаются друг от друга скоростью расчета и погрешностью получаемого решения. После списка Type приводится область, содержание которой зависит от выбора Fixed-step или Variable-step. При выборе Variable-step, который является предпочтительным, появляются поля для установки следующих параметров:
Погрешности вычислений при моделировании непрерывных систем по умолчанию задаются равными — относительная (Relative tolerance) 10 –3 и абсолютная (Absolute tolerance) auto или устанавливаются в требуемых пределах.
В нижней части настраиваются параметры вывода выходного сигнала моделируемой системы (Output options):
В закладке Workspace I/O (рис.13б) осуществляется управление вводом в рабочее пространство и выводом из него результатов моделирования. Имеются три поля:
Теперь рассмотрим, как выполняется выбор времени и шага моделирования. Предположим, нужно получить синусоидальный сигнал с амплитудой 4 В и частотой 20 Гц. Собираем схему из генератора Signal Generator (настраиваем его амплитуду и частоту) и осциллографа Scope и запускаем полученную модель. Результат в окне осциллограммы Scope получается неожиданный — на осциллограмме практически прямая линия (рис. 14а). Нажимаем кнопку «бинокль» (на рис. 11б кнопка 6). Получается временная диаграмма, далекая от синусоиды (рис. 14б). Причина этого явления объясняется неправильно выбранными параметрами моделирования.
Рис. 14. Окно осциллограммы при изменении параметров настройки
Для установки параметров моделирования необходимо знать частоту или период T получаемого сигнала. Если этот сигнал сложный, то следует иметь те же параметры для его высокочастотной и низкочастотной составляющих. В окне модели через меню Simulation/ Simulation Parameters вызывается закладка Solver. Шаг моделирования выбирается из простого требования — минимальный период сигнала должен на порядок или более превышать максимальный шаг моделирования At (шаг дискретизации). В нашем случае при T = 1/20 = 0,05 шаг выбирается At 05.09.2011 | Софт
Метки: MATLAB, Simulink
1 Комментарий
Комментарии на “ Школа MATLAB. Урок 1. Моделирование устройств силовой электроники. Основные инструментарии Simulink ”
Здравствуйте! Помогите пожалуйста составить график зависимости напряженности электрического поля для высоковольтной линиии напряжением 35 кВ