Реализация Калмана Фильтра в LabView

Захват, обработка и генерирование сигнала
Irina_Gushchina
beginner
beginner
Сообщения: 26
Зарегистрирован: 22 ноя 2008, 02:29
Версия LabVIEW: 8.5
Контактная информация:

Реализация Калмана Фильтра в LabView

Сообщение Irina_Gushchina »

Здравствуйте! Совсем недавно занялась проектом, в котором мне необходимо реализовать Калман фильтра в LabView.
На данном эпапе мною просто реализованы основные уранения Калмана Алгоритма.
Недавно в литературе проситала, что Калман фильтр может быть реализован легко в LabView, так как имеется там уже готовый компонент. К сожалению, как и что делается - я так и не нашла.
Если кто-нибудь располагает интересующей меня информацией - пожалуйста пишите!

P.S.: Второй вопрос как вообще можно внедрить C или Matlab код в LabVIEW. Если у меня уже есть готовые программы для Калмана Фильтра на С и модели в Matlab.

Заранее огромное спасибо
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Реализация Калмана Фильтра в LabView

Сообщение Eugen Graf »

Я бы предложил второй вариант, раз алгоритмы уже есть. Внедрить код можно с помощью Formula Node. Для этого есть готовые примеры в :labview: .
Irina_Gushchina
beginner
beginner
Сообщения: 26
Зарегистрирован: 22 ноя 2008, 02:29
Версия LabVIEW: 8.5
Контактная информация:

Re: Реализация Калмана Фильтра в LabView

Сообщение Irina_Gushchina »

В том то и дело, что мне необходимо самой реализовывать Калман фильтр. :)
А про внедрение кода расскажите, пожалуйста, подробнее. Я думала, что Formula Node служит только для вычисления обычных мат.уравнений, а не для огромной программы, например на С.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Реализация Калмана Фильтра в LabView

Сообщение Eugen Graf »

Нет, ну я же не говорю всю Си-прогу засунуть в Formula Node. Программа алгоритма ведь состоит из нескольких мат. функций. Вот эти мат. функции, каждую поотдельности засунуть в Formula Node, определить входы и выходы и использовать в основной :labview: программе.
Я так недавно сделал в одном из моих проектов.
Аватара пользователя
Konstantin Sumenko

Activity Bronze
expert
expert
Сообщения: 1439
Зарегистрирован: 17 июл 2008, 12:20
Награды: 2
Версия LabVIEW: 2010
Откуда: Moscow
Поблагодарили: 1 раз
Контактная информация:

Re: Реализация Калмана Фильтра в LabView

Сообщение Konstantin Sumenko »

Фильтр калмана... забавный фильтр. Я нашел готовое решение, но его не проверял: http://home.cfl.rr.com/csduffey/Kalman.zip
Irina_Gushchina
beginner
beginner
Сообщения: 26
Зарегистрирован: 22 ноя 2008, 02:29
Версия LabVIEW: 8.5
Контактная информация:

Re: Реализация Калмана Фильтра в LabView

Сообщение Irina_Gushchina »

eg:
1)Функцию Formula Node я уже использовала как раз для того, чтобы просто реализовать все уравнения для Калмана фильтра.
Еще я читала про функцию Code Interface Node-CIN. С помощью нее тоже можно внедрить С код в LabView? Или там есть какие-то заморочки?
2) Еще появился вопрос о том, как можно считывать входные данные из файла. Например, из текстового или из mat- файла. Спасибо заранее

crowbar:
Спасибо Вам! Сейчас все посмотрю
Аватара пользователя
Viktor

Activity Professionalism Tutorials Black
expert
expert
Сообщения: 1408
Зарегистрирован: 23 мар 2008, 10:56
Награды: 4
Версия LabVIEW: 2020
Откуда: Санкт-Петербург
Благодарил (а): 17 раз
Поблагодарили: 3 раза
Контактная информация:

Re: Реализация Калмана Фильтра в LabView

Сообщение Viktor »

Crowbar писал(а):Фильтр калмана... забавный фильтр. Я нашел готовое решение, но его не проверял: http://home.cfl.rr.com/csduffey/Kalman.zip
Похоже эта библиотека для версий :labview: 5 или ниже :dntknw:
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Реализация Калмана Фильтра в LabView

Сообщение Eugen Graf »

Irina_Gushchina писал(а):eg:
1)Функцию Formula Node я уже использовала как раз для того, чтобы просто реализовать все уравнения для Калмана фильтра.
Еще я читала про функцию Code Interface Node-CIN. С помощью нее тоже можно внедрить С код в LabView? Или там есть какие-то заморочки?
2) Еще появился вопрос о том, как можно считывать входные данные из файла. Например, из текстового или из mat- файла. Спасибо заранее

crowbar:
Спасибо Вам! Сейчас все посмотрю
CINом лучше непользоваться, заморочек много и вообще устаревшая это вещь. Если, то лучше сделать DLL.
Считывать данные с файла совсем несложно. Примеры можно найти в нашем форуме. Если возникнет конкретный вопрос по этому поводу, можно будет обсудить в отдельном топике.
Irina_Gushchina
beginner
beginner
Сообщения: 26
Зарегистрирован: 22 ноя 2008, 02:29
Версия LabVIEW: 8.5
Контактная информация:

Re: Реализация Калмана Фильтра в LabView

Сообщение Irina_Gushchina »

eg:
Я что-то не нашла на форуме примеров , как загрузить данные из файлов и создала отдельную тему... :(
К сожалению, никто не пишет. Подскажите, где находятся примеры - я все просмотрю.

И еще вопрос по-поводу MatLab. Код из MatLab также в :labview: можно загрузить ,используя Formula Node?
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Реализация Калмана Фильтра в LabView

Сообщение Eugen Graf »

Ну можно попробовать Matlab Script Node, в нём можно выполнять м-файлы через матлаб. То есть :labview: будет вызывать Matlab, а Matlab будет исполнять свой м-файл и выдавать ответы через этот узел обратно в :labview:

Или можно использовать MathScript Node, в него можно скопировать код из м-файла. Тогда код будет исполнятся в :labview: . В синтаксисе могут быть некоторые различия, но их можно подогнать.

Formula Node работает примерно так же как и MathScript Node, но по-моему больше ориентирован на синтаксис Си.
Irina_Gushchina
beginner
beginner
Сообщения: 26
Зарегистрирован: 22 ноя 2008, 02:29
Версия LabVIEW: 8.5
Контактная информация:

Re: Реализация Калмана Фильтра в LabView

Сообщение Irina_Gushchina »

eg писал(а):Нет, ну я же не говорю всю Си-прогу засунуть в Formula Node. Программа алгоритма ведь состоит из нескольких мат. функций. Вот эти мат. функции, каждую поотдельности засунуть в Formula Node, определить входы и выходы и использовать в основной :labview: программе.
Я так недавно сделал в одном из моих проектов.
Спасибо за ответ, но теперь возникает следующий вопрос: каким образом объявить в блоке Formula Node динамический массив (матрицу) на выходе? Размеры этого массива будут известны только в процессе выполнения кода.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Реализация Калмана Фильтра в LabView

Сообщение Eugen Graf »

Можно например заранее зарезервировать массив максимального размера в :labview: и подать на вход Formula Node, а там этот массив заполнить и выдать на выходе. Так же выдать размер (ведь он уже будет известен). Ну а после выполнения Formula Node можно средствами :labview: обрезать массив на нужный размер.
А может быть и есть варианты попроще, точно не знаю.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Реализация Калмана Фильтра в LabView

Сообщение Borjomy_1 »

Возникла следующая проблема с этим фильтром: Он присутствует в Control Design & Simulation модуле. А если быть точнее - Control Design & Simulation/Control Design/Implementation/CD Discrete Kalman Filter.vi
Проблема в следующем - невозможно (я пока не вижу путей) запустить выполнение двух и более процессов обработки с этим фильтром, с разными параметрами. Функция нереентрантная, мало того - невозможно получить доступ даже к передней панели VI. Может, кто подскажет, как обеспечить выполнение двух нереентрантных экземпляров :vi: ?
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: Реализация Калмана Фильтра в LabView

Сообщение IvanLis »

Borjomy_1 писал(а):Может, кто подскажет, как обеспечить выполнение двух нереентрантных экземпляров :vi: ?
Если внутри не используются другие "зависимые" библиотеки и функции, то можно попробовать создать копию :vi: с другим именем и использовать для работы в другом процессе.

Я как-то делал два экземпляра DLL, что бы запустить две "зависимых" :vi: .
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Реализация Калмана Фильтра в LabView

Сообщение Borjomy_1 »

Если внутри не используются другие "зависимые" библиотеки и функции, то можно попробовать создать копию :vi: с другим именем
Все-бы ничего, но!
невозможно получить доступ даже к передней панели VI
И VI отсутствует Hierarchy, а также в Browse Relationships/Unopened SubVIs
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Обработка сигнала»