дифференцирование графика
-
- interested
- Сообщения: 7
- Зарегистрирован: 09 июл 2013, 22:06
- Версия LabVIEW: 8.2
- Контактная информация:
дифференцирование графика
Здравствуйте!
Помогите, пожалуйста, сделать следующее:
у меня есть точки (X ,Y) 10 штук, например. Мне нужно по этим точкам построить график, найти его производную и нарисовать в виде графика.
Помогите, пожалуйста, сделать следующее:
у меня есть точки (X ,Y) 10 штук, например. Мне нужно по этим точкам построить график, найти его производную и нарисовать в виде графика.
Re: дифференцирование графика
Вспоминайте геометрический смысл производной - берите две соседние точки (Xi,Yi и Xi+1,Yi+1), найдите разности dY=Yi+1-Yi и dX=Xi+1-Xi, по результатам находите dY/dX это и будет производная. Из ваших 10 исходных точек, получится 9 точек с производными. График и цикл думаю разберетесь как получить
-
- user
- Сообщения: 73
- Зарегистрирован: 14 апр 2014, 21:09
- Версия LabVIEW: 2015
- Откуда: Санкт-Петербург
Re: дифференцирование графика
Вот два примера - вариант1 - попроще, вариант 2 -поинтересней.
В обоих вариантах решается классическая задача: скорость = путь/время.
P.S. При сохранении в версии 8.2 у меня выскакивают предупреждения, не знаю, сможете ли Вы открыть у себя программу...
Поэтому дополнительно выкладываю сканы
В обоих вариантах решается классическая задача: скорость = путь/время.
P.S. При сохранении в версии 8.2 у меня выскакивают предупреждения, не знаю, сможете ли Вы открыть у себя программу...
Поэтому дополнительно выкладываю сканы
-
- user
- Сообщения: 81
- Зарегистрирован: 17 ноя 2015, 11:57
- Версия LabVIEW: 12
- Благодарил (а): 4 раза
- Контактная информация:
Re: дифференцирование графика
Всем привет! Поставил себе задачку написать просмотрщик .dat файлов с ВАХами. ВАХи строит, а вот производную как-то по-дурацки... производную считал также как советовал bartex. Есть есть какие идеи или хотя бы догадки, буду рад услышать. Спасибо!
P.S. в приложении картинка дифференциального сопротивления (производной ВАХ) построенная по простейшему алгоритму, предложенному выше, и по алгоритму Origin'a (не знаю какому).
P.S. в приложении картинка дифференциального сопротивления (производной ВАХ) построенная по простейшему алгоритму, предложенному выше, и по алгоритму Origin'a (не знаю какому).
-
- user
- Сообщения: 81
- Зарегистрирован: 17 ноя 2015, 11:57
- Версия LabVIEW: 12
- Благодарил (а): 4 раза
- Контактная информация:
-
- user
- Сообщения: 81
- Зарегистрирован: 17 ноя 2015, 11:57
- Версия LabVIEW: 12
- Благодарил (а): 4 раза
- Контактная информация:
Re: дифференцирование графика
ВАХа пишется так: свипирую ток 0...Imax...0...-Imax...0. Если взять dat файл и вырезать все минуса + оставить только проход от 0...Imax, производная более-менее берётся. Можно конечно что-то придумать чтобы бить входные данные, но как-то не очень хочется...
-
- user
- Сообщения: 81
- Зарегистрирован: 17 ноя 2015, 11:57
- Версия LabVIEW: 12
- Благодарил (а): 4 раза
- Контактная информация:
Re: дифференцирование графика
А вот txt-файл если кто вдруг решит поразвлекаться...
- Вложения
-
- IVC-#4-40mkm-D2-858-4K.txt
- (115.42 КБ) 172 скачивания
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: дифференцирование графика
Для корректного вычисления производной (численными методами) необходимо чтобы массив (аргумента) был отсортирован по возрастанию (ну и значение функции нужно переставлять тогда).Andrey Petrzhik писал(а):А вот txt-файл если кто вдруг решит поразвлекаться...
У Вас сейчас это условие не выполняется, по этому и косяки такие.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- user
- Сообщения: 81
- Зарегистрирован: 17 ноя 2015, 11:57
- Версия LabVIEW: 12
- Благодарил (а): 4 раза
- Контактная информация:
Re: дифференцирование графика
IvanLis,
т.е. я выстраиваю табличку данных по токам от -Imax до +Imax и каким то образом сохраняю привязку каждого тока к "своему" напряжению... ага, ща подумаю как бы это сделать. Спасибо!
т.е. я выстраиваю табличку данных по токам от -Imax до +Imax и каким то образом сохраняю привязку каждого тока к "своему" напряжению... ага, ща подумаю как бы это сделать. Спасибо!
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: дифференцирование графика
Нет, у вас сейчас напряжение изменяется от 0 -> min -> max -> 0Andrey Petrzhik писал(а):IvanLis,
т.е. я выстраиваю табличку данных по токам от -Imax до +Imax и каким то образом сохраняю привязку каждого тока к "своему" напряжению... ага, ща подумаю как бы это сделать. Спасибо!
Лучше взять участок min..max, проверить на монотонность, и по нему уже строить производную. А Вы сейчас считаете производную от функции имеющей разрывы.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- user
- Сообщения: 81
- Зарегистрирован: 17 ноя 2015, 11:57
- Версия LabVIEW: 12
- Благодарил (а): 4 раза
- Контактная информация:
Re: дифференцирование графика
Ага, да, разумно, так и сделал. Пока что руками. Оставил участок -I...+I. В нуле ещё руками вбил 0 напряжения на всякий случай. Лучше, но кривая сдвинута оказывается... что ещё не так может быть? Приложил iv-rdv.vi - тут всё и происходит, а потом передаётся в iv_ascii_tab_viewer.vi. 12я labview. Также приложил скомпилированный вариант, который откроет .dat файл по щелчку, если его в windows ассоциировать с программкой.
- Вложения
-
- IVC-#4-40mkm-D2-858-4Kcuted.dat.txt
- (57.69 КБ) 152 скачивания
-
- iv_ascii_tab_viewer.vi
- (116.23 КБ) 174 скачивания
-
- iv-rdv.vi
- (113.71 КБ) 165 скачиваний
-
- iv_ascii_tab_viewer.exe.txt
- (515.5 КБ) 160 скачиваний
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: дифференцирование графика
Возможно Вы где-то еще накосячили, у меня все нормально получается, хотя я "0" не добавлял. Наверняка он как раз и оказался лишним.Andrey Petrzhik писал(а):Ага, да, разумно, так и сделал. Пока что руками. Оставил участок -I...+I. В нуле ещё руками вбил 0 напряжения на всякий случай. Лучше, но кривая сдвинута оказывается... что ещё не так может быть?
Искать ошибки в Вашем коде уже нет возможности.
Посмотрите, как у меня реализовано. ----------------
Я что-то глянул.... не производная у нас получилась.
Производная, это отношение изменения функции к изменению аргумента: df/dx
Тогда должно получиться нечто: Либо исходная зависимость примет вид:
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- user
- Сообщения: 81
- Зарегистрирован: 17 ноя 2015, 11:57
- Версия LabVIEW: 12
- Благодарил (а): 4 раза
- Контактная информация:
Re: дифференцирование графика
О сколько всего... класс. У вас как-то не так сделано как у меня... пока не понял, но постараюсь разобраться. По поводу производная - не производная... У меня есть 2 колонки: нулевая это напряжение, а первая - это ток. Ток задаю (аргумент), напряжение измеряю (функция). Чтобы узнать сопротивление я делю напряжение на ток. Также могу поделить ток на напряжение, и получу проводимость. Потом уже эту проводимость переверну... сходу не соображу будет ли разница.
Да, и у вас тоже кривая вышла смещенная, а в Origin она получается практически идеально симметричная... как так не пойму... хоть я там строил по всем имеющимся в файле-исходнике точкам (не вырезал данные).
В любом случае ещё покопаю в этом направлении и отпишусь чего выйдет. dat файлов намерил куча - все фиг построишь в сторонней программе...
Спасибо за помощь!
Да, и у вас тоже кривая вышла смещенная, а в Origin она получается практически идеально симметричная... как так не пойму... хоть я там строил по всем имеющимся в файле-исходнике точкам (не вырезал данные).
В любом случае ещё покопаю в этом направлении и отпишусь чего выйдет. dat файлов намерил куча - все фиг построишь в сторонней программе...
Спасибо за помощь!
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 87 раз
Re: дифференцирование графика
Наверняка там используется аппарат интерполяции, аппроксимации, ресемплинга.Andrey Petrzhik писал(а):Да, и у вас тоже кривая вышла смещенная, а в Origin она получается практически идеально симметричная... как так не пойму... хоть я там строил по всем имеющимся в файле-исходнике точкам (не вырезал данные).
В любом случае ещё покопаю в этом направлении и отпишусь чего выйдет. dat файлов намерил куча - все фиг построишь в сторонней программе..
По этому и кривые гладкие получаются.
Но если хотите по честному, то уменьшайте шаг при измерении характеристики.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
- user
- Сообщения: 81
- Зарегистрирован: 17 ноя 2015, 11:57
- Версия LabVIEW: 12
- Благодарил (а): 4 раза
- Контактная информация:
Re: дифференцирование графика
Пока оставил как есть, хоть у меня и немного по-другому строит, но пока сойдёт. Алгоритм самый простейший (Вар. 1 bartex)... я скачал его и даже скопипастил себе на всякий случай... программа работает также, т.е. вроде как я не облажался;)
А вот теперь встала задачка сортировать данные автоматом. Поставил себе OpenG, и ну думаю она сама всё отсортирует... так вот не сортирует. Знатоки, подскажите пож что не так? Когда сортирую по 2й (от нуля считаем) колонке, она строит, а по 1й не строит. Неужели отрицательные значения не понимает?
А вот теперь встала задачка сортировать данные автоматом. Поставил себе OpenG, и ну думаю она сама всё отсортирует... так вот не сортирует. Знатоки, подскажите пож что не так? Когда сортирую по 2й (от нуля считаем) колонке, она строит, а по 1й не строит. Неужели отрицательные значения не понимает?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение