окей) вот новый тест у меня шим от 0x000 до 0x1ff, 0x100 - середина и соответственно покой двигателя. на скорую руку нащупал минимальную скважность при которой стартует - 0x10e, ну и максимум - 0х1ff, также когда ротор неподвижен это 0x10c, тут уже 100% не стартует, там где кручу пальцем - не стартанул на 0x10e
похоже что работает кстати я окончательно понял что написано в forum87/topic7318-240.html#p297823 да так и нужно делать, и я так делал когда был самодельный драйвер, а новая схема на готовой микросхеме, но почему то я посчитал что подключил точно так же .
linvinus писал(а): при обычном шиме затормозить его так же быстро да ещё так чтобы он продолжил вращаться практически невозможно, никакие пиды это не отработают.
нет пока не дошли руки, параллельно куча всего идет.. урывками только..
ПС рад общению на ты )
какой вариант пид регулятора (ПИД, ПИ,ПД, ИД и Т.Д.)
поскольку торможение происходит очень быстро и естественно, в случае если используется пид регулятор, при резком уменьшении шим происходит перерегуляция. т.е. мотор может какое то время вращаться в обратную сторону. основная проблема, на мой взгляд, связана с интегральной составляющей, нужно её обнулять при торможении.
Последний раз редактировалось linvinus 19 мар 2014, 15:05, всего редактировалось 1 раз.
Наверно надо обнулять накопленое И (или делить, или иначе быстро уменьшать) если задание имеет знак противоположный накопленому И. И начинать накапливать его лишь при некотором приближении к заданию.
Например включать пид лишь при небольших отклонениях от задания. Добавляется параметр - какое отклонение считать небольшим.
нет пока не дошли руки, параллельно куча всего идет.. урывками только..
ПС рад общению на ты )
какой вариант пид регулятора (ПИД, ПИ,ПД, ИД и Т.Д.)
поскольку торможение происходит очень быстро и естественно, в случае если используется пид регулятор, при резком уменьшении шим происходит перерегуляция. т.е. мотор может какое то время вращаться в обратную сторону. основная проблема, на мой взгляд, связана с интегральной составляющей, нужно её обнулять при торможении.
Работает отлично, есть только одна тонкость, предсказание чувствительно к питанию, поэтому я рассчитал константу для одного напряжения, а если напряжение иное, то масштабирую под текущее значение напряжения питания. Получается что в случае если нужно резко ускориться или замедлиться, то на первой итерации работает только предсказание, а потом значение подстраивается используя PI алгоритм.
Последний раз редактировалось linvinus 19 мар 2014, 15:26, всего редактировалось 1 раз.
продолжаю писать студентам методу по xmega, в качестве примера микроконтроллера, что по сути является вольным переводом документации ) снова у меня трудности, правда не совсем перевода.. скорее понимания почему атымелы используют термин "double buffered" для буферов регистров периода и сравнения таймеров.. там у них есть сами регистры, с которыми непосредственно работает таймер, и есть буферы, значение из которых переписывается в случае состояния UPDATE, правда в режиме "захвата" = capture, это работает наоборот, что как раз похоже на двойную буферизацию, когда в "боевой" регистр заносится последнее захваченное значение... но в случае банальной ШИМ, когда новое значение скважности ждет в буферном регистре а не "грубо" записывается в "боевой" регистр, у меня язык не поворачивается называть это двойной буферизацией.. просто буферизация..
ПС пока писал пост в принципе смирился с их названием )