_pv 44 27 марта, 2019 Опубликовано 27 марта, 2019 · Жалоба 2 minutes ago, jcxz said: И сколько математических операций нужно для этого? умножение + сложение на каждую степень полинома. нахождение коэффициентов по заданным точкам - решить методом Гаусса квадратную матрицу с размером степени полинома. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khlenar 5 28 марта, 2019 Опубликовано 28 марта, 2019 · Жалоба В 27.03.2019 в 10:21, jcxz сказал: ...Тут все на PIC-ах с 1К флеша программируют? Взять >= 64 интервала - и имхо будет вполне достаточно почти для любого применения. На PICах тоже. 10 интервалов, а лучше меньше- это за тем, что бы оперативно можно было корректировать на самом контроллере, сохранять во флешь и цеплять разные терморезисторы. Но при большем интервале от точки до точки путем линейной интерполяции получается большая погрешность. При большом количестве интервалов, замучаешься ловить и корректировать. А так, памяти у контроллера хватает. И есть онлайны калькуляторы для заполнения таблиц с различным шагом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AI7 0 9 апреля, 2019 Опубликовано 9 апреля, 2019 (изменено) · Жалоба On 3/29/2019 at 12:13 AM, khlenar said: 10 интервалов, а лучше меньше- это за тем, что бы оперативно можно было корректировать на самом контроллере, сохранять во флешь и цеплять разные терморезисторы. Но при большем интервале от точки до точки путем линейной интерполяции получается большая погрешность. При большом количестве интервалов, замучаешься ловить и корректировать. Разве не получается коррекцию для разных терморезисторов проводить с помощью одного (или двух) параметров, например, умножающий коэффициент? В этом случае можно использовать одну стандартную подпрограмму расчёта деления с разбиением на количество кусков, обеспечивающих требуемую точность. Изменено 9 апреля, 2019 пользователем AI7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khlenar 5 11 апреля, 2019 Опубликовано 11 апреля, 2019 · Жалоба Пока сделал массив коэффициентов. Можно по двум точкам сопротивлений например при 25 и 100 гр.С. и заполнить массив с помощью формулы с каким то шагом. Это потом... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tanya 4 11 апреля, 2019 Опубликовано 11 апреля, 2019 · Жалоба Беня говорит мало, но он говорит смачно. Он говорит мало, но хочется, чтобы он сказал еще что-нибудь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AI7 0 18 апреля, 2019 Опубликовано 18 апреля, 2019 (изменено) · Жалоба On 4/11/2019 at 8:15 PM, khlenar said: Пока сделал массив коэффициентов. Можно по двум точкам сопротивлений например при 25 и 100 гр.С. и заполнить массив с помощью формулы с каким то шагом. Это потом... Как я понял, вы для каждой новой термопары или при перекалибровке будете рассчитывать новый массив – это ужасно. Я бы пошёл по другому пути. С терморезисторами не работал, насколько понял из интернета, там экспоненциальная зависимость от температуры. У экспоненты всего два параметра (множитель и показатель экспоненты), вот их можно определить по двум точкам температуры (у вас 25 и 100 градусов). Ну а для расчёта экспоненты или логарифма использовать стандартную и единую программу. В нормальном компиляторе должна быть готовая программа для нелинейных функций, думаю, в хорошем компиляторе должны быть готовые массивы для этой программы для расчёта стандартных функций с разными точностями. Скажем, у логарифма (аргумент – 2 байта, точность – 0,5 %, диапазон изменения аргумента от 1 до 64) понадобилось 17 точек разбиения. Изменено 18 апреля, 2019 пользователем AI7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khlenar 5 19 апреля, 2019 Опубликовано 19 апреля, 2019 · Жалоба 12 часов назад, AI7 сказал: Как я понял, вы для каждой новой термопары или при перекалибровке будете рассчитывать новый массив – это ужасно Почему ужасно? Для терморезисторов фиксируешь значения в 2 точках температуры и запускаешь калибровку. Контроллер автоматом вычисляет таблицу коэффициентов и сохраняет во флешь. А для термопары обнуляешь, скажем пр 0 гр. и корректируешь коэффициент усиления при 100 гр. В 11.04.2019 в 21:14, Tanya сказал: Беня говорит мало, но он говорит смачно. Он говорит мало, но хочется, чтобы он сказал еще что-нибудь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tanya 4 19 апреля, 2019 Опубликовано 19 апреля, 2019 · Жалоба Похоже, что намек не дошел до адресата. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AI7 0 22 апреля, 2019 Опубликовано 22 апреля, 2019 (изменено) · Жалоба On 4/19/2019 at 6:53 AM, khlenar said: Почему ужасно? Для терморезисторов фиксируешь значения в 2 точках температуры и запускаешь калибровку. Контроллер автоматом вычисляет таблицу коэффициентов и сохраняет во флешь. А для термопары обнуляешь, скажем пр 0 гр. и корректируешь коэффициент усиления при 100 гр. В моём варианте рассчитываются всего два коэффициента, которые запоминаются в EEPROM. А для расчета нелинейной функции подключается стандартная программа, обеспечивающая оптимальным образом гарантированную точность во всём диапазоне аргументов. Получается вроде как просто и легко. В вашем варианте потребуется расчёт массы коэффициентов, для 17 отрезков при линейной аппроксимации получается около 50 штук. Надо решать проблемы, как разбивать на отрезки нелинейную функцию, как обеспечить точность при аппроксимации. Изменено 22 апреля, 2019 пользователем AI7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться