Реализация некого "круиз контроля" или "автопилота", ковычки потому что это очень далекие сравнения:) |
Реализация некого "круиз контроля" или "автопилота", ковычки потому что это очень далекие сравнения:) |
Andrewshkovskii |
11.12.2008 0:20
Сообщение
#1
|
Бывалый Группа: Пользователи Сообщений: 222 Пол: Мужской Реальное имя: Andrew Репутация: 0 |
Суть такова, надо реализовать некий алгоритм действия "автопилота".
Есть начальные данные : Масса транспорта. Макс. допустимая скорость транспорта на прохождении пути. Длина пути в метрах. Сила двигателя. Максимальное время прохождения пути транспортом. Условия простые : У пользователя есть 3 выбора : газ, не жать газ и тормоз Автопилот должен регулировать скорость так, что бы она не превышала максимальную и транспорт пришел во время(т.е не превышая указанного макс. времени , раньше - можно). Если скорость превысила максимальную, то сразу же включается торможения до скорости= 70% от максимальной заданной. я так понимаю надо в один момент времени обрабатывать 3 задачи, в зависимости от действия пользователя. И просчитывать время прохождения , т.е контролировать скорость каждую, допустим, 0.1 с , и регулировать её, в зависимости от расстояния транспорта до конца и текушего времени прохождения. Т.к в физирке я не очень силен, то обратился сюда. Может у вас есть какие-нибудь мысли по этому поводу? Реализовывать буду на C/C++. Плюс надо будет ещё построить график движения транспорта.. |
Lapp |
11.12.2008 2:29
Сообщение
#2
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Т.к в физирке я не очень силен, то обратился сюда. Может у вас есть какие-нибудь мысли по этому поводу? Похоже, что тут действительно надо привлекать знание физики..Круиз-контроль - штука неплохая. Сам им часто пользуюсь. Скажем, когда едешь по Пятому фривею из Лос-Анджелеса в Сан-Франциско (400 миль, примерно как от Москвы до Питера) - нога не то, чтобы устает, но как не своя становится.. Тем более, что дорога на большей части протяжения прямая, как лазерный луч.. Остановка у фаст-фуда кажется просто манной небесной. А с КК - можно хоть немного поерзать на сидении . Работает он просто, как валенок: старается держать некое значение скорости, которое установишь. Коробка при этом может быть как в автоматическом режиме, так и в ручном. Можно немного ускориться временно (просто жмешь газ, как обычно) - полезно при обгонах. Любое самое слабое нажатие на тормоз тут же отключает КК (тоже очень разумно). Откуда ты взял условия задачи? Они выглядят несколько странно. Дело в том, что если хоть как-то учитывать массу, например, а также для расчета торможения, необходимо знать коэффициент трения (как качения, так и скольжения). Дальше, то, что ты называешь "силой двигателя", тоже выглядит странно. Если ее принимать в расчет, то волей-неволей придешь к необходимости переключения передач, поскольку она на разных оборотах разная (хотя, тут можно действовать упрощенно). А движение с постоянной скоростью вообще не получится, если не учитывать аэродинамическое трение (об воздух), так как трение качения не зависит от скорости, и любое минимальное неравенство тяги и трения качения будет приводить к разгону или замедлению. Нажатие на газ (как и на тормоз) тоже не есть константа.. Так что ты скажи, каковы твои намерения: спихнуть курсовую или сделать хорошую программу. Если второе - могу помочь в меру наличия времени. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Andrewshkovskii |
11.12.2008 11:01
Сообщение
#3
|
Бывалый Группа: Пользователи Сообщений: 222 Пол: Мужской Реальное имя: Andrew Репутация: 0 |
Ну честно говоря, вначале была идея о метро, а не о машине, т.е "автопилот" регулирует скорость вместо машиниста, а машинисту только и надо что жать газ или тормоз. Отсюда и пошло макс. время прохождения пути. аэродинамическое трение можное не учитывать. Т.е универсальность этой штуки понижается. Отсюда можно взять константную силу двигателя. А трение качения и торможения можно расчитать, в принципе...
Хм..ну хочется и нормальную программу и быстрей отделаться, потому что у меня в этом семестре 3 курсовых, 1 я написал, эта 2ая ,а для 3ей мне надо будет за неделю выучить QT, я же с ума сойду) Сообщение отредактировано: Andrewshkovskii - 11.12.2008 11:03 |
Lapp |
11.12.2008 22:00
Сообщение
#4
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Ну честно говоря, вначале была идея о метро, а не о машине, Какая разница - метро или машина? Разве только рулить не надо . т.е "автопилот" регулирует скорость вместо машиниста, а машинисту только и надо что жать газ или тормоз. Ты спрашиваешь совета, а прислушаться к нему не хочешь. Похоже как если кто-то спрашивает, как написать прогу, которая складывает 2+2 и получает 5. Ему говорят, что это невозможно, а он отвечает, что ему дескать не нужно заумную прогу, а нужно простую. Ну, какой будет ответ, как ты думаешь? А вот такой:begin Отсюда и пошло макс. время прохождения пути. Неверно. Максимальное время "пошло" из расписания движения. Только оно не несет никакого смысла, если не учитывать какой-то фактор, противоположный скарости (например, экономию горючего). Вдумайся и поймешь.аэродинамическое трение можное не учитывать. Нельзя. Тогда не будет постоянной скорости практически ни при каких условиях. И потом: ну чем тебя пугает дополнительное слагаемое?.. Т.е универсальность этой штуки понижается. До нуля .Отсюда можно взять константную силу двигателя. .. и включать-выключать его каждую секунду..А трение качения и торможения ??? Что это за термин? Даже не особо разбираясь в физике, не делай таких оговорок.можно расчитать, в принципе... Да просто прикинуть..Хм..ну хочется и нормальную программу и быстрей отделаться, потому что у меня в этом семестре 3 курсовых, 1 я написал, эта 2ая ,а для 3ей мне надо будет за неделю выучить QT, я же с ума сойду) Забдуждение, что на нормальную программу нужно много времени. Нужно, да, потратить час, чтобы вникнуть и разобраться - потом все пойдет быстро.-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
andriano |
12.12.2008 23:12
Сообщение
#5
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Очень похоже на то, что задача недоопределена.
В той постановке, что дана, задача может допускать 0, 1 или бесконечность решений. При этом если абстрагироваться от 1 решения как слишком частного случая и заведомо предположить, что решение существует, нет никакого критерия для выбора оптимального. Могу предложить алгоритм, который гарантированно будет давать решение, если есть хоть одно, причем не требующий никакого численного моделирования - достаточно предварительных аналитических рачсетов. 1. Давим на газ, пока не наступит первое из событий: (все вычисляется аналитически) 1.1. пройдена часть пути равная отношению силы торможения с сумме сил торможения и разгона (двигателя) 1.2. достигнута максимальная скорость. 2. Отпускаем газ. 3. Двигаемся с отпущенными педалями (при 1.2. естественно, с постояннной скоростью равной максимальной - при отсутствии трения) 4. Вычисляем путь торможения, как только приблизимся к пункту назначения на это расстояние, давим на тормоз. 5. Отпускаем педали после остановки. |
Текстовая версия | 27.04.2024 14:24 |