56 ИСПОЛЬЗОВАНИЕ ПАКЕТА SIMULINK/MATLAB ДЛЯ ИССЛЕДОВАНИЯ СИСТЕМ УПРАВЛЕНИЯ - Страница 6

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

 

где  –  n-вектор состояния; – r-  вектор входа; – l-вектор выхода. Здесь xi(t), , называются переменными состояния; ui(t), , входными сигналами, yi(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);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 42

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

 

A: [-4  -1;  5   0.1]

B: [-0.3;   -1.1]

C: [1    0]

D: [0]

 

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

г) введите в окно Initial Conditions (начальные значения переменных состояния) вектор [x10, x20,…, xn0], где xi0=xi(0), , представляют собой начальные значения переменных состояния. Если для примера, рассмотренного в п. в), x10=1, x20=0, то в строку  Initial Conditions следует ввести: [1 0];

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

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

 

x[i+1]=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)-uf(t), где  v(t) – l-векторное задающее воздействие, а  l-вектор uf(t)=Kx(t) представляет собой обратную связь по состоянию.  Здесь K – матрица обратной связи по состоянию размером l×n.

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

а) введите на экран  блок с названием State-Space и матрицами вида A1=A, B1=B, C1=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. Установите значения v1, v2,…,vl для каждого из постоянных входных сигналов, используя окна настроек блоков Step;

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

 

Рис. 43

е) измените названия блока  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.

 

 

Рис. 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

 

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

 

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

 

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

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 46

интегралы от входных сигналов блоков и образуются выходные сигналы, поступающие на другие связанные с ними блоки. Как правило, моделирование с переменным шагом используется для непрерывных систем, а моделирование с постоянным шагом – дискретных. С помощью окна настроек 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. НАГЛЯДНОЕ ПРЕДСТАВЛЕНИЕ РЕЗУЛЬТАТОВ

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

 

Из 6 блоков категории  Sinks в Simulink блок Scope (график) является наиболее полезным.

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

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

 

Рис. 47

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

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

 

 

 

Рис. 48

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 (основные параметры)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 49

 

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



 
кирпич силикатный теплопроводность 0.38-0.70 вт/м с