Как открыть симулинк в матлабе

Как открыть симулинк в матлабе

Документация

Чтобы создать модели, используйте Редактор Simulink ® и Браузер Библиотеки.

Запустите программное обеспечение MATLAB

Прежде чем вы запустите Simulink, запустите MATLAB ® . См. Запуск и завершение работы (MATLAB).

Сконфигурируйте MATLAB , чтобы запустить Simulink

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

Чтобы ускорить открытие первой модели, можно сконфигурировать запуск MATLAB, чтобы также запустить Simulink. Чтобы запустить Simulink без вводных моделей или Браузера Библиотеки, используйте start_simulink .

В зависимости от того, как вы запускаете MATLAB, используете команду:

В startup.m MATLAB файл

В командной строке операционной системы, с matlab команда и -r переключатель

Например, чтобы запустить Simulink, когда MATLAB запустится на компьютере, запускающем операционную систему Microsoft ® Windows ® , создайте настольный ярлык с этой целью:

На Macintosh и компьютерах Linux ® , используйте эту команду, чтобы запустить Simulink, когда вы запустите MATLAB:

Откройте редактор Simulink

Чтобы открыть Редактор Simulink, вы можете:

Создайте модель. На вкладке MATLAB Home нажмите Simulink и выберите шаблон модели.

В качестве альтернативы, если вы уже имеете открытый Браузер Библиотеки, нажимаете кнопку New Model . Для дополнительных способов создать модель, смотрите, Создают Модель.

Откройте существующую модель. Чтобы открыть недавние модели, на вкладке MATLAB Home, нажимают Simulink.

В качестве альтернативы, если вы знаете имя модели, вы хотите, в командной строке MATLAB, вводите имя, такое как vdp . Для дополнительных способов открыть модель, смотрите Открытый Модель.

Совет

Редактор Simulink открывается сверх рабочего стола MATLAB.

Откройте браузер библиотеки

Используйте любой из этих методов, чтобы открыть Браузер Библиотеки Simulink из MATLAB:

На вкладке Home нажмите Simulink и выберите шаблон модели. В новой модели нажмите кнопку Library Browser .

В командной строке введите slLibraryBrowser .

Браузер Библиотеки открывает и отображает структурный вид библиотек блока Simulink по вашей системе. Когда вы кликаете по библиотекам в дереве, содержимое библиотеки появляется на правой панели.

Примечание

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

Связанные примеры

Больше о

Документация Simulink
Поддержка

© 1994-2019 The MathWorks, Inc.

1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.

2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.

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

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

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

Запуск Simulink

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

Общие сведения

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

общих знаний требующихся при работе на компьютере и, естественно,

знаний той предметной области в которой он работает.

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

LTI-Viewer приложения Control System Toolbox –пакета для разработки систем управления).

Имеются также дополнительные библиотеки блоков для разных областей применения (например, Power System Blockset – моделирование электротехнических устройств, Digital Signal Processing Blockset – набор блоков для разработки цифровых устройств и т.д).

Запуск Simulink

Для запуска программы необходимо предварительно запустить пакет MATLAB.Основное окно пакета MATLABпоказано на Рис. 2.1. Там же показана подсказка появляющаяся в окне при наведении указателя мыши на ярлык Simulink в панели инструментов.

Рис 2.1. Основное окно программы MATLAB

После открытия основного окна программы MATLAB нужно запустить программу Simulink.

Это можно сделать одним из трех способов:

  • Нажать кнопку (Simulink)на панели инструментов командного окна MATLAB.
  • В командной строке главного окна MATLAB напечатать Simulink и нажать клавишу Enterна клавиатуре.
  • Выполнить команду Open… в меню File и открыть файл модели (mdl — файл).

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

Рис 2.2. Окно обозревателя разделов библиотеки Simulink

Каждый раздел библиотеки Simulink содержит определенный набор блоков, вызвать которые можно двойным нажатием левой клавиши "мыши" на выбранном разделе библиотеки. В появившемся окне приводится весь набор блоков данного раздела библиотеки Simulink, которые используются для моделирования. Создание структуры модели, задание ее параметров, выбор режимов и характеристик моделирования осуществляется в окне модели. Создание структуры модели осуществляется "перетаскиванием" необходимых блоков из окон библиотеки в окно модели: указав курсором на требуемый блок и нажав на левую клавишу “мыши” — “перетащить” блок в созданное окно модели. Клавишу "мыши" при этом нужно держать нажатой.

Занятие 1. Создание моделей в среде Симулинк

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

Для запуска среды Симулинк необходимо запустить приложение Матлаб и нажать на панели инструментов кнопку «Simulink». В результате появляется окно Simulink Library Browser,в котором раскроется список групп компонентов библиотеки Симулинка.В данном окне выбрать иконку «Create a new model» (создать новую модель). В результате откроется окно редактирования модели (рис.1).

В окно редактирования моделей возможно помещать различные компоненты, предлагаемые библиотекой компонентов Симулинк. Для примера, перетащите из библиотеки компонентов (группа Simulink) осциллограф (Scope, подгруппа Sinks) и генератор синусоидальных сигналов (Sine Wave, подгруппа Sources) и соедините их между собой (см.рис.2.).

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

После двойного нажатия на компоненте Sine Wave появится окно параметров настройки выходного сигнала (амплитуда, частота и т.д.).

Нажмите кнопку запуска моделирования (см.рис.1). Симулинк смоделирует процессы в модели за время, задаваемое в окне «Задание времени моделирования» (рис.1).

Примечание. Если в параметр «Задание времени моделирования» задать значение «inf», то становится возможным наблюдать моделируемые процессы бесконечно долго (до нажатия кнопки останова моделирования, показанной на рис.1.)

Задания для самостоятельной работы

1. Выясните, какие еще компоненты задания сигналов предлагает Симулинк, приведите 5 примеров с осциллограммами. Каким образом можно визуализировать несколько процессов с помощью одного компонента Scope?

2. Каким образом можно отмасштабировать выводимый на экран компонента Scope сигнал по времени и по амплитуде (исследуйте данный компонент с помощью кнопки задания параметров визуализации, рис.2)?

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

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

Задание для самостоятельной работы

1. Смоделируйте реакцию апериодического звена 1-ого порядка на синусоидальный входной сигнал частотой 3 Гц и установите влияние постоянной времени данного звена на выходной сигнал (используйте компонент задания передаточной функции).

В рассмотренных примерах действия производились с абстрактными математическими компонентами и компонентом визуализации Scope. Для моделирования работы электромеханических систем воспользуемся группой SimPowerSystems. В качестве примера рассмотрим моделирование процесса пуска асинхронного двигателя при подаче на его обмотки напряжения 380 В, 50 Гц.

Как правило, при моделировании электромеханических систем необходимо создать:

— модель источника электроэнергии

— модель электромеханического преобразователя (двигателя)

— модель механизма, который приводится в действие двигателем

— модель системы управления координатами двигателя.

Модель трехфазной электрической сети (источника электроэнергии) можно собрать следующим образом (используя группу SimPowerSystems/Electrical Sources, компонент AC Voltage Source):

В созданной модели необходимо назначить для каждого компонента напряжение 310 Вольт (амплитудное значение фазного напряжения) и частоту 50 Гц. Сдвиг по фазам – 0, 240, 120 градусов для каждого компонента соответственно.

Для того, чтобы модель с примененными компонентами заработала, необходимо (в обязательном порядке!) установить компонент измерения напряжения Voltage Measurement из группы SimPowerSystems/ Measurements (рис.5).

В качестве модели двигателя воспользуемся компонентом Asynchronous Machine SI Units, находящийся в подгруппе SimPowerSystems/Machines. В свойствах компонента необходимо установить тип ротора как короткозамкнутый (Rotor type — Squirrel Cage). Параметры схемы замещения, предлагаемые для редактирования, в рамках данной задачи моделирования изменению не подлежат.

Модель двигателя выдает вектор значений рассчитанных координат. Для визуализации конкретных координат модели двигателя необходимо применить блок Machines Measurement Demux из подгруппы SimPowerSystems/Machines. В свойствах компонента необходимо выбрать подключение к асинхронному двигателю, а также установить «галочки» напротив тех координат, которые подлежат визуализации: ток статора, электромагнитный момент, скорость ротора. К компоненту Machines Measurement Demux становится возможным подключать стандартные компоненты визуализации, например Scope. Полная модель двигателя и электрической сети, а также результаты моделирования процесса включения двигателя, представлены на рис.6.

Перед началом моделирования необходимо задать время моделирования 0,35 секунд, а также установить метод расчета ode23tb через меню окна редактирования Simulation\Configuration Parameters, строка Solver.

Для моделирования наличия механизма в системе нагрузим модель двигателя по входу Tm, для чего к данному входу подсоединим компонент задания константы Constant из подгруппы Simulink/Sources (рис.7). Значение константы будет устанавливать момент нагрузки на валу двигателя, в данном случае рекомендуется установить ее равным значению 40 Нм.

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

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

Для моделирования механизма с реактивным моментом сопротивления необходимо разработать специальный компонент, так как такой компонент в стандартной библиотеке Симулинка не предусмотрен.

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

Перед тем, как работать с механизмом S-функций Симулинка, необходимо произвести настройку компилятора Матлаба, для чего в командной строке Матлаба (найти значок “>>” в главном окне Матлаба) ввести команду mex –setup(обязательно поставить пробел перед знаком «-». ) и ответить на заданные вопросы. Пример ответов показан ниже.

>> mex -setup

Please choose your compiler for building external interface (MEX) files:

Would you like mex to locate installed compilers [y]/n? y

Select a compiler:

[1] Lcc C version 2.4 in E:\MATLAB7\sys\lcc

Compiler: 1

Please verify your choices:

Compiler: Lcc C 2.4

Location: E:\MATLAB7\sys\lcc

Are these correct?([y]/n): y

Try to update options file: D:\Documents and Settings\karakulov\Application Data\MathWorks\MATLAB\R14\mexopts.bat

From template: E:\MATLAB7\BIN\WIN32\mexopts\lccopts.bat

Примечание. Настройку компилятора в Матлабе достаточно проделать только 1 раз.

Прежде чем создать собственный компонент, разберем простейший пример с применением S-функций, в котором происходит домножение входной величины на коэффициент, равный «2».

Откройте новое окно редактирования модели и создайте связку компонентов, показанную на рис.8. Компонент S-Function Builder находится в подгруппе Simulink/User Defined Functions.

Двойным щелчком по компоненту S-Function Builder раскройте окно его свойств (рис.9). Задайте имя файла, в котором будет находится содержимое компонента, в строке S-function name. Откройте закладку Outputs, удалите предлагаемое текстовое содержание и введите строку

y0 — обозначает первый выход компонента (отсчет идет с нуля), y0[0] обозначает что выходной вектор имеет размерность 1 (то есть одно число, не массив!).

u0 обозначает первый вход компонента (отсчет идет с нуля), u0[0] обозначает что входной вектор имеет размерность 1 (то есть одно число, не массив).

Таким образом, в рассматриваемом примере входная переменная в компоненте помножается на 2 и произведение выдается на выход.

Для генерации компонента необходимо нажать кнопку Build (построить).

Запустите моделирование. В результате в показаниях компонента Display можно видеть удвоенное значение компонента Constant. Таким образом, S-функция позволяет генерировать компоненты, алгоритм функционирования которых определяет пользователь. При генерации алгоритмов необходимо использовать синтаксис языка С.

Усложним задачу. Допустим, что необходимо создать компонент, который перемножает 2 входных сигнала и на выход выдает их произведение. Для этого в компонент необходимо добавить 2-ой вход. Откройте окно свойств S-функции, закладку Data Properties и во внутренней закладке Inputs нажмите кнопку добавления 2-ого входа (рис.10) с именем u1.

В закладке Outputs необходимо формулу заменить на

то есть использовать для перемножения оба входа.

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

Задание для самостоятельной работы

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

Вернемся к созданию компонента, реализующего реактивный момент сопротивления. Алгоритм функционирования такого алгоритма будет следующий:

1. Если скорость положительная, то момент сопротивления равен заданному.

2. Если скорость отрицательная, то момент сопротивления равен заданному с обратным знаком.

3. Если скорость равна «0», то момент сопротивления равен 0.

Компонент должен иметь 2 входа:

1. Вход задания момента сопротивления u0[0].

2. Вход сигнала скорости u1[0].

Компонент должен иметь 1 выход: на выходе формируется момент нагрузки двигателя y0[0].

Реализация на языке С данного алгоритма будет следующая:

Создадим такой компонент, установим его в модель (рис.12) и промоделируем его работу, в том числе и при больших значениях момента (>100Нм).

Примечание. В связи с некоторыми особенностями работы Симулинка, при расчете S-функций для сложных нелинейных систем (в частности, моделей электромеханических преобразователей), необходимо установить строго периодичный вызов S-функций (в закладке Initialization выбрать Sample mode: Discrete, время дискретизации (параметр SampleTimeValue) 0.0001 секунда )

Задание для самостоятельной работы.

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

2. Сохраните созданную модель под именем «metoda1»

В качестве модели системы управления применим модель простейшего способа управления асинхронным двигателем – посредством 3-фазного пускателя, выполненного на базе механической контактной группы. Библиотека Симулинк предлагает компонент Breaker (подгруппа SimPowerSystems/Elements), который моделирует работу механического контакта. Данный компонент имеет 2 входа и 1 выход.

Вход, который отвечает за управление контактором, обозначен как «>». При подаче на данный вход значения «0» контактор считается разомкнутым, в остальных случаях он замкнут. На рис.13 показано управление тремя контакторами посредством компонента константы. Вход (расположен слева от блока), обозначенный «ð», предназначен для подачи сигнала напряжения на контактор. Выход (расположен справа от блока), обозначенный «ð», предназначен для выдачи сигнала напряжения с контактора.

Применим схему, показанную на рис.13, для подачи сигнала напряжения на асинхронный двигатель. Для этого в разрыв между моделью источника электрической энергии и двигателя установим 3 компонента Вreaker с управлением от компонента задания константы (см.рис.14).

Для моделирования работы полученной схемы необходимо задать время моделирования как inf (бесконечность). Свойства компонента Breaker задать следующие:

Breaker resistance – 0.000001 Ом

Initial state – 0

Snubber resistance — 1e2 Ом

Snubber capcacitance — inf

Задание для самостоятельной работы

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

Матлаб предлагает возможности по созданию приложения пользовательского интерфейса к разработанным моделям. Данные возможности осуществляются с помощью приложения Матлаба GUIDE. Суть такого интерфейса заключается в том, что изменение параметров и значений компонентов можно производить не непосредственно в редакторе модели, а с помощью внешнего окна, стандартного для приложений Windows. В рассматриваемом примере мы будем задавать момент нагрузки и включение/выключение двигателя из внешнего окна, посредством стандартной кнопки и слайдера (линейка «прокрутки») Windows.

Для использования возможностей создания пользовательского интерфейса запустите мастер создания приложений GUIDE (кнопка «GUIDE» на панели инструментов основного окна Матлаба). В результате запустится окно мастера приложений (рис.15).

Нажмите кнопку «ОК», после чего раскроется редактор пользовательского интерфейса (рис.16).

В редакторе создайте 1 слайдер и 2 кнопки, выбрав их на левой панели и растянув в поле редактора. Слайдер будет отвечать за задание момента нагрузки. Левая кнопка будет отвечать за старт двигателя, правая – за обесточивание (рис. 16).

Вызовите окно свойств левой кнопки с помощью двойного клика по ней. В свойстве «String» впишите название кнопки исходя из ее назначения. Аналогично поступите с правой кнопкой.

Сохраните файл редактора интерфейса, при этом автоматически появится окно редактирования скриптов (кодов) Матлаба. Найдите в раскрывшемся скрипте Матлаба строку:

function pushbutton1_Callback(hObject, eventdata, handles)

Данная строка описывает наличие реакции на нажатие кнопки pushbutton1 (в данном случае это одна из кнопок интерфейса).

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

Присвоение значения компоненту осуществляется с помощью команды Матлаб set_param и заданием соответствующих параметров команды. Например, если необходимо задать значение «1» для компонента константы Constant1, то необходимо подать команду

set_param(‘metoda1/Constant1′,’Value’,’0′)

metoda1 – имя файла, под которым Симулинк сохранил созданную модель в окне редактирования модели.

Constant1 – имя компонента задания константы (см.в редакторе модели).

Value – свойство, отвечающее за выходной сигнал компонента

0 – присваемое значение для свойства Value

Примечание. Получить имя файла и компонента можно следующим образом: выделите требуемый компонент в текущей модели и введите в командную строку Матлаба команду gcb.

Считывание значения с компонента осуществляется с помощью команды Матлаб get_param. Например, если необходимо вывести значение компонента Constant1 в элемент Static Text графического интерфейса, то необходимо сгенерировать в скрипте следующие команды:

text_val=get_param(‘metoda1/Constant1′,’value’)

set(handles.text1, ‘String’, text_val);

В данном примере первая строка считывает значение константы и сохраняет его в переменной text_val, а вторая строка осуществляет вывод этого значения на экран в элемент Text1.

Компонент Constant1 отвечает за включение/выключение контакторов в рассматриваемой модели.

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

% — Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles)

set_param(‘metoda1/Constant1′,’Value’,’1′)

% — Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles)

set_param(‘metoda1/Constant1′,’Value’,’0′)

Данные строки позволяют присвоить значения 0 или 1 константе управления при нажатии соответствующей кнопки.

Примечание. Набор символов, начинающихся с % означает комментарий и не выполняется в скрипте.

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

function slider1_Callback(hObject, eventdata, handles)

slider_value = get(hObject,’Value’)

set_param(‘metoda1/Constant’,’Value’,num2str(slider_value*100))

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

После окончания редактирования скрипта закройте окно редактора скриптов.

В окне редактирования интерфейсов на панели инструментов нажмите кнопку RUN (запустить). Расположите окна появившегося приложения пользовательского интерфейса и редактора модели таким же образом, как показано на рис.17. Нажимая кнопки и передвигая бегунок слайдера, убедитесь в изменении соответствующих значений констант. Запускать моделирование не обязательно.

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

Задание для самостоятельной работы

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

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

3. В редакторе интерфейса добавьте компонент Static Text и обеспечьте отображение значения задаваемого момента нагрузки.

Если вы выполнили задание, то результат моделирования и модель показаны на рис.18, а соответствующая часть скрипта будет выглядеть как (файл модели Симулинка в данном случае назван как «metoda4»):

% — Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles)

set_param(‘metoda4/Constant3′,’Value’,’1′)

set_param(‘metoda4/Constant2′,’Value’,’0′)

set_param(‘metoda4/Constant1′,’Value’,’1′)

% — Executes on button press in pushbutton2.

function pushbutton2_Callback(hObject, eventdata, handles)

set_param(‘metoda4/Constant1′,’Value’,’0′)

set_param(‘metoda4/Constant2′,’Value’,’0′)

set_param(‘metoda4/Constant3′,’Value’,’0′)

% — Executes on slider movement.

function slider1_Callback(hObject, eventdata, handles)

slider_value = get(hObject,’Value’)

set_param(‘metoda4/Constant’,’Value’,num2str(slider_value*100))

% — Executes on button press in pushbutton3.

function pushbutton3_Callback(hObject, eventdata, handles)

set_param(‘metoda4/Constant1′,’Value’,’0′)

set_param(‘metoda4/Constant2′,’Value’,’1′)

set_param(‘metoda4/Constant3′,’Value’,’1′)

Примечание. В данном примере необходимо применить раздельное управление для двух компонентов Breaker прямого включения, двух компонентов Breaker реверсивного включения, и одного компонента общей фазы (компоненты Constant1, Constant2, Constant3 на рис.18 соответственно).

Для того, чтобы выводить значение слайдера в элемент Static Text, необходимо в фунцию

function slider1_Callback(hObject, eventdata, handles)

set(handles.text1, ‘String’, get(hObject,’Value’)*100);

В данном случае в элементе GUI Static Text будет показываться значение слайдера, домноженное на 100.

Более правильным решением будет прямой вывод в элемент Static Text значения из компонента модели. Пример задания значения компонента константы через слайдер и одновременное считывание значения константы с визуализацией посредством компонента GUI Static Text приведен ниже:

function slider1_Callback(hObject, eventdata, handles)

slider_val=get(hObject,’Value’)

set_param(‘metoda4/Constant’,’value’, num2str(slider_val*100));

text_val=get_param(‘metoda4/Constant’,’value’)

set(handles.text1, ‘String’, text_val);

Полученная модель является визуально громоздкой ввиду наличия большого количества компонентов на экране. Для объединения компонентов в единый блок Симулинк предлагает возможность использовать компонент подсистемы с именем Subsystem (группа Simulink, подгруппа Ports & Subsystems).

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

Сделайте двойной щелчок мыши по компоненту Subsystem, в результате откроется окно редактирования подсистемы (содержимое окна приведено на рис.20.).

Как можно видеть, данная подсистема передает входной сигнал с порта входа in1 без изменений на порт выхода out1. Разорвем линию, соединяющую порты in1 и out1 (выделите мышью линию и нажмите клавишу Delete). Установим в разрыв компонент Gain (домножение на коэффициент), который находится в группе Simulink, подгруппа Commonly Used Blocks, и соединим его вход и выход с портами (рис.21.). Задайте значение коэффициента равным «5» (окно свойств компонента откроется после двойного щелчка мышью по нему).

Вернемся к предыдущему окну редактирования модели с подсистемой. Для удобства понимания действия подсистемы присвоим ее имя, показывающее её суть. Для этого под компонентом на слове Subsystem щелкните мышью, удалите имеющееся название подсистемы и введите «multiplication 5» (домножение 5), после чего щелкните указателем мыши над компонентом. В результате компонент приобрел комментарий, способствующий лучшему пониманию работы всей модели.

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

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

Реализованная подсистема имеет 1 вход и один выход и относится к классу SISO (single input – single output). Обычно подсистемы имеют несколько входов и выходов (системы MIMO – multyinput — multyoutput). Технология установки дополнительного выхода выглядит следующим образом:

1. Откройте окно подсистемы.

2. Выделите мышью выход out1 .

3. скопируйте компонент out1 в буфер обмена (например, с помощью комбинации клавиш Ctrl-C).

4. Вставьте скопированный компонент из буфера обмена в окно редактирования подсистемы (например, с помощью клавиши Ctrl-V).

5. Расположите появившийся компонент Out2 рядом с компонентом Out1.

6. Убедитесь, что на компоненте исходной подсистемы появился дополнительный выход Out2.

Установка дополнительного порта входа происходит аналогично.

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

Подсоедините к новому выходу компонент Display (рис.23) и запустите моделирование.

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

Задание для самостоятельной работы.

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

Варианты индивидуальных заданий (выполняются на основе модели рисунка 18)

1. Доработать модель таким образом, чтобы напряжение трехфазной сети менялось посредством слайдера интерфейса GUI.

2. Доработать модель таким образом, чтобы момент нагрузки изменялся в зависимости от скорости вращения двигателя (с увеличением скорости момент нагрузки возрастает).

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

4. Разработать S-функцию, позволяющую в данной модели реализовать времятоковую защиту.

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

6. Вывести текущий режим работы («останов», «движение вперед», «движение назад») на окно интерфейса GUI в текстовом формате.

7. Вывести значение действующего тока двигателя на окно интерфейса GUI.

8. Вывести значение действующего напряжения электрической сети на окно интерфейса GUI.

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ — конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой.

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

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).

Ссылка на основную публикацию