А.Е.Осоргин_-_AnyLogic_6_Лабораторный_практикум. Министерство образования и науки российской федерации федеральное государственное образовательное учреждение среднего профессионального образования Поволжский государственный колледж
Скачать 3.11 Mb.
|
Рис. 5.8 Настроим условия срабатывания переходов стейтчартов между состояниями. Для обеспечения безопасной работы пешеходного перехода необходимо синхронизировать срабатывания стейтчартов так, чтобы всегда, когда светофор пешеходов находится в состояниях Идите или Мигает , светофор автомобилей обязательно находился бы в состоянии stop . Для этого можно подобрать подходящие таймауты срабатывания переходов стейтчарта, но при каждом изменении модели, придется эти таймауты подбирать снова и снова. Более разумно синхронизировать стейтчарты, посылая специальные разрешающие сигналы из одного стейтчарта в другой. В нашей модели стейтчарты будут обмениваться следующими сигналами: АВТОМОБИЛИ и ПЕШЕХОДЫ . В стейтчарте Для_пешеходов переход t12 будет срабатывать когда получен сигнал ПЕШЕХОДЫ , который будет генерироваться в стейтчарте Для_автомобилей при переходе t5 в состояние stop . В свою очередь, в стейтчарте Для_автомобилей переход t6 будет срабатывать когда получен сигнал АВТОМОБИЛИ , который генерируется в стейтчарте Для_пешеходов при переходе t11 в состояние Стойте , рис. 5.9. В AnyLogic есть несколько способов передачи сообщения в диаграмму состояний. В нашей модели мы будем использовать метод fireEvent( ), который должен вызываться в том стейтчарте, которому предназначено сообщение. То есть, если из некоего объекта мы хотим послать сообщение стейтчарту, то нужно в этом объекте написать команду стейтчарт fireEvent(сообщение). Поэтому, в поле Действие перехода t5 стейтчарта Для_автомобилей нужно вставить команду: Для_пешеходов.fireEvent( "ПЕШЕХОДЫ" ), в такое же поле перехода t11 стейтчарта Для_пешеходов вставьте команду: 50 Для_автомобилей.firеЕvеnt( "АВТОМОБИЛИ" ) Рис. 5.9 Таким образом, каждый из светофоров будет информировать другого о своем переходе в состояние запрещения движения, как пешеходов, так и автомобилей. Для срабатывания перехода стейтчарта при получении нужного сообщения, в стейтчарте Для_пешеходов в поле Происходит окна свойств перехода t12 выберите вариант При получении сообщения, укажите тип сообщения String , а в поле Осуществлять переход выберите Если сообщение равно и введите " ПЕШЕХОДЫ ", рис. 5.9. 51 Аналогично, для срабатывания перехода автомобильного стейтчарта по сигналу от пешеходного стейтчарта в стейтчарте Для_автомобилей в поле Происходит окна свойств перехода t6 выберите вариант При получении сообщения, укажите тип сообщения String , а в поле Осуществлять переход выберите Если сообщение равно и введите " АВТОМОБИЛИ ". Остальные переходы этих стейтчартов будут срабатывать по таймаутам, как и прежде. Проверьте по рисунку 5.9 установленные параметры переходов стейтчартов. Запустите модель на выполнение. На презентации модели, в дополнение к светофору для автомобилей, следует нарисовать светофор для пешеходов с двумя сигналами – красной надписью СТОЙТЕ и зеленой ИДИТЕ. Динамикой цвета этих надписей будут управлять логические параметры стоите и идите , которые нужно создать на диаграмме по аналогии с параметрами красный, желтый и зеленый. Продемонстрируйте построенную модель преподавателю. 5.5. СРАБАТЫВАНИЕ ПЕРЕХОДА ПО УСЛОВИЮ Если пешеходы переходят улицу достаточно редко, то автоматическое переключение светофора будет неоправданно часто прерывать движение автомобилей. В этом случае разумно установить специальную кнопку, при нажатии которой пешеходом, светофор автомобилей остановит на некоторое время движение автомашин. Для этого перетащите мышью элемент Кнопка с палитры Элементы управления на диаграмму класса активного объекта Model рядом с пешеходным светофором, рис. 5.10. Назовите кнопку и ее метку: переход. Определите действие при нажатии на кнопку так, чтобы устанавливался в истину булевый параметр ожидание . Для этого нужно записать в поле Действие окна свойств этой кнопки команду: ожидание = true Логический параметр ожидание, конечно же, нужно ввести на диаграмме активного объекта Model c начальным значением false . Этот параметр будет определять, собирается ли пешеход перейти дорогу. Значение этого параметра будем переводить в false каждый раз, как только пешеходный светофор перейдет в состояние Мигает. Для этого нужно записать в поле Действие при входе окна свойств состояния Мигает стейтчарта Для_пешеходов команду: ожидание=false Рис. 5.10 Таким образом, при нажатии кнопки переход, стейтчарт автомобилей «узнает» об ожидающих на переходе пешеходах и переключится из состояния Движение в состояние 52 Внимание и затем в состояние запрещения движения автомобилей. В случае, если некий злоумышленник будет постоянно нажимать кнопку переход, это может полностью парализовать движение автомобилей. Для того чтобы этого не произошло, в стейтчарте Для_автомобилей сделайте иерархическим состояние Движение , с двумя простыми состояниями непрерывное и обычное , как показано на рис. 5.11. В состоянии непрерывное автомобили будут двигаться до истечения таймаута 10 секунд, невзирая на состояние параметра ожидание, т.е. автомобилям будет гарантированно предоставлено некоторое время для движения, даже если кнопка переход будет всегда нажата. После истечения таймаута 10 секунд светофор перейдет в обычное состояние движения, которое может прерываться. Переход T из состояния обычное сработает, когда будет нажата кнопка переход, т.е. параметр ожидание будет истинен. Если кнопка переход не нажата (т. е. параметр ожидание имеет значение false ), автомобили будут продолжать движение до нажатия этой кнопки. Если нажать кнопку один или более раз, то параметр ожидание станет истинным и автомобильный светофор из состояния обычное перейдет в состояние внимание и затем остановит движение автомобилей. Рис. 5.11 Проверьте работу модели и продемонстрируйте ее преподавателю. 5.6. КОНТРОЛЬНЫЕ ЗАДАНИЯ 1. Измените модель светофора с кнопкой таким образом, чтобы моделировалось автоматическое нажатие кнопки ПЕРЕХОД в случайные моменты времени в интервале от 5 секунд до 1 минуты. (5+) 2. Измените модель автоматического светофора таким образом, чтобы по кнопке 53 НОЧЬ включался режим мигания желтого света, а по кнопке ДЕНЬ светофор переходил в нормальный режим работы. (5+) 3. Измените модель светофора с кнопкой таким образом, чтобы по кнопке ВЫКЛ светофор выключался (все серое), а по кнопке ВКЛ светофор переходил в нормальный режим работы. (5) 4. Измените презентацию модели таким образом, чтобы рядом со светофором высвечивалось время в секундах, оставшееся до смены сигнала. (5) 5. Измените презентацию модели таким образом, чтобы рядом со светофором высвечивалось время в секундах, прошедшее со смены сигнала. (5) 6. Измените модель автоматического светофора таким образом, чтобы по кнопке СТОП включался красный свет у всех светофоров, а по кнопке ДВИЖЕНИЕ светофор переходил в нормальный режим работы. (5) 7. Измените модель таким образом, чтобы регулировалось движение двух пересекающихся дорожных потоков в автоматическом режиме (без кнопки), т.е. модель двух трехцветных светофоров со следующей последовательностью сигналов: зеленый – зеленый мигающий – желтый – красный – (красный + желтый) – зеленый. (4) 8. Измените модель светофора с кнопкой таким образом, чтобы пешеход видел, нажата уже кнопка или нет, например, с помощью надписи. (4) 9. Измените модель таким образом, чтобы моделировать железнодорожный переезд: по кнопке ПОЕЗД включается сигнал и через 5 сек. начинает мигать сдвоенный красный светофор (попеременно правый – левый), еще через 5 сек. опускается шлагбаум. По истечении случайного промежутка времени в диапазоне от 30 до 60 сек. (прохождение поезда), переезд переводится в исходное состояние. (4) 10. Измените модель таким образом, чтобы 3-х цветный светофор переключался в полуавтоматическом режиме по нажатию кнопок регулировщиком: по кнопке КРАСНЫЙ начинает мигать зеленый свет, затем зажигается желтый и через несколько сек. – красный; по кнопке ЗЕЛЕНЫЙ зажигается одновременно красный и желтый, затем горит зеленый. (4) 11. Измените модель таким образом, чтобы частота мигания зеленого света регулировалась с помощью слайдера. (3) 12. Измените модель автоматического светофора автомобилей и пешеходов (без кнопки), удалив переходы по сигналу и подберите подходящие таймауты для согласованной работы светофоров. (3) 13. Измените модель светофора с кнопкой таким образом, чтобы с помощью слайдера можно было регулировать время, через которое повторное нажатие кнопки ПЕРЕХОД приведет к переключению светофора автомобилей в режим ожидания. (3) 14. Как передать сигнал от стейтчарта СТ_1 стейтчарту СТ_2 ? (3 ) 15. Измените модель таким образом, чтобы время, в течение которого разрешено движение автомобилей, было 15 секунд и перед окончанием запрещающего сигнала автомобилям мигал красный свет. (3) 16. В чем отличие от ? (3) 17. Измените модель таким образом, чтобы время, в течение которого разрешено движение пешеходов, было 10 секунд и перед окончанием запрещающего сигнала пешеходам мигал красный свет. (3) 18. Как в модели реализована защита от чрезмерно-частого нажатия кнопки ПЕРЕХОД?(3) 19. Измените модель таким образом, чтобы зеленый сигнал светофора не мигал. (3-) 54 ЗАДАНИЕ 7 ФИЗИЧЕСКИЙ МАЯТНИК ЦЕЛИ ЗАНЯТИЯ • освоение методов самостоятельного построения имитационных моделей физических систем, исходя из содержательной, концептуальной и математических постановок задачи; • построение имитационной модели маятника. ФОРМА ОРГАНИЗАЦИИ ЗАНЯТИЯ Фронтальная. СТУДЕНТ ДОЛЖЕН ЗНАТЬ порядок и способы построения модели, интерфейс программы AnyLogic. СТУДЕНТ ДОЛЖЕН УМЕТЬ создавать модели в программе AnyLogic, создавать презентацию модели, запускать модель на выполнение. ОБЕСПЕЧЕННОСТЬ компьютер с установленной программой AnyLogic версии 6, настоящий курс лабораторно-практических работ. ПРАКТИЧЕСКОЕ ЗАДАНИЕ В этом задании мы построим модель маятника. Колебательные движения механических систем широко распространены в технике: качания маятников, движения поршней двигателей внутреннего сгорания, колебания струн, стержней и пластин, вибрации двигателей, фундаментов и множество других подобных процессов. 7.1. СОДЕРЖАТЕЛЬНАЯ ПОСТАНОВКА ЗАДАЧИ Тело единичной массы прикреплено к неподвижному кронштейну с помощью нерастяжимой и несжимаемой нити длиной l . Исследовать колебательные движения тела. Рис. 7.1 α ω l g (x, y) 55 7.2. КОНЦЕПТУАЛЬНАЯ ПОСТАНОВКА ЗАДАЧИ Примем следующие предположения: • объектом исследования является тело массой 1, принимаемое за материальную точку; • движение тела подчиняется второму закону Ньютона; • тело находится под действием трех сил: силы тяжести mg , реакции натяжения нити и силы сопротивления воздуха, пропорциональной квадрату скорости движения; • тело совершает колебательные движения, так как сила тяжести mg уравновешивается вертикальной составляющей реакции натяжения нити; 7.3. МАТЕМАТИЧЕСКАЯ ПОСТАНОВКА ЗАДАЧИ С математической точки зрения имеем задачу Коши. ω α = dt d ; ; ) sin( 2 ω μ α ω ⋅ − ⋅ − = l g dt d ); sin( α ⋅ = l x ) cos( α ⋅ = l y Здесь α - текущий угол отклонения маятника от вертикали, ω - его угловая скорость, μ - коэффициент сопротивления среды (будем считать, что сопротивление среды пропорционально квадрату угло- вой скорости). 7.4. ОПИСАНИЕ МОДЕЛИ Необходимо построить модель по вышеприведенным формулам. Модель должна содержать две переменных состояния alpha и omega и три параметра l, mu и g , а также начальное значение переменной alpha , которая задается параметром с именем alpha0 . Переменные х и у задают координаты центра масс маятника, их значения можно вычислить по формулам, в соответствии со схемой рис. 7.1. Рис. 7.2 В корневом объекте модели создайте четыре переменных: х, у, alpha и omega. Переменные х и у следует задать формулами, а alpha и omega – интегралами, в 0 ) 0 ( ; 0 ) 0 ( = = ω α α 56 соответствии с формулами п. 7.3. Начальное значение угловой скорости omega равно 0. Четыре параметра l, mu, g и alpha0 так же необходимо создать на диаграмме класса активного объекта. Обратите внимание на уравнение 2 ) sin( ω μ α ω ⋅ − ⋅ − = l g dt d , при возведении ω в квадрат член уравнения –μ*ω 2 всегда будет отрицательным независимо от направления движения маятника (знака переменной ω), т.е. будет потеряно направление действия силы сопротивления, что приведет к ошибке. Необходимо видоизменить это уравнение так, чтобы знак угловой скорости не потерялся: ω ω μ α ω ⋅ ⋅ − ⋅ − = l g dt d ) sin( 7.5. ПРЕЗЕНТАЦИЯ В презентации определите четыре области. В центральной с помощью двух линий и овала нарисуйте маятник. У линии, изображающей нить, один конец всегда имеет координаты (0,0), этот конец нити привязан к неподвижной опоре. Второй конец нити имеет координаты х и у , этот конец нити привязан к маятнику. Рис. 7.3 Соответственно, на закладке Динамические панели свойств линии, отображающей нить, в поле значений координат начала нити X и Y введите 0, в поле значений координат конца 57 нити dX и dY введите величины х и у, рис.7.2. Это приведет к тому, что при работе модели концы отрезка всегда будут находиться в точках с координатами (0, 0) и (x, y). У овала во вкладке с динамическими значениями координат установите х и у Третья область должна содержать: название модели и небольшой поясняющий текст. Нижняя часть третьей области должна включать два специальных поля для ввода данных: Текстовое поле, более известное как поле редактора или editBox, В эти поля при работе модели можно вводить новые значения параметров l и mu, изменяя их в процессе выполнения модели. В нижней части диаграммы класса активного объекта разместите графики зависимости alpha и omega от времени, и фазовую диаграмму зависимости alpha от omega. Постройте модель как показано на рис. 7.3 и продемонстрируйте ее преподавателю. 7.6. КОНТРОЛЬНЫЕ ЗАДАНИЯ 1. Добавьте в модель второй маятник, закрепленный в той же точке и смоделируйте упругое соударение маятников. (5++) 2. Доработайте модель таким образом, чтобы учитывался боковой ветер. (5+) 3. Измените модель таким образом, чтобы сила тяжести была направлена вдоль произвольной оси, направление которой можно ввести текстовым полем. (5+) 4. Доработайте модель таким образом, чтобы направление вектора силы тяжести совершало кругообразное движение с произвольной угловой скоростью. (5+) 5. Доработайте модель таким образом, чтобы показывалось время с момента прохождения маятником высшей точки. (5) 6. Добавьте в модель второй маятник, качающийся независимо от первого. (5)? 7. Доработайте модель таким образом, чтобы показывалось время с момента прохождения маятником низшей точки. (5) 8. Доработайте модель таким образом, чтобы моделировался отскок маятника от препятствия (стенки), расположенной перпендикулярно траектории движения маятника. Учтите потерю скорости при отскоке. (5) 9. Доработайте презентацию модели таким образом, чтобы при остановке маятника в верхней точке траектории он менял цвет, ровно на 2 секунды. (5) 10. Доработайте модель таким образом, чтобы автоматически подсчитывалось количество колебаний маятника. (5) 11. Измените модель таким образом, чтобы сила тяжести была направлена вдоль горизонтальной оси. (4) 12. Доработайте презентацию модели таким образом, чтобы при движении вниз маятник был одного цвета, а при движении вверх – другого. (4) 13. Доработайте презентацию модели таким образом, чтобы при зависании маятника в верхней точке траектории он менял цвет. (4) 14. Измените модель таким образом, чтобы сила тяжести была направлена вверх. (3) 15. Доработайте презентацию модели таким образом, чтобы при движении направо маятник был одного цвета, а при движении налево – другого. (3) 16. Доработайте модель таким образом, чтобы маятник сопровождала движущаяся рядом надпись, показывающая мгновенное значение линейной скорости. (3) 17. В чем отличие содержательной постановки задачи от концептуальной? (3) 18. Каким элементом палитры можно задать переменные, описываемые формулой, а каким – как интегралы? (3) 58 ЗАДАНИЕ 8 МАЯТНИК С ОГРАНИЧИТЕЛЕМ ЦЕЛИ ЗАНЯТИЯ • освоение методов самостоятельного построения имитационных моделей физических систем переменной структуры; • построение имитационной модели ограниченного маятника. ФОРМА ОРГАНИЗАЦИИ ЗАНЯТИЯ Фронтальная. СТУДЕНТ ДОЛЖЕН ЗНАТЬ порядок и способы построения модели, способы работы со стейтчартами, интерфейс программы AnyLogic. СТУДЕНТ ДОЛЖЕН УМЕТЬ выполнять задание № 7. создавать модели в программе AnyLogic, создавать презентацию модели. ОБЕСПЕЧЕННОСТЬ компьютер с установленной программой AnyLogic версии 6, настоящий курс лабораторно-практических работ. |