До 18 вольт при запуске стартера двигателя на короткое время. Проектируем систему управления. Вот и думаю, нужно ли защищать вход питания от таких скачков?
Вид для печати
До 18 вольт при запуске стартера двигателя на короткое время. Проектируем систему управления. Вот и думаю, нужно ли защищать вход питания от таких скачков?
Всем добрый вечер, подскажите такой вопрос: Имеем движение по кругу допустим 20ти позиций, я в данный момент на 8й позиции и мне надо переместиться на 3ю, ПР должен вычислить в какую сторону начать движение чтоб быстрее придти в заданную позицию. Кучей блоков вычитания, сравнения вроде получается на бумаге, но мож еще какой способ есть? Всем спасибо, сильно не пинайте.
А если в диаметрально противоположную позицию надо переместится, я так понимаю безразлично в какую сторону ехать, в смысле, по часовой или против часовой стрелки или есть приоритеты, в смысле, даже если нет приоритетов, всё равно их придётся установить или выбирать направление случайным образом?
Александр37, поиграйтесь с модулярной арифметикой - добавление длины окружности к результатам сложений и вычитаний начальной и конечной позиций, получение остатка (модуля) от деления на длину окружности или половину длины окружности.
Так сможете получить и направление и минимальное количество шагов.
Я так понимаю, судя по ответу, с описанной мной ситуацией Вы ещё не разбирались, повторю, вероятно Вы ещё и не поняли, в смысле, под диаметрально противоположной позицией имеется ввиду, когда езда в назначенную позицию что по часовой, что против часовой стрелки составит одинаковое количество шагов. У вас фиксированные позиции с одинаковым шагом, сектором, между позициями?
Александр37, для вычисления направления можно попробовать "мысленно перенести начало отсчёта" в начальную позицию, и потом из конечной позиции вычитать половину длины окружности.
Тогда отрицательное значение конечной позиции будет говорить о необходимости движения по часовой, а положительное - против часовой.
Единственно, OL не поддерживает целые отрицательные числа, но вычисления сложения и вычитания проводит в дополнительном коде, т.е. как бы поддержка отрицательных сохраняется.
Для переноса начала отсчёта нужно воспользоваться модулярной арифметикой, а для проверки на отрицательность - проверять старший бит.
Т.е. формулы не очень сложные. Попробуйте реализовать - идея уже есть. В принципе, такими задачками на информатике и математике "мучают" старшекласников. У меня просто нет времени - ухожу на работу, но Вам это требуется для выполнения производственной задачи.
С чем-то более простым пока не встречался:
Вложение 86163