Норенков И.П. - Автоматизированное производство (1054022), страница 25
Текст из файла (страница 25)
Используя разложение&.+.)$(*),$" . !"#$%!#&'&($"!))$*+($*,#&($"!)&*635@!"! 3%!#*%!#&F*:,$*$I*:+*F*)&* !)!@&'! +($*,#)KH (*L*)&Mрешения V(t) в ряд Тейлора в окрестностях точки tn+1, получаем для (n+1)-го неявного шагаV(tn ) = V(tn+1) - (dV/dt)hн + (d2V/dt2)hн2 / 2! - (d3V/dt3)h*3 / 3! + ...,(3.28)и для (n+2)-го явного шагаV(tn+2) = V(tn+1) + (dV/dt)hя + (d2V/dt2)hя2/2! + (d3V/dt3)hя3/3! + ...,(3.29)где hн ' hя — величины неявного и явного шагов, а значения производных относятся к моменту tn+1.Подставляя (3.28) в (3.29), при h = hя = hн получаем:V(tn+2) = V(tn ) + 2(dV/dt)h + 2(d3V/dt3 )hя3 / 3! + ...,т.е.
погрешности, обусловливаемые квадратичными членами в (3.28) и (3.29) взаимно компенсируются, и старшим из отбрасываемых членов становится член с h3. Следовательно, изложенное комбинирование неявной и явной формул Эйлера дает метод интегрирования второго порядка.Неявные методы и, в частности, рассмотренный комбинированный метод целесообразно использовать только при переменной величине шага. Действительно, при заметных скоростях изменения фазовых переменных погрешность остается в допустимых пределах только при малых шагах, вквазистатических режимах шаг может быть во много раз больше.Алгоритмы автоматического выбора шага основаны на сравнении допущенной и допустимойлокальных погрешностей.
Например, вводится некоторый диапазон (коридор) погрешностей δ, в пределах которого шаг сохраняется неизменным. Если же допущенная погрешность превышает верхнююграницу диапазона, то шаг уменьшается, если же выходит за нижнюю границу, то шаг увеличивается.E.-451 8.I.0+> ,+,-./ 0.D+0.2016 :D@.B8:+A.,7+6 <8:90.0+2.
Вычисления при решенииСОДУ состоят из нескольких вложенных один в другой циклических процессов. Внешний цикл —цикл пошагового численного интегрирования, параметром цикла является номер шага. Если модельанализируемого объекта нелинейна, то на каждом шаге выполняется промежуточный цикл — итерационный цикл решения системы нелинейных алгебраических уравнений (СНАУ). Параметр цикла —номер итерации.
Во внутреннем цикле решается система линейных алгебраических уравнений(СЛАУ), например, при применении узлового метода формирования ММС такой системой является(3.19). Поэтому в математическое обеспечение анализа на макроуровне входят методы решения СНАУи СЛАУ.Для решения СНАУ можно применять прямые итерационные методы такие, как метод простойитерации или метод Зейделя, но в современных программах анализа наибольшее распространение получил метод Ньютона, основанный на линеаризации СНАУ. Собственно модель (3.19) получена именно в соответствии с методом Ньютона.
Основное преимущество метода Ньютона — высокая скоростьсходимости.Представим СНАУ в видеF(X) = 0.(3.30)Разлагая F(X) в ряд Тейлора в окрестностях некоторой точки Nk, получаемF(X) = F(Xk) + (∂F/∂X)(X-Xk) + (X-Xk)T(∂2F/∂X2)(X-Xk) / 2 + ... = 0.Сохраняя только линейные члены, получаем СЛАУ с неизвестным вектором N :Vk(X - Xk) = - F(Xk),(3.31)где Vk = (∂F/∂X)|k. Решение системы (3.31) дает очередное приближение к корню системы (3.30), которое удобно обозначить Xk+1.Вычислительный процесс стартует с начального приближения X0 и в случае сходимости итераций заканчивается, когда погрешность, оцениваемая как|∆Nk| = |Xk - Xk-1|,станет меньше допуcтимой погрешности ε.Однако метод Ньютона не всегда приводит к сходящимся итерациям.
Условия сходимости методаНьютона выражаются довольно сложно, но существует легко используемый подход к улучшению схо&.+.)$(*),$" . !"#$%!#&'&($"!))$*+($*,#&($"!)&*645@!"! 3%!#*%!#&F*:,$*$I*:+*F*)&* !)!@&'! +($*,#)KH (*L*)&Mдимости. Это близость начального приближения к искомому корню СНАУ. Использование этого фактора привело к появлению метода решения СНАУ, называемого 0"#-#4@$*'$/ "$>$*'9 0# 0)")/$&"7.В методе продолжения решения по параметру в ММС выделяется некоторый параметр α, такой,что при α = 0 корень Nα=0 системы (3.30) известен, а при увеличении α от 0 до его истинного значения составляющие вектора N плавно изменяются от Nα=0 до истинного значения корня.
Тогда задачаразбивается на ряд подзадач, последовательно решаемых при меняющихся значениях α, и при достаточно малом шаге ∆α изменения α условия сходимости выполняются.В качестве параметра α можно выбрать некоторый внешний параметр, например, при анализеэлектронных схем им может быть напряжение источника питания. Но на практике при интегрировании СОДУ в качестве α выбирают шаг интегрирования h. Очевидно, что при h = 0 корень СНАУ равен значению вектора неизвестных на предыдущем шаге. Регулирование значений h возлагается наалгоритм автоматического выбора шага.В этих условиях очевидна целесообразность представления математических моделей для анализа статических состояний в виде СОДУ, как и для анализа динамических режимов.E.-451 8.I.0+> ,+,-./ D+0.2016 :D@.B8:+A.,7+6 <8:90.0+2.
В программах анализа вСАПР для решения СЛАУ чаще всего применяют метод Гаусса или его разновидности. Метод Гаусса— метод последовательного исключения неизвестных из системы уравнений. При исключении k-й неизвестной xk из системы уравненийAX = B(3.32)все коэффициенты aij при i>k и j>k пересчитывают по формулеaij = aij - aik akj / akk.(3.33)Исключение n-1 неизвестных, где n — порядок системы (3.32), называют прямым ходом, в процессекоторого матрица коэффициентов приобретает треугольный вид. При обратном ходе последовательновычисляют неизвестные, начиная с xn.В общем случае число арифметических операций для решения (3.32) по Гауссу пропорционально n3.
Это приводит к значительным затратам машинного времени, поскольку СЛАУ решается многократно в процессе одновариантного анализа, и существенно ограничивает сложность анализируемыхобъектов.Заметно повысить вычислительную эффективность анализа можно, если использовать характерное практически для всех приложений свойство высокой разреженности матрицы C в модели (3.32).Матрицу называют ")6"$@$**#;, если большинство ее элементов равно нулю.
Эффективностьобработки разреженных матриц велика потому, что, во-первых, пересчет по формуле (3.33) не требуется, если хотя бы один из элементов aik или akj оказывается нулевым, во-вторых, не требуются затраты памяти для хранения нулевых элементов. Хотя алгоритмы обработки разреженных матриц болеесложны, но в результате удается получить затраты машинного времени, близкие к линейным, например, затраты оказываются пропорциональными n1,2.При использовании методов разреженных матриц нужно учитывать зависимость вычислительной эффективности от того, как представлена матрица коэффициентов C, точнее от того, в каком порядке записаны ее строки и столбцы.Для пояснения этой зависимости рассмотрим два варианта представления одной и той же СЛАУ.В первом случае система уравнений имеет видa11x1 + a12x2 + a13x3 + a14x4 + a15x5 = b1;a21x1 + a22x2 = b2;a31x1 + a33x3 = b3;a41x1 + a44x4 = b4;a51x1 + a55x5 = b5..При прямом ходе в соответствии с формулой (3.33) все элементы матрицы, которые первоначально были нулевыми, становятся ненулевыми, а матрица оказывается полностью *)+.A$**#;.
Эле&.+.)$(*),$" . !"#$%!#&'&($"!))$*+($*,#&($"!)&*655@!"! 3%!#*%!#&F*:,$*$I*:+*F*)&* !)!@&'! +($*,#)KH (*L*)&MM:BD+=: 3.3менты, становящиеся ненулевыми в процессе гауссовых исключений, называют ("'1*./' *$*749/'. Вторичные ненули в таблице 3.3 отмечены точкой.+ + + + +Во втором случае меняются местами первое и пятое уравнения. Матри+ +...цы коэффициентов имеют вид таблиц 3.3 и 3.4, где ненулевые элементы пред+.+..ставлены знаком +. Теперь вторичные ненули не появляются, матрица остается разреженной, высокая вычислительная эффективность сохраняется.+..+.Таким образом, методы разреженных матриц должны включать в себя+...+способы #0&'/)45*#8# 70#"9-#1$*'9 +&"#% ' +*=#( матриц.
Используютнесколькокритериев оптимальности упорядочения. Простейшим из них являM:BD+=: 3.4ется критерий расположения строк в порядке увеличения числа первичных не++нулей, более сложные критерии учитывают не только первичные ненули, но ипоявляющиеся вторичные ненули.++L$-#/ ")6"$@$**., /)&"'= называют метод решения СЛАУ на ос++нове метода Гаусса с учетом разреженности (первичной и вторичной) матри+ +цы коэффициентов.Метод разреженных матриц можно реализовать путем интерпретации и+ + + + +компиляции. В обоих случаях создаются массивы ненулевых коэффициентовматрицы (с учетом вторичных ненулей) и массивы координат этих ненулевых элементов.При этом выигрыш в затратах памяти довольно значителен.
Так, при матрице умеренного размера 200×200 без учета разреженности потребуется 320 кбайт. Если же взять характерное значение 9 длясреднего числа ненулей в одной строке, то для коэффициентов и указателей координат потребуется неболее 28 кбайт.В случае '*&$"0"$&)='' моделирующая программа для каждой операции по (3.33) при aik ≠ 0 иakj ≠ 0 находит, используя указатели, нужные коэффициенты и выполняет арифметические операциипо (3.33).
Поскольку СЛАУ в процессе анализа решается многократно, то и операции поиска нужныхкоэффициентов также повторяются многократно, на что естественно тратится машинное время.Способ %#/0'49='' более экономичен по затратам времени, но уступает способу интерпретациипо затратам памяти.
При компиляции поиск нужных для (3.33) коэффициентов выполняется однократно перед численным решением задачи. Вместо непосредственного выполнения арифметических операций для каждой из них компилируется команда с найденными адресами ненулевых коэффициентов.Такие команды образуют рабочую программу решения СЛАУ, которая и будет решаться многократно.Очевидно, что теперь в рабочей программе будет выполняться минимально необходимое число арифметических операций.C0:D+? 9 A:,-4-042 4BD:,-+. Анализ в частотной области выполняется по отношению к линеаризованным моделям объектов. Для линейных СОДУ справедливо применение для алгебраизации дифференциальных уравнений преобразования Фурье, в котором оператор d/dt заменяется на оператор jω.Характерной особенностью получающейся СЛАУ является комплексный характер матрицы коэффициентов, что в некоторой степени усложняет процедуру решения, но не создает принципиальныхтрудностей.