StateFlow   ОКМ   ДМ   экономическая информатика   визуальные среды - 4GL   Теория и практика обработки информации

Cистема численно-математического моделирования MatLab

Stateflow - Simulink

Демонстрация трения скольжения в StateFlow

Описание демонстрационного примера "Демонстрация трения скольжения в StateFlow"

Данный пример находится в разделе Stateflow-Demos-Examples (рис. 1).

Рис. 1

Модель описывает поведение бруска, скользящего под влиянием некоторой силы по твердой поверхности и сжимающего пружину. В отсутствии трения эта механическая система ведет себя подобно классической одномассовой системе, положение бруска в установившемся состоянии при этом пропорционально прикладываемой силе. Когда трением пренебречь нельзя, модель становится значительно более сложной. Трение между бруском и поверхностью препятствует движению; кроме того сила трения зависит от скорости и максимальна в стационарном режиме. В результате брусок приходит в движение, поочередно "покоясь" и "скользя", как того требует баланс сил. Это явление имеет место во многих механических системах. В данной модели Stateflow используется, чтобы описать некоторые из физических состояний системы. Сила трения между двумя поверхностями пропорциональна их мгновенной относительной скорости. Скорость и положение подвержены изменениям в моменты, соответствующие переходам между дискретными состояниями "покой" и "скольжение". Simulink представляет инструмент для моделирования непрерывной динамики, а Stateflow - среда моделирования дискретных физических состояний.

На рисунке 2 показана эта механическая система.

Рис. 2

Уравнение движения бруска:

, (1)

где M - масса бруска,

- ускорение,

- внешняя сила.

Для линейной пружины (или в случае небольшой массы) будет справедливо соотношение:

, (2)

где K-коэффициент упругости пружины,

x- удлинение пружины, равное перемещению бруска.

Сила трения описывается более сложной зависимостью

, (3)

где-скорость,

-коэффициент трения,

-нормальная или прижимающая сила,

-мгновенная сила, для которой .

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

. (4)

Следующая логика определяет Fstationary. Когда скорость отлична от нуля, это сила, необходимая, чтобы мгновенно cделать скорость нулевой. Когда скорость уже равна нулю, Fstationary - сила, которая поддерживает это условие, обеспечивая нулевое ускорение.

(5)

Сила трения может теперь быть описана так

(6)

На рис. 3 показана Simulink-модель, которая демонстрирует это поведение (sf_stickslip.mdl).

Рис. 3

Надпись вверху: Внешняя сила входа линейно сжимает пружину, но трение сопротивляется этому движению. Величина трения зависит от состояния движения.

Надпись справа: С параметрами по умолчанию собственная частота намного выше, чем частота изменения внешней силы. Для сравнения изменените параметры следующим образом: М = 0.1 кг и Fsliding = 0.1 Н.

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

Блок Mechanical Motion осуществляет моделирование движения в соответствии с уравнением 2. Двойной щелчок на этом блоке показывает его основные подсистемы, изображенные на рис. 4. Сумма сил, разделенная на массу, определяет ускорение бруска. чтобы вычислить скорость и положение, ускорение дважды интегрируется.

Рис. 4

Подсистема силы трения, показанная на рис. 5 выполняет ряд нелинейных операций над сигналами, моделируя уравнение 6. Стандартные Simulink-блоки реализуют функции взятия модуля (Abs), вычисления знака, минимума (MinMax) и произведения. Блок переключателя выбирает требуемое значение силы трения, управляясь сигналом "stuck". Сигнал "stuck" - выходной сигнал Stateflow-блока control_logic. Обратите внимание, что этот же сигнал используется в блоке Mechanical Motion для сброса первого интегратора. Это гарантирует нулевое значение скорости для состояния stuck (покой).

Рис. 5

Stateflow-диаграмма на рис. 6 описывает поведение системы. Входные сигналы - Fsum и novelocity. Fsum - суммарная сила, действующая на брусок (см. рис. 4, 5), а novelocity - двоичный сигнал, который который принимает значение "1" в момент перехода скоростью через ноль. Выход Stateflow-диаграммы - сигнал управления stuck. Параметр Fstatic поступает из рабочего пространства MATLAB.

Рис. 6

Два взаимно исключающих друг друга (или) состояния используются, чтобы представить состояния stuck (покой) и sliding (скольжение). Предполагается что система первоначально пребывает в покое. Поэтому вначале активизируется состояние stuck через заданный по умолчанию переход. Переход из состояния stuck в состояние sliding (верхняя дуга слева направо) происходит, когда внешние силы превышают статическое трение (условие [fabs(Fsum) > Fstatic]). Состояние sliding остается активным, пока блок перемещается, т. е. его скорость отлична от нуля. Когда скорость достигает нуля, направление перемещения изменяется на противоположное, если внешняя сила по абсолютной величине превысит силу статического трения. Следовательно, переход из состояния sliding (скольжение) в состояние stuck (покой) произойдет, когда выполнено логическое условие [novelocity & (fabs(Fsum)<= Fstatic)], т. е. скорость нулевая и внешняя сила меньше, чем сила статического трения. Выходной сигнал stuck является двоичным представлением состояния. При входе в состояние stuck этот сигнал устанавливается равным единице, а при входе в состояние sliding - равным нулю. Это позволяет использовать сигнал stuck как сигнал управления другими Simulink-блоками, как показано выше. Таким образом Stateflow-диаграмма должна моделировать переход системы из одного состояния в другое.

Результаты моделирования. Заданные по умолчанию параметры, используемые в этой модели:

M=0.001 кг

K=1 Н/м

Fstatic=1 Н

Fsliding=1 Н

Внешняя сила меняется линейно от ноля до 5 Н и обратно до ноля с периодом 5 секунд. Две примечательных характеристики параметров:

  1. Собственная частота системы=31.5 рад/с намного выше, чем у возбуждающей силы (2π/10 рад/с). Модель использует очень низкую частоту возбуждения, чтобы определить статическую выходную характеристику системы.

  2. Статический и кинетический коэффициенты трения равны.

Рисунок 7 отображает установленные по умолчанию параметры.

Рис. 7

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

Рис. 8

Рисунок 8 представляет изменение во времени внешней силы (желтая линия) и положения бруска (фиолетовая линия). Входная сила должна превысить силу статического трения, чтобы брусок начал движение. Это происходит в момент времени t = 1 с. В интервале 1 < t < 5 положение бруска меняется т.о., что сила пружины меньше внешней силы на кинетическую силу трения. При этом возникают небольшие колебания с собственной частотой , отражающие изменения скорости. Затем внешняя сила начинает уменьшаться. Брусок немедленно останавливается и находится в этом состоянии до момента времени t = 7, когда внешняя сила снова превышает статическую силу трения, теперь в обратном направлении. Когда внешняя сила уменьшается до нуля, цикл повторяется.

Рис. 9

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

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

Поведение системы зависит не только от упругости пружины, но и от положения и скорости бруска в момент перехода из одного состояния в другое. При переходе в состояние покоя (stuck) положение останется неизменным и равным тому, что было в точке входа в это состояние. В состоянии sliding (скольжение) положение зависит от характеристик пружины, направления скорости и положения бруска в момент начала скольжения. Это поведение зафиксировано естественным и интуитивно понятным способом в Stateflow-модели.

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

M=0.1 кг

Fsliding=0.1 Н

Рис. 10

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

Рис. 11

Рис. 12

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

StateFlow   ОКМ   ДМ   экономическая информатика   визуальные среды - 4GL   Теория и практика обработки информации

Знаете ли Вы, что задача векторного программирования - это задача отыскания оптимума по Парето заданной вектор-функции на заданном множестве допустимых значений переменных.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution