Просмотр полной версии : Проблема точных вычислений
Anatol_rus
02.03.2009, 15:50
Очень нужна точность до 10^(-15) - 10^(-16),наилучший вариант 10^(-20),
ни кто не знает как добиться такой точности???А то без нее ни че не выйдет,если есть способы обойти эту проблему или еще что-то отпишитесь буду благодарен)):D
Chupakabra
02.03.2009, 16:48
Может LREAL ?
Anatol_rus
02.03.2009, 22:05
Может LREAL ?
Он не работает в контроллере так что нет смысла его использовать:mad:
Сергей71
03.03.2009, 08:58
10^(-15) - 10^(-16),наилучший вариант 10^(-20)
это числа с 15-20 разрядами, можно программно создать целое число с таким разрядом (пример array) и сделать ФБ для присвоения и вычисления мат. функций над этими числами (поразрядное сложение вычитание и тп. как в школе на тетрадке во 2 класе).
Anatol_rus
03.03.2009, 09:36
это числа с 15-20 разрядами, можно программно создать целое число с таким разрядом (пример array) и сделать ФБ для присвоения и вычисления мат. функций над этими числами (поразрядное сложение вычитание и тп. как в школе на тетрадке во 2 класе).
Я об этом тоже думал,ет уже извращенство:D :D :D
Этой среде программирования ой как не хватает динамических массивов и и повышенной точности вычисления
Chupakabra
03.03.2009, 10:33
Он не работает в контроллере так что нет смысла его использовать:mad:
Этой среде программирования ой как не хватает динамических массивов и и повышенной точности вычисления
В среде-то поддержка есть (LREAL), нет у конкретного таргета.
Нашел тут одну библиотеку (от другого производителя), где описано 64bit-ное целое и безнаковое числа и базисные мат. операции над ними.
TYPE T_LARGE_INTEGER :
(* 64 bit signed integer *)
STRUCT
dwLowPart : DWORD; (* least significant 32 bits (2's-complement) *)
dwHighPart : DWORD; (* most significant 32 bits *)
END_STRUCT
END_TYPE
TYPE T_ULARGE_INTEGER :
STRUCT
dwLowPart : DWORD;
dwHighPart : DWORD;
END_STRUCT
END_TYPE
Филоненко Владислав
03.03.2009, 11:59
А какой контроллер? ПЛК1хх поддерживают LREAL.
Да и для чего нужна такая точность? Где датчики и исполнительные устройства с такой точностью?
Anatol_rus
03.03.2009, 13:56
А какой контроллер? ПЛК1хх поддерживают LREAL.
Да и для чего нужна такая точность? Где датчики и исполнительные устройства с такой точностью?
ПЛК 150 У-М установлено эксперементально не поддерживает таргет версии 2.02
Точность нужна для вычисления корней полинома 14-ой степени с последующим построением на оставшихся устойчивых корнях динамического регулятора 2 -го порядка
Филоненко Владислав
03.03.2009, 15:33
Оно не работает или точность не та?
Anatol_rus
03.03.2009, 16:22
Оно не работает или точность не та?
Точность не та(((,особенно если работам с большими числами более 10^8,и при крайне маленьких от 10^(-14)
А как не странно на эмуляторе пока регулятор строится причем резница с нужным 3-4 знак после запятой,но после введения больших чисел разваливается из-за точности:( :( :(
Филоненко Владислав
03.03.2009, 22:26
Так на эмуляторе не точно или в ПЛК?
Мы на точность стандартную библиотеку C не проверяли. :) Поэтому и вопросы...
Малышев Олег
04.03.2009, 08:13
Что регулируете то?
Вам точно нужна настройка регулятора на ПЛК - может вынести ее на ПК?
Каковы средние tau,t1,t2 ?
Chupakabra
04.03.2009, 11:07
Anatol_rus, интересно посмотреть (формулы и задачу), где фигурируют такие, очень мальенькие величины.
Anatol_rus
04.03.2009, 23:24
Anatol_rus, интересно посмотреть (формулы и задачу), где фигурируют такие, очень мальенькие величины.
Возьмите любой плолином 14 порядка нормированного по первому числу у вы поймете откуда такие малые числа:cool:
Филоненко Владислав
05.03.2009, 10:31
Можно взять и полином 500 порядка. А реально какая задача? Откуда полином такой взялся?
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot