Создание нового файла. Создание новой модели. Создание простой модели

ВВЕДЕНИЕ

В последние годы созданы пакеты моделирования динамических систем Vissim ,Scilab , Simulink , которые позволяют осуществлять так называемое визуальное программирование (моделирование) при создании блок-схем (моделей) систем управления с обратной связью. Эти пакеты содержат набор (библиотеку) блоков, являющихся моделями элементов структурной схемы системы управления. Используя данные наборы блоков, пользователь с помощью мыши переносит нужные блоки в рабочую площадь модельного окна пакета и соединяет линиями связи входы и выходы блоков. Таким образом создается блок-схема системы управления.

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

Создание упомянутых пакетов моделирования динамических систем позволяет ”оживить” структурную схему. Дело в том, что блок-схема системы, построенная в модельном окне того или иного пакета, представляет собой в сущности копию структурной схемы системы управления. Отличие блок-схем (модели) от структурной схемы состоит в том, что она содержит дополнительные блоки, позволяющие генерировать сигналы, подаваемые на вход системы, и регистрировать выходные сигналы, определяя тем самым реакцию системы на внешние воздействия, т.е. осуществляя визуализацию результатов моделирования. Достаточно выбрать параметры блоков, уточнить задачу исследования и запустить модель, чтобы осуществить процесс динамического моделирования или симуляции. Особенно следует подчеркнуть, что при построении блок-схем системы пользователь практически не имеет дела с обычным программированием, т.е. не составляет никаких инструкций (кодов). Таким образом, как программное средство эти пакеты представляют визуально-ориентированный язык программирования, причем программа автоматически генерируется после ее запуска.

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

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

При написании пособия предполагалось, что читатель знаком с основами теории управления и базовыми операциями оболочки Windows такими, как, например, указать курсором, щелкнуть мышью, перенести (переместить) мышь и т. д.

  1. 1. ЗАПУСК ПРОГРАММЫ

Чтобы запустить Simulink :

а) запустите прежде всего MATLAB . В версии MATLAB R 12 появляется рабочая среда (окноMATLAB ), которая наряду с другими элементами содержит командное окно Command Window (рис.1);

б) сделайте одно из двух:

На панели инструментов окна MATLAB щелкните;

Введите в командное окно Command Window после символа >> (двух ломаных скобок) готовности MATLAB к работе команду simulink и нажмите клавишу Enter .

Появляется окно библиотеки блоков с названием Simulink Library Browser , на котором слева после щелчка мышью над узлом Simulink отображаются с помощью значков (пиктограмм) категории блоков, входящих в эту библиотеку, другими словами, разделы библиотеки Simulink , а справа – пиктограммы упомянутых категорий с их названием (рис. 2) .

  1. 2. СОЗДАНИЕ БЛОК-СХЕМ

В пакете Simulink вы строите модель системы в виде блок-схемы, выбирая блоки из окна Simulink Library Browsers , перенося их в рабочую площадь модельного окна и затем связывая их между собой с помощью мыши. Однажды связав блоки с другими блоками, вы можете их перемещать по экрану, поворачивая на 90 ° и 180 ° градусов, а также помещать в составной блок (подсистему), не нарушая и не теряя существующих связей. Удобный редактор блок-схем, основанный на использовании возможностей графического интерфейса пользователя, делает ваши модели простыми для понимания и сохранения.

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

Вы можете использовать информацию этих указаний в сочетании с примерами построения блок-схем, включенными в окно MATLAB Demo Window , которое вы открываете, дважды щелкнув на кнопку Demos в библиотечном окне Library : simulink 3 (рис. 3) . Последнее окно можно вызвать, вводя в командное окно команду simulink 3 и нажимая затем клавишу Enter .

2.1. Создание новой блок-схемы

Вы можете создать новую блок-схему в любой момент в процессе работы в Simulink .

2.1.1. Чтобы создать новую блок-схему:

сделайте одно из двух:

Из панели инструментов окна библиотеки блоковSimulink Library Browser щелкните на кнопку;

Из меню File окна библиотеки блоков Simulink Library Browser выберите подменю New (новая) и затем команду Model (блок-схема). Появляется пустое модельное окно под титулом untitled (без названия) (рис. 4).Это окно содержит строку меню, панель инструментов, строку состояния и рабочую площадь (поле) для создания блок-схем. Строка меню включает перечень шести основных меню модельного окна, представляемых Simulink :

  • File (команды работы с файлами, имеющими расширение.mdl ) ;
  • Edit (команды редактирования блок-схем);
  • View (команды изменения вида окна: показать/убрать панель инструментов и строку состояния);
  • Simulation (команды управления динамическим моделированием (симуляцией));
  • Format (команды изменения внешнего вида блоков схемы и блок-схемы в целом);
  • Tools (команду открытия графического интерфейса пользователя Simulink LTI Viewer для просмотра результатов анализа и синтеза систем, в частности для линеаризации и построения временных и частотных характеристик);
  • Help (команды открытия справочника Simulink с разделами Simulink Help , Block (описание блоков), Shortcuts (использование мыши и клавиатуры), Demos (демонстрация примеров) и другими).

Строка инструментов (рис.5) обеспечивает простой доступ к часто используемым командам. Первые семь значков строки инструментов содержат

общепринятые для Windows - приложений команды, так что мы их здесь не будем рассматривать. Отметим лишь, что с помощью второго значка можно открыть окно Open , содержащее список сохранённых в папке work ранее созданных блок-схем, и затем вызвать в модельное окно из этого списка выбранную вами блок-схему. Остальные значки играют следующую роль:

8 и 9 соответствуют командам отменить (Undo ) /восстановить (Redo ) предыдущую команду редактирования;

10 обеспечивает доступ к библиотечному окну Simulink Library Browser ;

11 открывает окно Model Browser (просмотр блок-схем), содержащее в данном случае название создаваемой блок-схемы untitled ;

12 обеспечивает доступ к родительским системам;

13 вызывает окно редактора/отладчика Simulink debugger : untitled ;

14 и 15позволяют соответственно запустить блок-схему (команда Start ) и закончить моделирование (команда Stop ). Заметим, что после запуска модели на изображении кнопки Start появляется символ II и этой кнопке уже соответствует команда Pause (приостановить моделирование).

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

Строка состояний отображает информацию о готовности блок-схемы к началу динамического моделирования (Ready ) или о его текущем выполнении (Running ). В последнем случае она дает сведения о текущем значении времени моделирования. Кроме того, строка состояний указывает вид используемого алгоритма численного интегрирования (по умолчанию ode 45 ).

Укажем еще один способ открытия модельного окна:

а) введите в командное окно Command Windows команду simulink 3 и нажмите Enter . Появляется окно библиотеки блоков Library : simulink 3 (рис.3);

б) выберите из меню File этого окна подменю New и затем команду Model .

2.1.2.Чтобы изменить название модельного окна:

а) выберите из меню Fail этого окнакоманду Save as и введите в текстовое поле Имя файла появляющегося одноименного диалогового окна выбранное вами название исследуемой системы, например sys ;

2.2. Выбор и размещение блоков

Библиотека блоков Simulink насчитывает свыше 100 линейных, нелинейных, логических и другого вида блоков. Список основных блоков, используемых для построения блок-схем систем управления, приведен в Приложении. Категории блоков, как уже говорилось, представлены в библиотеке блоков Simulink Library Browser (рис.2.) в виде специальных значков с расположенными рядом названиями категории. Когда вы дважды щелкните значок той или иной категории на правой панели библиотечного окна, появляется палитра (набор), включающая все блоки, входящие в эту категорию. Каждый блок в палитре изображен, как правило, в виде прямоугольника с размещенным внутри его характерным рисунком или математическим знаком (математической функцией). Кроме того, рядом с изображением прямоугольника находится название блока.

Размещение блоков в модельном окне требует, чтобы на экране дисплея были открыты два окна Simulink Library Browser и untitled, расположенные рядом (рис.6.).

2.2.1. Чтобы поместить блок (точнее его копию) в модельное окно:

а) если раскрыты значки всех категорий, то укажите курсором на категорию блоков, используя левую панель окна Simulink Library Browser , например на категорию Nonlinear (нелинейные элементы), и щелкните мышью. В правой панели этого окна вместо набора категорий появляется набор блоков, входящих в эту категорию. Другие два альтернативных способа открытия категорий блоков:

  • щелкните на левой панели окна Simulink Library Browser на узел Simulink , чтобы раскрыть значки пиктограммы всех категорий;
  • щелкните на значок категории, например Nonlinear . При этом на правой панели появляется набор всех блоков, входящих в эту категорию;
  • укажите курсором мыши на значок интересующего вас блока, например укажите курсором на блок Dead Zone и щелкните мышью, чтобы выбрать
  • блок Dead Zone (зона нечувствительности). При этом в поле Simulink Library Browser ниже его панели инструментов появляются справочные сведения о выбранном блоке, например о блоке Dead Zone .
  • щелкните в библиотечном окне Library : simulink 3 на значок интересующей вас категории блоков, например Nonlinear ;
  • укажите курсором мыши на значок блока, входящего в отображаемую в появляющемся окне Library: simulink3/ Nonlinear палитру, и щелкните мышью, например укажите курсором на блок Dead Zone и щелкните мышью, чтобы выделить блок Dead Zone ;

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

Можно воспользоваться более удобным, по мнению автора, путем копирования интересующего вас блока, а именно с помощью окна Library : simulink 3.

2.2.2. Чтобы поместить блок в модельное окно с помощью окна Library : simulink 3:

а) щелкните правой клавишей мыши в окне Simulink Library Browser

на узел или узел, соответствующие названию Simulink ;

б) выберите команду Open the Simulink Library (открыть библиотеку). Открывается библиотечное окно Library : simulink 3 с изображением категорий блоков, представленных в Simulink ;

в) дважды щелкните на категорию (точнее, значок категории блоков), например на категорию Sources (генераторы сигналов). Появляется окно Library : simulink 3 /Sources , которое содержит значки всех блоков, входящих в категорию Sources ;

г) переместите интересующий вас блок, например Step (скачок), из окна Library : simulink 3/ Sources в модельное окно.

2.3. Соединение блоков

Simulink использует гибкие связи, чтобы соединить между собой блоки для создания блок-схем системы управления. Гибкие связи изображаются ломаными линиями, состоящими из горизонтальных и вертикальных отрезков прямых линий. Simulink предоставляет возможность также провести наклонные отрезки прямых линий. Вы присоединяете гибкую связь к блокам с помощью петель (портов) связи, имеющих форму ломаной скобки >. Если ломаная скобка указывает на блок, то она символизирует входную петлю (входной порт) связи; если же ломаная скобка имеет направление изнутри во вне по отношению к блоку, т.е. указывает противоположное направление, то она является символом выходной петли (выходного порта) блока. Если вы однажды присоединили гибкую связь к блоку, Simulink запоминает и сохраняет эту связь, даже если вы переместите связанные этой связью блоки за пределы модельного окна. Путем соединения блоков Simulink обеспечивает передачу сигналов между блоками в процессе динамического моделирования.

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

2.3.1. Чтобы связать блоки между собой:

а) укажите курсором на выходную петлю связи соединяемого блока (при этом курсор превращается в крестик) и нажмите клавишу мыши;

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

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

2.3.2. Чтобы удалить (стереть) ошибочно введенную связь между блоками:

а) если надо отсоединить (стереть) линию связи от входной петли соответствующего блока, то:

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

б) сделайте одно из трех:

Выберите команду Clear из меню Edit модельного окна;

Щелкните в панели инструментов модельного окна значком с изображением ножниц (Cut );

Щелкните на выделенную линию правой клавишей мыши, чтобы получить меню, содержащее команды Cut , Copy , Clear , Signal Properties , и выберите команду Cut или Clear , чтобы стереть линию связи.

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

2.3.3. Чтобы осуществить разветвление сигнала:

а) соедините линией связи выход выбранного вами блока с входом одного из блоков-приемников сигнала. Эту линию назовем базовой;

б) укажите курсором на расположенную на базовой линии точку, которую вы хотите видеть в качестве точки разветвления;

в) нажмите клавишу Ctrl ;

г) нажмите клавишу мыши, курсор примет форму крестика;

д) удерживая в нажатом состоянии клавиши Ctrl и мыши, перенесите курсор с выбранной вами точки разветвления сигнала на входную петлю (входной порт) второго блока-приемника сигнала. Курсор примет форму двойного крестика;

е) отпустите клавишу мыши и клавишу Ctrl . Simulink соединит точку разветвления сигнала с входным портом второго блока-приемника сигнала.

Еще один удобный способ разветвления сигналов заключается в следующем:

а) соедините линией связи блок, выходной сигнал которого подлежит разветвлению, с одним из блоков, на который вы хотите подать этот сигнал. Эту линию будем считать базовой;

б) укажите курсором на входную петлю связи (входной порт) еще не присоединенного блока-приемника сигнала и нажмите клавишу мыши. Курсор примет форму крестика, а петля связи – черной стрелки;

в) переместите курсор, прочерчивая при этом будущую линию связи, в точку, лежащую на базовой линии, т.е. будущую точку разветвления сигнала. Курсор примет форму двойного креста;

г) отпустите клавишу мыши. На базовой линии появляется точка разветвления сигнала.

2.4. Изменение конфигурации линий связи

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

2.4.1. Чтобы перенести отрезок прямой, являющийся частью прочерченной Simulink линии связи:

а) укажите курсором на отрезок прямой, который вы хотите перенести параллельно самому себе;

б) нажмите левую клавишу мыши. Курсор принимает форму креста со стрелками на концах образующих его линий;

в) перенесите курсор, не отпуская клавишу мыши, в желаемую точку модельного окна;

г) отпустите клавишу мыши. Редактируемый отрезок прямой проходит через желаемую точку.

2.4.2. Чтобы изменить длину отрезков прямых, образующих ломаную линию связи:

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

б) укажите курсором на интересующую вас угловую точку, фактически на черный квадратик, соответствующей этой точке. Курсор примет форму белой окружности, в которой располагается черный квадратик;

в) нажмите левую клавишу мыши и, не отпуская ее, переместите курсор в желаемом направлении (горизонтальном или вертикальном), другими словами, потяните отрезок прямой за "ручку";

г) отпустите клавишу мыши.

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

2.4.3. Чтобы выбрать желаемую конфигурацию линии связи:

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

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

в) отпустите клавишу. Simulink соединит выходную петлю связи (выходной порт) блока-передатчика сигнала с выбранной вами точкой, которая играет роль первой угловой точки (излома). Курсор сохраняет форму крестика;

г) нажмите клавишу мыши и перенесите курсор в следующую вторую, выбранную вами угловую точку желаемой ломаной линии связи;

д) отпустите клавишу мыши. Simulink соединяет выбранные вами первую и вторую угловые точки будущей ломаной линии связи.

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

2.5. Обозначение (метка) сигнала

Вы можете ввести обозначения (метки) для сигналов, циркулирующих в блок-схеме, чтобы лучше ориентироваться в их функциональном назначении.

2.5.1. Чтобы обозначить сигнал:

а) дважды щелкните на линию связи, по которой передается интересующий вас сигнал, появляется текстовый курсор (прямоугольник с курсором в виде вертикальной мерцающей черты);

б) введите выбранное вами обозначение (метку) сигнала;

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

2.6. Выделение блоков

Команды редактирования большинства блоков требуют, чтобы вы прежде всего выделили блок, который собираетесь редактировать. Команды модельного блока Copy (копировать), Cut (вырезать), Clear (очистить), Create Subsystem (создать основной блок (подсистему)) из меню Edit и команды модельного окна Flip Block (повернуть блок на 180 °), Rotate Block (повернуть блок на 90 ° по часовой стрелке) из меню Format , наконец, установка и изменение параметров блока требуют выделения блоков.

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

2.6.1.Чтобы выделить один блок:

Щелкните выделяемый блок. Черные квадратики, так называемые "ручки" блока, появляются в углах выделенного блока. При этом все ранее выделенные вами объекты становятся невыделенными. Выделить один блок можно другим способом: нажать клавишу Shift и щелкнуть интересующий вас блок.

2.6.2.Чтобы выделить группу блоков поочередно:

Нажмите клавишу Shift и щелкайте поочередно каждый блок, который входит в группу выделяемых вами блоков. При этом линии связи между этими блоками не выделяются. Если вы ошибочно выделили какой-либо блок, щелкните его снова, удерживая в нажатом положении клавишу Shift. Этот блок станет невыделенным.

2.6.3.Чтобы выделить одновременно группу блоков (выделить с помощью рамки) и соединяющие их линии связи:

а) укажите курсором левый верхний угол области модельного окна, в которой находятся блоки, входящие в эту группу:

б) зафиксируйте курсор в этом углу, нажав клавишу мыши. Курсор принимает форму крестика;

в) перенесите курсор вправо вниз пока пунктирный прямоугольник, (рамка) не охватит все блоки, которые вы хотите выделить. При этом курсор в виде крестика появляется в нижнем правом углу этого прямоугольника;

г) отпустите клавишу мыши. Выделенные блоки появляются с черными квадратиками в углах, а соединяющие их линии с маркерами в виде черных квадратиков. Таким образом, происходит выделение групп блоков и соединяющих эти блоки линий связи.

2.6.4. Чтобы выделить все элементы, находящиеся в модельном окне:

Выберите команду Select all (выделить всё) из меню Edit модельного окна.

2.6.5. Чтобы отменить команду на выделение блоков:

Щелкните вне области, в которой находятся выделенные блоки.

2.7. Перемещение и копирование блоков

Simulink позволяет перемещать и копировать блоки (группу блоков) внутри модельного окна, а также из модельного окна одной блок-схемы в модельное окно другой блок-схемы, например в блок-схему исследуемой системы.

2.7.1. Чтобы переместить один блок в модельном окне:

а) укажите курсором на перемещаемый блок и нажмите на клавишу мыши;

б) перенесите блок в желаемое место модельного окна;

в) отпустите клавишу мыши.

2.7.2. Чтобы переместить группу блоков в модельном окне:

а) выделите группу перемещаемых блоков;

б) укажите на один из выделенных блоков и нажмите клавишу мыши;

в) перенесите группу блоков в желаемое место модельного окна;

г) отпустите клавишу мыши.

2.7.3. Чтобы скопировать один блок в модельном окне:

а) выделите копируемый блок;

б) нажмите на клавишу Ctrl и укажите курсором на копируемый блок. Внутри значка блока рядом с курсором появляется белый крестик;

в) перенесите блок в место, куда вы хотите поместить его копию;

г) отпустите клавишу мыши. Копия блока имеет те же параметры, что и оригинальный блок.

Simulink дает название каждому скопированному блоку. Первая копия, перенесенная из библиотечного окна, получает название оригинального блока, например Transfer Fcn. Если ваша блок-схема уже содержит блок Transfer Fcn, то Simulink добавляет порядковый номер к каждой последующей копии, например Transfer Fcn1, Transfer Fcn2 и.т.д.

2.7.4. Чтобы скопировать блоки из окон библиотек блоков Simulink Library Browser или Library : simulink 3 или других блок-схем в создаваемую (исследуемую) блок-схему:

а) откройте окно соответствующей библиотеки блоков или блок-схемы;

б) укажите курсором на значок (изображение) копируемого блока;

в) нажмите на клавишу мыши;

г) удерживая клавишу мыши в нажатом состоянии, перенесите курсор в желаемое место модельного окна создаваемой (исследуемой) блок-схемы;

д) отпустите мышь. Такое копирование требует присутствия на экране двух открытых окон: окна библиотеки или другой блок-схемы и окна создаваемой (исследуемой) блок-схемы.

2.7.5. Чтобы переместить или скопировать блоки в другое модельное окно, используя команду Cut и Copy :

а) выделите блоки, которые вы хотите переместить или скопировать;

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

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

Из меню Edit Cut ;

в) чтобы скопировать блоки, сделайте одно из двух:

Из панели инструментов выберите значок;

Из меню Edit модельного окна выберите команду Copy .

2.7.6. Чтобы перенести содержимое буфера Clipboard (в этом буфере оказываются блоки после операций, соответствующих пп. 2.7.5,б и пп. 2.7.5,в):

а) откройте с помощью команды Open из меню File другое модельное окно, в которое вам желательно перенести содержимое буфера Clipboard ;

б) сделайте одно из двух:

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

Из меню Edit другого модельного окна выберите команду Paste . Появляется группа блоков в выделенной форме. Укажите курсором на один из блоков, входящих в эту группу;

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

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

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

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

а) сделайте одно из двух:

Выделите блок, параметры которого вы хотите установить или изменить, и выберите команду Block Parameters (параметры блока) из меню Edit модельного окна;

Дважды щелкните изображение (значок) блока в модельном или библиотечном окнах. Появляется диалоговое окно настроек Block Parameters : … (свойства блока) с названием вместо точек, например Integrator , рассматриваемого блока;

б) введите или выберите новые значения параметров;

в) щелкните кнопкой ОК .

2.9. Удаление блоков

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

2.9.1. Чтобы удалить блоки:

а) выделите удаляемые блоки;

б) выберите из меню Edit команду Clear (очистить) или нажмите любую из клавиш Delete (удалить) или Backspace . Тот же результат получается, если после выделения блоков вы из панели инструментов щелкните на значок ножницы.

Если вы выделили блок или группу блоков с помощью клавиши Shift , то после выполнения п.2.9.1б все выделенные блоки удаляются, а все соединяющие их линии связи остаются неизменными. Таким образом, надо применять команду Shift для выделения блоков тогда, когда вы хотите заменить удаляемые блоки другими, сохраняя при этом вид имеющихся линий связи.

Вы можете использовать команду Undo из меню Edit модельного окна, чтобы вернуть удаленный блок на место.

2.10. Поворот блоков

Simulink позволяет поворачивать блоки на 90 ° по часовой стрелке и на 180 ° градусов с целью обеспечения требуемого направления прохождения сигналов через них сверху вниз, снизу вверх, справа налево, например в случае расположения блоков в цепях обратной связи.

2.10.1. Чтобы повернуть блок:

а) выделите поворачиваемый блок;

сделайте одно из двух:

Выберите команду Flip Block из меню Format, чтобы повернуть блок на 180 ° градусов;

Выберите команду Rotate Block из меню Format, чтобы повернуть блок на 90 ° градусов по часовой стрелке;

б) щелкните мышью на пустое место экрана.

2.11. Изменение размеров блока

Simulink дает возможность изменять размеры блоков.

2.11.1. Чтобы изменить размеры блока:

а) выделите блок, размеры которого вы хотите изменить;

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

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

г) отпустите мышь. Блок изменит свои размеры.

2.12. Изменение названия блока

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

2.12.1. Чтобы изменить название блока, в том числе название по умолчанию:

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

б) удалите название блока с помощью клавиатуры или дважды щелкните мышью (в последнем случае название блока высвечивается в негативном изображении) и нажмите клавишу Delete ;

в) введите выбранное вами название блока;

г) щелкните мышью в пустом месте экрана, чтобы убрать рамку.

2.12.2. Чтобы освободить блок, включенный в блок-схему, от всех связей с другими блоками:

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

2.13. Создание составных блоков (подсистем)

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

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

Simulink предоставляет вам два способа создания составных блоков (подсистем). Рассмотрим каждый из них в отдельности.

2.13.1. Чтобы создать составной блок (подсистему) с помощью команды Create subsystem (создать составной блок (подсистему)):

а) выделите с помощью рамки в созданной (исследуемой) блок-схеме блоки и связывающие их линии, которые вы хотите включить в составной блок;

б) выберите команду Create subsystem из менюEdit модельного окна. Simulink заменяет выделенные блоки и связывающие их линии одним составным блоком (подсистемой). Если группа выделенных блоков имеет один внешний вход и один внешний выход, изображение составного блока выглядит так, как показано на рис.7, где указаны его вход In 1 и его выход Out 1 ;

в) щелкните мышью.

Рис. 7

2.13.2. Чтобы создать составной блок путем копирования блока Subsystem:

а) скопируйте блок Subsystem из категории Signal & Systems в модельное окно с названием untitled;

б) дважды щелкните изображение составного блока (подсистемы) SubSystem. Simulink открывает новое пустое модельное окно untitled1/Subsystem;

в) в новом пустом модельном окне untitled1/SubSystem создайте блок-схему вашего составного блока (подсистемы);

г) подсоедините к внешним входам составного блока (подсистемы) блоки In, а к внешним выходом блоки Out (их можно перенести из категории Signal & Systems). Например, составной блок (рис.8) включает блок Sum (сумматор), блоки типа вход In1, In2 и блок типа выход Out1 , которые представляют внешние входы и внешний выход этого составного блока;

д) закройте окно с блок-схемой нового составного блока (подсистемы), например окно untitled1/SubSystem. При этом для данного примера в модельном окне составной блок принимает вид, представленный на рис. 9;

е) переместите созданный составной блок (подсистему) в модельное окно создаваемой (исследуемой) системы и подсоедините к уже введенным в это окно блокам.

Рис. 9

2.13.3. Чтобы раскрыть содержимое составного блока:


-укажите курсором на составной блок и дважды щелкните мышью. Появляется новое модельное окно с изображением блок-схемы составного блока, имеющей, например, название untitled 1 / SubSystem .

2.13.4. Чтобы свернуть схему назад в составной блок:

Щелкните левой (правой) клавишей мыши в любом пустом месте модельного окна.

2.13.5. Чтобы изменить стандартное название составного бока:

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

2.13.6. Чтобы изменить названия входных/выходных портов составного блока:

а) раскройте содержимое составного блока;

б) измените названия у блоков типа In/Out на желаемые названия входных/выходных портов (петлей связи) составного блока;

в) сверните блок-схему составного блока. Названия входов In1, In2 и выхода Out1 для данного примера изменяются на желаемые.

2.14. Маскирование составных блоков (подсистем)

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

Как следует из сказанного выше, маскированный составной блок по сравнению с обычным блоком облегчает редактирование блок-схем. В обычном составном блоке, чтобы изменить параметры всех входящих в него блоков, надо раскрыть соответствующую ему блок-схему и затем вызвать диалоговые окна настройки параметров всех редактируемых блоков, изменить их параметры, затем закрыть все окна настроек и свернуть блок-схему в составной блок. Для редактирования параметров составного блока достаточно лишь вызвать его собственное диалоговое окно настройки параметров (так называемую маску), произвести необходимые изменения и закрыть последнее. Как видим, редактирование параметров маскированного составного блока занимает меньше времени.

Кроме того, маскирование позволяет:

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

Технологию маскирования составного блока рассмотрим на следующем примере. Пусть составной блок с названием zweno включает в себя блок-схему

апериодического звена (рис.10),описываемого передаточной функцией

и дифференциальным уравнением

где символы a=1/T, b=k/T назовем соответственно коэффициентами усиления прямой (feedforward gain) и обратной (feedback gain) связи. В исходном состоянии a=b=1.

2.14.1. Чтобы замаскировать составной блок, в данном случае модель апериодического звена :

а) выделите составной блок и выберите команду Mask subsystem… (маскировка составного блока (подсистемы)) из меню Edit модельного окна. Появляется диалоговое окно с названием Mask Editor: untitled/<имя подсистемы> (редактор маски), в данном случае с именем zweno;

б) выберите вкладку Initialization (инициализация) и введите соответственно в текстовые поля Prompt (комментарий) и Variable (переменная) название коэффициента прямой связи на английском языке feedforward gain и его обозначение b;

в) нажмите кнопку Add (дополнить), при этом из текстовых полей Prompt и Variable удаляются введенные в предыдущем пункте символы, а в информационном поле сообщение

feedforward gain: edit b

смещается на одну строку вниз и место первой строки занимает пустая полоса синего цвета;

г) введите соответственно в текстовые поля Prompt (комментарий) и Variable (переменная) название коэффициента обратной связи на английском языке feedback gain и его обозначение a;

д) в текстовое поле Mask type: введите название группы блоков, к которой вы будете в дальнейшем относить маскированный составной блок, в данном случае введите Masked Block (маскированный блок). При этом редактор маски принимает вид, изображенный на рис. 11;

е) нажмите на кнопку OK или Apply;

ж) щелкните дважды мышью над составным блоком с названием “звено”. Появляется диалоговое окно настройки параметров Block Parameters: zweno (рис.12), содержащее два пустых текстовых окна с названиями feedforward gain и feedback gain, что свидетельствует о создании маскированного составного блока. Заметим, что это диалоговое окно настройки параметров называют маской маскированного составного блока.

Теперь надо ввести в созданный маскированный блок сведения о требуемых значениях параметров a и b. Пусть такими значениями будут: a=3, b=2. Указанную информацию в маскированный составной блок можно ввести двумя путями.

2.14.2. Чтобы ввести численные значения параметров маскированного составного блока, в данном случае параметров a и b , используя первый путь:

а) введите требуемые значения параметров маскированного блока в командное окно MATLAB и затем с помощью команды save сохраните эти значения в рабочем поле, в данном случае введите команды

и нажмите клавишу Enter;

б) введите в текстовые окна с названиями feedforward gain и feedback gain диалогового окна настройки параметров Block Parameters: zweno символы b и a соответственно и нажмите кнопку Apply , после чего это диалоговое окно будет выглядеть так, как показано на рис. 13;

в) выделите маскированный составной блок, в данном случае блок zweno, и выберите команду Look under Mask (заглянуть под маску) из меню Edit модельного окна. Появляется окно с блок-схемой, которая содержится в маскированном составном блоке, в данном случае с блок-схемой, представленной справа на рис. 10;

г) введите в блоки этой схемы требуемые параметры маскированного составного блока с помощью окон настройки, открываемых за счет двойного щелчка над соответствующим блоком, в данном случае откройте окна настройки параметров блоков с названиями feedforward gain и feedback gain и

введите в них соответственно символы b и a. После этих действий блок-схема маскированного блока будет выглядеть так, как показано на рис. 14.

Второй путь введения параметров в маскированный составной блок отличается от первого тем, что надо ввести в текстовые окна с названиями feedforward gain и feedback gain диалогового окна настройки параметров Block Parameters: zweno не символы b и a, а их требуемые значения 2 и 3 соответственно. При этом нет необходимости использовать командное окно MATLAB.

Для редактирования параметров маскированного составного блока первый путь, по-видимому, более удобен, так как достаточно ввести в командное окно MATLAB новые значения параметров и сохранить их в рабочем поле, чтобы получить маскированный составной блок с измененными параметрами. При использовании второго пути с этой же целью надо открыть диалоговое окно настройки Block Parameters маскированного блока, ввести новые желаемые значения параметров вместо прежних значений в соответствующие текстовые окна, в данном случае в окна feedforward gain и feedback gain и нажать кнопку ОК.

Если параметры маскированного блока введены первым путем, то информацию о численном значении этих параметров можно получить, вводя в командное окно MATLAB обозначения (символы) упомянутых параметров, в данном случае вводя последовательно b и a.

Simulink позволяет устанавливать желаемый значок (пиктограмму) маскированного составного блока. Для этой цели предназначена вкладка Icon (значок) окна редактора маски Mask Editor: untitled/<имя подсистемы>, в данном случае с именем zweno (рис. 15). После создания маскированного блока редактор маски можно вызвать, выделяя этот блок и выполняя команду Edit из меню File модельного окна.

2.14.3.Чтобы изобразить маскированный составной блок в виде прямоугольника с надписью (text) внутри:

а) введите в текстовое окно Drawing command (команда создания значка блока) команду

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

disp("aperiodic zweno").

Если вы хотите, чтобы слова aperiodic и zweno были расположены каждое на своей строке, введите команду (рис. 15)

disp("aperiodic\n zweno");

б) нажмите кнопку OK или Apply. При этом маскированный блок принимает вид, изображенный на рис. 15 слева.

2.14.4.Чтобы использовать в качестве значка передаточную функцию блока, в данном случае, передаточную функцию 2/(p+3):

а) введите в текстовое окно Drawing command(рис. 16) команду

dpoly (,,"p").

Здесь p определяет желаемое обозначение комплексной переменной;

б) нажмите кнопку OK или Apply. При этом маскированный блок принимает вид, изображенный на рис. 16 слева.

Внутрь прямоугольника, изображающего маскированный блок для динамического звена системы управления, часто помещают упрощенный график переходной характеристики этого звена. С этой целью можно использовать команду plot(x, y), которая строит ломаную линию из отрезков прямых, соединяющих узловые точки с координатами [(xi,yi),i=1,2,…,n], заданными в векторах x= и y= .

2.14.5. Чтобы использовать в виде значка переходную характеристику апериодического звена:

а) введите в текстовое окно Drawing command на вкладке Icon редактора маски (рис.17) команды

plot(,);

plot(,);

plot(,);

Первые две команды рисуют оси координат, а третья команда соединяет прямой линией точки с координатами, соответствующими функции

б) нажмите кнопку OK или Apply. При этом маскированный блок принимает вид, изображенный на рис. 17 слева.

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

В текстовое окно Block Description (описание назначения блока) введено словесное описание блока, в данном случае блока zweno. Это описание после нажатия кнопки OK или Apply будет помещено вверху окна настройки параметров блока (рис. 19).

2.14.6. Чтобы убедиться в работоспособности созданного маскированного составного блока с названием zweno:

А) подключите к его входу блок Step из категории Sources , а к выходу – блок Scope из категории Sinks;

б) нажмите кнопку (Start). В окне Scope вы получите переходную характеристику апериодического звена с постоянной времени T=0,33 с. и коэффициентом усиления k=0,67.

2.15. Использование контекстно-зависимого меню правой клавиши мыши для введения команд

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

В контекстно-зависимом меню правой клавиши мыши для выделенного объекта можно найти команды, которые позволяют копировать (Copy), вырезать (Cut) и удалять (Clear) указанный блок, открывать (Block Parameters) окно настройки параметров этого блока. Подменю Format правой клавиши содержит ряд команд форматирования блока: замены шрифта и его стиля для названия блока (Font), удаления названия блока (Hide name), изменения расположения названия блока (Flip name), поворота блока на 180 (Flip block) и 90 градусов (Rotate Block), включения и отключения тени (Show Drop Shadow). Там же есть опции по изменению цвета общего фона.

Контекстно-зависимое меню правой клавиши мыши для выделенной линии связи включает в себя такие команды, как Cut, Copy, Clear, Signal Properties. Команда Signal Properties… открывает диалоговое окно Signal Properties, позволяющее, в частности, устанавливать метку (обозначение) сигнала (Signal Name) и его аннотацию (Descriptor).

Меню правой клавиши мыши составного блока содержит команды Open Block (раскрыть содержание (открыть блок-схему) составного блока), Mask Subsystem (вызвать редактор маски). Меню правой клавиши мыши для маскированного составного блока содержит команды: Edit Mask (открыть редактор маски для правки составного блока), Look under Mask (раскрыть содержание, иными словами, блок-схему маскированного составного блока), Mask parameters…(открыть окно Block parameters: Subsystem настроек параметров маскированного составного блока) и другие.

3. Построение блок-схем линейных систем управления

В Simulink используются два основных способа построения блок-схем линейных непрерывных и цифровых систем управления:

1) с помощью динамической структурной схемы, основанной на понятии передаточных функций звеньев и уравнений связи между ними;

2) с помощью операционной структурной схемы, основанной на уравнениях в переменных состояния.

Рассмотрим каждый из этих способов в отдельности.

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

Основными элементами динамической структурной схемы являются звено, описываемое передаточной функцией W(p); сумматор, осуществляющий сложение (вычитание), приложенных к нему сигналов; точка разветвления сигналов.

Первым из этих двух элементов в библиотеке Simulink соответствуют блоки Transfer Fcn (передаточная функция в обычной форме) и Sum (сумматор), которые реализуют операции, связанные с преобразованием и суммированием сигналов, поступающих на его вход. В блок-схеме звено структурной схемы может быть представлено также блоком Zero-Pole (передаточная функция в приведенном виде, определяемая значениями нулей и полюсов), удобным для использования в случае, если передаточная функция задана с помощью нулей и полюсов. Если передаточная функция звена равна постоянной величине k, т.е. W(p)=k, то удобно использовать блок Gain (усилитель) вместо блоков типа передаточной функции.

Третий основной элемент динамической структурной схемы (точка разветвления сигнала) реализуется в блок-схеме системы управления теми операциями, которые рассмотрены в п. 2.1.3, таким образом, если построена динамическая структурная схема исследуемой системы управления, то не представляет большого труда получить её фактическое отображение в модельном окне Simulink в виде соответствующей блок-схемы, составленной из блоков типа "передаточная функция" (Transfer Fcn или Zero-Pole) и блоков суммирования (Sum).

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

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

3.1.1. Создание блоков типа "передаточная функция" и блока типа сумматор

Блок Transfer Fcn (передаточная функция в обычной форме) моделирует линейное звено (систему) с одним входом и одним выходом, описываемое передаточной функцией в обычной форме:

N≥m,

где b и a– постоянные коэффициенты числителя и знаменателя. В инструментальном средстве MATLAB обычная форма называется tf - формой передаточной функции .

Примечание: в Simulink комплексная переменная p обозначается s.

3.1.1.1. Чтобы создать блок Transfer Fcn, реализующий звено с передаточной функцией в обычной форме:

а) из окна библиотеки Simulink Library Browsers или окна библиотеки Library: Simulink3 выберите категорию Continuous (непрерывные элементы) и перенесите в модельное окно блок Transfer Fcn;

б) дважды щелкните над ним мышью. Появляется диалоговое окно настроек Block Parameters: Transfer Fcn (рис. 20);

в) в текстовое поле Denominator (знаменатель) из группы полей Parameters (параметры) введите в квадратные скобки последовательно значения всех коэффициентов знаменателя передаточной функции, начиная с а, в том числе значения, равные нулю. Дело в том, что Simulink определяет порядок n знаменателя передаточной функции по числу n+1 коэффициентов, которые вы ввели. Для отделения между собой значений коэффициентов используйте пробелы. Не забывайте полученный вектор коэффициентов заключить в квадратные скобки.

г) в текстовое поле Numerator (числитель) из группы полей Parameters (параметры) введите последовательно значения всех коэффициентов числителя передаточной функции, начиная с b, в том числе значения, равные нулю. Simulink определяет порядок m числителя по числу m+1 введенных коэффициентов;

д) сделайте одно из двух:

Щелкните кнопку Apply (применить) в окне настроек блока, чтобы измененные значения параметров вступили в силу. При этом окно настроек блока не закрывается;

Щелкните кнопкой ОК в окне настроек блока, чтобы измененные значения параметров вступили в силу и чтобы окно настроек блока закрылось.

При этом в модельном окне внутри прямоугольника, изображающего блок Transfer Fcn, высвечивается передаточная функция W(s).

Пример 1. Пусть передаточная функция W(p)=(2p+1)/p, n=m=1.

Введите в окно Denominator: , а в окно Numerator: . После команд Apply или ОК в блоке Transfer Fcn, изображенном в модельном окне, высвечивается передаточная функция.

Пример 2. W(p)=(p+2)/p, n=m=1, при этом в окне Denominator: установите , а в окне Numerator: .

Пример 3. Пусть W(p)=p 2 /(p 2 +2p+3), n=m=2. Тогда установите в окне Denominator: , а в окне Numerator: .

Пример 4. Пусть W(p)=p/(p+1), n=m=1, при этом в окне Denominator: установите , а в окне Numerator: .

Пример 5. Пусть W(p)=2/(p 2 +3p), n=2, m=0. Введите в окно Denominator: , а в окно Numerator: .

По умолчанию в окне настроек Block Parameters: Transfer Fcn в текстовых окнах Numerator: и Denominator: установлены и соответственно, а внутри прямоугольника, изображающего блок Transfer Fcn, высвечивается передаточная функция.

Блок Zero-Pole (передаточная функция в приведенном виде, определяемая значениями нулей и полюсов) моделирует линейное звено (систему) с одним входом и одним выходом, описываемое передаточной функцией

, n≥m,

где z i , s i – соответственно нули и полюсы, а – приведенный коэффициент звена (системы).

В MATLAB такая форма передаточной функции называется zpk-формой нулей, полюсов и коэффициента усиления или zpk-формой передаточной функции .

3.1.1.2. Чтобы создать блок Zero - Pole , реализующей звено с передаточной функцией в приведенном виде:

а) из окна библиотеки блоков Simulink Library Browsers или из окна библиотеки блоков Library:simulink3 выберите категорию Continuous (непрерывные элементы) и перенесите в модельное окно блок Zero-Pole;

б) дважды щелкните над ним мышью. Появляется диалоговое окно настроек Block Parameters: Zero-Pole (рис. 21);

в) в текстовое окно Zeros: (нули) в квадратные скобки введите все нули передаточной функции. Если нули отсутствуют (m=0), то надо ввести пустую матрицу . По умолчанию в это окно введён один нуль: 1;

г) в текстовое окно Poles (полюсы) в квадратные скобки введите полюсы передаточной функции, по умолчанию в это окно введены два полюса: 0 и –1;

д) в текстовое окно Gain (коэффициенты усиления) введите в квадратные скобки значение приведённого коэффициента усиления. По умолчанию приведённый коэффициент усиления равен 1;

е) щелкните кнопку Apply или кнопку ОК. При этом в модельном окне внутри прямоугольника, изображающего блок Zero-Pole, высвечивается передаточная функция W(p) в zpk-форме. По умолчанию высвечиваемая передаточная функция имеет вид

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

Пример 1. Пусть

так что z 1 =0; s 1 =2, s 2,3 =-2±3i, =-2. При этом в окне Zeros установите: , в окне Poles: , а в окне Gain: [-2]. После команд Аpply или ОК в блоке, изображенном в модельном окне, высвечивается передаточная функция

Пример 2. Пусть W(p)=5p 2 /(p+2)(p-3). При этом z 1 =z 2 =0; s 1 =-2, s 2 =3, =5.

Тогда установите в окне Zeros: , в окне Poles: [-2 3], в окне Gain: . В модельном окне появляется прямоугольник с передаточной функцией 5s 2 /(s+2)(s-3).

Пример 3. Введите в окно Zeros: , в окно Poles: , в окно Gain: . После команд Аpply или ОК в модельном окне внутри прямоугольника, изображающего блок Zero-Pole, высвечивается передаточная функция

Не забывайте при вводе нулей и полюсов оставлять между ними пробелы и заключать векторы нулей и полюсов в квадратные скобки. Если вы вводите комплексный нуль/полюс, то требуется ввести ему сопряженный, т.е. допускается ввод лишь комплексно-сопряженной пары нулей/полюсов.

Блок Sum (сумматор) реализует алгебраическое суммирование поступающих на его вход N сигналов v i , используя формулу

S=γ 1 v 1 +γ 2 v 2 +…+γ N v N ,

где коэффициенты γ i могут принимать значения, равные +1 или –1, в зависимости от того, что требуется: сложить сигнал с суммой сигналов в правой части или вычесть сигнал из этой суммы.

Следовательно, можно ввести в рассмотрение вектор или список знаков коэффициентов [знак γ 1 , знак γ 2 , …, знак γ N ], который полностью определяет при известных входных сигналах смысл операции, осуществляемой с помощью блока Sum. Хотя этот блок допускает алгебраическое сложение векторных и матричных сигналов, ограничимся рассмотрением случая, когда все входные сигналы являются скалярными.

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

а) из окна библиотеки блоков Simulink Library Browsers или из окна библиотеки блоков Library:simulink3 выберите категорию Math (математические элементы) и перенесите в модельное окно блок Sum;

б) дважды щелкните над ним мышью. Появляется окно настроек этого блока Block Parameters: Sum (рис. 22);

в) в текстовом окне Icon Shape (форма значка) с помощью раскрывающегося списка выберите форму изображения блока в модельном окне: в виде окружности (round) или прямоугольника (rectangular). При построении блок-схем систем управления рекомендуется использовать круглую (в виде окружности) форму блока Sum. Кстати, она установлена по умолчанию;

г) введите в текстовое поле List of Sings (список знаков) без квадратных скобок вектор знаков всех коэффициентов γ i . Число элементов N этого списка информирует Simulink о количестве входных сигналов, а знаки + и – сообщают о том, что надо делать с каждым из этих сигналов: складывать или вычитать.

д) щелкните кнопку ОК. В модельном окне высвечивается блок Sum с N входными петлями связи (входными портами) и одной выходной петлей связи (выходным портом). Внутри изображения блока Sum около каждой входной петли стоит знак + или - , показывающий, с каким знаком будет осуществляться сложение этого сигнала. Заметим, что между знаками, введёнными в поле List of Sings, не должно быть пробелов.

Блок Gain (усилитель) реализует операцию умножения входного сигнала v на заданный коэффициент усиления k:

3.1.1.4. Чтобы создать блок Gain, реализующий операцию умножения:

а) из окна библиотеки Simulink Library Browsers или окна библиотеки Library: simulink3 выберите категорию Math (математические элементы) и перенесите в модельное окно блок Gain;

б) дважды щелкните над ним мышью. Появляется окно настроек Block Parameters: Gain (рис. 23);

в) введите в текстовое поле Gain (коэффициент усиления) значение коэффициента усиления k;

г) щелкните кнопкой ОК. В модельном окне высвечивается изображение блока Gain в виде треугольника, внутри которого изображается введённое вами значение коэффициента усиления.

3.1.1.5. Чтобы построить блок-схему одноконтурной системы управления с неединичной обратной связью:

а) введите в модельное окно все блоки Transfer Fcn, Zero-Pole, Gain, соответствующие звеньям системы, охваченным обратной связью, установите их параметры и соедините между собой;

б) введите в модельное окно все блоки Transfer Fcn, Zero-Pole, Gain, соответствующие звеньям системы, расположенным в обратной связи. Выделите и затем поверните эти блоки на 180 градусов, используя команду Flip Block из меню Format, после чего установите их параметры в соответствии с заданными передаточными функциями и соедините между собой;

г) из окна библиотеки Simulink Library Browsers или из окна библиотеки Library:simulink3 выберите категорию Sources (генераторы сигналов) и введите в модельное окно один из блоков, входящих в эту категорию, например Constant (постоянный сигнал);

д) из окон тех же библиотек выберите категорию Sinks (регистраторы сигналов) и введите в модельное окно блок Scope (график);

е) соедините введённые в модельное окно блоки, как показано на рис.24.

Здесь рассмотрен случай когда q звеньев охвачено обратной связью, включающей в себя l последовательно соединённых звеньев.

Чтобы ввести отрицательную обратную связь, надо сменить знак + на знак – у петли связи сумматора, соединённого с блоком, имеющим название Transfer Fcn (q+1). Для этого дважды щелкните блок Sum, появляется окно настроек этого блока. В поле List оf Sings (список знаков) введите | + - и затем щелкните кнопкой ОК. Вертикальная черта обеспечивает удобное расположение входных портов этого блока: слева и внизу. Установите параметры блока Scope и параметры динамического моделирования из меню Simulation главного меню. Блок-схема системы управления готова к динамическому моделированию.

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

Построенная в модельном окне с помощью этой структурной схемы блок-схема системы управления (рис.26) отличается от первой лишь двумя элементами: блоком Constant и блоком Scope.

Упростим блок-схему. Выделим первые два звена с помощью рамки и создадим, используя команду Create subsystem (создать составной блок (подсистему)) из меню Edit модельного окна, составной блок. При этом получаем следующую блок-схему (рис. 27).

Если теперь дважды щелкнуть на изображение составного блока (подсистемы), то появляется новое модельное окно untitled/Subsystem, раскрывающее содержимое этого блока (рис.28).

Изменим названия входного In1 и выходного Out1 портов, щелкнув последовательно на ярлыки In1 и Out1 и введя в появляющиеся текстовые поля (рамки) соответственно буквы e и u. Используя такой же способ применительно к ярлыку Subsystem, изменим затем название составного блока на Compensator и в результате получим следующую блок-схему системы управления (рис.29). Чтобы "оттенить" составной блок, отразить его специфику

по сравнению с обычными блоками, здесь использована команда Show Drop Shadow (показать тень блока), входящая в подменю Format контекстно-зависимого меню правой клавиши мыши.

Замаскируйте составной блок compensator. Выделите его и, применив команду Mask subsystem (маскировать составной блок) из меню Edit, вызовите окно редактора Mask Editor: untitled/compensator (рис.30).

На этом рисунке изображено данное окно уже с введенными в него названиями и символьными обозначениями четырех коэффициентов числителей и знаменателей передаточных функций звеньев, которые образуют содержимое составного блока. Закройте окно редактора маски и дважды щелкните мышью на составной блок Compensator, чтобы открыть маску, другими словами, диалоговое окно настройки параметров Block Parameters: compensator. Это окно представлено на рис.31 с уже введенными числовыми значениями параметров.

Заметим, что названия параметров constnumij и constdenij соответственно представляют собой названия коэффициентов числителей и знаменателей передаточных функций блоков Transfer Fcn и Transfer Fcn1, изображенных на рис.28. Символ i определяет порядковый номер блока в последовательном соединении, а символ j – порядковый номер коэффициента в многочлене.

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

Первые два из них Discrete Transfer Fcn (дискретная передаточная функция в обычном виде) и Discrete Zero-Pole (дискретная передаточная функция в приведенном виде с нулями и полюсами) являются дискретными аналогами соответствующих непрерывных блоков Transfer Fcn и Zero-Pole, рассмотренных в пп. 3.1.1.1 и 3.1.1.2. При этом они соответственно реализуют дискретные фильтры (системы) с дискретными передаточными функциями:

В tf – форме

В zpk – форме

где n i и z i – соответственно нули и полюсы, -приведенный коэффициент усиления дискретного звена (системы).

Формально эти передаточные функции могут быть получены из выражений для соответствующих передаточных функций W(p) (пп.3.1.1.1, 3.1.1.2) путем замены комплексной переменной p на z. Поэтому создание блоков Discrete Transfer Fcn и Discrete Zero-Pole аналогично созданию блоков Transfer Fcn и Zero-Pole. Единственное отличие заключается в том, что первые из этих блоков характеризуются наряду с коэффициентами усиления, нулями и полюсами, еще одним параметром Т, называемым Sample Time (периодом дискретизации), значение которого должно быть введено в одноименное поле в диалоговых окнах настроек блоков Block Parameters: Discrete Transfer Fcn (рис.32) и Block Parameters: Discrete Zero-Pole (рис.33).

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

Третий блок Discrete Filter создает tf –модель дискретного фильтра (системы) в форме передаточной функции дискретного фильтра

Создание этого блока, в сущности, ничем не отличается от создания блока Discrete Transfer Fcn.

Вам надо твердо усвоить, что эквивалентная схема (рис.34) каждого из этих дискретных блоков, реализующих дискретный фильтр (систему) с передаточной функцией W * (z), включает в себя:

1) ключ, преобразующий непрерывный входной сигнал v(t)

в числовую последовательность v[i]=v(t)| t = iT , i=0,1,2,…;

2) дискретный фильтр (ДФ) с передаточной функцией W * (z), преобразующий числовую последовательность входа v[i] в соответствующую числовую последовательность выхода y[i];

3) фиксатор (Ф) или экстраполятор нулевого порядка, преобразующий выходную последовательность дискретного фильтра в кусочно-постоянный непрерывный сигнал

y(t)=y[i], iT≤t<(i+1)T, i=0,1,2,… .

Таким образом, каждый дискретный блок содержит на входе "встроенные" в него ключ, осуществляющий дискретизацию непрерывного входного сигнала v(t) с периодом T, и на выходе фиксатор, запоминающий каждое значение последовательности y[i] на период дискретизации. При этом, если дискретный блок, например Discrete Transfer Fcn, соединен с непрерывным блоком, например блоком Transfer Fcn, то на вход последнего блока поступает кусочно-постоянный сигнал ”лестничного” вида, а не числовая последовательность.

При этом оказывается возможным весьма просто с помощью Simulink построить блок-схему, которая реализует цифровую систему управления

(рис. 35). Эта система состоит из цифрового регулятора с дискретной передаточной функцией

связывающей z-преобразования управляющей последовательности u[i] и последовательности ошибки e[i]=e(t)| t = iT (e(t)-ошибка управления); фиксатора с выходным непрерывным сигналом управления u(t) и объекта управления

с передаточной функцией

связывающей преобразование Лапласа управляемой величины y(t) и сигнала управления u(t). Сигнал v(t) представляет собой задающее воздействие.

3.1.4. Чтобы построить блок-схему цифровой системы управления, показанной на рис. 35:

а) введите в модельное окно блок Discrete Transfer Fcn из категории Discrete и установите его параметры в соответствии с известной передаточной функцией W * (z) и выбранным периодом дискретизации Т;

б) введите в модельное окно блок Transfer Fcn и установите его параметры в соответствии с известной непрерывной передаточной функцией объекта управления W 1 (p);

в) введите в модельное окно блок Sum;

г) введите на экран дисплея блоки Constant и Scope;

д) соедините блоки так, как показано на рис. 36, изображающем блок-схему цифровой системы управления для случая, когда l=2,r=3,m=1,n=4.

Например, если T=1c, то блок-схема

выглядит, как изображено на рис. 37.

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

3.2 Построение блок-схем систем управления с одним входом

и одним выходом с помощью операционной структурной схемы

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

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

то при m=n ее уравнения состояния можно записать в виде

где, представляют собой переменные состояния. При этом уравнение выхода имеет вид

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

Если m

что приводит к упрощению операционной структурной схемы.

В пакете Simulink блок-схема моделирования, соответствующая структуре рис.38, может быть построена на основе блоков Sum (блок суммирования), блоков Integrator (интегрирующий блок), блоков Product (умножения/деления), блоков Goto (передать) и From (принять).

Пример. Пусть система второго порядка (n=m=2) представлена передаточной функцией

При этом ее уравнения состояния и выхода можно представить в виде

3.2.1. Чтобы построить блок-схему этой системы:

а) введите на экран дисплея два блока Sum (суммирование), шесть блоков Product (умножение/деление), два блока Integrator (интегратор), шесть блоков From (принять), блок Constant (постоянная), блок Scope (график);

б) добавьте по одному входу на каждый из блоков Sum и Sum 1, введя в список знаков (List of Signs) окон настроек этих блоков +-- и +++ соответственно;

в) установите параметр Number of Inputs блока Product равным */ для реализации операции умножения на 1/a 0 ;

г) соедините блоки, как показано на рис. 39, изображающем искомую блок-схему системы второго порядка;

д) дважды щелкните мышью над каждым блоком From, чтобы установить их признаки (Go tag). В данном случае признаки этих блоков должны

соответствовать коэффициентам передаточной функции a i и b i ;

е) введите шесть блоков Constant (постоянная) и шесть блоков Goto (передать) и соедините их, как показано в нижней части рис.39;

ж) установите признаки (tag) всех блоков Goto, чтобы они соответствовали значениям коэффициентов a i и b i ;

з) установите в блоках Constant (постоянная) численные значения, соответствующие коэффициентам передаточной функции. На рис.39 коэффициенты a i и b i определяются значениями a 2 =1 и a 1 =0,2; a 0 =0,01; b 0 =b 1 =0; b 2 =1; т.е. блок-схема, представленная на рис. 39, является схемой моделирования системы с передаточной функцией

Полученная блок-схема удобна тем, что на ней отображаются значения коэффициентов a i и b i . Это позволяет в случае необходимости достаточно просто изменить их значения. Блоки Goto (передать) и From (принять) из категории Signal System позволяют передавать сигнал от одного блока к другому блоку (другим блокам) без использования линий связи между ними, как бы “по беспроволочному телеграфу” или как бы “по эфиру”. Если информация о значениях коэффициентов во время моделирования и динамического моделировании не нужна, то все блоки умножения/деления можно заменить блоками Gain (усиление), кроме блока с названием Product. Коэффициенты усиления этих блоков надо установить равными соответствующим значениям a i , и b i . Разумеется, при этом все блоки типа Goto и From, кроме блока с названием From, исключаются из блок-схемы и вместо блока From с названием a 0 вводится блок Constant (постоянная величина), и его параметр устанавливается равным численному значению коэффициента a 0 .

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

связывающей z-преобразования y * (z)=z{y[i]} и v * (z)=z{v[i]} управляемой y[i] и задающей v[i] последовательностей. Этой передаточной функции при m=n соответствуют уравнения состояния

и уравнение выхода

Здесь x j [i], являются переменными состояния дискретной системы.

Используя полученные уравнения состояния и выхода, приходим к операционной структурной схеме (рис.40), которая подобна операционной структурной схеме непрерывной системы (рис.39). Отличие этих схем в том,

что вместо интеграторов, являющихся элементами структурной схемы непрерывной системы, в схеме рис.40 используются блоки задержки (Б3) на один период дискретизации.

Следовательно, в пакете Simulink блок-схема (схема моделирования) дискретной системы также аналогична блок-схеме моделирования непрерывной системы. Однако блоки Integrator (блоки интегрирования) заменяются на блоки Unit Delay (блоки запаздывания на один период дискретизации).

Для случая n=2, m=0 результирующая блок-схема дискретной системы при a 0 =1, a 1 =-1,8; a 2 =0,81, b 0 =b 1 =0; b 2 =0,01 представлена на рис.41. Заметим, что окна настроек блоков Unit Delay содержат параметр Sample Time (период дискретизации), значение которого для всех этих блоков нужно установить одинаковым, например 0.1. Кроме того, надо упомянуть, что блоки Unit Delay входят в категорию Discrete (дискретные элементы).

3.3. Построение блок-схемы многомерной линейной системы управления с помощью блока State-Space (пространство состояний)

Блок State-Space служит для моделирования многомерной линейной системы и звеньев с несколькими входами и выходами, представленных уравнениями в переменных состояния следующего вида:

где – n-вектор состояния; – r- вектор входа; – l-вектор выхода. Здесь x i (t), называются переменными состояния; u i (t), входными сигналами, y i (t), выходными сигналами; A,B,C,D – матрицы соответственно с размерностью n×n, n×r, l×n, l×r.

3.3.1. Чтобы создать блок State - Space , моделирующий систему (звено), описываемую уравнениями в переменных состояния:

а) из окна библиотеки Simulink Library Browser выберите категорию Continuous (непрерывные элементы) и введите на экран дисплея блок State-Space;

б) щелкнув над ним мышью, вы получите изображение диалогового окна Block Parameters: State-Space (параметры блока пространства состояний) (рис.42);

в) введите значение элементов матриц A,B,C,D в группу окон Parameters (параметры), взяв за образец следующий пример

A: [-4 -1; 5 0.1]

В данном примере т.е. n=2, l=r=1;

г) введите в окно Initial Conditions (начальные значения переменных состояния) вектор , где x i 0 =x i (0), представляют собой начальные значения переменных состояния. Если для примера, рассмотренного в п. в), x 10 =1, x 20 =0, то в строку Initial Conditions следует ввести: ;

д) щелкните кнопкой ОК.

Аналогичным образом можно создать блок Discrete State-Space (пространство состояния дискретной системы), который служит для моделирования дискретных систем и звеньев, описываемых уравнениями в переменных состояния

x=Ax[i] + Bu[i],

y[i]=Cx[i] + Du,

где u[i] – векторный входной сигнал, x[i] – вектор состояния y[i] – векторный выход. Матрицы, входящие в эти уравнения, должны удовлетворять следующим условиям:

А – матрица с размерностью n×n, n – число переменных состояния;

В – матрица с размерностью n×r, где r – число входных сигналов;

C матрица с размерностью l×n, где l – число выходных сигналов;

D – матрица с размерностью l×r.

Ввод матриц A, B, C, D в окна A:, B:, C:, D: группы полей Parameters и начальных значений переменных состояния, в поле Initial Conditions диалогового окна Block Parameters: Discrete State-Space не отличается от настроек блока State-Space. Остается упомянуть, что блок Discrete State-Space относится к категории Discrete (дискретные элементы) и поэтому в поле Sample Time не забудьте ввести значения периода дискретизации.

3.4. Построение блок-схем многомерной системы управления

с обратной связью по состоянию

Пусть объект управления с одним и входом и одним выходом описывается уравнением в переменных состояния:

где матрица А размером n×n, матрица B размером n×l, матрица C размером l×n, – n-вектор состояния. Закон управления имеет вид u=v(t)-u f (t), где v(t) – l-векторное задающее воздействие, а l-вектор u f (t)=Kx(t) представляет собой обратную связь по состоянию. Здесь K – матрица обратной связи по состоянию размером l×n.

3.4.1. Чтобы построить блок-схему многомерной системы управления с обратной связью по состоянию;

а) введите на экран блок с названием State-Space и матрицами вида A 1 =A, B 1 =B, C 1 =I - единичная матрица размером n×n, D – нулевая матрица размером l×l;

б) введите два блока Matrix Gain(матричный коэффициент усиления) из категории Math и установите их параметры;

Блок с названием Matrix Gain с матричным коэффициентом усиления, равным матрице C;

Блок с названием Matrix Gain1 с матричным коэффициентом усиления, равным матрице K. Затем поместите его под блоком State-Space и поверните на 180 градусов;

в) введите блок Mux (мультиплексор) из категории Signal & Systems, который преобразует l скалярных сигналов, поступающих на его вход, в векторный сигнал, элементами которого являются упомянутые скалярные сигналы. Установите параметр Number of Inputs (число входов) равным l, а параметр Display Option (форма изображения блока) выберите соответствующим опции noun;

г) введите блоки Sum, Scope и l блоков типа Step. Установите значения v 1 , v 2 ,…,v l для каждого из постоянных входных сигналов, используя окна настроек блоков Step;

д) соедините введенные вами блоки аналогично тому, как показано на рис.43 для l=3;

е) измените названия блока State-Space и блоков типа Matrix Gain. С этой целью укажите курсором на название блока State-Space и щелкните мышью. При этом название блока окажется заключенным в прямоугольную рамку, а курсор примет форму вертикальной мерцающей черты. Используя клавиатуру, удалите стандартное имя блока State-Space и замените его именем State. Щелкните вне текстовой области. Выделяющая рамка исчезнет. Выполните аналогичные действия с блоками Matrix Gain, Matrix Gain1 и замените их названия соответственно именами Output, Feedback;

ж) создайте метки для управляемого, управляющего сигналов и сигнала состояния. Для этого дважды щелкните на линию связи, соответствующую управляемому сигналу. Появляется текстовый курсор. Введите с помощью клавиатуры метку y и щелкните вне текстовой области. Аналогичным образом создайте метки для управляющего сигнала и сигнала состояния соответственно u и x;

з) объедините блоки Step и блок Mux в составной блок (подсистему). С этой целью выделите их с помощью рамки. После этого откройте меню Edit модельного окна и выберите команду Create Subsystem (создать составной блок (подсистему));

и) измените название подсистемы Subsystem на Step;

к) измените название выходного сигнала Out1 подсистемы. Для этого щелкните на этот блок. В появляющемся окне, раскрывающем содержание подсистемы, замените название блока Out1 на v аналогично тому, как это делается по отношению к обычным блокам. Щелкните мышью вне текстовой области и закройте окно с содержанием подсистемы;

л) активизируйте команду Wide nonscalar lines (показать векторные линии связи толще скалярных) из меню Format модельного окна. Блок-схема примет вид, показанный на рис. 44.

3.5. Построение блок-схем нелинейных систем управления

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

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

Из сказанного следует, что построение блок-схем нелинейных систем управления в пакете Simulink по известным структурным схемам аналогично созданию блок-схем линейных систем управления. Поэтому все основные операции, выполняемые в процессе построения блок-схем линейных систем и рассмотренные в разделе 4, такие, как, например, выделение, соединение, копирование блоков и т.п. применимы при создании блок-схем нелинейных систем управления. Отличительная особенность последних − присутствие в их составе нелинейных блоков. Категории Nonlinear (нелинейные) и Math (математические) пакета Simulink включают свыше 30 блоков, наряду с другими операциями, позволяющих:

Моделировать типовые нелинейные звенья такие, например, как насыщение (блок Saturation), зона нечувствительности (блок Dead Zone), воздушный зазор (блок Backlash), сухое и вязкое трение (блок Coulomb & Friction), идеальное двухпозиционное реле (блок Sign) и другие;

Обеспечивать преобразование входного сигнала с помощью одной из тригонометрических и гиперболических функций (блок Trigonometric Function) или с помощью элементарных и нетригонометрических и не гиперболических функций, таких, как вычисление экспоненты, возведение в степень, извлечение квадратного корня и другие (блок Math Function);

Осуществлять умножение (деление) входных сигналов (блоки Dot Product, Product).

Категория Functions & Tables (функции и таблицы) включает в себя блок Fcn, позволяющий ввести любую скалярную функцию от одного (скалярного или векторного) аргумента, выражающуюся через стандартные функции MATLAB. Выражение функции вводится в окно настройки блока. Для обозначения входного сигнала (аргумента функции) используется символ u.

В качестве примера на рис. 45 приведена блок-схема автономной нелинейной системы, описываемой уравнениями в переменных состояния:

Эта структура содержит два нелинейных блока: 1) блок Fcn, осуществляющий вычисление выражения. В окно настроек этого блока в поле Expression (выражение) введена формула 1-u*u. Здесь учтено, что для обозначения входного сигнала используется символ u, а для операции умножения применяется оператор * ; 2) блок Product, позволяющий выполнить умножение двух входных символов и x 1 . С помощью блока XY Graf (графопостроителя из категории Sinks) вы можете после запуска модели наблюдать фазовый портрет автономной нелинейной системы, задавая различные начальные значения переменных состояния x 10 и x 20 .

4. ДИНАМИЧЕСКОЕ МОДЕЛИРОВАНИЕ

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

интегралы от входных сигналов блоков и образуются выходные сигналы, поступающие на другие связанные с ними блоки. Как правило, моделирование с переменным шагом используется для непрерывных систем, а моделирование с постоянным шагом – дискретных. С помощью окна настроек Simulation Parameters: <название системы> (рис. 46) процесса динамического моделирования (симуляции), открываемого с помощью команды Simulation Parameters… меню Simulation (симуляция) модельного окна, вы установите начало (Start time) и конец (Stop time) интервала моделирования, выберите вид используемого шага моделирования: постоянный (Fixed-step) или переменный (Variable-step), введете в зависимости от выбранного вида шага моделирования величину фиксированного (Fixed step size) или начального (Initial step size), минимально допустимого (Min step size) и максимально допустимого (Max step size) переменного шага, выберите метод численного интегрирования дифференциальных уравнений, например ode 45 (Метод Дорманда-Принса), а также введете при переменном шаге моделирования допустимые значения относительной (Relative tolerance) и абсолютной (Absolute tolerance) погрешностей вычислений. Если вы затем подадите выходные сигналы одного или нескольких блоков на входы блоков Scope (график) или XY Graph (графопостроитель) из категории Sinks (регистраторы сигналов), предварительно включив их в схему наряду с блоками из категории Source (генераторы сигналов), вы можете наблюдать после запуска блок-схемы и активизации по окончании сеанса моделирования блоков Scope и XY Graph результаты моделирования.

Замечание. Перед запуском блок-схемы (началом моделирования) надо сохранить созданную модель, записав файл с блок-схемой на жесткий диск (см. с. 59). При этом название файла, например Sys3, которое вы выберите, станет и названием блок-схемы, например Sys3.

4.1.Чтобы начать динамическое моделирование блок-схемы:

а) из меню Simulation модельного окна выберите команду Parameters (параметры динамического моделирования);

б) сделайте соответствующий выбор в появляющемся диалоговом окне Simulation Parameters: <название системы>. При первом запуске можно ограничиться лишь установкой интервала моделирования, предположив, что вполне удовлетворительны установки по умолчанию других параметров динамического моделирования;

в) сделайте одно из двух:

Из строки инструментов модельного окна щелкните значком;

Из меню Simulation модельного окна выберите Start.

5. НАГЛЯДНОЕ ПРЕДСТАВЛЕНИЕ РЕЗУЛЬТАТОВ

ДИНАМИЧЕСКОГО МОДЕЛИРОВАНИЯ

С помощью установки параметров этого блока вы можете ознакомиться с тем, как результаты динамического моделирования отражаются в окне этого блока. Запомните, что Simulink не открывает автоматически окно блока Scope.

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

Блок Scope отображает как скалярный, так и векторный сигнал. У этого блока имеется лишь один вход и, если вам нужно отобразить несколько скалярных или векторных сигналов, надо включать в блок-схему блок Mux (мультиплексор) из категории Signal & Systems для объединения всех этих сигналов в один векторный сигнал (рис. 47). При этом для каждого скалярного сигнала строится отдельный график, показывающий, как изменяются значения данного сигнала во времени и сами графики различаются по цвету. В окне блока можно отобразить до 30 графиков, построенных в одной системе координат.

Окно блока Scope имеет панель инструментов (рис. 48), состоящую из 7 значков-кнопок, которые позволяют изменять масштаб осей графика (Zoom, первые три кнопки), устанавливать автоматически масштаб осей (Auto-Scale, 4 кнопка), сохранить установленный масштаб осей графика для использования в последующих симуляциях (Save axes setting, 5 кнопка), вызывать окно "Scope"

Properties настройки параметров блока Scope (Properties, 6 кнопка), печатать содержимое окна Scope (Print, 7 кнопка).

5.1. Чтобы увеличить размеры данных, отображенных в окне Scope , другими словами, чтобы увеличить масштаб графика по оси абсцисс и оси ординат:

а) нажмите первую кнопку на панели инструментов окна Scope;

б) укажите курсором верхний угол области, размеры которой вы хотите увеличить;

в) нажмите на левую клавишу мыши, чтобы зацепить этот угол;

г) перемещайте курсор вправо, не отпуская клавиши мыши, до тех пор, пока прямоугольник не охватит область, размеры которой вы хотите увеличить;

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

5.2. Чтобы вернуться к нормальному размеру окна:

Щелкните клавишей мыши четвертую кнопку на панели инструментов окна.

Используя диалоговое окно настроек "Scope" Properties (рис. 49), можно

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

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

5.3. Чтобы установить число y -осей:

а) введите выбранное вами число в текстовое поле Number of axes (число осей), расположенное на вкладке General (основные параметры)

диалогового окна "Scope" Properties (рис. 49). Например, введите число три и щелкните кнопкой ОК. В окне Scope появляются три подокна для отображения изменения каждого из входных сигналов на отдельном графике, а y блока Scope число входов увеличивается до трех. По умолчанию число y-осей равно числу сигналов, образующих векторный входной сигнал;

Б) введите в модельное окно перед блоком Scope блок Demux (демультиплексор) из категории Signal & Systems, чтобы векторный сигнал блока Scope разложить на три скалярных сигнала, и соедините выход блока Demux с входом блока Scope (рис. 50). На вход блока Demux подайте

векторный сигнал, приложенный до введения числа в поле Number of axes к блоку Scope (рис. 47);

в) запустите блок-схему, в подокнах Scope отображаются три скалярных сигнала.

5.4. Чтобы установить временной интервал, на котором блок Scope отображает (динамику) (поведение) входного сигнала, другими словами, верхнее ограничение оси x (оси времени):

введите в текстовое поле Time range (интервал) вкладки General окна "Scope" Properties требуемое число. Если интервал отображения входного сигнала (Time range) меньше интервала моделирования, установленного с помощью текстовых окон Start time и Stop time из окна настроек Simulation Parameters: <название системы> (рис. 46), то Simulink отображает лишь поведение входного сигнала в последний отрезок времени, равный значению, введенному в поле Time range. При этом в нижней части блока Scope появляется надпись Time offset (добавляемое время) с указанием числа секунд.

При этом ось времени начинается от 0 и занимает интервал отображения входного сигнала. Следовательно, чтобы определить истинное время, надо добавить к значению времени, которое отображается на оси x, добавляемое время.

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

5.5. Чтобы выбрать шаг, с которым будет отображаться входной сигнал в окне Scope , другими словами, период дискретизации входного сигнала, используемый при его отображении в окне Scope :

а) выберите команду Sample Time, используя раскрывающийся список в левом поле группы полей Sampling вкладки General;

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

Мы ограничились рассмотрением лишь одного из способов анализа результатов моделирования, а именно использования блока Scope. Однако следует сказать, что Simulink позволяет применить и другие способы анализа, связанные, например, с использованием мощных графических средств MATLAB .

6. ПЕЧАТАНИЕ БЛОК-СХЕМ

Если вам требуется получить печатную копию блок-схемы, то, используя команду Print… из меню модельного окна File, вы имеете выбор, печатать ли текущий уровень (Current system) блок-схемы (все блоки, изображенные в модельном окне); текущий уровень и ниже (Current system and below), т.е. печатать содержимое всех составных блоков (подсистем) нижних уровней; текущий уровень и выше (Current system and above), т.е. печатать выбранную подсистему и все подсистемы более высокого уровня, в состав которых входит выбранная подсистема; печатать блок-схемы всех подсистем(All systems), входящих в состав блок-схемы системы.

6.1. Чтобы напечатать блок-схему:

а) сделайте одно из двух:

Из панели инструментов модельного окна щелкните значком в виде

принтера;

Из меню File модельного окна выберите команду Print…;

б) выберите соответствующие параметры печатания;

в) щелкните кнопкой ОК.

7. СОХРАНЕНИЕ БЛОК-СХЕМ

Если в процессе моделирования вы вносите изменения в созданную вами блок-схему, то они носят временный характер. Чтобы закрепить эти изменения, вы должны записать их на диск, т.е. сохранить блок-схему со всеми внесенными вами изменениями.

а) сделайте одно из двух:

Из панели инструментов щелкните значком;

Из меню File выберите команду Save.

Вы можете использовать команду Save as… из меню File, когда хотите сохранить измененную блок-схему под новым именем. Эта команда удобна тогда, когда вы хотите внести изменения в существующую на экране блок-схему, а затем сохранить их и в то же время не хотите потерять оригинальную (первоначальную) версию изменяемой блок-схемы. Заметим, что Simulink сохраняет блок-схему, используя модельный файл с расширением.mdl, который содержит блок-схему и свойства блоков, т.е. содержит всю информацию, необходимую для открытия блок-схемы в следующих сеансах работы в Simulink.

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

8. СОХРАНЕНИЕ ЗНАЧЕНИЙ СИГНАЛА

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

а) введите в модельное окно блок Out1 (выходной порт) из категории Signal & Systems и подайте на его вход сигнал, значения которого вы хотите сохранить, например сигнал y(t);

б) из меню Simulation модельного окна выберите команду Simulation parameters…. Открывается окно Simulation Properties настроек параметров моделирования;

в) на вкладке Workspace I/0 (рабочая область вход/выход) в группе полей Save to workspace (записать в рабочую область) активизируйте поле (строку) ввода Time, позволяющее указать имя вектора, в котором будут сохраняться значения моментов времени, используемых Simulink для вычисления исследуемого сигнала (по умолчанию вектор имеет имя tout);

г) на вкладке Workspace I/0 активизируйте в той же группе поле (строку) ввода Output, которое определяет возможность записи значений исследуемого сигнала, соответствующих вектору времени tout, в вектор с названием yout по умолчанию. Остальные параметры можно оставить без изменения;

д) запустите блок-схему и дождитесь окончания динамического моделирования.

8.2. Чтобы получить информацию о сигнале y (t ), используя рабочую область:

а) введите в командное окно после приглашения >> команду

Sim("название системы").

Аргумент правой части соответствует названию исследуемой блок-схемы;

б) нажмите команду Enter. В командном окне появляются значения векторов t и y.

Во многих случаях желательно получить не только информацию о сохраненных значениях сигнала, например сигнала y(t), но и график изменения этого сигнала.

8.3. Чтобы получить график изменения сигнала y(t) (вектора yout), используя рабочую область MATLAB:

Введите в командное окно команду plot (tout, yout).

Появляется окно Fig.1, в котором изображен график зависимости y(t).

Приложение

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

блок-схем линейных систем управления

Назначение

Step (скачок)

Sources (генераторы сигналов)

Генерирует ступенчатый сигнал

Constant (постоянная величина)

Генерирует постоянный сигнал

Transfer Fcn (передаточная функция в обычном виде)

Continuous (непрерывные системы)

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

Zero-Pole (передаточная функция, заданная нулями, полюсами и приведенными коэффициентами усиления)

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

State-Space (пространство состояний)

Моделирует многомерную линейную систему, представленную уравнениями в переменных состояния

Integrator (интегратор)

Осуществляет численное интегрирование входного сигнала

Transport Delay (временное запаздывание)

Задерживает входной сигнал на установленное время

Discrete Transfer Fcn (передаточная функция дискретного фильтра в обычном виде)

Моделирует дискретный фильтр с одним входом и одним выходом, представленный передаточной функцией в обычном виде

Discrete Zero-Pole (передаточная функция дискретного фильтра, заданная нулями, полюсами и приведенным коэффициентом усиления)

Моделирует дискретный фильтр с одним входом и одним выходом, заданный передаточной функцией, представленной нулями, полюсами и приведенным коэффициентом усиления)

Discrete -Time Integrator (дискретный интегратор)

Осуществляет суммирование значений входной числовой последовательности

Discrete State-Space (пространство состояний дискретного фильтра)

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

Unit Delay (блок запаздывания)

Задерживает дискретный сигнал на один период дискретизации

Sum (сумматор)

Math (математические блоки)

Осуществляет алгебраическое суммирование двух и более входных сигналов

Gain (усилитель)

Умножает входной сигнал на постоянную величину

Produсt (умножитель)

Осуществляет умножение/деление нескольких входных сигналов

Inport (входной порт) и Outport (выходной порт)

Signal & Systems (сигналы и системы)

Обеспечивает обмен данными между подсистемами (составными блоками) блок-схемы, а также между блок-схемой и рабочей областью MATLAB

Mux (мультиплексор)

Signal & Systems

Объединяет входные сигналы в один векторный выходной сигнал

Demux (демультиплексор)

Signal & Systems

Разделяет входной векторный сигнал на скалярные выходные сигналы

Goto (передатчик)

и From (приемник)

Signal & Systems

Обеспечивают пересылку данных между блоками модели (блок-схемы)

Subsystem (подсистема)

Signal & Systems

Представляет собой заготовку для создания подсистемы

From Workspace (ввод из рабочей области (поля))

Sources (генераторы сигналов)

Осуществляет ввод в блок-схему данных непосредственно из рабочей области

From File (ввод из файла)

Осуществляет ввод в блок-схему данных, хранящихся в MAT-файле

Генерирует сигнал, изменяющийся с постоянной скоростью

Генерирует гармонический сигнал

Signal Generator (генератор сигнала)

Генерирует непрерывный сигнал произвольной формы

Scope (график)

Sinks (регистраторы сигналов)

Отображает графически результаты динамического моделирования

XY Graph (двумерный график)

Обеспечивает создание двумерных графиков в прямоугольной (декартовой) системе координат

To Workspace (запись в рабочую область)

Обеспечивает сохранение результатов моделирования в рабочей области

To File (запись в файл)

Обеспечивает сохранение результатов моделирования в MAT-файле

Fcn (функция)

Function & Tables

Вычисляет любое доступное для MATLAB выражение, аргументом которого является значение входного сигнала

Библиографический список

  1. Лазарев Ю.Ф. MATLAB 5.Х. К.: Издательская группа BNV, 2000. 384 с.
  2. Гультяев А.В. MATLAB 5.2. Имитационное моделирование в среде WINDOWS: Практическое пособие. СПб.: Корона Принт, 1999. 288 с.
  3. Гультяев А.В. Визуальное моделирование в среде MATLAB, учебный курс.СПб.: Питер, 2000. 432 с.
  4. Филлипс Ч., Харбор Р. Системы управления с обратной связью. М.: Лаборатория Базовых Знаний, 2001. 616 с.
  5. Использование пакета VISSIM для исследования систем управления (Построение блок-схем): Метод.указ./А.И.Бобиков. Рязан. гос. радиотехн. акад. Рязань, 2001. 24 с.
  6. Андриевский Б.Р. Избранные главы теории автоматического управления с примерами на языке MATLAB. СПб.: Наука, 1999. 467 с.
  7. Дорф Р., Бишоп Р., Современные системы управления. М.: Лаборатория Базовых Знаний, 2002. 832 с.

8. Дьяконов В. Simulink 4. Специальный справочник. СПб.: Питер, 2002.

Введение………………………………………………………………………3

1. Запуск программы………………………………………………………….....4

2. Создание блок-схем…………………………………………………………..5

2.1. Создание новой блок-схемы……………………………………………….6

2.2. Выбор и размещение блоков………………………………………………8

2.3. Соединение блоков………………………………………………………..10

2.4. Изменение конфигурации линий связи………………………………….12

2.5. Обозначение (метка) сигнала…………………………………………….13

2.6. Выделение блоков…………………………………………………………14

2.7. Перемещение и копирование блоков…………………………………….15

2.8. Установка и изменение параметров блока………………………………16

2.9. Удаление блоков…………………………………………………………..17

2.10. Поворот блоков…………………………………………………………...17

2.11. Изменение размеров блока………………………………………………17

2.12. Изменение названия блока………………………………………………18

2.13. Создание составных блоков (подсистем)………………..……………..18

2.14.Маскирование составных блоков (подсистем)………………………….20

2.15. Использование контекстно-зависимого меню правой клавиши мыши для введения команд……………………………………………………….......28

3. Построение блок-схем линейных систем управления…………………….29

3.1.Построение блок-схем линейной системы управления с помощью динамической структурной схемы……………………………………………29

3.2. Построение блок-схем систем управления с одним входом и одним выходом с помощью операционной структурной схемы……………………43

3.3. Построение блок-схемы многомерной линейной системы управления с помощью блока State - Space (пространство состояний) ……………………48

3.4. Построение блок-схемы многомерной системы управления с обратной связью по состоянию……………………………………………………………49

3.5. Построение блок-схем нелинейных систем управления………………...51

4. Динамическое моделирование………………………………………………53

5. Наглядное представление результатов динамического моделирования…54

6. Печатание блок-схем…………………………………………………………58

7. Сохранение блок-схем……………………………………………………….58

8. Сохранение значений сигнала……………………………………………….59

Приложение……………………………………………………………………..60

Раздел Sources предназначен для формирования входных сигналов, обеспечивающих работу модели. Эти блоки имеют только выходы:

    Constant – источник пост. сигнала

    Sine Wave – источник sin сигнала

    Signal Builder – созд. сигналы произвольной формы

    Random number – формирует случайный сигнал

    Pulse Generator – генератор последовательных прямоугольных импульсов

    In – входной порт для ввода сигналов из других моделей.

Раздел Sinks позволяет визуализировать получаемые при моделировании результаты и проконтролировать правильность работы отдельных блоков и системы в целом. Имеют только входы

    Scope – осциллограф (постр. графиков сигналов как ф-ий времени)

    Display – цифровой дисплей

    Out – выходной порт для вывода результатов вне модели

    X Y Graph – построение графика одного сигнала как ф-ий другого

    Flouting Scope – осциллограф, проводящий исследования в свободном режиме

    To File – обеспечивает сохранение результатов на диске в виде файла с типом.mat. Имя файла задается в окне параметров блока.

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

Раздел Continuous предназначен для создания линейных стационарных звеньев описываемых диф. ур. с пост. коэф.

    Directive – моделирование дифференцирующего звена

    Integrator – моделирование интегрирующего звена

    Transfer For – задание линейного звена ч/з его передаточную функцию

Раздел Signals & Routing предназначен для посылки, переключения, объединения и разделения сигналов.

    Mux – объединяет входные сигналы в единый выходной вектор

    Demux – разъединяет входной векторный сигнал на отдельные составляющие

Math Operations предназначен для использования в моделях математич операций и функций.

    Sum – суммирует поступающие на вход сигналы

    Product выполняет умножение/деление входных сигналов

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

Достоинства: 1) сокращение числа бесполезных блоков; 2) создание иерарх. схем

Подсистемы могут функционировать лишь в составе основных моделей.

Для создания подсистем необходимо:

1. Скопировать и раскрыть блок Subsystem в окно модели

2. Для создания подсистем из существующих блоков нужно выделить необходимые блоки и выбрать кнопку Edit -> Create -> Subsystem

36. Моделирование технических систем, описанных ИДУ в Simulink .

Пример решения интегро-диф. ур-ия, описывающего простую электрич. схему:

Найти
- напряжения на конденсаторе схемы.

Правая часть интегро-диф. ур-я описывает:

н
агрузку: а остальные эл-ты схемы: Умножим первую на

1/С, где С можно задать числовым значением в блоке или в командном режиме

Смоделируем 2-ю составляющую в виде модели с 1 входом и 1 выходом. В подсистему входит интеграл, поэтому заменяем его Integrator’ом

37. Моделирование тех систем, описанных ДУ в Simulink .

Реализуем модель гидравлического демпфера в Simulink y ""+2ny"+py=0

Для решения ДУ в Simulink, его нужно привести к диф. ур. вида: y ""= –2ny"–py

Блочная модель гидравлического демпфера в Simulink состоит из 2-х подсистем:

    блок описания уравнения реализует правую часть уравнения

    блок интегрирования реализует левую часть этого уравнения

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

    присвоить переменным числовые значения в Matlab

    включать в систему блоки const и знач мат. операций

    создать m-файл, в кот будет осущ ввод исх данных и выч знач по зад фор-ам.

М-файл д.б. выполнен раньше, чем запустится на вып основная блочная модель. Можно исп спец. функ. Matlab, которая объединяет m-файл с блочной моделью, и будет запускать его, как только запускается блочная модель. Алгоритм:

    создать m-файл (r.m)

    разработать подсистему, реализующую описание правой части ур-я: S(t,y,y")

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

    разработать основную модель GD.mdl, включающую 2 подсистемы и запустить

П

Блок описан 2-й части уравнения

рисоединение:set_param(‘GD’,’PreLoadFcn’,’r’)

Блок описан уравн

Блок интегрир-ия

В Simulink есть блок - редактор ДУ (DEE). Но нужно приводить ОДУ или систему к виду Коши. Запускается DEE указанием имени редактора в окне команд системы Matlab. >>dee

Этот блок копируем в окно модели и раскрываем окно параметров блока DEE:

1. number of inputs – кол-во варьируемых воздействии на входе системы

2. X0 – начальные условия для решения ДУ

3. First order equations – задаются правые части LE, разрешенных относительно первых производных

4. output equations – переменные, которые будут являться решениями ОДУ

Смоделируем расчет переходного процесса в последовательном колебательном контуре, представленным системой диф. ур.:

Д

ля решения вDEE перейдем к стандартным переменным этого блока: x – для корней систем,

n – для входных воздействий

i - x(1); Uc- x(2); e – U(1)

Подсистема – это фрагмент Simulink -модели, оформленный в виде отдельного блока. Использование подсистем при составлении модели имеет следующие положительные стороны:

1. Уменьшает количество одновременно отображаемых блоков на экране, что облегчает восприятие модели (в идеале модель полностью должна отображаться на экране монитора).

2. Позволяет создавать и отлаживать фрагменты модели поотдельности, что повышает технологичность создания модели.

3. Позволяет создавать собственные библиотеки.

4. Дает возможность синхронизации параллельно работающих подсистем.

5. Позволяет включать в модель собственные справочные средства.

6. Дает возможность связывать подсистему с каким-либо m -файлом, обеспечивая запуск этого файла при открытии подсистемы (нестандартное открытие подсистемы).

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

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

Связь подсистемы с моделью (или подсистемой верхнего уровня иерархии) выполняется с помощью входных (блок Inport библиотеки Sources ) и выходных (блок Outport библиотеки Sinks ) портов. Добавление в подсистему входного или выходного порта приводит к появлению на изображении подсистемы метки порта, с помощью которой внешние сигналы передаются внутрь подсистемы или выводятся в основную модель. Переименование блоков Inport или Outport позволяет изменить отображаемые на пиктограмме подсистемы со стандартных (In и Out ) на те, которые нужны пользователю.

Подсистемы могут быть виртуальными (Subsystem ) и монолитными (Atomic Subsystem ). Отличие этих видов подсистем заключается в порядке выполнения блоков во время расчета. Если подсистема является виртуальной, то Simulink игнорирует наличие границ, отделяющих такую подсистему от модели при определении порядка расчета блоков. Иными словами, в виртуальной системе сначала могут быть рассчитаны выходные сигналы нескольких блоков, затем выполнен расчет блоков в основной модели, а затем вновь выполнен расчет блоков, входящих в подсистему. Монолитная подсистема считается единым (неделимым) блоком и Simulink выполняет расчет всех блоков в такой подсистеме, не переключаясь на расчеты других блоков в основной модели. Изображение монолитной подсистемы имеет более толстую рамку по сравнению с виртуальной подсистемой.

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

Для создания в модели подсистемы можно воспользоваться двумя способами:

1. Скопировать нужную подсистему из библиотеки Subsystem в модель.

2. Выделить с помощью мыши нужный фрагмент модели и выполнить команду Create Subsystem из меню Edit окна модели. Выделенный фрагмент будет помещен в подсистему, а входы и выходы подсистемы будут снабжены соответствующими портами. Данный способ позволяет создать виртуальную неуправляемую подсистему. В дальнейшем, если это необходимо, можно сделать подсистему монолитной, изменив ее параметры, или управляемой, добавив управляющий элемент из нужной подсистемы, находящейся в библиотеке. Отменить группировку блоков в подсистему можно командой Undo .

Рис. 2.68. Модель, использующая подсистему