Научная статья на тему 'Моделирование в реальном режиме времени в среде matlab'

Моделирование в реальном режиме времени в среде matlab Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
3437
545
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
модель / реальное время / MATLAB. / model / real-time mode / MATLAB.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Бильфельд Н. В.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Бильфельд Н. В.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

MATLAB REAL-TIME MODELING

Tasks of real-time modeling are described. Features of MATLAB tuning and models design for real-time modeling in different versions of MATLAB are given. Basic commands of simulink extension for a control of models in real-time mode are shown.

Текст научной работы на тему «Моделирование в реальном режиме времени в среде matlab»

МОДЕЛИРОВАНИЕ В РЕАЛЬНОМ РЕЖИМЕ ВРЕМЕНИ В СРЕДЕ MATLAB

Н. В. Бильфельд*

Пермский национальный исследовательский университет Россия, 618404, г. Березники, ул. Тельмана, 7 * email: bilfeld@mail.ru

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

Ключевые слова: модель, реальное время, MATLAB.

MATLAB REAL-TIME MODELING N. V. Bilfeld*

Perm national polytechnic research university 7 Telmana St., 618404, Berezniki, Russia * email: bilfeld@mail.ru

Tasks of real-time modeling are described. Features of MATLAB tuning and models design for real-time modeling in different versions of MATLAB are given. Basic commands of simulink extension for a control of models in real-time mode are shown.

Keywords: model, real-time mode, MATLAB.

Работа в реальном режиме времени необходима, когда в процессе работы модели необходимо изменить ее отдельные параметры, и посмотреть, как модель на эти изменения реагирует. Можно, конечно, установить задержку, например, в блоке step [5], и подать возмущающее воздействие через определенный интервал времени. Но если таких воздействий много, то придется устанавливать несколько блоков step, что приведет к усложнению модели. Более того, если необходимо в процессе моделирования изменить параметры самого объекта, например, коэффициенты передаточной функции, то такая процедура окажется невозможной. Дело не в том, что нельзя изменить параметры модели в процессе ее выполнения, сделать это можно. Проблема в том, что мы не успеем это сделать. Какое бы большое время моделирования мы не установим, для не сложной модели переходный процесс закончится очень быстро. Правильнее сказать, что мы устанавливаем не время моделирования, а время, которое должно отобразиться на графике переходного процесса.

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

Сначала необходимо установить ядро Real-Time Windows Target kernel. Проверить, установлено ядро или нет можно выполнив команду: rtwho

Если ядро не установлено, выведется сообщение: Real-Time Windows Target is not complete. Для установки ядра выполним команду Rtwintgt - install (тире перед словом install вводить обязательно). В результате выведется одно из сообщений:

You are going to install the Real-Time Windows Target kernel.

Do you want to proceed? [y]

или

There is a different version of the Real-Time Windows Target kernel installed.

Do you want to update to the current version? [y]:

Нажмем y и клавишу Enter. После чего, ядро либо устано-

вится, либо обновится до новой версии. Если установка пройдет успешно, выведется сообщение:

The Real-TimeWindowsTarget kernel has been successfully installed Теперь, если ввести команду rtwho, выведется сообщение: Real-Time Windows Target version 3.6.0 (C) The MathWorks, Inc. 1994-2010

Running on Multiprocessor APIC computer. MATLAB performance = 100.0% Kernel timeslice period = 1 ms

Настройка модели. Соберем модель, приведенную на рисунке 1. Настройка модели осуществляется в следующей последовательности:

В командном окне укажем путь к папке, в которой находится модель, например: cd D:\2014\asutp\matlabrt\model07

В окне модели выполним меню Simulation > Configuration Parameters.

В дереве левой панели выберем Solver. В раскрывающемся списке Type выберем значение Fixed Step. В дереве левой панели выберем Real-Time Workshop. В правой панели в группе System Target File нажмем кнопку Browse и выберем файл rtwin.tlc.

Нажмем кнопку Apple и далее кнопку Ok.

-t.r-»-

1/ЕВЕ11.

| File Edit View Simulation Formal: Tools Help / / I/

D g0i | £2 d | ► V |™o~ [itofl

__MJj''_L£ 1 _

Constant TransterFcn '' Scope

]л ||||| | , Ю ode3

Ъ

Рис. 1. Схема модели

Сборка модели

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

Выполним меню Tools>Real-Time Workshop>Build Model. Необходимо отметить, что после сборки модели в ней нельзя менять

COMPUTER SCIENCE | Juvenis scientia 2016 № 2

17

настройки решателя. В частности если изменить время моделирования со 100 до 1000, то сборку необходимо произвести заново.

Выполним меню Simulation > External, либо в раскрывающемся списке simulation mode (п. 1. на рис. 1) выберем значение External.

Выполним меню Simulation > Connect Target, либо нажмем на кнопку Connect to Target (п. 2 на рис. 1). О том, что модель выполняет указанную задачу, свидетельствует полоса состояния (п. 3. на рис. 1).

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

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

Использование модели. Для использования модели достаточно открыть модель. Нажать кнопку Connect to Target (п. 2 на рис. 1). При этом станет активной кнопка Run (п. 4 на рис. 1). Теперь можно нажать кнопку Run.

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

Использование блоков OPC Начиная с MATLAB 7.11, в библиотеке SIMULINK имеется вкладка OPC Toolbox. На данной вкладке находятся блоки для работы с OPC сервером. Если поместить на форму модели блок OPC Config Real - Time, как показано на рисунке 2 (поз. 1), то после запуска модели она будет работать в режиме реального времени. При этом блок OPC Config Real -Time можно с реальным OPC сервером и не связывать.

Е5 Model_rt2_m7 EBB

File Edit View Simulation Format Tools Help

Q ЙВ1 £5 ► Г00.0 Ncrm,

OPC Config ^ Real-Time □ PC Configuration Œ Step Ready 100% ^ 1 U-J 1

Г* г 50s^+20s+1 Transfer Fen » Gain Scope ode45

Рис.2. Модель с использованием блока OPC

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

В MATLAB 2014 это выполняется следующим образом.

Установка ядра режима реального времени. В MATLAB 2014 ядро Real-Time Windows Target kernel установлено по умолчанию. Если на ПК стоит MATLAB более ранней версии, например 7.11 и на нем была произведена установка ядра, то после выполнения команды rtwho на монитор выведется информация:

Real-Time Windows Target version 4.4.0 (C) The MathWorks, Inc.

1994-2013.

Real-Time Windows Target kernel version3.6.0. Incorrect kernel version is installed. Use 'rtwintgt -setup' to install the correct version. Из данной информации следует, что ядро установлено не корректно. В данном случае модель в реальном режиме времени работать не будет, и ядро необходимо переустановить. Установку можно выполнить, набрав в командной строке rtwintgt -setup.

После установки, при вводе команды rtwho на монитор выведется информация:

Real-Time Windows Target version 4.4.0 (C) The MathWorks, Inc.

1994-2013

Running on 32-bit computer.

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

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

В окне модели выполним меню Simulation > Configuration Parameters.

В раскрывающемся списке Type выберем значение Fixed Step. Если устанавливается не автоматический шаг (в поле fixed step size), то в блоках модели, где используется шаг по времени (SampleTime), он должен быть кратным установленному.

В дереве левой панели выберем Code Generation (заметим, что в MATLAB 7.11 мы выбирали Real-Time Workshop).

В правой панели в группе System Target File нажимаем кнопку Browse и выбираем файл rtwin.tlc.

Завершаем настройку нажатием кнопок Apple и Ok Сборки модели в MATLAB 2014 не требуется. Вернее она осуществляется в автоматическом режиме после запуска модели. Вся информация по сборке автоматически помещается в папку «Мои документы», в которой создается дополнительная папка «MATLAB». После настройки модели в раскрывающемся списке simulation mode (п. 1. на рис. 1) автоматически устанавливается значение External.

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

Как и в MATLAB 7.11 имеется возможность использования блоков OPC.

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

Запустить модель можно либо командой sim, например как: sim 'model.mdl'

Особенностью данной команды является то, что модель при этом может быть и не открытой.

Второй способ, это использование команды set_param, например как:

set_param(' model'/simulationcommand'/start) Первый аргумент команды - имя модели. Второй аргумент - тип команды. Третий аргумент - статус модели.

Режим работы модели как раз и позволяет узнать, работает модель в режиме реального времени или нет.

Определить режим работы модели можно, с помощью команды get_param если в качестве второго аргумента команды установить значение simulationmode. Например: r=get_param(' model'/simulationmode')

В качестве режима могут возвращаться следующие значения:

• Нормальный режим - normal.

• Ускоренный режим - accelerator.

• Режим реального времени - external.

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

set_param( model'/simulationmode, 'normal') Обратим внимание, что в отличие от статуса модели, как при получении режима, так и при установке режима в качестве второго аргумента используется параметр 'simulationmode'.

В сборке нуждаются только модели, работающие в реальном режиме времени. Сборку достаточно сделать один раз. При этом путь должен быть установлен к той папке, где находится модель. Сборка осуществляется командой rtbuild. Например: rtbuild' model'

Определить статус можно с помощью команды get_param. В качестве первого аргумента используется имя модели. В качестве второго аргумента значение 'simulationstatus'. Например:

st=get_param(' model ','simulationstatus') В качестве статусов команда может возвращать следующие значения:

• Модель не запущена - stopped.

• Модель в реальном режиме времени - external.

• Модель запущена - running.

• Модель в режиме паузы - paused.

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

Установить статус модели можно с помощью команды set_ param.

В качестве первого аргумента используется имя модели. В качестве второго аргумента значение ' simulationcommand'. В качестве третьего аргумента в этом случае можно использовать следующие статусы:

• Запустить - start

• Остановить - stop

• Пауза - pause

• Продолжить - continue

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

• Подключить - connect (для модели в реальном режиме времени).

• Отключить - disconnect (для модели в реальном режиме времени).

Например:

set_param( model '/simulationcommand'/start'). Обратим внимание, что при получении статуса в качестве второго аргумента используется параметр simulationstatus, а при установке статуса в качестве второго параметра используется simulationcommand.

Если модель работает в реальном режиме времени, и запущена, то ее статус будет external, если остановлена, то ее статус будет stopped.

Чтобы запустить модель в реальном режиме времени необходимо последовательно выполнить команды:

set_param(' model '/simulationcommand'/connect'). set_param(' model '/simulationcommand'/start'). Чтобы остановить модель в реальном режиме времени, необходимо выполнить одну из команд:

set_param(' model '/simulationcommand'/disconnect') или set_param(' model '/simulationcommand'/stopt'). Обратим внимание, что команда stop останавливает и выгружает модель. Чтобы снова запустить модель, необходимо опять выполнить последовательность двух команд.

Проверить, загружена ли модель, работающая в режиме реального времени можно командой:

get_param(' model ','ExtModeConnected'); Команда возвращает значение off если модель не загружена и значение on если модель загружена.

Получить имена всех блоков модели можно с помощью команды find_system. В качестве аргумента необходимо указать имя модели, например: find_system(' model )

В результате в командном окне выведется: ans = ' model '

' model /Constant' ' model /Transfer fct' ' model /Gi' ' model /Scope'

Получить значение параметра блока можно с помощью той же команды get_param, если в качестве второго параметра указать имя конкретного параметра, например: f=get_param(' model /Gi'/Gain) В результате в командном окне выведется: f=2 Изменить значение параметра можно с помощью команды set_param.

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

В качестве второго параметра указывается имя параметра. В качестве третьего параметра указывается значение параметра, например:

set_param(' model /Gi'/Gain'/з')

Если в качестве параметра используется переменная, например, K, то, чтобы изменить значение параметра, необходимо сначала изменить значение переменной, например: K=2

Затем можно выполнить команду: set_param(' model /Gi'/Gain'/K)

При изменении значений параметров необходимо знать имя параметра, а также имена допустимых значений. Например, такой параметр, как orientation (положение блока) может принимать значения right, down, left, up. Зная эти значения можно развернуть блок в любую сторону.

Обновление параметров модели осуществляется той же командой set_param

В качестве первого аргумента указывается имя модели. В качестве второго аргумента - значение SimulationCommand. В качестве третьего аргумента - значение update. Например:

set_param('model'/SimulationCommand'/update') В этом случае, если в качестве параметров блоков используются переменные, то произойдет обновление значений этих переменных.

ЛИТЕРАТУРА

1. Дьяконов В.П. MATLAB6/6/1/6/5+SIMULINK 4/5 М.:Солон-Пресс, 2002. 768с

2. Затонский А.В. Теоретический подход к управлению социально-техническими системами // Программные продукты и системы. 2008. №i. С.29-32.

3. Бильфельд Н.В. Управление simulink моделями из программ верхнего уровня. // Новый университет. Технические науки. 2013. №3. С. 3-7

4. Бильфельд Н.В., Многокритериальное исследование систем управления. Пермь: ПНИПУ, 2015. 436 с.

Поступила в редакцию 15.02.2016

i Надоели баннеры? Вы всегда можете отключить рекламу.