ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ. S Step Integrator Scope




Пример 1.

s
Step
Integrator
Scope

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

Построение зависимости выхода от входа стандартного блока библиотеки Simulink.

1. Запустите Matlab

2. Настройте Matlab на свой рабочий каталог, например, tmp_Simulink.


 

3.Откройте новое окно (файл модели) для построения модели.


4.Командой меню >File>SaveAs переименуйте файл модели untitled, например, в

Example_1 (Title_1).

>


5..Клавишей окна модели откройте библиотекуSimulink.


6.Перенесите из библиотеки Simulink в окно модели следующиеблоки.


 

 


Примечание: нужный блок в библиотеке можно найти, введя имя блока в окне поиска, например,


7.Соедините блоки как показано ниже.


8.Откройте блок Scope

9.Запустите модель. Наблюдайте результат моделирования в окне Scope.


 

 

10.Командой блока Scope разместите графики во всей зоне окна.

 

 

 

11.Командой блока Scope зафиксируйте размеры окна для будущих графиков.

 

 

12.Открыв окно с параметрами реле, установите требуемые параметры, например, как показано ниже.


 

 

13.Задайте параметры выходного сигнала блока развертки (блок RepeatingSequence) так, чтобы он перекрывал точки переключения реле (-0.5 и0.5). Постройте графики модели (командой).

 

14.Для уменьшения искажений входного сигнала (пик желтого сигнала отображается полкой) замените (в окне меню модели >Simulation>Configurationparameters>Solver) переменный шаг моделирования “по умолчанию” на постоянный: .

Запустите модель и наблюдайте изменения на графиках сигнала реле.

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

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

(в окне меню модели >Simulation>Conf.Parameters>Solver), например, на

16.Постройте графики реле с новыми значениями параметров моделирования.

 


Задание 1. Построение модели скачущего мяча.

На заданной высоте, например, 1м, отпускают шар весом 100 г., который летит до поверхности и отскакивает от нее на высоту ~80% от начальной точки. Необходимо построить модель полета и отскоков мяча и определить основные параметры модели.

Составим список отношений, которые, влияют на поведение мяча.

· Сила гравитации равна произведению массы тела на ускорение свободного падения

· Ускорение тела равно отношению сил, действующих на тело, к массе тела

· Изменение скорости равно интегралу от ускорения.

· Изменение расстояния равно интегралу от скорости.

1. В новом окне составьте модель полета мяча, состоящую из блоков, реализующих исходные отношения. Для ускорения моделирования «кликнуть» по полю один или 2 раза (в зависимости от года Matlab), подождать и набирать название блока и, потом, нужную характеристику. Второй вход (постоянная константа) интегратора образуется, если открыть описание блока (двойной клик) и установить в External reset – любой вместо none. Постоянная в интеграторе: Initial conditional sorce – external.


 

 

1. Выберите следующие параметры моделирования (меню модели >Simulation>Configuration Parameters (Ctrl+E) >Solver), «колесико» или Modeling/Settings – в зависимости от версии (года) Matlab:

 


2. Запустите модель. Постройте график, рассмотрите полет мяча.

 

График свободного полета мяча. Полет до поверхности с высоты одного метра под действием гравитации занимает 0.45 секунд. Возможно движение вниз от точки «0» до уровня

-100 за 4,5 ед. времени (Matlab2016>).

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

Добавим в список новое отношение:

 

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

*) Согласно закону сохранения энергии, кинетическая энергия мяча равна его потенциальной энергии в начале движения: mv2/2=mgh. Если скорость отскока примем как 80 процентов от скорости непосредственно перед ударом об пол, потенциальная энергия мяча в конце движения равна кинетической энергии после удара: m(0,8v)*2/2=mgh1, откуда получаем 0,64mv*2/2=0,64mgh=mgh1,h1=0,64h - высота подъёма мяча после удара.

4. Дополните модель функциями, описывающими отскок. Если мяч сжимаемый, то при касании появляется сила упругости, которая изменяет ускорение. В простейшем случае Fупр = -kdy, где dy - смещение по y. Эта сила сначала уменьшит скорость по y до 0, потом возвратит к первоначальной величине с обратным знаком. Подберите коэффициент упругости, который соответствует 100% отскоку мяча.

Настройте блок реле (Relay) так, что бы при касании земли блок включался, а при отскоке выключался, предположив, что момент появления силы «отскока» и ее исчезновения не совпадает. Для удобства используйте второй вход Scope, на котором можно увидеть время действия силы отскока. Второй вход Scope образуется: «Колесико» в меню Scope/ Параметры /Количество осей – по требованию.

Дополнительный вход Product – двойной клик/ Number of inputs.

 

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


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

 

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

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

Сопротивление воздуха F = C x((pV^2)*S)/2, где Cx - коэффициент лобового сопротивления. Для шара примерно 0.5, p - плотность среды. Для воздуха - 1.3кг/m^3. S - площадь сечения шара. pi*r2, V – полная скорость относительно воздуха.

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

 

Этот полет мяча примерно соответствует условиям задачи. Справа показана сила (Scope1), определяющая отскок. В дальнейшем параметры модели можно уточнять.

 

 

4. Выделите оконтуриванием блоки модели, не включая блоки Scope, постоянные, дополнительный выход и создайте подсистему командой ПКМ CreateSubsystem (Ctrl-G). Должен получиться следующий блок подсистемы (Subsystem) с портом для вывода информации о контакте мяча с поверхностью. Можно проверить работоспособность подсистемы для уверенности в отсутствии ошибок.

Subsystem, по существу, это алгоритм расчета движения прыгающего шарика.

Рис. Блок подсистема - разработанный алгоритм вычисления движения шара.

Внутренняя часть подсистемы – строение алгоритма. Можно изменить название подсистемы и портов и цветовую окраску портов.Subsystem -> двойной клик ЛКМ ->Rebound;

Цифровая модель устройства. Имитировать падение шарика будем цифровым устройством – процессором или ПЛИС. Для автоматической генерации кода модели и моделирования вычислений на микроконтроллере (МК) необходимо перейти от непрерывной модели к дискретной. Для этого заменим интеграторы на дискретные и подберем такое модельное (sample time) время, при котором выходные графики останутся примерно одинаковыми с аналоговой моделью.

 

Block Parameters Discrete-Time Integrator: sample time = 0.0001

 

* Необходимо придерживаться своей модели в плане выбора постоянных величин. Модель в тексте соответствует старому Matlab (2012).

 

Кликаем на «колесико» и устанавливаем шаг, одинаковый и интеграторами:

 

 

Если на интервале 5 сек шаг составит 1/10000, то результат можно считать приемлемым.

Например, при шаге 1/1000 различие заметно на глаз: за счет потери точности сила отскока увеличилась и затухание стало меньше. Если далее загрублять шаг, то шарик начинает прыгать с нарастанием.

 

Отсюда можно предположить, что решатель должен рассчитывать не менее 2000 точек в секунду для поддержания, например, режима реального времени. Естественно, что процессор x64 выполнит это условие с большим запасом, а вот для детской игрушки – Arduino Uno это задание может быть и не выполнимым.

*) Высокоуровневая программа на языке С ничего не знает о режиме реального времени, поскольку работает с модельным временем, а конкретный процессор оперирует машинным временем, в котором функционирует аппаратная часть системы моделирования.

 

Микропроцессорная плата Arduino безусловно просчитает все заданные точки процесса, но может затратить на это и более 5 сек реального времени. Это приемлемо при визуализации процесса, но не позволит управлять детской игрушкой в режиме реального времени. Поэтому, в дальнейшем, после написания или автоматической генерации кода С для платы Arduino, нужно определить, сколько времени тратит процессор для расчета одной точки и принять меры (программные или аппаратные) для уменьшения этого времени.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-09-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: