Обработка нелинейных функций методом приближения или кусочно-линейная аппроксимация

Обработка нелинейных функций методом приближения или Кусочно-линейная аппроксимация

Введение

Иногда возникают ситуации, когда в очередной радиолюбительской (и не только) конструкции необходимо применить нелинейный элемент. Передо мной такая задача возникла, когда я собирал цифровой люксметр из подручных средств. В качестве датчика освещённости был выбран фоторезистор.

При помощи АЦП микроконтроллера мне нужно было замерять напряжение на фоторезисторе и выводить освещенность на экран. А как известно, фоторезистор – это полупроводниковый элемент, который изменяет своё сопротивление в зависимости от величины попадающего на него светового потока. И тут мне не повезло.

Нужный мне для измерения диапазон освещенностей как раз находился на нелинейном участке характеристики этого фоторезистора.  И тут на помощь пришёл метод, который называют “Кусочно линейная аппроксимация”.

Кратко о методе

Аппроксима́ция (от лат. proxima – ближайшая) или приближе́ние — научный метод, состоящий в замене одних объектов другими, в каком-то смысле близкими к исходным, но более простыми.

Название метода говорит само за себя.

Суть его состоит в том, что нелинейную функцию разбивают на несколько участков, каждый из которых заменяют линейной функцией (прямой, соответствующей закону y=kx), максимально приближённой к исходному “кусочку” нелинейной функции.

Понятно, что узнать вторую координату точки линейной функции, зная первую координату, гораздо проще, чем высчитывать то же самое с нелинейной функцией, подчиняющейся непонятно какому закону. 

Если пока что-то непонятно, не пугайтесь. Дальше всё будет разобрано на конкретном примере.

Пример использования метода

На рисунке 1 представлена схема, на которой Rx – некий нелинейный элемент, R1 – постоянный резистор сопротивлением 5 кОм. Напряжение   
Uпит = 5 В.  Предположим, что Rx изменяет своё сопротивление в зависимости от температуры.

Эдакий особенный терморезистор. Нам необходимо измерять температуру от 0 до +110 градусов по шкале Цельсия. Из даташита на терморезистор или экспериментальным путем находим график зависимости сопротивления Rx от температуры.

В нашем случае этот график представлен на рисунке 2.

Видим, что при температуре в 0 градусов сопротивление терморезистора составляет 5000 Ом (5 кОм), а при температуре +110 градусов – около 250 Ом.  Если посмотреть на рисунок 1, то видно, что Rx и R1 включены последовательно и образуют делитель напряжения. Получается, что при температуре в 0 градусов напряжение Uвых будет равно 2.5 В (т.к. Rx будет равно R1). А при температуре в 110 градусов,

напряжение Uвых = Uпит * ( R1 / (R1+Rx) ) = 5 * ( 5000 / (5000 + 250) ) = 4.76 В. 

Теперь наш график нужно разбить на несколько участков и на этих участках кусочки нелинейной функции нужно заменить линейными. Как это будет выглядеть показано на рисунке 3.

В результате разбивки графика получилось 4 участка – А, В, С, D. На рисунке справа для каждой получившейся крайней точки рассчитано значение сопротивления Rx (по графику) и Uвых (по формуле приведённой выше).

Теперь алгоритм программы, которая будет обрабатывать наше измеренное значение и переводить его из вольт в градусы, будет таким:
1. Определить, к какому из четырех участков принадлежит полученное значение.
2. Исходя из п.1 выбрать формулу для расчёта температуры и выполнить расчёт.
3. Вывести результат вычислений

Определение формул для каждого участка

Каждый из участков характеризуется наклоном линии (S). Кстати говоря, на данном этапе вместо значений сопротивления Rx по оси Y можно подставить напряжения, которые мы посчитали для каждой общей точки (2.5, 2.8, 4.0, 4.

8) или даже сразу значения АЦП. Поскольку АЦП выдает результат не в Вольтах, а в “условных единицах” (для 10-битного АЦП – от 0 до 1023), то нужно будет при помощи пропорции пересчитать напряжения Uвых в “условные единицы” АЦП.

В данном примере я покажу расчёт в вольтах.

И так. Чтобы вычислить наклон линии на участке нужно разделить приращение по оси X на приращение по оси Y. Поясняю. Для участка А приращение по оси X = 25 – 0 = 25, а приращение по оси Y = 2.5 – 2.8 = – 0.3 (это в вольтах). Таким образом, наклон линии участка А равен:

S (A) = (25-0) / (2.5 – 2.8) = 25 / – 0.3 = – 83.3

Предположим, результат измерения Uвых у нас составило 2.61 В. Чтобы вычислить температуру используем формулу:

t = ( (Uвых – Umin) * S) + dX;

dX – это смещение участка относительно нуля по оси X. Для участка А оно равно 0, потому что участок А начинается с 0. Для участка В оно равно 25, потому что участок В начинается с 25. Для участка D dX=90.

Umin – это напряжение нижней точки данного участка. Для А – 2.5 В, для В – 3.6 В, для С – 4.0 и т.д.

Таким образом, температура при напряжении Uвых = 2.61 В равна: t = ( (2.61 – 2.8) * (-83.3) ) + 0 = 15.82 С.

Для участка В: Наклон: S (B) = (50 – 25) / (2.8 – 3.6) = 25 / – 0.8 = – 31.25 Смещение: dX (B) = 25

Нижняя точка: Umin (B) = 3.6 В

Если замер Uвых показал, 3.15 В, то t = ( (3.15 – 3.6) * (-31.25) ) + 25 = 39.0 С.

Таким же образом вычисляются данные для остальных участков.

Основные формулы

S = (X2 – X1) / (Y2 – Y1);

t = ( (Uвых – Umin) * S) + dX;

Об алгоритме программы

После замера АЦП и получения значения напряжения Uвых, программа должна определиться, как какому участку относится данное значение. Проще всего это реализовать при помощи условного оператора if. Выглядеть это будет примерно так:

if (Uвых >= 2.5 & Uвых  2.8 & Uвых = 3.6 & Uвых

Вывод

Таким образом, получаем довольно эффективный метод для обработки нелинейных функций. При определенной сноровке применение этого метода занимает мало времени.

Метод обеспечивает приемлемую точность для большинства любительских конструкций.

Занимает намного меньше Flash-памяти, по сравнению, к примеру, если бы мы вручную высчитывали 1023 значения и заносили их в массив (создавали таблицу значений в памяти МК).

Источник: http://cxem.net/beginner/beginner146.php

Линейная аппроксимация

 

При обработке экспериментальных данных часто возникает необходимость аппроксимировать их линейной функцией.

Аппроксимацией (приближением) функции f(x) называется нахождение такой функции (аппроксимирующей функции) g(x), которая была бы близка заданной. Критерии близости функций могут быть различные.

В случае если приближение строится на дискретном наборе точек, аппроксимацию называют точечной или дискретной.

В случае если аппроксимация проводится на непрерывном множестве точек (отрезке), аппроксимация называется непрерывной или интегральной. Примером такой аппроксимации может служить разложение функции в ряд Тейлора, то есть замена некоторой функции степенным многочленом.

Наиболее часто встречающим видом точечной аппроксимации является интерполяция – нахождение промежуточных значений величины по имеющемуся дискретному набору известных значений.

Пусть задан дискретный набор точек, называемых узлами интерполяции, а также значения функции в этих точках. Требуется построить функцию g(x), проходящую наиболее близко ко всем заданным узлам. Таким образом, критерием близости функции является g(xi)=yi.

В качестве функции g(x) обычно выбирается полином, который называют интерполяционным полиномом.

В случае если полином един для всей области интерполяции, говорят, что интерполяция глобальная.

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

Найдя интерполяционный полином, мы можем вычислить значения функции между узлами, а также определить значение функции даже за пределами заданного интервала (провести экстраполяцию).

Аппроксимация линейной функцией

Любая линейная функция может быть записана уравнением
Аппроксимация заключается в отыскании коэффициентов a и b уравнения таких, чтобы все экспериментальные точки лежали наиболее близко к аппроксимирующей прямой. С этой целью чаще всего используется метод наименьших квадратов (МНК), суть которого заключается в следующем: сумма квадратов отклонений значения точки от аппроксимирующей точки принимает минимальное значение:

Решение поставленной задачи сводится к нахождению экстремума указанной функции двух переменных. С этой целью находим частные производные функции функции по коэффициентам a и b и приравниваем их к нулю.Решаем полученную систему уравненийОпределяем значения коэффициентовДля вычисления коэффициентов необходимо найти следующие составляющие:Тогда значения коэффициентов будут определены как

Пример реализации

Для примера реализации воспользуемся набором значений, полученных в соответствии с уравнением прямой

y = 8 · x — 3

Рассчитаем указанные коэффициенты по методу наименьших квадратов. Результат сохраняем в форме двумерного массива, состоящего из 2 столбцов.

При следующем запуске программы добавим случайную составляющую к указанному набору значений и снова рассчитаем коэффициенты.

Реализация на Си

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647

48

#define _CRT_SECURE_NO_WARNINGS
#include 
#include 
// Задание начального набора значений
double ** getData(int n) {
  double **f;
  f = new double*[2];
  f[0] = new double[n];
  f[1] = new double[n];
  for (int i = 0; i

Источник: https://prog-cpp.ru/mnk/

Большая Энциклопедия Нефти и Газа

Cтраница 3

Прикусочно-линейной аппроксимации кривая в промежутке между двумя известными значениями заменяется отрезком прямой линии. Погрешность при кусочно-линейной аппроксимации будет наибольшей на тех участках изменения функции, где модуль второй производной достигает наибольшего значения.  [31]

Прикусочно-линейной аппроксимации, очевидно, погрешность будет наибольшей в точке максимума второй производной. Предполагаем симметрию интервала дискретизации по отношению к этой точке.  [32]

Методкусочно-линейной аппроксимации заключается в замене заданной нелинейной характеристики ломаной прямой с одной или несколькими точками излома.

Такая замена нелинейной характеристики позволяет вести расчет аналитически с помощью линейных уравнений.

Для прямолинейных участков записываются линейные уравнения, решения которых припасовываются: электрические величины для конца участка приравниваются соответствующим величинам для начала следующего участка.  [33]

Недостаткомкусочно-линейной аппроксимации является ограниченность диапазона применения получаемых выражений, поэтому для многих нелинейных элементов, в частности полупроводниковых диодов и электронных ламп, их вольт-амперные характеристики аппроксимируются с помощью степенных и показательных функций. Так как графики этих функций монотонны и не имеют особых точек, то возникают определенные трудности при выяснении обстоятельства, действительно ли конкретная вольт-амперная характеристика представляет собой степенную функцию, а не показательную или какую-либо другую.  [34]

Кусочно-линейная аппроксимация.  [35]

Задачакусочно-линейной аппроксимации сводится к аппроксимации заданной функции / ( X) на участке Х / 1 – Xj полиномом первой степени, погрешность которой определяется остаточным членом интерполяционной формулы.  [36]

Прикусочно-линейной аппроксимации расчет усложняется тем, что при переходе от одного участка прямой к другой приходится для дифференциального уравнения с новыми значениями коэффицч-ентов определять вновь начальные условия и постоянные интегрирования. При наличии колебательного процесса переходы с одного участка на другой повторяются, что усложняет расчет.  [37]

Использованиекусочно-линейной аппроксимации физически означает, что нелинейная задача заменяется сопряженной, в простейшем случае – с одной заранее неизвестной границей, отделяющей проводящую область дуги от непроводящей. Решение в каждой из областей, процессы в которых теперь описываются линеаризованными уравнениями, проводится методом разделения переменных.  [38]

Метод трех ординат.  [39]

Методкусочно-линейной аппроксимации заключается в замене заданной нелинейной характеристики ломаной прямой с одной или несколькими точками излома.

 [40]

Методкусочно-линейной аппроксимации при решении задач моделирования и восстановления измерительных сигналов занимает особое положение.

Сравнительно простая процедура аппроксимации, легко реализуемая современными средствами дискретной микроэлектроники, высокая точность, приемлемая для большинства операций по функциональной обработке измерительных сигналов, делают его универсальным, пригодным для обработки всего многообразия данных на объектах добычи, транспорта и хранения нефтепродуктов. Несмотря на универсальность метода, единство вычислительных процедур открывает широкие пути для глубокой унификации функциональных блоков ИИС при небольшой аппаратурной избыточности. Принято считать, что узкая специализация ограничивает область применения аппаратуры, уменьшает серийность ее выпуска, а более широкая универсальность приводит к излишней затрате электронных средств, к схемному усложнению и потере, как следствие, надежности. Как показали исследования и опыт построения локальных информационно-измерительных устройств со счетно-решающими блоками, реализующими метод цифровой кусочно-линейной аппроксимации, эта проблема в указанном смысле упрощается: оптимальная специализация может быть достигнута универсальными средствами при анализе и компоновке вычислительных задач в определенные группы.  [41]

Прикусочно-линейной аппроксимации кривая в промежутке между двумя известными значениями заменяется отрезком прямой. Погрешность при этом будет наибольшей на тех участках изменения функции, где вторая производная достигает наибольшего значения.  [42]

Прикусочно-линейной аппроксимации функции диодным преобразователем графически или аналитически, исходя из заданной погрешности, находят количество линейных отрезков аппроксимации и нумеруют их.

Затем определяют значения аргументов и функции для точек – узлов аппроксимации – и пересчитывают их в напряжения. Устанавливают номера отрезков и знаки входного напряжения для них.

Эти данные сводят в таблицу, по которой в дальнейшем и производят настройку и проверку элементов.  [43]

Прикусочно-линейной аппроксимации функции диодным преобразователем графически или аналитически, исходя из заданной погрешности, находят количество линейных отрезков аппроксимации и нумеруют их.

Затем определяют значения аргументов и функции для точек – узлов аппроксимации и пересчитывают их в напряжения. Устанавливают номера отрезков и знаки входного напряжения для них.

Эти данные сводят в таблицу, по которой в дальнейшем и производят настройку и проверку элементов.  [44]

Линейная аппроксимация анодной характеристики диода.  [45]

Страницы:      1    2    3    4

Источник: http://www.ngpedia.ru/id086396p3.html

Аппроксимация нелинейных характеристик

Источник: https://poisk-ru.ru/s19950t3.html

ПОИСК

Поиск Лекций

Рисунок 6.3

Первое семейство характеристик в (6.1) носит название входных, второе– выходных характеристик (полагается, что полюс 1 выступает в качестве входа нелинейного элемента, а полюс 2 – в качестве выхода). Общий вид входных характеристик транзистора приведен на рисунке 6.

3, б , выходных – на рисунке 6. 3, в. Поскольку третье семейство в (6. 2) характеризует влияние выходного напряжения на входное, оно называется характеристикой обратной связи по напряжению.

Четвертое семейство представляет собой характеристики прямой передачи по току или сквозные характеристики.

Как и нелинейные двухполюсники, трехполюсные элементы в режиме “малого” сигнала хорошо описываются дифференциальными параметрами, которые могут быть определены путем дифференцирования статических характеристик. Так, из первого семейства может быть найден параметр

,

который называется дифференциальным входным сопротивлением. Семейство 2 позволяет найти дифференциальную выходную проводимость

.

При помощи нелинейных цепей решается целый ряд весьма важных для практики задач. Отметим некоторые из них.

1. Преобразование переменного тока в постоянный. Устройства, реализующие такое преобразование, называются выпрямителями.

2. Преобразование постоянного тока в переменный. Производится при помощи устройств, которые в радиотехнике называются автогенераторами, а в промышленной электронике – инверторами.

3. Умножение частоты, то есть получение на выходе устройства напряжения, частота которого в несколько раз больше частоты входного сигнала. Реализуется данная функция в умножителях частоты.

4. Преобразователи частоты – изменение частоты несущего колебания без изменения вида и характера модуляции.

5. Осуществление различных видов модуляции; устройства, позволяющего осуществить модуляцию, называются модуляторами.

6. Демодуляция сигналов, то есть выделение из высокочастотного колебания низкочастотного управляющего сигнала; устройства, осуществляющие демодуляцию, носят название демодуляторов или детекторов.

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

8. Преобразование формы сигнала; например, напряжения синусоидальной формы в прямоугольное.

9. Повышение мощности сигнала.

10. Преобразование и запоминание дискретных сигналов.

Аппроксимация нелинейных характеристик

Как отмечалось в предыдущем разделе, аналитическая форма представления статических характеристик нелинейных элементов является наиболее удобной для практического использования. Для получения аналитического описания характеристик используется, как правило, один из двух подходов.

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

Достоинством такого подхода является то, что получаемые соотношения характеризуются параметрами, имеющими конкретный физический смысл. Однако данному подходу присущи и существенные недостатки. Во-первых, необходима достаточно достоверная информация о физических процессах, протекающих в элементе.

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

Второй подход основан на аппроксимации характеристик нелинейных элементов, найденных экспериментальным путем.

Режимы работы элементов могут быть различными.

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

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

Существуют различные способы аппроксимации:

1) линейная;

2) нелинейная;

3) кусочно-линейная;

4) кусочно-нелинейная.

Линейная аппроксимация используется при работе нелинейного элемента в режиме малого сигнала. Аппроксимация нелинейной функции в этом случае осуществляется, как правило, касательной, проведенной или рассчитанной в точке характеристики, в окрестности которой происходят изменения токов и напряжений.

В случае нелинейного резистивного двухполюсника такую аппроксимацию можно интерпретировать как замену при расчете нелинейного сопротивления линейным, числено равным дифференциальному сопротивлению. Достоинством линейной аппроксимации является возможность перехода от анализа нелинейной цепи к анализу линейной (линеаризованной) цепи, который является значительно проще.

Недостаток- точность такой аппроксимации низкая и даже в режиме малого сигнала погрешность расчета может быть значительной.

При нелинейной аппроксимации используются чаще всего различные степенные ряды.

Предположим, что к нелинейному двухполюснику приложено некоторое постоянное воздействие, которое определяет его исходный рабочий режим. Это воздействие будем называть “смещением”. При этом–– значение функции в исходной точке. Если исходное воздействие изменить на некоторую величину, то, представляя новое значение функции в виде ряда Тейлора, получим

(6. 3)

где- значения производных функции f (x) в точке.

Так как, то вместо (6. 3) можно записать

.

Последнее соотношение представляет собой разложение функции f(x) в ряд Тейлора в окрестности точкии является аналитическим описанием характеристики элемента. Полученная формула представляет собой степенной ряд.

Чем большее число членов ряда учитывается, тем точнее будет выражаться действительная характеристика. Оставляя в разложениислагаемых, получаем многочлен-ой степени.

Таким образом, аппроксимация характеристик полиномами приводит к следующим уравнениям:

а) если, то; (6. 4)

б) если, то. (6. 5)

Коэффициенты,необходимо подбирать таким образом, чтобы аппроксимирующее уравнение с приемлемой точностью описывали рабочий участок характеристики. Чтобы не усложнять расчеты, количество членов аппроксимирующих уравнений (6. 4) и (6. 5) стараются ограничить как можно меньшим числом.

Наряду со степенными полиномами, для нелинейной аппроксимации могут использоваться и другие виды функций (экспоненциальная, тригонометрическая и т. п.).

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

Недостаток – коэффициенты аппроксимирующих выражений не имеют физического смысла, их численные значения невозможно оценивать и корректировать из общих, теоретических положений. Незначительное изменение хода характеристики или рассмотрения аппроксимируемого участка может приводить к существенным изменениям численных значений коэффициентов,.

В практике радиотехнических расчетов широко применяется метод кусочно-линейной аппроксимации.

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

Пример кусочно-линейной аппроксимации N-образной ВАХ приведен на рисунке 6. 4. Очевидно, что аппроксимирующие соотношения для каждого участка будут различными.

Рисунок 6. 4

Такой метод сохраняя достоинства линейной аппроксимации, позволяет по сравнению с ней значительно повысить точность описания характеристик и, в тоже время, существенно упрощает сам процесс аппроксимации в сравнении с нелинейной аппроксимацией.

Недостатком кусочно-линейной аппроксимации является усложнение алгоритма расчета электрической цепи из-за необходимости постоянного контроля значений переменных. Данная процедура не создает сложностей, если в анализируемой цепи имеется только один элемент, для которого использована кусочно-линейная аппроксимация, но может оказаться чрезмерно трудоемкой с ростом числа таких элементов.

Кусочно-нелинейная аппроксимация используется в случаях, когда ни один из трех рассмотренных методов аппроксимации не дает удовлетворительного результата либо из-за низкой точности, либо из-за сложности полученных соотношений (чрезмерно большое количество членов при аппроксимации степенными полиномами, очень большое количество отрезков при кусочно-линейной аппроксимации). Иногда к кусочно-нелинейной аппроксимации прибегают в случаях, когда в результате анализа физических процессов в элементе получено соотношение, хорошо описывающие значительный участок статической характеристики, но мало приемлемое при каком-либо качественном изменении режима работы нелинейного элемента (например, явление пробоя электронно-дырочного перехода в полупроводниковых приборах). Достаточно часто такая аппроксимация позволяет с требуемой точностью описать характеристику при сравнительно небольшом числе участков, описываемых различными соотношениями (как правило, 2 – 3 участка).

Рис. 1.33. Кусочно-линейная аппроксимация поляризационной кривой

    Методь/ линейных приближений включают в себя полную линейную аппроксимацию поляризационных кривых последовательную частичную аппроксимацию кусочно-линейную аппроксимацию. [c.

72]

    Метод кусочно-линейной аппроксимации. При применении этого метода искомая экстремаль аппроксимируется кусочно-линейной функцией.

Для ее отыскания весь интервал интегрирования в выражении функционала (У,162) разбивается на N равных частей и оно заменяется приближенно равной ему конечной суммой  [c.221]

Читайте также:  Простой регулятор напряжения на тиристоре

    Удобным численным методом решения вариационных задач является метод локальных вариаций [9], развиваемый в последнее время для решения технических задач.

Он отличается от метода кусочно-линейной аппроксимации использованием последовательных приближений при поиске точек экстремали.

Поиск начинается с замены экстремали произвольной ломаной, проходящей через краевые точки и удовлетворяющей заданным ограничениям на величины х (т) (начальное приближение). Начальное приближе- [c.214]

    Для численного решения можно использовать методы, приведенные выше (стр. 145). Например, применив кусочно-линейную аппроксимацию в сочетании с методом динамического программирования, разобьем интервал поиска на Л отрезков по 1000 часов и будем проводить поиск для последнего отрезка , максимизируя величину [c.225]

    При аппроксимации экспериментальной С-кривой кусочно-линейной функцией расчетная зависимость имеет вид [c.70]

    Парциальная величина есть скорость изменения объема системы при изменении состава ее по г-му компоненту. На рис. 4.

2 парциальный мольный объем Oi равен тангенсу угла наклона касательной к кривой F = ф (п ) в данной точке j в -ж момент времени процесса набухания.

Разбивая кривую ф ( i) на j участков, можно записать кусочно-линейную аппроксимацию значения Uj на любом из участков [c.305]

    Приближенный расчет при аппроксимации кривой кусочно-линейной функцией проводится по зависимости [c.70]

Рис. 5.12. Расчет равновесных значений приведенной концентрации при горении пропана в воздухе. 1 – 2 X кусочно-линейная аппроксимация, соответствующая одноступенчатой необратимой реакции

    Методы обработки седиментационных кривых можно разбить на две группы. Первая из них объединяет непараметрические дифференциальные методы, основанные на кусочно-линейной аппроксимации исходной кривой. Недостаток этих методов — малая точность восстановления исходной плотности распределения, особенно в области мелкодисперсной составляющей. Вторая группа объединяет параметрические методы, которые основаны на априорном предположении о параметрическом виде седиментационной кривой или отыскиваемой плотности распределения. Из-за трудностей обоснования этих предположений далеко не всегда можно гарантировать получение результатов -заданной точности. [c.173]

    Наилучшим способом определения разумного числа точек является проведение прямых линий от точки к точке с последуюш,ей оценкой степени приближения серии прямолинейных отрезков к кривой. Подпрограммы в зависимости от выбора метода аппроксимации кривой (линейная или квадратичная кусочная аппроксимация) [c.47]

    Существуют специализированные нелинейные блоки, которые воспроизводят только одну функциональную зависимость. Примером может служить квадратор, который с помощью диодных блоков осуществляет кусочно-линейную аппроксимацию параболы, т. е. возводит в квадрат подаваемое на него напряжение. [c.329]

    Приведем систему (1) к одному дифференциальному уравнению, предварительно сделав следующие упрощения. Проведем кусочно-линейную аппроксимацию зависимости константы скорости реакции от температуры, являющейся некоторой нелинейной функцией (уравнением Аррениуса или др.). [c.335]

    Возможности применения моделей с переменными технологическими коэффициентами при решении задач планирования и управления комплексами непрерывного действия освещены также в работах [21-25].

В частности, в [22] рассматривается нелинейная задача статической оптимизации непрерывного производства.

Предлагаются кусочно-линейная аппроксимация переменных коэффициентов и замена исходной нелинейной задачи некоторой приближенной задачей, для решения которой могут быть использованы методы линейного программирования. [c.16]

    Величина момента М рассчитывается по кинетической кривой с учетом ее кусочно-линейной аппроксимации методом трапеции [c.33]

    При кусочно-линейной аппроксимации поляризационной кривой на каждом из. линейных участков выполняются условия строгого постоянства динамической удельной поляризуемости [см. (2.33) ]. [c.16]

    При использовании поляризационных кривых может производиться их аппроксимация линейная (рис. 1.4, а), кусочно-линейная (рис. 1.

4, б) или нелинейная (основанная на подборе аналитических зависимостей, приближенно описывающих какой-либо один или несколько участков поляризационной кривой) .

Выбор того или иного способа аппроксимации поляризационных кривых определяется требуемой точностью расчетов и объемом априорной информации о диапазоне возможных значений плотности тока или потенциала в условиях рассматриваемой задачи. [c.12]

    При линейной или кусочно-линейной аппроксимации поляризационной кривой величина удельной поляризуемости приближенно принимается постоянной либо для всего рассматриваемого диапазона значений плотности тока (при линейной аппроксимации), либо для отдельных его интервалов (при кусочно-линейной аппроксимации) .  [c.16]

    Значения анодной и катодной удельной поляризуемости, полученные при линейной или кусочно-линейной аппроксимации поляризационных кривых ряда металлов в некоторых типичных коррозионных средах, приведены в табл. 1.2, 1.3. [c.16]

    При кусочно-линейной аппроксимации поляризационной кривой граничное условие на поверхности рассматриваемого электрода представляется в виде [c.73]

    При кусочно-линейной аппроксимации катодной поляризационной кривой безразмерное смещение потенциала на катоде может быть представлено в виде [c.74]

    Э может быть принята равной нулю, а величина Ь — бесконечности) при этом используется линейная или кусочно-линейная аппроксимация поляризационных кривых всех рассматриваемых металлов. [c.257]

    Другой способ линеаризации может заключаться в линейной или кусочно-линейной аппроксимации нелинейных замыкающих уравнений h = для всех ветвей схемы. Подобный прием является естественным [c.82]

    Аналитическое решение может быть получено из допущения возможности кусочно-линейной аппроксимации реального профиля концентраций на участках [Л , Л ]. [c.91]

    Часто применяется кусочно-линейная аппроксимация градуировочных кривых с помощью нелинейных преобразователей. [c.415]

    Результаты кинетических исследований использовали при разработке математической модели. Для решения задачи оптимизации процесса окислительного аммонолиза изобутилена предложен метод кусочно-линейной аппроксимации функционала [c.344]

    Не решается аналитически и уравнение с учетом зависимости 5=/(У, ). Для такого решения также применяются аналоговые машины.

Главный недостаток аналоговых маши при решении подобных задач — необходимость большого числа нелинейных блоков, что резко ограничивает число тарелок изучаемой системы.

Для уменьшения указанных трудностей проведена работа по линеаризации указанных уравнений (кусочно-линейная аппроксимация) [c.246]

    На участке, расположенном после смыкания тепловых пограничных слоев, неизотермичность, играет значительно менее существенную роль, поэтому в (4) можно ограничиться первыми двумя членами ряда или провести кусочно-линейною аппроксимацию, что значительно упростит конечные расчетные выражения без существенной погрешности. [c.64]

    Исходная оптическая информация / (Р) и значение р по этой схеме воспроизводятся блоками нелинейности БН-1 и БН-2 методом линейно-кусочной аппроксимации. Число линейных участков аппроксимации определяется точностью воспроизведения исходных кривых. Умножение функции I (р) на р выполняется блоком произведения БП-3 и усилителями 5, 6 , 8. [c.135]

    KIA – кусочно-линейная аппроксимация  [c.47]

    Эффективные алгоритмы численного решения упруго-пластичесих задач МДТТ с негладкими поверхностями текучести находятся пока в стадии разработки и верификации [48, 127 – 129].

Поэтому, при практическом численном анализе трехмерных задач механики грунтов, общепринятым подходом остается аппроксимация кусочно-линейной поверхности Мора – Кулона гладкой поверхностью текучести вида [48, 123, 128]  [c.297]

    На рис. 3.3 представлено сечение девиаторной плоскостью рассмотренных выше поверхностей текучести. Как видно из рис. 3.3, поверхность (3.44) с параметрами, определяемыми по формулам (3.45) и (3.

46), является достаточно близкой гладкой аппроксимацией кусочно-линейной поверхности текучести (3.33). На рис. 3.4 приведен вид поверхности текучести (3.

44) в пространстве главных напряжений, построенной для грунта с характеристиками физико-механических свойств = 20°, с = 5кПа.  [c.301]

    Можно построить и другой алгоритм, упрощающий решение вариационных задач- Заманчивым представляется сочетание методов вариационного и динамического программирования- Применив кусочно-линейную аппроксимацию, можно оптимизировать функционал У по кусочкам от конца интервала к началу т,,.

В соответствии с принципом динамического программирования это обеспечит оптимальную величину всему функционалу У =2 г Так, для N участка, зная Х = x ж определив как функцию а я-1> Х[ = х , (х —Хд/.хУАт, Ат, можно найти, используя однофакторный поиск, величину обеспечивающую экстре- [c.

215]

    Использование линейных зависимостей позволяет получить решение на ЦВМ значительно быстрее, чем в случае 5гчета нелинейностей.

Однако для процессов, имеющих существенную нелинейность, необходимо вводить кусочно-линейную аппроксимацию, что несколько усложняет программу расчета и делает коэффициенты матрицы преобразования технологических операторов ХТС переменными.

Кроме того, выбор формы математической модели ТО обусловлен мощностью и математическим обеспечением ЦВМ, на которой выполняется решение. При учете нелинейностей требуется программа решения системы нелинейных алгебраических уравнений. [c.99]

    Получено дальнейшее развитие общих теоретических основ рециркуляционных и совмещенных реакционно-ректификационных процессов на базе термодинамико-топологического анализа (ТТА) структур диаграмм фазового равновесия.

Разработан качественный метод анализа рециркуляционных систем, позволяющий определять эволюцию стационарных состояний указанных систем в зависимости от конструктивных и технологических параметров процесса, а также проводить проверку принципиальной работоспособности рециркуляционных систем с использованием линеаризованных математических моделей, получаемых путем кусочно-линейной аппроксимации разделяющих многообразий на диаграммах фазового и химического равновесий. [c.14]

    Рис, 3.12. Функции эффективных площадей проходного сечения рабочих щелей дросселирующего распределителя после кусочно-линейной аппроксимации  [c.192]

    Значения (0) и (Д) — исходные для расчета проводимостей рабочих щелей дросселирующего распределителя. Как показано в п. 3.4, смещение золотника относите.1ьно втулки непосредственно изменяет эффективные площади /э проходного сечения рабочих щелей.

Зависимости /д = Ф (дг ), полученные предварительным расчетом или экспериментально, целесообразно для дальнейшего использования представить в универсальной аналитической форме. Для этого пригодна кусочно-линейная аппроксимация нелинейных функций (рис. 3.12).

Заданными для дальнейшего расчета величинами таких функций будут координаты и / п узловых точек, “де ( — принятый номер рабочей шели, п — [c.192]

    Расчет двух- или трехпружинного блока начинают с аппроксимации идеальной статической характеристики кусочно-линейной функцией. Эту операцию удобно выполнять графическим спо- [c.290]

    Будед вести исследование для одного участка кусочно-линейной аппроксимации. Однако в целях большей общности примем, что в пределах этого участка производная константы скорости реакции по темнературо может менять знак. Тогда уравнение (1е) будет иметь вид [c.335]

    Необходимая точность может быть достигнута рациональным выбором структуры модели. Если погрешность линейной модели превышает fo требуется коррекция ММ, причем выделим варианта. Вариант первый – “истинная” модель нелинейна (рис.1).

Тогда применением кусочно-линейной аппроксимации (KIA) можно добиться снижения погрешности модели до величины, меньшей У max Вариант второй – аппроксимация статистики с достаточной степенью точности нл линейной, ни кусочно-лдинейной моделью не удается (рис.2).

Очевидно, в этом случае в модель не включен какой-то фактор, который “размывает” описываемую область. [c.35]

    Реализация нелинейных зависимостей (Т) на ЭАВМ может быть осуществлена с помощью диодных блоков нелинейности на основе кусочно-линейной аппроксимации или путем интегрирования вспомогательных дифференциальных уравнений. [c.238]

Источник: http://chem21.info/info/41447/

Программа кусочно-линейной аппроксимации функций, заданных формулой

ИЗВЕСТИЯ

ТОМСКОГО ОРДЕНА ОКТЯБРЬСКОЙ РЕВОЛЮЦИИ И ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ПОЛИТЕХНИЧЕСКОГО ИНСТИТУТА имени С. М. КИРОВА

Том 203 1974

ПРОГРАММА КУСОЧНО-ЛИНЕЙНОЙ АППРОКСИМАЦИИ ФУНКЦИЙ, ЗАДАННЫХ ФОРМУЛОЙ

И. Г. ВИНТИЗЕНКО

(Представлена научным семинаром УВЛ ТПИ)

Преимущества аналоговой вычислительной техники (наглядность получаемых результатов, простота подготовки и решения задач и т. п.

) сводятся на нет некоторыми трудоемкими и длительными работами (расчет масштабов, подготовка функций для набора на универсальных преобразователях и др.

)- Чтобы ускорить этим работы, используются программы расчета масштабов и аппроксимации функций, составленные для реализации на электронных цифровых вычислительных машинах (код APACHE [2], стандартные программы для ЭЦВМ «Урал-2»

[1] и др.) – Однако мощные машины не всегда свободны, дорого машинное время. Возникает необходимость написания алгоритмов и соответствующих программ для малых, широко распространенных цифровых машин, таких как, например, ЭЦВМ «Проминь». Использование малых цифровых вычислительных машин в аналоговых лабораториях может значительно ускорить подготовительные операции.

Наиболее частым случаем задания нелинейностей в аналоговой вычислительной технике является способ задания, назовем его способом аналитического задания, комбинации элементарных функций, таких, например, как

£1 / V ехр(—oa) + sin Зх ln(ax) , ч

F(x) =———!— F (я) =—1—— + ехр(ух) и т. п.

cos у л: cos2p*

Наличие в малой ЭЦВМ «Проминь» большого числа «зашитых» стандартных подпрограмм тригонометрических, показательных, гиперболических и других функций, возможность генерирования по подпрограммам специальных функций, а также простота программирования на этой машине обусловили ее выбор для реализации цифровой программы, производящей кусочно-линейную аппроксимацию аналитически заданной функции F(x).

Программа состоит из нескольких блоков, которые выполняют следующие операции:

1) перевод исходных координат задачи в электрические напряжения УФП так, чтобы максимальное значение функции F(x) было равно + 100 в, минимальное——100 в, левое крайнее значение аргумента *мин (минимальное) = —100 в, правое крайнее значение хмакс (максимальное) =+100 в,

t/,= 100(2-

X X i

I/,

-^макс '^мин

loot

1 }=MJcx-Dx, 1 = MFF(x)-DF,

M

макс 200

МИН

■^МИМ^ДГ)

Ai

200

D

F=l00+FMmMP

так что аппроксимируемая функция вписывается внутрь прямоугольника (—100, +100 в по U , —100, +100 в по Uo) и касается всех границ прямоугольника;

2) кусочно-линейная аппроксимация функции F(x) с выдачей на печать напряжений открывания Uдиодных элементов и значений

функций в точках перегиба аппроксимирующей ломаной U0l. Процесс построения аппроксимирующей ломаной иллюстрируется рис. 1. Вся область [хмш, хиакс.] делится па п равных шагов /i, так что

fl

П

^ (Xмин)

Рис. 1

ky

Число п задается оператором (учитывается вид функции, требуемая точность и др.)-

Вычисляется Р(х) = РХ при Х—хЫ1ЛН–к, проводится прямая через точки /''(Хмин) и определяется ее наклон и точка пересечения прямой с ОСЬЮ у—С1

Р ^(-^мин)

h

F (-^мии)

Далее в точке %ч=Х–К вычисляется истинное значение функции Р(х2)=Р2 и приближенное значение полученное по формуле

/Vе=¿1*2+^1,

находится их разность по абсолютной величине

Д2:

f2-

и сравнивается с заданной точностью аппроксимации г. Если Аг>е, то точку

(хи Л)

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

Построение любого следующего отрезка аппроксимирующей ломаной начинается с точки х} , Ь'} ; к хприбавляется Л, определяется £ крутизна нового отрезка ломаной к{ и константа с1 и т. д.

Если Ато к х2 прибавляем шаг Л, находим Р3*, Р ^ = и

дз = | .Рз—Сравниваем новое Д3 с заданной точностью е, поступаем • по указанным выше .правилам в случаях А>е и А^е и т. д. до х=хМакс Блок-схема программы приведена на рис. 2.

Рис. 2

3. После определения ординат всех точек перегиба {FJ, где 1=1, 2, т, проводится выбор максимального и минимального значения FМакс (xi) и Fm- (xi) массива ординат. Для этого в программу введем блок выбора Fмакс и FMVlH.

По ним определяются MF и Df • После этого весь массив ординат переводится в напряжения {U }, при которых происходит «излом» аппроксимированной ломаной, а массив {хг) переводится в напряжения {Uu}, при которых необходимо открывать диоды УФП.

Окончательная таблица набора, отпечатанная выводным устройством, будет содержать MX,DX, MF, Df, массивы {Uа) и {UQl}.

Подготовка такого рода функций для набора на универсальном функциональном преобразователе АВМ с помощью малых ЦВМ зна-

чительно сокращает общее время подготовки задачи, не требует графических построений и обеспечивает наиболее высокую (сравнительно с другими методами подготовки кривой) точность аппроксимации. Программа использовалась при подготовке функций для универсального функционального преобразователя НУ-1 АВМ МН-14 при решении нелинейных дифференциальных уравнений.

ЛИТЕРАТУРА

1. А. X. Б е р е с л а в с к и iï, Г. С. Г о л ь д е н б е р г, Ю. А. Р е д ь к о в, Е. П. Якове и к о. «Вопросы автоматизации математической подготовки задач к набору на машинах непрерывного действия». В сб. «Ла тематическое моделирование и электрические цепи». Киев, Наукова думка, 1966, стр. 129—139.

2. Debroux, H. d'Hoop, С. Green L'autoprogrammation des calculateurs analogiques par le code APACHE „Revue A”. 1962, v. 4, № 3, p. 128—134.

Источник: https://cyberleninka.ru/article/n/programma-kusochno-lineynoy-approksimatsii-funktsiy-zadannyh-formuloy

Метод кусочно-кубической и кусочно-линейной аппроксимации

Процедура поиска точки глобального минимума х* аппроксимирующей модели может быть упрощена, если в качестве математической модели использовать кусочно-кубическую кривую SN(х), проходящую через точки испытаний (xi, Q(xi)), i = 1, 2, …, N, и моделирующую поведение функции Q (х) на отдельных отрезках интервала |a, b| полиномами третьей степени Р3(х) = ∑αkixk. В этом случае поиск точки глобального минимума х* произвольной кривой Q (х) может быть осуществлен с помощью метода кусочно-кубической аппроксимации F15, в котором точки испытаний на каждом k-м шаге выбираются независимо от информации о поведении функции Q(x) и равномерно располагаются на интервале [a, b]:

Общее число точек испытаний Nk, по которым на k-м шаге строится математическая модель SNk (х), аппроксимирующая функцию Q (х), определяется по итерационной формуле:

В новых точках, не совпадающих с уже проведенными испытаниями

проводятся дополнительные вычисления функции Q (х). На первом шаге (k = 1) используется информация обиспытаниях в пяти точках, на втором шаге (k = 2) — в девяти точках, среди которых в пяти уже проведены испытания, т. е. дополнительно вычисляется значение функции Q (х) только в четырех новых точках и т. д,

На k-м шаге поиска с помощью метода кубической интерполяции F(6) строится совокупность аппроксимирующих полиномов P3(i)(х), которые используются для описания функции Q (х) не в точках (xi-1(k), xi(k), xi+1(k), xi+2(k)), по которым каждый из них построен, а только на подынтервалах [xi(k), xi+1(k)], кроме концов интервала [a, b], где полиномы Р3(1)(х) и P3Nk-1(х) аппроксимируют функцию Q (х) на подынтервалах [а, х2] и [xNk-3, b] соответственно. При этом на каждом шаге поиска значения коэффициентов совокупности полиномов Р3(i)(х), образующих кусочно-кубическую кривую SNk(х), должны рассчитываться заново. Пример построения кусочно-кубической модели SN2(х) на втором шаге поиска (к = 2) показан на рис. 4.4.

Рис. 4.4. Пример построения кусочно-кубической модели по девяти точкам в алгоритме F15

Здесь подынтервалы l1, l3, l5 являются областями определения кубических парабол P3(1)(x), Р3(2)(х), Р3(3)(х), а подынтервалы l2, l4, l6 — областями, где функция Q (х) = x/10+cos x аппроксимируется каждым из построенных полиномов третьей степени.

Построение кусочно-кубической модели считается законченным на k-м шаге, если относительная ошибка между значениями функции Q(x) и значениями, полученными по математической модели точках испытаний (k + 1)-го шага, меньше некоторого заданного значения ε:

При выполнении неравенства (4.34) в каждой точке xi*∈[хi(k), хi+1(k)], являющейся точкой минимума полинома Р3(i) (х), которая определяется с помощью метода F6 делается дополнительное,испытание. В качестве приближенной точки глобального минимума выбирается точка х, обеспечивающая минимальное значение функции Q (х) по всем проведенным испытаниям N:

Таким образом, алгоритм F15 позволяет построить аппроксимирующую модель SN(х) при помощи совокупности полиномов третьей степени. Однако для запоминания каждого полинома P3(i)(х) требуется дополнительный объем памяти, который быстро растет с увеличением точности ε совпадения математической модели SN (х) с минимизируемой функцией Q (х).

Этого недостатка лишен алгоритм F16 реализующий метод кусочно-линейной аппроксимации, в котором на каждом шаге поиска в качестве аппроксимирующей модели непрерывной функции Q (х) используется кусочно-ломаная кривая LN (х) (полиномиальный сплайн первой степени).

При этом точки текущих испытаний xi, i = 1, 2, …, Nk-1, необходимые для построения математической модели LN(х), выбираются таким же образом, как и в алгоритме F15.

Основной характеристикой аппроксимирующей модели LNk(х) является число JNk подынтервалов [xi-1, xi+1], в которых обеспечивается выполнение неравенства:

Эти подынтервалы называются, подынтервалами, «подозрительными» на существование в них локального минимума функции Q (x). В связи с простотой аппроксимирующей модели LNk(х) поиск точек ее локальных минимумов, определяющих «подозрительные» подынтервалы, не
представляет труда.

Процесс последовательного построения ломаны кривых LNk(х) заканчивается, кац только достигается качественное соответствие между структурой кусочно-линейной модели LNk(х), достроенной на k-м шаге поиска, и функцией Q (х).

В качестве такого соответствия принимается значение параметра m (JNk), показывающего, сколько раз подряд число «подозрительных» подынтервалов JNk кусочно-линейной модели повторилось при ее уточнении.

При повторении структуры кусочно-линейной модели LNk(х) m раз подряд (JNk = JNk+1, , …, JNk+m) считается, что функция Q (х) имеет такое же число и расположение локальных минимумов, как и ее кусочно-линейная модель, полученная на (k + m)-м шаге.

После построения кусочно-линейной модели LNk(х), адекватной минимизируемой функции Q(x), определение приближенного значения точки глобального минимума х сводится к минимизации одномерной унимодальной функции, являющейся частью кривой Q(x*) в каждом из «подозрительных» подынтервалов [xi-1(k), xi+1(k)], к = 1, JNk. При этом может быть использован любой из алгоритмов унимодального поиска. Таким образом, алгоритм F16 позволяет определить все локальные минимумы функции Q (х) и выбрать среди них тот, который обеспечивает наименьшее значение функции Q (х).

В качестве примера на рис. 4.5 показаны две кусочно-линейные модели функции Q (х) = x/10 + cos х (сплошная лривая), полученные при поиске минимума с помощью алгоритма F16. Кусочно-линейная модель L5 (х), полученная на первом шаге, обозначена пунктирной кривой, а модель L9 (х), полученная на втором шаге,— штрихпунктирной кривой.

Точками отмечены испытания, проведенные на первом шаге, а крестиками — на втором.

При значении m = 2 построение кусочно-линейной модели заканчивается выделением двух (JN = 2) «подозрительных» подынтервалов (заштрихованные участки оси х), в которых в дальнейшем осуществляется поиск локального минимума с помощью одного из методов (F1 — F10) минимизации унимодальных функций.

Рис. 4.5. Стратегия поиска глобального минимума по методу кусочно-линейной аппроксимации

Источник: https://all4study.ru/proektirovanie/metod-kusochno-kubicheskoj-i-kusochno-linejnoj-approksimacii.html

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}