Как передать данные из simulink в matlab

Zoloto585CPA

5. Среда моделирования Simulink

Абсолютно все функции среды Matlab могут быть выполнены с использованием текстовых М-Файлов, но для облегчения сложных задач математического моделирования и проведения экспериментов на моделях разработан специальный пакет Simulink. Для его запуска достаточно ввести команду simulink в окне команд либо запустить его кнопкой расположенной в панели инструментов Matlab. При этом запускается Навигатор библиотек Simulink. Его основное окно представлено на рисунке 11.

Рисунок 11- Навигатор библиотек Simulink

Работа в среде моделирования Simulink начинается с создания новой модели. Для этого нужно щелкнуть по кнопке в панели инструментов навигатора библиотек. Новое окно модели представлено на рисунке 12.

Рисунок 12 – Окно модели

Рассмотрим простой пример, система управления с обратной связью состоящая из 3-блоков (два в прямой цепи и один блок в цепи обратной связи). Из подгруппы «Continuous» группы «Simulink» перенесем мышью три блока типа «Transfer Fcn» в окно модели. Затем из подгруппы «Math» перенесем блок типа «Sum». Затем из подгруппы «Sources» перенесем блок типа «Step» и из подгруппы «Sinks» блок типа «Scope». Расставим блоки, так как показано на рисунке 13.

Рисунок 13 – первый этап создания модели в Simulink

Соединим между собой блоки, находящиеся в прямой цепи. Для этого подводим мышь к выходу блока, нажимаем левую кнопку и ведем до входа следующего блока, затем отпускаем, при этом должна автоматически отобразится направленная линия (с жирной стрелкой). Для того чтобы построить цепь обратной связи необходимо развернуть блок, находящийся в этой цепи, по ходу движения сигнала. Для этого, щелкаем на нем правой кнопкой мыши и выбираем «Format – Flip Block» как показано на рисунке 14.

Рисунок 14 – Разворот блока по ходу сигнала

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

Рисунок 15- Блок схема системы управления

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

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

Рисунок 16 – Определение параметров передаточной функции

Затем нужно задать порядок следования знаков сумматора, для получения системы с отрицательной обратной связью. Для этого дважды щелкаем по сумматору и в поле «List of signes» заносим “+ —“ как показано на рисунке 17.

Рисунок 17 – Задание знаков сумматора

Аналогично можно изменить и параметры ступенчатого входного сигнала, но мы оставим параметры по умолчанию. Для запуска симуляции нужно щелкнуть по кнопке «Start simulation» в панели инструментов модели. После этого Matlab производит вычисление одним из численных методов. Результаты вычисления можно посмотреть, дважды щелкнув по элементу «Scope», как показано на рисунке 18.

Рисунок 18 – Реакция системы на единичный ступенчатый сигнал

Simulink не является обособленным приложением. Все переменные, полученные при выполнении команд в Matlab, доступны в Simulink и наоборот. Рассмотрим, как перенести данные из simulink в Matlab. Добавим в нашу модель элемент «To Workspace» из подгруппы «Sinks» группы «Simulink», как показано на рисунке 19.

Рисунок 19 – Перенос данных из Simulink в рабочую область Matlab

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

Рисунок 20 – Задание параметров обмена Simulink и Matlab

В данном случае данные сохраняются в переменной «simout» в формате «array». Возможен также вариант сохранения их в виде структуры (structure). После запуска симуляции данные с выхода системы будут перенесены в рабочую область Matlab. И если мы в командной строке Matlab введем simout, то выход будет выглядеть примерно следующим образом:

В случае, если исследуемая система имеет сложную структуру, работать с ней одном окне будет весьма затруднительно, для этой цели в Simulink имеется способ объединения нескольких блоков в так называемую «подсистему» (subsystem). Рассмотрим простой пример: исследуем реакцию нашей системы одновременно на ступенчатый и на линейно нарастающий сигналы. Для этого отсоединим генератор сигнала и осциллограф, как показано на рисунке 21.

Рисунок 21 – Построение подсистемы (этап 1)

Затем из подгруппы «Sources» выберем элемент типа «in», а из подгруппы «Sinks» элемент типа «out» и подключим их соответственно ко входу и выходу системы как показано на рисунке 22.

Рисунок 22 – Построение подсистемы (этап 2)

Zoloto585CPA

Затем выделим мышью все элементы, которые мы хотим включить в подсистему, щелкнем правой кнопкой мыши и выберем пункт меню «Create subsystem». После выполнения этой команды блоки нашей системы будут объединены в один блок с одним входом и выходом, как показано на рисунке 23.

Рисунок 23 – Создание подсистемы (завершающий этап)

Для просмотра содержимого подсистемы достаточно дважды щелкнуть по ее блоку мышью. Теперь, подключив вместо блоков «in» и «out» в основном окне модели генератор сигнала и осциллограф, мы можем провести симуляцию. Для решения поставленной проблемы нам нужно еще извлечь из подгруппы «Sources» генератор линейно нарастающего сигнала «Ramp» а также из подгруппы «Signals & Systems» элемент типа «Mux» (мультиплексор). Соединим их так, как показано на рисунке 24.

Рисунок 24 – Использование подсистем

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

Рисунок 25 – Отображение нескольких сигналов с помощью элемента типа «Scope»

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

Осуществляйте обмен данными с Simulink и рабочим пространством MATLAB

Stateflow ® графики взаимодействуют через интерфейс с другими блоками в Simulink ® модель:

Обмен данными посредством связей ввода и вывода.

Импорт значений исходных данных из MATLAB ® базовое рабочее пространство.

Сохранение итоговых значений данных к базовому рабочему пространству MATLAB.

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

Совместно используйте входные и выходные данные с Simulink

Потоки данных от Simulink в диаграмму Stateflow через входные порты. Потоки данных от диаграммы Stateflow в Simulink через выходные порты.

Задавать данные о вводе или выводе в графике:

Добавьте, что объект данных к графику, как описано в Добавляют Данные Stateflow.

Установите свойство Scope для объекта данных.

Чтобы задать входные данные, установите Scope на Input Data . Входной порт появляется на левой стороне блока графика.

Чтобы задать выходные данные, установите Scope на Output Data . Выходной порт появляется на правой стороне блока графика.

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

Установите тип данных объекта данных, как описано в Задают Тип Данных Stateflow.

Установите размер объекта данных, как описано в Задают Размер Данных Stateflow.

Примечание

Вы не можете установить тип или размер входных данных Stateflow принимать основанные на системе координат данные из Simulink.

Инициализируйте данные из базового рабочего пространства MATLAB

Можно импортировать начальное значение символа данных путем определения его в базовом рабочем пространстве MATLAB и в иерархии Stateflow.

Задайте и инициализируйте переменную в базовом рабочем пространстве MATLAB.

В иерархии Stateflow задайте объект данных с тем же именем как переменная MATLAB.

Выберите свойство Allow initial value to resolve to a parameter для объекта данных.

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

Одномерные массивы Stateflow совместимы с векторами одного размера строки и столбца MATLAB. Например, вектор Stateflow из размера 5 совместимо с вектором-строкой MATLAB из размера [1,5] или вектор-столбец размера [5,1] . Каждый элемент массива Stateflow инициализирует к тому же значению как соответствующий элемент массива в базовом рабочем пространстве MATLAB.

Время инициализации зависит от родительского элемента данных и осциллографа объекта данных Stateflow.

Обмен данными между Simulink и Matlab

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

Обмен данными между функциями — return
Давно матлабом не пользовался, подзабыл. Есть 2 файла. Файл функция.. function.

Обмен данными между УТ 10.3.5 и БП 1.6.9
Доброе время суток, возникла небольшая проблема с обменом данными между УТ и БП: Все торговые.

Обмен данными между С++ и С++
Есть два проекта на С++(VS2010) — В одном генерируются числа, которые надо передавать во.

Сообщение от Kocmoz

Обмен данными между БД и С++
Всем привет! Скажите, кто знает как организовать работу с базами данных (к примеру, с аксессом) в.

Обмен данными между С++ и С#
Имеются две независимые программы, одна из них написана на С++, другая на С#. Как от одной передать.

Simatic HMI wincc fexible 2008 обмен данными с Matlab 2011b используя OPC server
Здраствуйте! Мне бы хотелось по подробнее узнать о взаимосвязи между Matlab 2011b(OPC toolbox) и.

Обмен данными между формами
Есть две формы, как организовать что бы из form2.edit1 данные переместились в переменную a из form1?

Zoloto585CPA

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *