Блок constant simulink для чего
Перейти к содержимому

Блок constant simulink для чего

Блок constant simulink для чего

И.В.Черных. "Simulink: Инструмент моделирования динамических систем"

12. Основные команды MATLAB для управления Simulink-моделью

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

Назначение: Добавление нового блока в модель

Команда добавляет блок, полный путь которого задан параметром ‘src’ , в модель в соответствии с путем назначения ‘dest’ .

add_block(‘src’, ‘dest’, ‘parameter1’, value1, . )

Команда добавляет блок, полный путь которого задан параметром ‘src’ , в модель в соответствии с путем назначения ‘dest’ и устанавливает значения параметров блока.

Команда add_block(‘built-in/Gain’, ‘EX_add_block/Gain’) добавляет в модель EX_add_block.mdl усилитель Gain из встроенной библиотеки.

Команда add_block(‘EX_add_block / In1’, ‘EX_add_block/My_Subsystem / In1’)

копирует блок входного порта In1 из модели EX_add_block.mdl в подсистему My_Subsystem той же самой модели.

Команда add_block(‘built-in/Constant’, ‘EX_add_block/Constant’,’Value’,’150′) добавляет в модель EX_add_block.mdl блок Constant и устанавливает параметр Value этого блока равным 150 .

Назначение: Добавление новой линии связи в модель

Команда добавляет новую линию связи в модели sys от выходного порта oport ко входному порту iport . Параметры oport и iport задают полные пути блоков.

h = add_line(‘sys’,’oport’,’iport’, ‘autorouting’,’on’)

Команда аналогична предыдущей. Дополнительный параметр autorouting (автоматическая трассировка), значение которого равно on , обеспечивает создание линии без пересечения пиктограмм блоков. По “умолчанию” значение этого параметра равно off .

h = add_line(‘sys’, points)

Команда добавляет новую линию связи в модели sys в соответствии с координатами, заданными матрицей points . Началом системы координат окна модели считается левый верхний угол окна.

Команда add_line(‘EX_add_line’,’Step/1′,’Sum/2′) добавляет новую линию связи в модели EX_add_line.mdl между выходом блока Step (блок имеет один выход) и вторым входом блока Sum .

Команда add_line(‘EX_add_line’,’Step1/1′,’Sum/2′,’autorouting’,’on’) добавляет новую линию связи в модели EX_add_line.mdl между выходом блока Step1 и вторым входом блока Sum , при включенном режиме автотрассировки.

Команда add_line(‘EX_add_line’,[20 55; 40 10; 60 60]) добавляет новую линию связи в модели EX_add_line.mdl в соответствии с координатами, заданными матрицей [20 55;40 10;60 60]) .

Назначение: Добавление нового параметра в модель.

Команда add_param(‘sys’, ,value1, ,value2. ) добавляет в модель sys новые параметры parameter1, parameter2… и присваивает им значения value1, ,value2. Новые параметры доступны командам get_param , set_param и ничем не отличаются от стандартных параметров Simulink -модели. Имена параметров не чувствительны к регистру символов. Значения параметров чувствительны к регистру символов.

Команда add_param(‘EX_add_param’,’data’,’01 december 2002′,’time’,’21.00′) добавляет в модель EX_add_param.mdl новые параметры data и time и присваивает им значения ’01 december 2002′ и ‘21.00’ , соответственно.

Назначение: Команда закрывает Simulink -модель (все модели) без сохранения изменений.

Команда закрывает активную модель.

Команда закрывает модель sys .

Команда закрывает все открытые модели.

Команда bdclose(‘my_model’) закрывает модель my_model.mdl .

Назначение: Возвращает имя модели (подсистемы верхнего уровня).

Команда возвращает имя активной модели.

Команда возвращает имя модели содержащей объект obj .

Команда bdroot(gcb) возвращает имя модели содержащей выделенный в данный момент блок.

Назначение: Команда закрывает модель с возможностью сохранения изменений.

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

Команда закрывает модель или подсистему с указанным именем sys .

Команда закрывает модель или подсистему и, в зависимости, от параметра saveflag выполняет или не выполняет сохранение изменений. В случае, если параметр saveflag равен 0 изменения не сохраняются. Если же значение данного параметра равно 1 , то внесенные в модель или подсистему изменения сохраняются.

Команда сохраняет модель sys под новым именем newname .

Команда закрывает окно диалога блока, полный путь которого задан параметром blk , или вызывает CloseFcn функцию, если данная функция для блока определена.

Команда close_system(‘my_model’, ‘new_model’) сохраняет модель my_model.mdl под новым именем new_model.mdl .

Команда close_system(‘my_model’, 1) сохраняет модель my_model.mdl со всеми изменениями.

Назначение: Удаление блока из модели.

Команда удаляет блок в соответствии с параметром blk , задающим полный путь к блоку.

Команда delete_block(‘EX_delete_block/My_Subsystem/In1’) удаляет входной порт In1 из подсистемы My_Subsystem модели EX_delete_block.mdl .

Назначение: Удаление линии связи

delete_line(‘sys’, ‘oport’, ‘iport’)

Команда удаляет линию связи в модели sys от выходного порта oport ко входному порту iport . Параметры oport и iport задают полные пути блоков.

delete_line(‘sys’, [x y])

Команда удаляет линию связи, которой принадлежит точка с координатами [x y] .

Команда delete_line(‘EX_delete_line’, ‘Step/1’, ‘Sum/2’) удаляет линию связи в модели EX_delete_line.mdl между выходом блока Step (блок имеет один выход) и вторым входом блока Sum .

Команда delete_line(‘EX_delete_line’,[20 55]) удаляет линию связи, которой принадлежит точка с координатами [20 55] .

Назначение: Удаление параметра модели, добавленного командой add_param .

Команда удаляет из модели sys параметры parameter1, parameter2… , добавленные ранее командой add_param .

Команда delete_param(‘EX_delete_param’, ‘data’, ‘time’) удаляет из модели EX_delete_param.mdl параметры data и time , добавленные ранее командой add_param .

Назначение: Получение пути текущего блока.

Команда возвращает полный путь текущего блока.

Команда возвращает полный путь текущего блока в модели sys .

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

Команду удобно использовать при получении пути блока для команд get_param и set_param .

Команда get_param(gcb,’Gain’) для текущего блока Gain возвращает значение параметра Gain .

Назначение: Получение пути текущей модели.

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

Назначение: Поиск моделей (подсистем), блоков, линий, портов и текстовых описаний.

find_system (sys, ‘c1’, cv1, ‘c2’, cv2. ‘p1’, v1, ‘p2’, v2. )

Команда выполняет поиск моделей (подсистем), блоков, линий, портов и их описаний, полный путь которых задан параметром sys , с использованием ограничений, заданных параметрами c1, c2 и имеющих значения параметров v1, v2 .

Виды ограничений приведены в Таблице 12.1.

Описание

‘SearchDepth’

scalar

Устанавливает глубину поиска ( 0 – только для открытых систем, 1 – для блоков и подсистем верхнего уровня, 2 – для системы верхнего уровня и ее дочерних подсистем, и т.д.) Значение по умолчанию all – все уровни.

‘LookUnderMasks’

Пропуск маскированных блоков.

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

‘functional’

Поиск внутри маскированных блоков, не имеющих окон диалога.

Поиск внутри всех маскированных блоков.

‘FollowLinks’

Если параметр имеет значение ‘on’ , то отслеживаются связи с библиотечными блоками. Значение по умолчанию ‘off’ .

‘FindAll’

Если параметр имеет значение ‘on’ , то поиск распространяется на линии, порты и текстовые описания в пределах текущей модели. Значение по умолчанию ‘off’ .

‘CaseSensitive’

Поиск с учетом регистра символов (при поиске строковых параметров). Значение по умолчанию ‘on’ .

Если параметр имеет значение ‘on’ , то допускается проводить поиск с использованием шаблонов. Значение по умолчанию ‘off’ .

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

Команда find_system возвращает массив ячеек содержащих имена всех открытых подсистем и блоков.

Команда find_system(‘type’, ‘block_diagram’) возвращает массив ячеек содержащих имена всех открытых моделей.

Команда find_system(‘my_model’,’SearchDepth’,2,’BlockType’,’Product’) выполняет поиск блоков умножения Product в модели my_model.mdl и в ее вложенных подсистемах.

Команда find_system(‘my_model’, ‘BlockType’, ‘Constant’,’Value’, ‘100’) выполняет поиск блоков Constant у которых значение параметра Value равно 100 .

Для поиска с использованием шаблонов можно применять специальные символы приведенные в таблице Таблица 12.2

Заменяет любой символ. Например, шаблону ‘a.’ соответствуют выражения ‘aa’ , ‘ab’ , ‘ac’ и т.п.

Заменяет любую последовательность символов (включая пустую). Например, шаблону ‘a*’ соответствуют выражения ‘a’ , ‘ab’ , ‘abc’ и т.п. Шаблону ‘.*’ соответствует любая строка, в том числе и пустая.

Заменяет любое количество предшествующих символов. Например, шаблону ‘ab+’ соответствуют выражения ‘ab’ , ‘abb’ , ‘abbb’ и т.п

Отмечает начало последовательности символов. Например, шаблону ‘^a’ соответствует любая строка начинающаяся на символ ‘a’ .

Отмечает последний символ строки символов. Например, шаблону ‘$a’ соответствует любая строка, оканчивающаяся на символ ‘a’ .

Предписывает считать следующий символ обычным текстовым символом. Например, шаблон ‘\\’ соответствует строке содержащей символ ‘\’ .

Определяет набор символов в выражении поиска. Например, шаблон ‘f[oa]r’ соответствует выражениям ‘for’ и ‘far’ .

Символ ( — ) задает диапазон символов. Например, шаблон ‘[a-zA-Z1-9]’ соответствует любому алфавитно-цифровому символу.

Символ ( ^ ) определяет исключаемые символы при поиске. Например, шаблон ‘f[^i]r’ соответствует строкам ‘far’ and ‘for’ , но не соответствует строке ‘fir’ .

Задает поиск строк, содержащих только алфавитно-цифровые символы. Например, шаблон ‘^\w’ соответствует строке ‘mu’ , но не соответствует строке ‘&mu’ .

Задает поиск строк, содержащих только цифровые символы. Например, шаблон ‘\d+’ задает поиск любого целого числа.

Задает поиск строк, не содержащих цифровые символы (аналог шаблона [^0-9] ).

Задает пробел в выражении поиска (аналог шаблона [ \t\r\n\f] ).

Исключает пробелы из выражения поиска (аналог шаблона [^ \t\r\n\f] ).

Задает поиск слова (последовательности символов отделенных с обеих сторон пробелами). Например, шаблону ‘\<to\>’ соответствует слово ‘to’, но не соответствует слово ‘today’ .

Команда find_system(‘my_model’, ‘regexp’, ‘on’, ‘blocktype’, ‘port’) задает поиск входных и выходных портов в модели my_model.mdl .

Назначение: Получение значения параметров модели или блока.

Команда возвращает значение параметра parameter , для объекта, полный путь которого задан выражением obj .

Команда get_param(‘EX_get_param/Constant’,’Value’) определяет значение параметра Value блока Constant модели EX_get_param.mdl .

Команда get_param(‘EX_get_param/Constant’, ‘ObjectParameters’) определяет все атрибуты блока Constant модели EX_get_param.mdl .

Команда get_param(‘EX_get_param/Constant’, ‘DialogParameters’) определяет параметры задаваемые в окне диалога блока Constant модели EX_get_param.mdl .

Команда get_param(‘EX_get_param’, ‘MaxStep’) определяет значение параметра MaxStep (максимальный шаг расчета) модели EX_get_param.mdl .

Назначение: Создание новой модели.

Команда создает новую модель sys . При этом окно модели не открывается. Для открытия окна следует использовать команду open_system(‘sys’) .

Команда new_system(‘my_model’) создает модель my_model.mdl .

Назначение: Команда открывает окно модели, подсистемы, окно диалога блока.

Команда открывает модель sys.mdl .

Команда открывает окно диалога блока blk модели sys.mdl .

Команда открывает маскированную подсистему Subsystem модели sys.mdl . Команда аналогична пункту меню Look Under Mask .

Команда open_system(‘my_model’) открывает модель my_model.mdl .

Команда open_system(‘my_model/Constant’) открывает окно диалога блока Constant модели my_model.mdl .

Команда open_system(‘my_model/Subsystem’) открывает окно маскированной подсистемы Subsystem модели my_model.mdl .

Назначение: Команда выполняет замену одного блока на другой.

replace_block(‘sys’, ‘blk1’, ‘blk2’, ‘noprompt’)

Команда заменяет все блоки типа blk1 на блоки blk2 модели sys без запроса на подтверждение операции. Если blk2 не является библиотечным блоком, то требуется указать полный путь к блоку.

replace_block(‘sys’, ‘Parameter’, ‘value’, ‘blk’, . )

Команда заменяет все блоки, параметр которых Parameter равен value на блоки blk модели sys .

Команда replace_block(‘EX_replace_block’, ‘Step’, ‘Inport’, ‘noprompt’) заменяет в модели EX_replace_block.mdl блок Step на блок Inport без запроса на подтверждение операции.

Команда replace_block(‘EX_replace_block’, ‘Value’,’100′,’Gain’, ‘noprompt’) заменяет в модели EX_replace_block.mdl блоки, параметр которых равен 100 на блоки Gain без запроса на подтверждение операции.

Назначение: Сохранение файла модели.

Сохранение открытой модели под текущим именем.

Сохранение модели sys под текущим именем.

Сохранение модели sys под новым именем newname .

Команда save_system(‘my_model’) сохраняет модель в файле my_model.mdl .

Команда save_system(‘my_model,’new_model’) сохраняет модель в файле new_model.mdl .

Назначение: Установка параметров модели или блока.

set_param(‘obj’, ‘parameter1’, value1, ‘parameter2’, value2, . )

Команда выполняет присваивание новых значений value1 , value2… параметрам parameter1 , parameter2… модели (блока) obj . Имена параметров не чувствительны к регистру символов. Значения параметров чувствительны к регистру символов.

Команда set_param(‘EX_set_param’, ‘Solver’, ‘ode15s’, ‘StopTime’, ‘100’) устанавливает метод решения (параметр Solver ) ode15s и время окончания расчета (параметр StopTime ) 100 для модели EX_set_param.mdl .

Команда set_param(‘EX_set_param/Step’, ‘After’, ‘1.5’) устанавливает параметр Final Value блока Step модели EX_set_param.mdl равным 1.5 .

Команда set_param(‘EX_set_param/Transfer Fcn’, ‘Numerator’, ‘[5 7 9]’,’Denominator’, ‘[2 3 0]’) устанавливает параметры блока Transfer Fcn , таким образом, чтобы получить передаточную функцию следующего вида:

Команда может использоваться для изменения параметров модели или блока в процессе расчета. Однако не все параметры блоков могут быть изменены в этом случае. Например, нельзя изменить в процессе расчета размерности входных и выходных портов подсистемы или блока. Параметры блоков библиотеки Power System Blockset также нельзя изменять в процессе расчета. Следует иметь в виду еще и то, что иногда название параметра, данное в окне диалога, отличается от фактического названия параметра (имени переменной, которой присваивается значение параметра). Так, например, для блока Step , фактическое имя параметра Initial Value есть Before , а фактическое имя параметра Final Value есть After . Для выяснения фактических имен параметров можно открыть файл модели в каком-либо текстовом редакторе и просмотреть секцию, в которой описан данный блок. Ниже приведен пример текстового описания блока Step в файле модели:

Block <
BlockType Step
Name «Step»
Position [125, 75, 155, 105]
Time «0.1»
Before «10»
After «20»
SampleTime «0»
VectorParams1D on
> .

Из приведенного фрагмента хорошо видно, какие фактические имена имеют параметры данного блока.

Идентификация параметров модели в Simulink

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

Один способ определения параметров модели — это непосредственное измерение их величин на физическом объекте или использование стандартных значений. Например, теплоемкость воздуха с можно взять из справочника, а масса воздуха т приблизительно определяется по объему отапливаемого помещения, что может быть легко измерено на объекте.

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

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

С математической точки зрения, идентификация параметров — это задача оптимизации. Пусть u(t) — воздействие, которое подавалось на реальный физический объект управления, a y(t) — измеренная при этом реакция на его выходе. Заметим, что u(t) и y(t) — экспериментальные данные, которые несут в себе частное поведение объекта управления.

Пусть имеется модель объекта управления Р с набором параметров (Ai, Л2, . Ап) = Л. При подаче на вход модели сигнала u(t) (того же, что подавался и на реальный физический объект), на выходе модели мы получаем реакцию y(t), которая зависит от параметров модели Л. Отсюда, можно сформулировать задачу минимизации разности между откликом модели y(t) и измеренным откликом реального объекта y(t) на одном и том же входном сигнале u(t):

где Т — время за которое осуществлялось измерение выхода объекта управления.

Решая численно задачу минимизации функции Ф(А) относительно вектора Л, получаем параметры модели Л , минимизирующие целевую функцию и наиболее соответствующие экспериментальным данным.

В Simulink встроено средство для идентификации параметров модели Simulink Design Optimization, делающее этот процесс максимально простым и прозрачным для пользователя.

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

и нажать клавишу Enter на клавиатуре.

После чего переменные а и к появятся в рабочем пространстве MATLAB (Workspace) и могут использоваться в моделях Simulink. Значения переменных из рабочего пространства отображаются и доступны для изменения справа в основном окне MATLAB на панели Workspace.

Теперь можно указать созданные переменные в параметрах модели. Для этого введем в свойствах блока Gainl параметр Gain: 1/а, а в свойствах блока Gain2 параметр Gain: к.

Simulink Design Optimization поддерживает различные источники данных для идентификации моделей. В том числе, зависимости u(t) и y(t) могут быть получены прямо с измерительного оборудования, поддерживаемого MATLAB (например, осциллографов фирмы Tektronix) и подключенного к компьютеру, на котором запущен MATLAB.

Параметры модели в рабочем пространстве MATLAB

Рисунок 2.12. Параметры модели в рабочем пространстве MATLAB.

Рассмотрим самый простой способ, когда экспериментальные данные записаны в текстовых файлах. В данном случае, результаты измерений мощности нагревателя, температуры внутри помещения и на улице записывались каждые 3 минуты с новой строки в текстовых файлах P.txt, Ti.txt и To.txt, соответственно. Кроме того, в отдельный текстовый файл t.txt записывалось время каждого измерения, выраженное в часах.

По собранным данным за 48 часов необходимо определить параметры а и к модели. Прежде чем приступить к идентификации параметров, необходимо модифицировать модель, а именно — заменить все блоки генерации воздействий и отображения сигналов на специальные компоненты, представляющие вход и выход модели: [1]

  • • блок Constant аналогично заменяется на Simulink / Commonly Used Blocks / Ini или Simulink / Sources / Ini, назовем блок именем сигнала То;
  • • блок Scope заменяется на Simulink / Commonly Used Blocks / Outl или Simulink / Sinks / Outl, назовем блок именем сигнала Ti;

Также введем интервал моделирования модели — 48, подразумевая, что единицей модельного времени является час. В результате получаем модель, подготовленную к процессу идентификации параметров (рисунок 2.13).

Модель системы, модифицированная для идентификации параметров

Рисунок 2.13. Модель системы, модифицированная для идентификации параметров.

Для того, чтобы приступить к идентификации параметров, необходимо запустить Control and Estimation Tools Manager из меню Simulink: Tools / Parameter Estimation. в результате появится окно средства идентификации параметров и синтеза регуляторов, показанное на рисунке рисунок 2.14.

Окно Control and Estimation Tools Manager

Рисунок 2.14. Окно Control and Estimation Tools Manager.

Далее щелкаем в дереве слева по Transient Data и вводим данные измерений, указывая соответствующие файлы. Для начала нажимаем справа кнопку New, что создает новый набор данных с именем по умолчанию New Data. Выбирая созданный набор данных New Data слева в дереве под Transient Data, получаем доступ справа к таблице, в которой указываются данные для всех входов и выходов модели.

Выбираем клетку в колонке Data справа под названием порта модели Р и нажимаем кнопку Import. Выбираем в открывшемся окне в списке Import from: ASCII file — импорт из текстового файла, в списке Select delimiter character: tab — разделитель между данными разных колонок таблицы в файле, нажимаем кнопку Browse и выбираем файл с данными мощности P.txt. Щелкаем по заголовку колонки таблицы А, чтобы выделить все считанные из файла данные, и нажимаем кнопку Import (рисунок 2.15). Чтобы закрыть окно, нажимаем кнопку Close.

Импорт данных мощности нагревателя Р

Рисунок 2.15. Импорт данных мощности нагревателя Р.

Теперь необходимо импортировать отметки времени из файла t.txt, в которые были произведены соответствующие измерения мощности нагревателя. Выделяем ячейку в колонке Time / Ts под названием порта модели Р. Далее действуем совершенно аналогично, только выбираем файл t.txt при нажатии кнопки Browse в окне Data Import.

Выделяя соответствующие ячейки под названием порта модели То, и выбирая при импорте файлы To.txt и t.txt, аналогично загружаем для идентификации данные температуры на улице. В результате проделанных действий вкладка Input Data приобретет вид, показанный на рисунке 2.16.

Входные данные модели

Рисунок 2.16. Входные данные модели: мощность Р и температура

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

Далее специфицируем данные измерений внутренней температуры Ti, которые соответствуют выходу модели. Для этого перейдем на следующую вкладку Output Data и выделяя ячейки под колонками Data и Time / Ts укажем файлы соответственно Ti.txt и t.txt, в полной аналогии как это было сделано для мощности и наружной температуры. В результате проделанных действий вкладка Output Data приобретет вид, показанный на рисунке 2.17.

Выходные данные модели

Рисунок 2.17. Выходные данные модели: температура в помещении

Следующий шаг процесса идентификации — спецификация всех параметров модели, значения которых могут быть подобраны в процессе оптимизации. Для этого необходимо выделить в дереве слева пункт Variables, справа нажать кнопку Add. в открывшемся окне Select Parameters выделить в таблице переменные а и к, которые до этого были объявлены в рабочем пространстве MATLAB и нажать кнопку ОК (рисунок 2.18).

Добавление параметров модели

Рисунок 2.18. Добавление параметров модели.

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

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

Выбор набора данных для идентификации

Рисунок 2.19. Выбор набора данных для идентификации.

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

После того, как все настроено, можно перейти на последнюю вкладку Estimation и нажать кнопку Start для запуска процесса оптимизации параметров. На каждой итерации оптимизационной процедуры будут выводится значения шага изменения параметров и целевой функции. Процедура оптимизации автоматически завершится в случае достижения локального минимума целевой функции или после заданного числа итераций (по умолчанию — после 100). Нажав кнопку Estimation Options можно настроить разные параметры процесса идентификации, например, выбрать алгоритм и критерии завершения оптимизации.

Выбор идентифицируемых парамтров

Рисунок 2.20. Выбор идентифицируемых парамтров.

В рассматриваемом случае оптимизация параметров завершится с результатами, которые выводятся в текстовом поле рядом на вкладке Estimation:

Performing transient estimation.

Active experiments: New Data

Estimated parameters: a, k Solver stopped prematurely.

lsqnonlin stopped because it exceeded the iteration limit, options. Maxlter = 100 (the selected value).

Это означает, что алгоритм не сошелся к локальному оптимуму за 100 итераций. Поскольку актуальные значения параметров находятся очень далеко от их начальных приближений, то имеет смысл запустить процесс оптимизации еще раз. Нажав еще раз на кнопку Start, через некоторое время дожидаемся завершения процесса оптимизации с нахождением локального оптимума (рисунок 2.21):

Performing transient estimation.

Active experiments: New Data Estimated parameters: a, k Local minimum found.

Optimization completed because the size of the gradient is less than the selected value of the function tolerance.

Завершение идентификации параметров

Рисунок 2.21. Завершение идентификации параметров.

После того, как процесс идентификации закончен, можно сравнить измеренные данные внутренней температуры и данные, полученные в результате моделирования. Для этого необходимо слева выделить пункт Estimation / Views и нажать справа кнопу New, что создаст новое семейство графиков с именем по умолчанию New View. Выделив в дереве New View под пунктом Estimation / Views, получим справа таблицу графиков (рисунок 2.22), в первой строке которой в колонке Plot Туре выберем Measured and simulated, а также отметим флажком в Options пункт New Estimation. Это приведет к построению двух наложенных графиков измеренной и промоделированной по идентифицированным параметрам температуры.

Построение графиков для анализа результатов идентификации

Рисунок 2.22. Построение графиков для анализа результатов идентификации.

График можно посмотреть, нажав на кнопку Show Plots (рисунок 2.23). На графике серым изображены измеренные значения температуры, а синим — полученные по модели. В целом, оба графика почти совпадают, отличаясь лишь малым. Отсюда можно сделать вывод, что параметры модели подобраны верно.

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

Блоки библиотек Simulink

В данной главе приводится краткое описание и параметры блоков библиотеки Simulink. Блоки, применение которых для моделирования экономических систем пока маловероятно, не рассматриваются.

Sources — источники внешних воздействий на модель (экзогенных переменных)

в I Library: simulink/So dices

File Edit View _ Help

Model & Subsystem Inputs

ф untitled.mat

Ground from File

Signal Generators

Signal puise signal Builder

Generator Generator

Sine Wave Step Repeating

Chirp Signal

Random Uniform Random Band-Limited Number Number White Noise

Repeating Sequence Interpolated

Counter Free-Running

Counter Limited

Digital Clock

Рис. 6.1. Библиотека блоков Sources (источников внешних воздействий на модель, экзогенных переменных)

Constant — константа

Задает постоянный по величине во времени сигнал (параметр, материальный, денежный или информационный поток).

Диалоговое окно настройки параметров блока Constant представлено на рис. 6.2.

W Source Block Parameters: TaxRate

Output the constant specified by the ‘Constant value’ parameter. If ‘Constant value’ is a vector and ‘Interpret vector parameters as 1-D’ is on, treat the constant value as a 1-D array. Otherwise, output a matrix with lhe same dimensions as the constant

OK. | [ Cancel j [ Help

Puc. 6.2. Окно параметров блока Constant

Constant value — постоянная величина.

Interpret vector parameters as 1-D — интерпретировать вектор параметров как одномерный (при установленном флажке).

Sample time — временной интервал вычислений (inf — неопрс-делен).

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

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

Применяется практически во всех экономических и финансовых моделях.

В модели сберегательного счета (рис. 3.4) блок Constant задает постоянный денежный поток вкладов в банк по рублю в месяц.

В налоговой модели (рис. 5.1) блоками Constant мы задаем параметры налоговых ставок и рентабельности. В блок TaxRate студенты вводят значение налоговой ставки и замеряют поступления в бюджет. Затем для ускорения расчетов вводят вектор налоговых ставок [0:0.1:1.0]. Ставки задаются от нулевой с шагом десять процентов до ста процентов. Для полной автоматизации эксперимен тов в блок вводится переменная TaxRate, значения которой задаются программой Matlab.

Библиотека MATLAB 6.1 Simulink. Наиболее часто используемые блоки, описание их параметров , страница 5

19. Constant – генерирует постоянную (постоянное напряжение).

20. Pulse Generator – генерирует последовательность прямоугольных импульсов. Pulse type: Sample based

Параметр Amplitude – определяет амплитуду импульсов

Параметр Sample time определяет шаг дискретизации и обратно пропорционален

частоте дискретизации ∆t = . Иными словами Sample time – это минимальный fдискр

временной интервал «нарезки» любого сигнала. Samples («сэмпл», отсчет) – элементарный шаг временной дискретизации постоянной длительности. Любой сигнал будет состоять из «сэмплов» разной амплитуды.

Параметр Pulse width определяет длительность одного импульса. (Измеряется в количестве отсчетов (number of samples), соответственно длительность импульса в секундах равна [Sample time]·[Pulse width (number of samples)]).

Параметр Period определяет период повторения импульсов. Измеряется в количестве отсчетов (number of samples), соответственно период повторения импульсов в секундах равен [Sample time]·[Period (number of samples)]).

Параметр Phase delay определяет задержку последовательности импульсов. Если Phase delay установить равным 0, то первый импульс последовательности генерируется, начиная с 0 секунд. Измеряется в количестве отсчетов (number of samples), соответственно задержка импульсов в секундах равна [Sample

time]·[Phase delay (number of samples)]).

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

Amplitude = 1

Period = 200

Pulse width = 50

Phase delay = 50

Sample time = 0.01

Для генерирования одиночного импульса достаточно установить значение [Sample time]·[Period (number of samples)] равным больше времени симуляции процесса (по умолчанию обычно равно 10 секундам).

21. Блок Simulink/Sources/Ramp – генерирует линейную функциюsвых( )t = Slopet , начиная со времени Start time и амплитуды Initial output.

22. Simulink/Sources/Sine Wave – генерирует сигнал с функцией

sвых( )t = Bias + Amplitude ⋅sin(Frequencyt + Phase). Sine type: Time based

Параметр Sample time определяет шаг дискретизации и обратно пропорционален

частоте дискретизации ∆t = . Иными словами Sample time – это минимальный fдискр

временной интервал «нарезки» любого сигнала. Samples («сэмпл», отсчет) – элементарный шаг временной дискретизации постоянной длительности. Любой сигнал будет состоять из «сэмплов» разной амплитуды. Для «нормального» вида синусоидального сигнала необходимо брать не менее 50 отсчетов на период колебания сигнала.

Параметр Bias определяет постоянную составляющую сигнала.

Параметр Phase определяет начальную фазу колебания (при Phase = pi/2 сигнал становиться косинусоидальным).

Ниже на осциллограмме представлен синусоидальный сигнал с частотой 2 Гц и длительностью отсчета 0.01 с, то есть 50 отсчетов на период. Параметры сигнала: Amplitude = 1

Frequency = 2*pi*2

Sample time = 0.01

23. Simulink/Subsystems/ Subsystem – позволяет объединить собранную схему в единый блок, с нужным количеством входов и выходов.

Удалите соединяющий провод между In1 и Out1 и скопируйте вашу схему с основного файла в открывшееся окно блока Subsystem. Соедините входа In с входами на вашей схеме и выхода на вашей схеме с Out.

24. Communication Blockset/Channels/ Multipath Rayleigh Fading Channel – аналог многолучевого канала с релеевскими замираниями. Входной и выходной сигнал должны быть комплексными.

Параметр Doppler frequency определяет частоту Доплера в канале связи, Гц (не рекомендуется устанавливать менее 0.1 Гц).

Параметр Sample time лучше устанавливать равным -1.

Параметр Delay vector задает комплекс отраженных лучей с индивидуальными задержками в секундах.

Параметр Gain vector задает амплитуды комплекса отраженных лучей в дБ.

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

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