|
|
  |
изобретаю цифровой фильтр |
|
|
|
Apr 3 2012, 11:45
|

Профессионал
    
Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877

|
Есть система, представляющая собой нагрузку типа "N резисторов параллельно" с управлением от микроконтроллера. Питается оно от аккумуляторов (внутреннее сопротивление аккумуляторов и нагрузки, если N максимальное, сопоставимо). Количество одновременно включенных резисторов переменное (рулится контроллером, заранее предсказать сложно) от 0 до N. Также в контроллер заведено напряжение с аккумуляторов - на АЦП.
Теперь самое интересное - необходимо обеспечить постоянство энергии, передаваемой в каждый из резисторов, изменяя время их включения. Пока напряжение было постоянным (от внешнего блока, там пульсаций немного было), всё было просто. Алгоритм следующий - померяли напряжение, (пропустили через усреднялку типа "скользящее среднее"), выставили N, включили. А теперь после "включили" напряжение-то и поменялось.
Вариант "включить, померять k раз, усреднить, посчитать время выключения" не проходит, т.к. включать надо на единицы миллисекунд, и в промежутках ещё кучу всего делать.
Величину нагрузки в каждый момент я знаю довольно точно (N резисторов + ещё потребление прочих элементов), а вот с внутренним сопротивлением аккумуляторов засада - завтра пользователь их поменяет, послезавтра производство другую партию закупит...
Вопрос: что делать-то? Читать про Калмана? Вроде бы самое оно... Вот только не делал я никогда, даже "простейший одномерный случай без входного воздействия".
--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
|
|
|
|
|
Apr 3 2012, 12:03
|

Знающий
   
Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237

|
Цитата(esaulenka @ Apr 3 2012, 15:45)  Вопрос: что делать-то? Читать про Калмана? Читать про Кирхгофа. Внутреннее сопротивление источника можно вычислить, измерив падение напряжения на источнике при подключении к нему известного сопротивления.
--------------------
Сделано в Китае. Упаковано в России.
|
|
|
|
|
Apr 3 2012, 12:35
|

Знающий
   
Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237

|
Имхо, сопротивление источника - параметр, который меняется очень медленно (например, из-за старения аккумулятора), поэтому усреднять его можно совершенно безбожно  , тем же скользящим средним. При каждом подключении нагрузки вычисляете внутреннее сопротивление, и измеренное значение пропускаете через фильтр, например, такой: Rсреднее = Rсреднее + (Rизмер - Rсреднее)/1000.0 (при усреднении по 1000 измерениям). А в вычислении "предсказания" падения напряжения перед подключением нагрузки используйте уже отфильтрованное Rсреднее.
--------------------
Сделано в Китае. Упаковано в России.
|
|
|
|
|
Apr 3 2012, 12:53
|

山伏
    
Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294

|
Тут впору нейрокластер применить... и связать его по UART через аудиомодем по воздуху  ... Как вяжется Калман(!) с требованием просто усреднить сигнал? Да и еще(о боги!) "в промежутках ещё кучу всего делать"... Непонятна сама постановка задачи. Если необходимо обеспечить постоянную адаптивную подстройку, а включать АЦП хочется в каких-то паузах между работой то это к Гарри Потеру скорее. Если задача выделить постоянную составляющую в пульсирующем сигнале то скользящее (блочное?) среднее самое то, только интервал накопления подобрать. Если избавить от шума переменный не детерминированный сигнал (разделить по-сути 2-а стохастических) то да, это задача адаптивной фильтрации(того или иного метода). P.S.: ...если Калманом Вы пытаетесь сделать какой-то "инерциоид" - то ничего не выйдет, нет никаких данных(если измерять "в паузах") о наличии этого "инерциоида" в Вашем сигнале...
--------------------
Нас помнят пока мы мешаем другим... //-------------------------------------------------------- Хороший блатной - мертвый... //-------------------------------------------------------- Нет старик, это те дроиды которых я ищу...
|
|
|
|
|
Apr 3 2012, 18:27
|
Местный
  
Группа: Участник
Сообщений: 313
Регистрация: 2-07-11
Пользователь №: 66 023

|
Цитата(esaulenka @ Apr 3 2012, 15:45)  Вариант "включить, померять k раз, усреднить, посчитать время выключения" не проходит, т.к. включать надо на единицы миллисекунд, и в промежутках ещё кучу всего делать. Может взять контроллер поновее и сделать именно такой вариант? В последних сериях контроллеров АЦП делает измерение примерно за микросекунду. За требуемое время успеет выполнить тысячи измерений, которые можно усреднить, и принять решение когда выключать резисторы.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|