реклама на сайте
подробности

 
 
> Как внести иннерционность в измерение?
hwdev
сообщение Dec 2 2008, 19:11
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 334
Регистрация: 1-09-06
Из: Москва
Пользователь №: 20 008



Есть измерительная система, измеряемый параметр имеет свойство "дрожать" около динамически меняющейся средней точки. Т.е. например значение параметра начинает нарастать, но нарастание это происходит "шаг вперед и 2 назад, потом наоборот". Или остановится около какого-то значения и давай болтаться.

Я хочу внести инерционность с некой регулируемой постоянной времени, чтобы настроить, как мне нужно. Дайте, пожалуйста, ссылку на теорию с примерами или сюда напишите готовый код.

Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dog Pawlowa
сообщение Dec 3 2008, 10:17
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(hwdev @ Dec 2 2008, 23:11) *
или сюда напишите готовый код.


Паскаль устроит?

Код
Function TempQuick(mVolt,K:integer):integer;

var LI:longint;
    Temp1:integer;
begin
//рассчитали
  Temp1:=....

//положили в буфер
  TempBuf[TempBufIndex]:=Temp1;

//изменили индекс
  Inc(TempBufIndex);
  If TempBufIndex>TempBufSize then
    begin
      TempBufIndex:=1;
      TempBufReady:=True;
    end;
//сложили буфер
  LI:=0;
  If TempBufReady then  EndIndex:=tempBufSize
                  else  EndIndex:=TempBufIndex-1;
  FOr MyBufIndex:=1 to EndIndex DO  LI:=LI + TempBuf[MyBufIndex];
  If LI<0 then LI:=0;
//поделили на количество элементов
  LI:=LI div EndIndex;
//вернули
  TempQuick:=Integer(LI);
end;


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 20:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01525 секунд с 7
ELECTRONIX ©2004-2016