Страница 326 из 387 ПерваяПервая ... 226276316324325326327328336376 ... ПоследняяПоследняя
Показано с 3,251 по 3,260 из 4610

Тема: разные вопросы новичка

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    1,966

    По умолчанию

    Цитата Сообщение от Netadmin Посмотреть сообщение
    В общем проверил. работает ровно до 60 см. дальше пошли расхождения с тарировочной таблицей в большую сторону до 500литров ! или я что то не учел
    Так, правильно, формулу получили только до уровня 60 см.
    Пробовал я всю таблицу загнать в эксель - точность получается до 2%, но больше литра. Поэтому, как, вариант, разбивать таблицу на части (например 35-60, 60-85, 85-104, 104-123 и 123-140) и для каждой части высчитывать свою формулу

  2. #2

    По умолчанию

    Цитата Сообщение от Netadmin Посмотреть сообщение
    В общем проверил. работает ровно до 60 см. дальше пошли расхождения с тарировочной таблицей в большую сторону до 500литров ! или я что то не учел
    Netadmin,
    меня интересовала принципиальная возможность решения. Сил хватило на копирование с фотографии таблицы 25 пар значений (дальше "рука бойца набирать устала").

    Но все данные, методики, примеры кода я привёл, чтобы Вы дальше смогли по аналогии продолжить.

    Для завершения работы я бы попробовал сначала получить график табличной зависимости в Exel (или Calc из LibOo) - просто посмотреть плавность.

    Далее, попробовал при помощи МНК получить полином для всего диапазона из 100 пар чисел, проверил его в Exel. Если результаты не устроили бы - разделил бы таблицу на несколько участков и при помощи МНК для каждого нашёл бы полином.
    Т.к. МНК это не интерполяция, а аппроксимация, то на стыках диапазонов потребовалось бы проверить непрерывность.

    Ещё можно попробовать увеличить полином до третьей степени, т.к. объём конуса зависит от куба высоты (уровня). На диапазоне 35-60 это не проявлялось заметно, но до 140 может оказаться существенным.

    Есть ещё такая штука, как интерполяция кубическими сплайнами - как раз получается серия кусочных функций (полиномов) с гладкими "стыками". Можете попробовать. Сколько помню, формулы были несложные, только у меня от ВУЗовских лабораторок исходники не сохранились. Но интернет всё порешает.

    Вы уж простите старика, мне лень в выходной день несколько часов сидеть и подгонять результаты экспериментов по разделению диапазонов, по проверке повышения степени полинома.

    Собственно, больше нечего добавить - алгоритмическое решение есть, остаётся только вычислить коэффициенты для формул. Что будет не получаться - спрашивайте.

    Хотя kondor3000 уже предложил решение при помощи кусочно-линейной интерполяции.
    https://owen.ru/forum/showthread.php...l=1#post451105
    Раз оно работает - применяйте.

  3. #3

    По умолчанию

    Цитата Сообщение от FPavel Посмотреть сообщение
    Netadmin,
    меня интересовала принципиальная возможность решения. Сил хватило на копирование с фотографии таблицы 25 пар значений (дальше "рука бойца набирать устала").

    Но все данные, методики, примеры кода я привёл, чтобы Вы дальше смогли по аналогии продолжить.

    Для завершения работы я бы попробовал сначала получить график табличной зависимости в Exel (или Calc из LibOo) - просто посмотреть плавность.

    Далее, попробовал при помощи МНК получить полином для всего диапазона из 100 пар чисел, проверил его в Exel. Если результаты не устроили бы - разделил бы таблицу на несколько участков и при помощи МНК для каждого нашёл бы полином.
    Т.к. МНК это не интерполяция, а аппроксимация, то на стыках диапазонов потребовалось бы проверить непрерывность.

    Ещё можно попробовать увеличить полином до третьей степени, т.к. объём конуса зависит от куба высоты (уровня). На диапазоне 35-60 это не проявлялось заметно, но до 140 может оказаться существенным.

    Есть ещё такая штука, как интерполяция кубическими сплайнами - как раз получается серия кусочных функций (полиномов) с гладкими "стыками". Можете попробовать. Сколько помню, формулы были несложные, только у меня от ВУЗовских лабораторок исходники не сохранились. Но интернет всё порешает.

    Вы уж простите старика, мне лень в выходной день несколько часов сидеть и подгонять результаты экспериментов по разделению диапазонов, по проверке повышения степени полинома.

    Собственно, больше нечего добавить - алгоритмическое решение есть, остаётся только вычислить коэффициенты для формул. Что будет не получаться - спрашивайте.

    Хотя kondor3000 уже предложил решение при помощи кусочно-линейной интерполяции.
    https://owen.ru/forum/showthread.php...l=1#post451105
    Раз оно работает - применяйте.
    Спасибо. за труды взял вчера вариант kondor3000 уже поздно было разбираться. цилиндр рассчитал на ФБ сколхозил. работает. как надо. будет время попробую конечно разобраться в вашем последнем варианте. V2

  4. #4
    Пользователь Аватар для АРТ.Кар 64
    Регистрация
    17.07.2023
    Адрес
    на деревне у дедушки
    Сообщений
    363

    По умолчанию

    https://disk.yandex.ru/d/hUyNm800NC2x5g

    Всё что говорится сейчас было давно уже опробовано.
    Без высшей математики все прекрасно знали ,что ? чего ? и сколько ?(за это "дадут с учётом смягчающих ")
    Однако расчёты были весьма точные.
    Вот примерно такая же емкость высотой 35-60 см. Это ,конечно, шутка. Но делается всё как-то гораздо проще ..
    На уровне задачек для подготовки к ЕГЭ.

    и этого товарищу не надо, в смысле, сверхвысокой точности, коль он измеритель уровня применил с точностью плюс-минус лапоть

    Ну просто замечательно сказано..
    Последний раз редактировалось АРТ.Кар 64; 17.11.2024 в 01:12.

  5. #5
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,128

    По умолчанию

    Netadmin если в емкости всегда одна жидкость (одни характеристики), то работать будет.

  6. #6
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    9,512

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Netadmin если в емкости всегда одна жидкость (одни характеристики), то работать будет.
    Так у них поплавковый датчик уровня с выходом 4-20мА, а не датчик избыточного давления, в смысле, плотность жидкости практически не будет влиять на показания датчика(сигнал на выходе)!
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  7. #7
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,128

    По умолчанию

    https://owen.ru/forum/showthread.php...l=1#post451065 ну или чуть ниже, где в массив данные записать, не помогает ?

  8. #8

    По умолчанию

    Цитата Сообщение от Netadmin Посмотреть сообщение
    В общем проверил. работает ровно до 60 см. дальше пошли расхождения с тарировочной таблицей в большую сторону до 500литров ! или я что то не учел
    Да ладно, загнал всю таблицу в массив через одну, вместо 108 точек получилось 54 переменных в массиве, считает правильно по таблице.1 Таблица.jpg с точностью 0.1%
    Так как в таблице 35 см это 0, то вычел эти 35 см, только для проверки соответствия таблице. В реале вычитание можно убрать.
    Таблица выложена только до 141 см, дальше массив можно продолжить. Достаточно 2-6 точек.
    Вложения Вложения
    Последний раз редактировалось kondor3000; 17.11.2024 в 12:43.

  9. #9
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,128

    По умолчанию

    У меня по сути это наверное то же, что и предлагает kondor3000 при помощи кусочно-линейной интерполяции
    На примере датчика топлива в баке генератора с неправильной формой. з.ы. это скрипт C#
    Код:
    public double Benzscale (double inp)
    {
    double res = 0;
    if (inp > 0 & inp < 773) res = Scaler (inp, 53, 773, 0, 5);
    else if (inp > 773 & inp < 1468) res = Scaler (inp, 774, 1467, 5, 10);
    else if (inp > 1467 & inp < 2061) res = Scaler (inp, 1468, 2060, 10, 15);
    else if (inp > 2060 & inp < 2452) res = Scaler (inp, 2061, 2451, 15, 20);
    else if (inp > 2451 & inp < 2870) res = Scaler (inp, 2452, 2869, 20, 25);
    else if (inp > 2869 & inp < 3278) res = Scaler (inp, 2870, 3277, 25, 30);
    else if (inp > 3277 & inp < 3700) res = Scaler (inp, 3278, 3699, 30, 35);
    else if (inp > 3699 & inp < 4096) res = Scaler (inp, 3700, 4095, 35, 36);
    return res;
    }
    числа в else if это показания датчика при тарировке, числа в формуле scaler вторые это литраж. Scaler - это наверное то же самое, что и LINEAR в срипте на ST от petera и kondor3000.
    Собственно все проще. Чем меньше диаметр конуса, тем меньше объем нужен для тарировки, так как при таком методе погрешность не накапливается, а сидит внутри каждого диапазона.
    По мере увеличения диаметра конуса, можно увеличивать объем тарировочный, чтобы погрешность не выходила за какой-то диапазон.
    Последний раз редактировалось melky; 18.11.2024 в 08:54.

  10. #10

    По умолчанию

    Набрал все пары от 35 до 140
    Покажу все пары, вдруг кто-то захочет повторить вычисления:

    Код:
    35	0,152
    36	0,160
    37	0,168
    38	0,176
    39	0,184
    40	0,193
    41	0,202
    42	0,211
    43	0,221
    44	0,231
    45	0,241
    46	0,251
    47	0,262
    48	0,273
    49	0,284
    50	0,296
    51	0,307
    52	0,320
    53	0,332
    54	0,345
    55	0,358
    56	0,372
    57	0,385
    58	0,400
    59	0,414
    60	0,429
    61	0,444
    62	0,460
    63	0,476
    64	0,492
    65	0,508
    66	0,525
    67	0,543
    68	0,561
    69	0,579
    70	0,597
    71	0,616
    72	0,635
    73	0,655
    74	0,675
    75	0,696
    76	0,717
    77	0,738
    78	0,760
    79	0,782
    80	0,804
    81	0,827
    82	0,851
    83	0,875
    84	0,899
    85	0,924
    86	0,949
    87	0,975
    88	1,001
    89	1,027
    90	1,054
    91	1,082
    92	1,110
    93	1,138
    94	1,167
    95	1,197
    96	1,227
    97	1,257
    98	1,288
    99	1,319
    100	1,351
    101	1,384
    102	1,417
    103	1,450
    104	1,484
    105	1,519
    106	1,554
    107	1,589
    108	1,625
    109	1,662
    110	1,699
    111	1,737
    112	1,775
    113	1,814
    114	1,854
    115	1,894
    116	1,934
    117	1,975
    118	2,017
    119	2,059
    120	2,102
    121	2,146
    122	2,190
    123	2,235
    124	2,280
    125	2,326
    126	2,372
    127	2,419
    128	2,467
    129	2,516
    130	2,565
    131	2,614
    132	2,664
    133	2,715
    134	2,767
    135	2,819
    136	2,872
    137	2,925
    138	2,980
    139	3,034
    140	3,090


    пропустил через МНК и получил полином третьей степени. Он очень точно вычисляет на всём указанном диапазоне.
    Не знаю, почему так ошибся - вывел зависимость объёма пропорциональную кубу уровня, но решил, что квадратичная зависимость идеально подойдёт.
    Сейчас увеличил степень и всё сошлось.
    Код:
    Функция y(x) имет вид
       y(x)=a[3]*x^3+a[2]*x^2+a[1]*x^1+a[0] ,
       где
            a[3]= 6,7480106322967544E-007
            a[2]= 5,2652074851971609E-005
            a[1]= 1,4053194590600596E-003
            a[0]= 9,4316767126307200E-003
    Но, к слову, если бы "материально не заинтересованный, но просто помогающий другу" Netadmin сразу привёл таблицу в редактируемом виде, то время потраченное на её набор, я потратил бы на обработку.

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

    Будут вопросы - задавайте.

    Во вложении программа с новым полиномом и инструменты расчёта и проверки - программа на Pascal, таблица для Calc (аналог Exel).
    Вложения Вложения
    Последний раз редактировалось FPavel; 18.11.2024 в 12:16.

Страница 326 из 387 ПерваяПервая ... 226276316324325326327328336376 ... ПоследняяПоследняя

Похожие темы

  1. ПЛК 110 - Вопросы новичка?
    от di-s в разделе ПЛК1хх
    Ответов: 21
    Последнее сообщение: 15.04.2025, 16:38
  2. Вопросы новичка!!!
    от sau в разделе ПЛК1хх
    Ответов: 42
    Последнее сообщение: 02.05.2022, 19:57
  3. Вопросы новичка по MasterScada
    от MrNobody в разделе Master SCADA 3
    Ответов: 4
    Последнее сообщение: 04.09.2014, 14:39
  4. Вопросы полного новичка
    от Korion в разделе ПЛК1хх
    Ответов: 11
    Последнее сообщение: 09.02.2010, 10:08
  5. Вопросы новичка по ПЛК
    от Ollegator в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 07.07.2009, 09:29

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •