Я пробовал применять и S-образную кривую разгона, и линейную, и типа RC (экспонента при подаче сигнала на RC фильтр). От математики в реал тайме я отказался, муторно, да и время МК убивается за зря. Взял Maple, посчитал соответствующие кривые, перевёл их в значения таймера с учётом предделителей таймера. В итоге остановился на RC. S-образная кривая мне не понравилась потому, что имеет ярко выраженный максимум ускорения. Линейная давала срыв движка во время работы установки, так как несмотря на то,что ускорение постоянно, момент на валу двигателя уменьшается с увеличением скорости вращения, поэтому если строить эффективную нагрузочную кривую двигателя, самой оптимальной в смысле постоянства затрачиваемой мощности оказалась RC кривая, т.е. экспонента разгона компенсировала экспоненту потери момента (если её аппроксимировать экспонентой для конкретного двигателя). А далее, если требуется регулировка времени разгона, меняется просто тау (а ля время RC-цепи) и простым пересчётом в Maple получаются новые данные. Кратно изменять тау в небольших пределах можно регулировкой количества повторений каждого отсчёта кривой разгона. Значения таймера я записывал во FLASH-память МК, а во время работы их считывал. Кстати, кривую торможения я сделал такую же, как и разгона, только проходят значения таймера в обратном порядке.
|