12 - Internal Optimiser
12.1 Обзор
В этой главе описывается использование внутреннего оптимизатора для обеспечения численного метода определения "оптимального" решения. Требования к этому оптимальному решению определяются как ряд кинематических и/или совместимых целей. Решение может быть достигнуто путем перемещения определенных точек в пределах определенного ограниченного пространства и/или изменения свойств куста, опять же в пределах ограниченной вариации.
12.2 Внутренний оптимизатор
Оптимизатор - это полностью интегрированный метод решения для быстрого и эффективного определения 'optimum' решений. Используемый подход не основан на планировании эксперимента или методах типа Тагучи. Вместо этого он использует комбинацию оценок, чувствительности и тенденций для определения оптимума.
Метод подсчета очков используется для преобразования отклонения текущего решения от всех желаемых характеристик и значений в одно число (или оценку). Цель процесса оптимизации состоит в том, чтобы свести этот показатель к нулю.
Оценка определяется путем суммирования отклонения каждой точки на рассчитанной кривой (например, угла развала по отношению к движению по неровностям) или значения по сравнению с определенной целевой кривой. Таким образом, может быть включено любое количество характеристик, суммирование каждой из которых производится с учетом весового коэффициента. Это зависит от того, что пользователь знает, какие целевые ответы ему требуются для каждой включенной характеристики. Увеличение числа характеристик существенно не влияет на время анализа процесса оптимизации.
Переменные для оптимизации определяются как положения точек и/или свойства втулок. Хотя оптимизация может включать как кинематические, так и совместимые переменные, обычно они выполняются изолированно друг от друга. Каждая включенная переменная имеет определенный пользователем диапазон, позволяющий содержать решение в разумных пределах. Кроме того, в пределах этих границ задается минимальное разрешение, чтобы ограничить количество шагов решения. Количество включенных переменных напрямую влияет на время выполнения оптимизации, поэтому оно должно быть сведено к минимально возможному.
Оптимизатор оценивает каждую переменную, чтобы определить значение чувствительности. Это величина, на которую изменяется оценка в пределах определенного диапазона при указанном размере шага. Затем устанавливается порядок корректировки каждой переменной для получения ее минимального значения, прежде чем переходить к следующей переменной в списке порядка чувствительности. Пользователь может выполнить оптимизацию либо от наиболее чувствительного к наименее чувствительному, либо более успешно от наименее чувствительного к наиболее чувствительному.
Пороговые значения могут быть установлены таким образом, чтобы игнорировать переменные, чувствительность которых значительно меньше наиболее чувствительной, а также допуск принятия решения при снижении показателя отклонения до нуля.
В конце процесса оптимизации пользователю предоставляется исходная оценка и оценка наилучшей позиции. Затем пользователь может по желанию принять новое 'optimised' решение или вернуться к исходным данным модели.
12.3 Настройка кинематических целей с помощью пользовательских линий
Кинематические параметры для оптимизатора, такие как угол развала, схождение и высота центра крена, определяются с помощью пользовательских линий. Они определены для каждого из требуемых графиков производных суспензии. Обратите внимание, что свойства графического элемента, такие как ‘distance’, не могут быть использованы для оптимизации, так как вы не можете определить для них пользовательские линии.
Пользовательские строки могут быть определены непосредственно или извлечены из наборов данных пользовательских строк. Управление этими наборами данных осуществляется с помощью ряда опций меню, которые позволяют пользователю добавлять, редактировать или удалять данные пользовательской строки из наборов данных. В каждом наборе данных может храниться любое количество полных наборов пользовательских строк, и приложение может ссылаться на любое количество наборов данных в любой момент времени. Эти файлы набора данных хранятся по их полному пути в пользовательском ini-файле таким образом, что они ищутся при запуске программы и добавляются в соответствующее дерево меню. Аналогично 'add', наборы данных могут быть ‘removed’ из списка доступных. Файлы набора данных могут совместно использоваться пользователями либо через расположение типа центрального сервера, либо с помощью локальных копий одного и того же файла.
Предусмотрена функция удобного меню Graphs / User Lines / Copy Front-2D data to User для копирования текущих значений результирующей строки в пользовательскую строку. Эта функция меню выполняет копирование не только видимых в данный момент параметров графика, но и всех доступных результатов (около 45 различных параметров). Таким образом, для данной целевой модели эта функция предоставляет полный набор пользовательских линейных кривых, которые могут быть сохранены / добавлены в набор данных для использования в качестве будущей цели для альтернативной модели.
Пользовательские линии отдельных графиков можно редактировать непосредственно с помощью пункта меню правой кнопки мыши на выбранном графике. Обратите внимание, что пользовательские строки сохраняются и редактируются corner. Это делается для поддержки асимметричных вариантов модели.
12.4 Настройки взвешивания для кинематики
Каждый график / кривая, используемые при суммировании общего отклонения от соответствующей пользовательской линии, учитываются с помощью собственного весового коэффициента. Это позволяет пользователю сбалансировать числовые различия, скажем, между углом, таким как развал, и расстоянием, таким как высота центра крена. Для автоматической настройки этих параметров доступен ряд удобных функций, но прежде чем мы сможем ознакомиться с ними, нам нужно проанализировать, как мы указываем, какие графики мы хотим включить в процесс оптимизации. Из этого не обязательно следует, что: если конкретный график виден, он будет включен в оценку оптимизации.
Доступ ко всем настройкам оптимизатора осуществляется через дисплей Solve / Display Optimizer. Это отображение может быть как с 'details', так и без них. Снимок экрана иллюстрирует отображение 'with details'.
С помощью этого дисплея вы можете указать, какие графики включать в сумму. В верхнем левом углу показаны параметры 'sum using'. Мы можем выбрать, включать ли Нет. Линии графика, все определенные (т.е. любые, в которых указана пользовательская строка, видимые или нет), все видимые определенные линии графика (т.е. в соответствии с предыдущим вариантом, но также должны быть видимыми) или определенный пользователем список. Определенный пользователем список отображается графически в правом нижнем углу. Обратите внимание, что в верхнем левом поле также есть параметры суммы соответствия, которые мы рассмотрим позже.
Как только мы определим, какой графический фрагмент следует включить, мы сможем установить соответствующие весовые коэффициенты. Панель 'Graph weightings' показывает текущее значение для каждого графика. Мы можем либо отредактировать их напрямую, либо воспользоваться одним из пунктов меню (внизу слева). Это либо установит их все на ноль, все на единицу, либо на взвешенное значение, основанное на y-диапазоне отдельных графиков. Последний вариант пытается обеспечить удобный режим взвешивания без необходимости длительного редактирования каждого значения на графиках. Эти весовые коэффициенты будут непосредственно влиять на процесс оптимизации как в порядке и окончательная достигнутая модель. При использовании этой опции автоматического взвешивания важно правильно настроить оси y графика. Это может быть не что иное, как использование опции автоматического масштабирования графика, или может включать более конкретную настройку оси.
Вы также можете задать некоторые значения X-dist, отредактировав значения, доступные с помощью соответствующей кнопки рядом с значениями графиков. Значения X изменяются от -1 (нижний предел) до +1 (верхний предел), 0 - статическое положение. Значения Y определяют форму кривой. Соответствующие значения X-взвешивания затем экстраполируются из этих значений и используются для присвоения веса всем параметрам в некотором определенном положении. Например, кривая с точкой при x=1 и y=0 приведет к умножению всех параметров при полном отклонении на 0.
12.5 Определение параметров позиционного оптимизатора
Определив, как мы должны определять цели и суммировать их, нам нужно определить, какие позиции с жесткими точками мы намерены переместить. Мы можем установить ограничения позиционных параметров по отдельным углам. В простейшей симметричной модели с одним углом нас интересовал бы только набор точек с одним углом.
В пределах каждого набора углов мы определяем, какие точки должны быть включены, с помощью простого выбора включения / выключения. На той же линии мы также определяем пределы перемещения по каждой оси для выбранной точки. Доступны опции меню для установки пределов в качестве текущего положения или пределов допуска по текущим точкам. В качестве опции отображения мы можем просматривать пределы параметров либо в абсолютном виде, либо в дельтах.
На приведенном выше снимке экрана показана только точка 1 как выбранная, и будет учитываться только ось x, поскольку ограничения для y и z установлены равными 0. Этот дисплей был переключен на отображение значений дельты, и, таким образом, нулевые значения не означают никаких изменений по сравнению с текущим фактическим значением.
Как только мы установим все необходимые параметры, мы сможем перечислить их с помощью кнопки 'List parameters'. Наш простой пример с одним параметром показан ниже.
На аналогичном дисплее мы можем перечислить параметры в порядке чувствительности. Это может быть полезно при выявлении параметров, которые оказывают незначительное влияние на решение, и, таким образом, их можно либо удалить из списка, либо использовать для определения значения 'sensitivity ignore ratio'; цель состоит в том, чтобы уменьшить количество параметров для ускорения решения.
12.6 Запуск кинематической оптимизации
Определив цели и задав параметры, мы можем запустить оптимизатор. Как указывалось ранее, решатель пробежится по каждому параметру в порядке, основанном на чувствительности, выбирая настройку для каждого параметра, которая дает наименьшее отклонение. Эта позиционная настройка для минимального балла сохраняется при переходе решателя к следующему параметру. Во время этого процесса пользователь может просматривать промежуточные этапы в графическом окне, а также анимированную партитуру. Доступны два варианта оптимизации, одним из которых является простое полноматричное решение. Этот вариант полной матрицы является непрактично для всех случаев, кроме самых простых (простых с точки зрения нескольких переменных). Обычным методом решения является 'Sensitivity Based Optimization'.
Когда вы впервые нажимаете кнопку оптимизации, отображается сводная информация, в которой указаны разрешения размера шага, количество параметров, общее количество шагов и приблизительное время выполнения.
Нажав кнопку Ок, вы запустите оптимизацию и отобразите информацию о ходе выполнения, показанную ниже. На дисплее отображается прогресс и три балла. Баллы - это значение в начале, минимальное значение, найденное на данный момент, и балл за последнюю итерацию.
12.7 Кинематическая инструкция
Чтобы проиллюстрировать предыдущее обсуждение, мы приведем простой пример, включающий три графические кривые и три параметра.
Создайте новую модель фасада с одним углом, основанную на типе 1 по умолчанию.
Откройте три графика: Camber Angle, Kingpin Angle and Castor Angle, Graphs / New. Убедитесь, что у вас установлен модуль 3d bump и что значение bump/rebound равно +-60 мм с шагом 20 мм, Data / Parameters.
Используйте пункт меню "Удобный график", чтобы предварительно заполнить пользовательские строки текущими значениями данных, Graphs / User Lines / Copy Front-2D data to User.
Отредактируйте точку 3, наружный нижний шаровой шарнир в новое положение, X=4072, Y=733,5, Z=177,0
Перед открытием оптимизатора отобразите автоматическое масштабирование графиков. Теперь они должны выглядеть так, как показано ниже. Обратите внимание на видимые оценки отклонений.
Откройте дисплей оптимизатора, выберите Solve / Display Optimiser и настройте отображение подробной информации. Для этого простого примера мы будем использовать точное позиционное приращение, поэтому установите 'Position Mesh Size' равным 1,0 мм.
У нас будет положение точки 3 по X, Y и Z в качестве переменных, поэтому откройте соответствующий дисплей 'Position Limits' и установите их 'on' и диапазон в соответствии с текущими допусками. Проверьте, сравнив свой список параметров с приведенным ниже.
Прежде чем мы сможем провести анализ, нам нужно определить, какие весовые коэффициенты мы будем применять. Сначала попробуйте опцию 'Auto-Set weightings based on display'. Это должно дать 1,0 (развал), 0,2724 (колесико) и 0,4543 (стержень) для наших трех графиков.
Попробуйте запустить оптимизатор с этими весами…
Автоматическое взвешивание не дает очень эффективного решения. В частности, кривая развала не очень близка. Попробуйте выполнить повторный запуск, но на этот раз увеличьте вес развала вдвое, то есть 2,0, 0,2724, 0,4543. Нет необходимости перезагружать исходные значения, мы можем выполнить повторный запуск с этой новой позиции.
В этом случае мы получаем значительно улучшенный матч и нулевой счет. Совпадают ли координаты точки 3 с исходными? Добрались бы мы сюда за один шаг, если бы с самого начала установили значения взвешивания равными 2,0 и т.д.?
12.8 Установление соответствующих целевых показателей с помощью коэффициентов соответствия
Чтобы расширить использование оптимизатора за счет использования свойств, совместимых с настройкой, таких как жесткость втулки и ориентация, нам нужен дополнительный метод оценки результатов, аналогичный тому, который используется с нашими производными графиками. Конечно, мы можем использовать пользовательские линии graph curves в качестве целей для оптимизации соответствия требованиям, но более обычно использовать отображение столбчатой диаграммы 'Compliance Values' (Results / Compliance Bar Values), поскольку это позволяет нам использовать соответствующие конкретные результаты при различных нагрузках.
Каждая полоска на дисплее имеет соответствующую целевую или предельную настройку. Они отображаются в виде горизонтальных линий поперек каждой панели отображения. Мы можем использовать сумму отличий от этих 'limit' настроек для управления нашим процессом оптимизации аналогично пользовательским линиям графика x-y. Чтобы установить предельные значения для определенного бара, выделите его правой кнопкой мыши, а затем отредактируйте по мере необходимости. В качестве альтернативы, чтобы отредактировать их все на одном дисплее, выберите пункт меню Edit All Line Limits/Scale/Weights…, в меню правой кнопки мыши на графике значений соответствия.
Аналогично настройке пользовательской строки, доступен пункт удобного меню, устанавливающий Выберите все предельные значения в текущем меню правой кнопки мыши, чтобы принять текущие значения в качестве требуемых пределов.
Для этих предельных настроек не существует системы баз данных, но они сохраняются в пользовательском ini-файле.
12.9 Параметры взвешивания для целевых показателей соответствия
Как и в случае с кинематическими пользовательскими линиями, нам необходимо применить весовой коэффициент к каждой соответствующей гистограмме. Мы можем либо отредактировать их по отдельности, используя пункт меню правой кнопки мыши Edit Weighting Setting..., либо воспользоваться опцией Edit All.
Индивидуальные значения взвешивания применяются к каждому отдельному стержню в каждом наборе нагрузок, хотя одно и то же значение используется для каждого угла в пределах одной переменной стержня, хотя у каждого угла может быть отдельная цель / предел.
На дисплее оптимизатора есть два удобных варианта автоматической настройки значений взвешивания стержней. На нижней левой панели есть функция Auto-Set Compliance Weights Based on Display и Set All Compliance Weightings to Unity. Они функционируют так, как подразумевается, чтобы обеспечить настройки взвешивания одним щелчком мыши.
12.10 Указание соответствующих параметров и ограничений оптимизатора
Соответствующими свойствами, доступными в качестве параметров для оптимизатора, являются осевая жесткость втулки X, Y и Z, частота вращения втулки X-X, Y-Y и Z-Z-Z, а также ориентация втулки. Ориентация втулки контролируется оптимизатором с помощью последовательности поворотов локальной оси Эйлера вокруг осей X, Y и Z.
Очевидно, что соответствующая оптимизация может быть применена только к точкам модели, которые являются либо соединением с землей, либо соединением между деталями. Они также должны были быть идентифицированы как 'compliant', а не 'rigid'.
Из-за часто симметричной природы втулок предусмотрены специальные опции для сопряжения жесткости по X и Y (т.е. нет необходимости устанавливать осевую жесткость по X и Y в качестве параметрической переменной, просто измените одну, и другая автоматически станет такой же). Аналогичная опция доступна для скоростей вращения x-x и y-y.
Чтобы выбрать необходимые втулки для оптимизации, выберите значок 'Bush Stiffness Limits'. На этом дисплее переключите необходимые втулки и установите пределы x, y и z аналогично тому, что было выполнено ранее для положения точки.
Вы можете предварительно заполнить все значения жесткости, используя два удобных пункта меню: PreFill Min/Max Using Defined Values, и Pre-Fill Using Actual Values. Первый из этих двух вариантов требует, чтобы пользователь указал, какими должны быть минимальные и максимальные ограничения.
Как только все необходимые параметрические свойства втулки определены, их можно просмотреть с помощью опции "Список параметров". Ось будет идентифицирована как 'Xstiff', 'Ystiff' и 'Zstiff', если применимо.
Аналогичным образом мы можем проанализировать чувствительность определенных параметров. Используемый размер шага между минимальной и максимальной жесткостью определен в записях на верхней правой панели. Здесь вы определяете размеры ступеней как для осевой жесткости, так и для жесткости при вращении.
Тот же процесс может быть применен для настройки вращения втулки в качестве параметрических переменных. Определите точки, установите ограничения и увеличьте размер шага.
12.11 Выполнение соответствующей оптимизации
С определенными переменными, ограничениями и параметрами мы не можем выполнить оптимизацию точно таким же образом, как в предыдущем примере только с кинематикой.
Поскольку это совместимое решение, время выполнения решения будет больше, чем ранее. Проверьте общее количество шагов и время выполнения на наличие разумных значений, прежде чем отправлять результаты оптимизации. Возможно, вам потребуется изменить размер шага, чтобы сократить время выполнения.
Вы можете остановить запуск оптимизатора до его завершения и по-прежнему иметь возможность выбрать уже найденное решение с наименьшим баллом. Это может быть полезно, когда в долгосрочной перспективе подходящее решение уже найдено. Вы также могли бы установить значение 'Auto-Stop' выше.