Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Исследование нелинейных систем




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

Создание математических моделей в Simulink.Разработка моделей средствами Simulink основана на использовании технологии Drag-and-Drop (Перетащи и оставь). В качестве “кирпичиков” для построении модели Simulink используются модули, хранящиеся в библиотеке Simulink.

Запуск Simulink можно произвести, выбрав команду New Model в разделе File главного меню командного окна MATLAB. При запуске Simulink открываются два окна (рис.3.3):

· окно Simulink Library Browser, содержащее перечень основных разделов библиотеки Simulink;

· пустое окно untitled (заготовка для создания новой S-модели).

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

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

Для удобства работы пользователя библиотека блоков разбита на разделы. Основные базовые блоки собраны в разделе Simulink. При нажатии на символ “+” слева от названия библиотеки раскрывается список ее подразделов (рис. 3.4):

При раскрытии подраздела выводится список содержащихся в нем элементов. Блоки перетаскиваются мышью из окна библиотеки в окно модели. Каждый блок имеет входной порт (символ “ >”, направленный к блоку) и выходной порт (символ “ >” направленный от блока).

 

 

 

                                            Рис.3.3

 

 

Рис. 3.4

 

 

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

 

                            

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

Каждый блок имеет по крайней мере один параметр настройки. Чтобы открыть окно настройки параметров, нужно дважды щелкнуть ЛКМ на изображении блока (рис. 3.5).

 

 

Рис. 3.5

 

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

Все окна настройки имеют идентичную структуру и содержат краткую характеристику блока, набор полей для ввода параметров и 4 кнопки:

· Apply – применить;

· Revert – вернуть предыдущее значение параметров;

· Help – вызов справки;

· Close – закрыть окно настроек.

Описание блоков Simulink можно найти в справочной системе MATLAB и литературе [20].

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

 

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

Constant – формирует постоянную величину;

Step – формирует ступенчатый сигнал с заданными параметрами (начало ступеньки и ее высоту);

Ramp – формирует линейно возрастающий или убывающий сигнал;

Sine Wave – генератор гармонических колебаний;

Signal Generator – создает по выбору непрерывный колебательный сигнал одной из волновых форм: синусоидальная, прямоугольная, треугольная и случайная;

Clock – источник непрерывного временного сигнала (модельное время);

Digital Clock – источник дискретного временного сигнала;

Random Number – источник дискретного сигнала, амплитуда которого является случайной величиной, распределенной по нормальному закону;

Uniform Random Number – источник дискретного сигнала, амплитуда которого является равномерно распределенной случайной величиной.

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

Первый из них – From File – предназначен для ввода в S-модель данных, хранящихся в mat-файле. Второй – From Workspace– обеспечивает ввод в модель данных из рабочей области MATLAB.

 

Раздел Sinks (Получатели) используется для отображения выходных значений сигналов и сохранения результатов моделирования.

В этом разделе размещены три группы блоков, не имеющих выходы (только входы):

· блоки, которые при моделировании играют роль смотровых окон; к ним относятся блок Scope, позволяющий отобразить график изменения сигнала по времени; блок XY Graph с двумя входами, позволяющий отобразить график изменения одной величины (один вход) от другой величины (второй вход); блок Display, отображающий числовые значения величин;

· блоки To File и To Workspace обеспечивают сохранение результатов моделирования соответственно в файле на диске или в переменной     рабочего пространства MATLAB;

· блок Stop Simulation, который позволяет прервать моделирование при выполнении некоторых условий; блок срабатывает при поступлении на его вход ненулевого сигнала.

Раздел Continious содержит блоки для описания непрерывных систем автоматического управления:

· Transfer Fcn – линейное передаточное звено; параметрами блока являются числитель (Numerator) и знаменатель (Denominator) передаточной функции;

· Zero-Pole – линейное передаточное звено, заданное через векторы нулей и полюсов и коэффициент передачи передаточной функции;

· State-Space – линейное звено, заданное значениями матриц A, B, C и D в пространстве состояния;

· Derivative – идеальное дифференцирующее звено;

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

· Memory –блок, осуществляющий задержку сигнала на один шаг модельного времени;

· Variable Transport Delay – блок, позволяющий задавать управляемую извне величину задержки; величина задержки определяется величиной сигнала, подаваемого на дополнительный вход блока.

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

 

В блоке Integrator можно задавать начальные условия либо непосредственно в виде параметра Initial Condition, либо с помощью внешнего источника. В первом случае параметр Initial Condition Source должен быть установлен в значение internal, во втором – external. При наличии внешнего источника начальных условий у блока появляется второй дополнительный порт (рис. 3.6).

 

Рис. 3.6

 

Раздел Nonlinear содержит блоки c типовыми нелинейностями:

· Backlash (люфт) – реализует нелинейность типа люфта зазора; предусмотрено два параметра настройки: Deadband width (величина люфта) и Initial Output (начальное значение выходной величины);

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

· Relay (реле) – работает по аналогии с реле: если входной сигнал превышает пороговое значение (параметр Switch on point), то на выходе блока формируется разрешающий сигнал, величина которого определяется параметром Output when on; параметры Switch on point и Output when on определяют соответственно уровень входного сигнала, при котором реле выключается, и выходное значение при выключенном реле;

· Dead Zone (мертвая зона) – реализует нелинейность типа зоны     нечувствительности с двумя параметрами настройки: начало и конец зоны нечувствительности;

· Quantizer(квантователь)– осуществляет квантование входного сигнала по уровню; параметр настройки Quantization interval – величина дискрета по уровню входного сигнала;

Кроме блоков с типовыми нелинейностями раздел Nonlinear содержит блоки-переключатели:

· Switch– имеет три входа: два (1-й и 3-й) информационных и один (2-й) управляющий; если величина сигнала, поступающего на управляющий вход, не меньше заданного порогового значения (параметр Threshold – порог), то на выход блока подается сигнал с 1-го входа, иначе с 3-го;

· Manual Switch – имеет два входа, которые переключаются вручную при двойном щелчке ЛКМ на изображении блока;

· Multiport Switch – содержит количество информационных входов, определяемых параметром Number of inputs (число входов); номер        информационного входа, соединяемого с выходом, определяется значением сигнала на управляющем входе (1-й сигнал сверху);

Раздел Math содержит блоки, реализующие математические функции над входными сигналами.

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

Блок Relational Operator реализует операции отношения ( >, <, ³, £, ==, != (не равно)) над двумя входными сигналами. Конкретная операция выбирается при настройке блока из выпадающего списка и высвечивается на иконке блока. Блок сравнивает первый вход со вторым и при истинности отношения выводит 1, в противном случае – 0.

Блок Gain реализует  операцию умножения входного сигнала на параметр блока – проводимость (gain).

Блок Sum производит суммирование входных сигналов. Параметрами блока являются параметр Icon Shape, определяющий форму иконки          (round – круглая; rectangular – прямоугольная), и List of signs, определяющий число и полярность входов. Этот параметр представляет собой строку символов, состоящую из “+” и “–“. Число символов определяет число входов, знаки – полярность каждого из входов.

Блок Product выполняет умножение или деление нескольких входных сигналов. Параметром блока является строка Number of inputs, определяющая число и назначение входов. Этот параметр, состоящий из строки символов “*” и “/“, аналогичен соответствующему параметру блока Sum.

Блок Sign реализует нелинейность типа сигнум-функции (знак входного сигнала) – sign(x).

Управление ходом моделирования осуществляется командами из раздела меню Simulation в окне модели. Запуск модели на исполнение осуществляется командой Start, которая после запуска заменяется командой Stop – досрочное завершение моделирования. После запуска модели становится доступной    команда приостановки сеанса моделирования Pause; при прерывании эта     команда заменяется альтернативной командой Continue (Продолжить).

Настройка параметров моделирования осуществляется в диалоговом      окне, открывающемся по команде Parameters… . Окно содержит три вкладки:

· Solver(Установка параметров расчета модели);

· Workspace I/O (Установка параметров обмена данными с рабочей областью MATLAB);

· Diagnostics(Выбор уровня диагностики).

 

 

                                           Рис. 3.7

 

На вкладке Solver устанавливаются следующие параметры (рис. 3.7).

Интервал моделирования задается в строке Simulation Time. Его величина задается посредством указания начального (Start Time) и конечного (Stop Time) значений модельного времени.

Выбор метода расчета модели осуществляется в строке Solver Options. Первое меню Type позволяет выбрать способ изменения модельного времени. Оно содержит два пункта:

· Variable-step (Моделирование с переменным шагом);

· Fixed-step(Моделирование с фиксированным шагом).

Для моделирования непрерывных систем по умолчанию выбирается Variable-step, для дискретных – Fixed-step.

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

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

Для Fixed-step указывается величина шага моделирования Fixed-step size. При выборе Variable-stepданная строка называется Max step size (Максимальная величина шага). По умолчанию величина шага моделирования для обоих способов изменения модельного времени выбирается автоматически (auto) в соответствии с параметрами настройки блоков модели; требуемая величина шага может быть также введена в виде числовой константы.

При моделировании непрерывных систем с использованием переменного шага необходимо указать точность вычислений: относительную (Relative tolerance) и абсолютную (Absolute tolerance). По умолчанию она будет соответственно 10-3 и 10-6. Кроме того, для указанного класса систем можно задать     начальное значение шага моделирования (Initial step).

Пример 3.5. Рассмотрим задачу построения фазового портрета нелинейной системы из примера 1.1.

Эта система описывается дифференциальным уравнением

 

                                                                       (3.4)

 

Для формирования блок-схемы, осуществляющей численное интегрирование уравнения (3.2), используем два интегратора. На вход первого подадим производную от величины x, на вход второго – производную от величины y. Блок-схема интегрирования системы с нелинейностью типа идеальное реле представлена на рис. 3.8. Для задания начальных условий x(0) и y(0) используются блоки типа Const, выходы которых подсоединены к соответствующим входам блоков-интеграторов. Такие же блоки использованы для задания значений констант – с, 1/T. Значение коэффициента передачи k, задано в качестве параметра настройки усилительного звена типа Gain. Для формирования правых частей интегрируемой системы использованы также блоки-сумматоры Sum и умножители Product, а также нелинейный блок типа Sign.

Значения величин x и y берутся с выходов интеграторов. Для отображения фазового портрета системы используется блок XY-Graph, на первый вход которого подается сигнал  (ось абсцисс), а на второй – сигнал  (ось ординат).

 

 

           

                                                     Рис. 3.8

 

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

 

                                                           

 

                                                     Рис. 3.9

 

Для получения фазового портрета системы с нелинейностью типа "реле с зоной нечувствительности" немного модернизируем блок-схему, добавив к ней блок типа Dead Zone, задав зону нечувствительности в диапазоне от –1 до 1 (рис. 3.10). Соответствующий фазовый портрет представлен на рис. 3.11.

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

                                                    Рис. 3.10

                                                   

 

                                                    Рис. 3.11

 

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

Процессом моделирования S-модели можно управлять непосредственно из рабочего пространства MATLAB. Для этого служит команда

sim(model, time, options)

Здесь model – имя S-модели (mdl-файла); time – интервал интегрирования S-модели. Интервал может задаваться в виде времени окончания процесса моделирования  (в этом случае время начала моделирования равно 0), либо в виде интервала времени начала и окончания процесса моделирования ;

options – это переменные, сформированные командой simset,           задающей параметры процесса моделирования. Команда задается в форме:

options = simset(propety, value, …)

где propety – имя параметра; value – его значение.

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

AbsTol – величина абсолютной погрешности интегрирования;

RelTol – величина относительной погрешности интегрирования;

Solver – тип метода интегрирования;

MaxStep – максимальная величина шага интегрирования (параметр       используется только для методов с переменным шагом);

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

Для определения параметров моделей и блоков можно использовать       команду

 

set_param('model/block', 'имя_параметра1', 'значение1', 'имя_параметра2','значение2', …)

 

Здесь model – имя модели, block – имя блока. Например, для задания имени процедуры (myfunc.m), которая должна выполниться перед загрузкой модели mymodel, необходимо подать команду

 

set_param('mymodel','PreLoadFcn','myfunc')

 

Пример 3.6. Видоизменим блок-схему построения фазового портрета системы с нелинейностью типа реле с зоной нечувствительности (рис. 3.12).

 

              

                                                   Рис. 3. 12.

 

В этой модели числовые значения блоков типа Const и Gain заменены   на переменные, значения которых должны определяться в рабочем пространстве MATLAB. Для сохранения результатов моделирования в рабочем пространстве использованы два блока To Workspace, параметрами которых определены соответственно переменные x и y. Имя модели – nlin.mdl.

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

 

 

Script-файл nlin.m:

x0=2; y0=0; % определение начальных условий

с=1; Tinv=0.1; k=10; % и параметров модели

sim(’nlin’,30) % Запуск ее на исполнение

plot(x,y,’k’) % Построение фазового портрета

title(’Фазовый портрет нелинейной системы’)

 

После ввода команды nlin на экране появится следующее графическое окно (рис.3.13).

 

                                                    Рис.3.13 

 

3.5.2. Исследование нелинейных систем аналитическими методами. Покажем возможность исследования нелинейных систем (см. разд. 1) с помощью средств символьной математики пакета MAPLE на следующем примере.

Пример 3.7. Рассмотрим задачу определения параметров автоколебаний в нелинейной замкнутой системе, рассмотренной в примере 1.2, с передаточной функцией линейной части

,

и нелинейностью типа “ идеальное реле”: u = c sign(x). Коэффициенты гармонической линеаризации для этого типа нелинейности:  

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

 

 

Вычислим амплитуду  и частоту  автоколебаний нелинейной системы, используя возможности системы MAPLE:

 

> D1:=p*(T^2*p^2+2*ksi*T*p+1)+4*k*c/(pi*A);

D:=

> D2:=subs(p=I*w,D1);

D:=

> X:=evalc(Re(D2));

X:=

>Y:=evalc(Im(D2));

 

Решим систему уравнений

 

                                  

 

с помощью команды

 

> solve({X,Y},{A,w});

{ }, { }.

 

Таким образом, параметры автоколебаний .

Проверим условия устойчивости автоколебаний, основываясь на методе Михайлова (см. стр. 20):

 

> dXA:=diff(X,A);

dXA:=

> dXw:=diff(X,w);

dXA:=–4 ksi Tw

> dYA:=diff(Y,A);

dYA:=0

> dYw:=diff(Y,w);

dYw:=–3T2w2 + 1

 

> krit:=simplify(dXA*dYw-dXw*dYA);

 

krit:=

Подставим в это выражение вычисленное значение частоты w:

 

> subs(w=1/T,krit);

 

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

 










Последнее изменение этой страницы: 2018-04-12; просмотров: 452.

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