Решатель Разделения является фиксированным шагом Simscape™, локальный решатель, который улучшает производительность для определенных моделей. Однако при использовании решателя Разделения, некоторые модели Simscape Driveline™ генерируют предупреждения, останавливают и генерируют ошибки, не удаются инициализировать, или дать к болтовне сигнала из-за числовых трудностей. Эти примеры показывают, как устранить ошибки, смягчить предупреждения и уменьшать болтовню путем решения числовых трудностей.
Числовые трудности, которые препятствуют тому, чтобы модели симулировали к завершению, предупреждениям урожая, или вводят болтовню, обычно связываются с блоками, которые имеют высокую жесткость или трение. Блоки Simscape Driveline с высокой жесткостью или трением включают муфты, шкивы пояса, шины и гибкие валы.
Чтобы разрешить числовые трудности в моделях, которые содержат эти блоки, используйте один или несколько методов:
Настройте настройки решателя.
Удалите высокоприоритетное переменное сокращение.
Разблокируйте начальные условия муфты.
Ослабьте связанные с трением допуски.
Устраните блоки высокой жесткости.
Устраните степени свободы.
Когда имитационные модели с помощью решателя Разделения:
Симулируйте модель при помощи решателя шага глобальной переменной, чтобы получить базовые результаты, которые соглашаются с вашей математической моделью или эмпирическими данными.
Сконфигурируйте локальный решатель для симуляции решателя Разделения.
Запустите симуляцию решателя Разделения. Если симуляция:
Выполнение до завершения — Сравнивают результаты симуляции решателя Разделения с базовыми результатами. Если результаты не согласовывают, настраивают настройки решателя или компоненты модели и симулируют снова. Например, уменьшите размер шага или упростите динамику модели. Для получения дополнительной информации смотрите, Уменьшают Числовую Жесткость (Simscape), Выбирают Step Size и Number of Iterations (Simscape) и Reduce Fast Dynamics (Simscape).
Повторитесь, пока симуляция не возвращает результаты, которые соглашаются с базовыми результатами.
Сбои, чтобы симулировать к завершению из-за числовых проблем — Решают вопросы путем применения одного или нескольких методов, перечисленных в Решении Вопросов для Блоков с Жесткостью или Трением. Повторно выполните симуляцию. Повторитесь, пока симуляция не выполнение до завершения, затем сравните результаты с базовыми результатами. Если результаты не согласовывают, настраивают настройки решателя или компоненты модели и повторно выполняют симуляцию. Повторитесь, пока симуляция решателя Разделения не возвращает результаты, которые соглашаются с базовыми результатами.
В этом примере показано, как разрешить числовые трудности, которые генерируют начальные ошибки условия и предупреждения. Когда начальная проблема условия препятствует тому, чтобы симуляция инициировала или выполнение до завершения, MATLAB® останавливает симуляцию и генерирует ошибку. Когда симуляция не может удовлетворить высокоприоритетным целям, симуляция продолжает запускаться, но MATLAB генерирует предупреждение.
Откройте модель. В командной строке MATLAB, введите:
%% Open the Model model = 'sdl_transmission_helicopter_base'; open_system(model)
Окно модели указывает, что глобальный решатель Simulink® является решателем переменного шага.
Чтобы исследовать Simscape локальная настройка решателя, откройте настройки блока Solver Configuration.
Модель сконфигурирована, чтобы симулировать использование глобального решателя Simulink, потому что флажок Use local solver снимается.
Симулируйте модель и затем, исследовать базовую линию следует из симуляции переменного шага, откройте блок Scope.
Сконфигурируйте модель для симуляции решателя Разделения. В настройках блока Solver Configuration установите флажок Use local solver.
Когда вы устанавливаете флажок Use local solver, связанные параметры включены. По умолчанию параметры в блоке Solver Configuration устанавливаются на::
Solver type — Partitioning
'SampleTime' 0.05
Partition method — Robust simulation
Partition storage method — Exhaustive
Use fixed-cost runtime consistency iterations — Выбранный
Nonlinear iterations — 3
Симулируйте модель.
Симуляция генерирует два предупреждения и одну ошибку. Ошибка предотвращает компиляцию, потому что это останавливает симуляцию.
Warning: Initial conditions for eliminated differential variables not supported by partitioning solver. The following states may deviate from requested initial conditions: ['sdl_transmission_helicopter_base/Inertia Main Rotor'] Inertia_Main_Rotor.w ['sdl_transmission_helicopter_base/Inertia Tail Rotor'] Inertia_Tail_Rotor.w Warning: Simscape succeeded in finding consistent states with which to start the simulation, but the states found may deviate from requested initial conditions. Error: ['sdl_transmission_helicopter_base/Solver Configuration']: At time 0.050000, one or more assertions are triggered. See causes for specific information. Caused by: Argument of sqrt must be nonnegative. The assertion comes from: Block path: sdl_transmission_helicopter_base/Lift and Drag Main Rotor/L^.5 Assert location: In between line: 48, column: 19 and line: 48, column: 20 in file: Dir:\Program\Files\MATLAB\R20XXx\toolbox\physmod\simscape\library\m\ physical_signal_legacy\+foundation\+physical_signal\+functions\math_function.ssc
Сообщение об ошибке указывает, что решатель возвратил отрицательное значение для расчета квадратного корня. Если симуляция переменного шага выполнение до завершения, но симуляция фиксированного шага генерирует этот тип ошибки для той же модели, обычно, локальный шаг расчета решателя является слишком большим, или локальное количество решателя нелинейных итераций слишком мало. Увеличьте число нелинейных итераций для локального решателя. В настройках блока Solver Configuration, набор Nonlinear iterations к 9
. Затем симулируйте модель и просмотрите результаты в блоке Scope.
Warning: Initial conditions for eliminated differential variables not supported by partitioning solver. The following states may deviate from requested initial conditions: ['sdl_transmission_helicopter_base/Inertia Main Rotor'] Inertia_Main_Rotor.w ['sdl_transmission_helicopter_base/Inertia Tail Rotor'] Inertia_Tail_Rotor.w Warning: Simscape succeeded in finding consistent states with which to start the simulation, but the states found may deviate from requested initial conditions.
Симуляция выполнение до завершения, но она все еще генерирует два предупреждения. Результаты соглашаются с базовыми результатами в терминах значительных характеристик для модели (таких как наклоны, величины и точки перегиба).
Оба предупреждения вызываются начальными проблемами условия. Исследуйте предупреждения путем исследования переменных в модели. Чтобы открыть Переменное Средство просмотра, на вкладке Apps, в категории Physical Modeling, нажимают Simscape Variable Viewer. Чтобы отфильтровать для переменных, которые имеют цели, которым симуляция не может удовлетворить, кликните по стрелке вправо заголовка столбца Status, и в выпадающем списке, снимите флажок OK.
Существует несколько переменных, которые имеют High
приоритетные цели, которым симуляция не может удовлетворить.
Два блока инерции, которые упоминаются в первом предупреждении, среди блоков, которые имеют проблематичные высокоприоритетные цели. Решатель Разделения преобразовал эти переменные в недифференциальные переменные, которые алгебраически связаны с остающимися дифференциальными переменными. Начальные условия для недифференциальных переменных не поддержаны решателем Разделения.
Начальная буква Ротора Хвоста Инерции вращательная скорость,-400 (об/мин), алгебраически ограничивается совпадать с вращательной скоростью, заданной в блоке Flexible Shaft. Аналогично, Инерция Основная начальная буква Ротора вращательная скорость-80 (об/мин) алгебраически ограничивается совпадать с вращательной скоростью узла R Planetary Main Rotor block.
Устраните первое предупреждение путем удаления приоритета для проблематичных начальных целей условия. Откройте и блок Inertia Main Rotor и блок Inertia Tail Rotor, и, в настройках Variables, установите приоритет для переменной Rotational velocity к None
. Затем симулируйте модель, исследуйте переменные и просмотрите результаты.
Warning: Simscape succeeded in finding consistent states with which to start the simulation, but the states found may deviate from requested initial conditions.
Условие начальной буквы инерции, предупреждающее, не сгенерировано, и Переменное Средство просмотра больше не показывает скорость для инерции среди не пройдено целей. Результаты соглашаются с базовыми результатами в терминах значительных характеристик для модели.
Исследуйте Переменные данные о Средстве просмотра. Остающееся предупреждение выдано, потому что существуют значительные различия между Target и значениями Start для нескольких высокоприоритетных целей. Чтобы уменьшать различие, уменьшите шаг расчета для локального решателя. В настройках блока Solver Configuration, набор Sample time к 0.01
. Затем симулируйте модель и просмотрите результаты.
Warning: Simscape succeeded in finding consistent states with which to start the simulation, but the states found may deviate from requested initial conditions.
Существует все еще предупреждение для нескольких высокоприоритетных целей, но различие между Target и значениями Start меньше. Результаты совпадают с базовыми результатами в терминах значительных характеристик для модели и, из-за уменьшения в шаге расчета, сигнал Main более сглажен.
В этом примере показано, как уменьшать болтовню, тип шума сигнала. Болтовня может произойти, когда вы используете решатель Разделения, чтобы симулировать модель, которая включает блок то трение моделей. Определенный тормоз Simscape Driveline, муфта, диск, механизм и блоки шины могут смоделировать трение.
Откройте модель. В командной строке MATLAB, введите:
%% Open the Model model = 'sdl_capstan'; open_system(model) % Expand the Model Window to Accomodate the Property Inspector modelLocation = get_param(model,'location'); modelLocationAdjustment = [0 0 400 100]; modelLocationAdjusted = modelLocation + modelLocationAdjustment; set_param(model,'location',modelLocationAdjusted)
Модель сконфигурирована для симуляции переменного шага.
Ось представлена блоком Belt Pulley, блок диска то трение моделей.
Включите Simscape локальную регистрацию данных для модели и для блока Capstan.
Откройте модель Configuration Parameters. На вкладке Modeling нажмите Model Settings> Model Settings.
На левой панели выберите Simscape.
Установите Log simulation data на Use Local Settings
.
Установите флажок Record data in Simulation Data Inspector.
Установите флажок Open viewer after simulation.
Чтобы применить изменения в Configuration Parameters, нажмите OK.
Кликните по блоку Capstan.
Откройте Property Inspector. На вкладке Modeling кликните по стреле на правой стороне раздела Design. В категории Data Management выберите Property Inspector.
В настройках Logging установите флажок Log simulation data.
Симулируйте модель и затем, чтобы исследовать результаты на блок Capstan B - сила узла, в Инспекторе Данных моделирования:
Расширьте узел Capstan.
Установите флажок fB.
Результаты показывают, что загрузка обеспечивает промах причин, когда это превышает предел силы оси.
Закройте инспектора данных моделирования.
Сконфигурируйте модель для симуляции решателя Разделения. Нажмите Solver Configuration и в настройках блока Solver Configuration:
Установите флажок Use local solver.
Установите Solver type на Partitioning
.
Установите Partition method на Robust simulation
.
Установите Solver type на Partitioning
.
Установите Partition storage method на Exhaustive
.
Симулируйте модель и исследуйте результаты в Инспекторе Данных моделирования.
Блок Capstan B - сила узла показывает значительную болтовню во время симуляции решателя Разделения. Обратитесь к документации для блока Belt Pulley для источников жесткости или разрывов.
Согласно документации, Vrel является относительной скоростью между периферией шкива и поясом. Идеализация разрыва в Vrel = 0 является и трудной для решателя решить и не физически точная. Чтобы облегчить эту проблему, коэффициент трения принят, чтобы изменить его значение как функцию относительной скорости, таким образом что
где:
μ является мгновенным значением коэффициента трения.
f является установившимся значением коэффициента трения.
Vthr является скоростным порогом трения.
Поэтому для маленьких значений Vthr, жесткость силы трения около Vrel значительно увеличивается.
Чтобы решить этот вопрос, увеличьте значение Vthr в настройках блока Capstan. В настройках Contact увеличьте Velocity threshold с 0.001
к 0.1
.
Симулируйте модель и исследуйте результаты в Инспекторе Данных моделирования.
Блок Capstan B - сила узла больше не показывает значительную болтовню.
Сравните данные от симуляции переменного шага до новых данных из симуляции решателя фиксированного шага.
В Инспекторе Данных моделирования выберите Compare.
Сконфигурировать сравнение, в верхней части, правой панели:
Кликните по стреле на правой стороне установки Baseline. В нижней части списка нажмите Signals и затем выберите sdl_capstan.Capstan.fB (Run 1: sdl_capstan)
.
Кликните по стреле на правой стороне установки Compare to. В нижней части списка нажмите Signals и затем выберите sdl_capstan.Capstan.fB (Run 3: sdl_capstan)
.
Нажмите Compare.
Чтобы изменить цвет линии результатов решателя Разделения, в панели Properties, в столбце Compare to, кликают по цветному Line, выбирают различный цвет и стиль, такой как желтые и штрихпунктир, и затем нажимают Set.
Блок Capstan B - сила узла больше не показывает значительную болтовню. Решатель Разделения и результаты симуляции решателя Переменного шага соглашаются для большой части симуляции. Различием в результатах является ожидаемое различие для сравнения переменного шага и результатов решателя фиксированного шага.
Рисунок показывает масштабируемое временем представление различия между результатами симуляции переменного шага и результатами симуляции фиксированного шага решателя Разделения.
Путем уменьшения размера шага во время симуляции решатель переменного шага может получить быстрые движущие силы, которые происходят во времени симуляции, t = 3 с. Решатель Разделения переступает через быструю динамику, потому что размер фиксированного шага является слишком большим. Вы могли уменьшать или разрешить различие путем уменьшения размера шага для решателя Разделения, но выполнение так время длительности симуляции увеличений и может привести к превышенной симуляции в реальном времени.
Перерегулирование фиксированного решателя шага во времени симуляции t = 3,014 с является также характеристикой решателей фиксированного шага. Сокращение размера шага для решателя Разделения может минимизировать перерегулирование, но может также привести к превышенной симуляции в реальном времени.
Этот пример также показывает, как разрешить числовые трудности, которые дают к болтовне в симуляциях Simscape Driveline, которые используют решатель Разделения. В этом случае болтовня вызывается жесткостью. Жесткая модель является той, которая содержит и быстро и медленная динамика.
Откройте модель с блоком. В командной строке MATLAB, введите:
%% Open the Model model = 'sdl_vehicle_dual_clutch'; open_system(model)
Модель сконфигурирована для симуляции переменного шага, которая использует глобальный решатель. Регистрация данных включена только для сигнала, который содержит данные о состоянии механизма.
Сконфигурируйте модель для регистрации данных. В данном примере утомитесь, промах является данными интереса, и логгирование дополнительных данных увеличивает вычислительную стоимость симуляции. Включите регистрацию данных для шины, подсовывают и отключают регистрацию данных для состояния механизма.
В подсистеме Vehicle блок Tire LF Tire (Magic Formula) представляет лево-переднюю шину транспортного средства. Порт Tire LF S, который передает данные о промахе шины, является портом физического сигнала. Можно регистрировать данные о физическом сигнале с помощью регистрации данных Simulink. Место назначения для сигнала является блоком Tire slip Scope, который находится в подсистеме Scopes.
Откройте подсистему Scopes.
Данные о промахе шины находятся в сигнале, что блок FrontSlip From передает с блоком Tire slip Scope. Выберите сигнал, и в панели инструментов Simulink, на вкладке Signal, кликните по стреле на правой стороне раздела Monitor. В категории Signal Monitoring нажмите Log Signals.
В подсистеме Transmission Controller, в подсистеме Shift state, блок z3 Unit Delay передает состояние механизма.
Откройте подсистему Transmission Controller.
Откройте подсистему Shift state.
Подсистема Gear state G передает состояние механизма с блоком Unit Delay, который, в свою очередь, передает данные с блоком Gear state Outport. Сигнал, который соединяет блок Unit Delay с блоком Gear state Outport, отмечен для регистрации данных. Выберите сигнал, и в панели инструментов Simulink, на вкладке Signal, кликните по стреле на правой стороне раздела Monitor. В категории Signal Monitoring нажмите Log Signals.
Получите и исследуйте базовые результаты. Симулируйте использование решателя шага глобальной переменной и рассмотрите результаты в Инспекторе Данных моделирования.
Запустите симуляцию. В панели инструментов Simulink, на вкладке Simulation, в разделе Simulate, нажимают Run.
Откройте Инспектора Данных моделирования. В панели инструментов Simulink, на вкладке Simulation, кликают по стреле на правой стороне раздела Review Results, и, в категории Signal Logging Results, нажимают Signal Logging Results. Чтобы смотреть данные о промахе шины, установите флажок From8:1.
Сконфигурируйте локальный решатель для симуляции фиксированного шага с помощью решателя Разделения.
В модели откройте настройки блока Solver Configuration.
Установите флажок Use local solver.
Симулируйте использование решателя Разделения.
Сравните базовую линию и результаты решателя Разделения в Инспекторе Данных моделирования.
Откройте инспектора данных моделирования.
В верхней части, левой панели, выбирают Compare.
Сконфигурируйте сравнение. В верхней части, правой панели:
На правой стороне установки Baseline кликните по стрелке вниз и выберите Run 1: sdl_vehicle_clutch
.
На правой стороне установки Compare to кликните по стрелке вниз и выберите Run 2: sdl_vehicle_clutch
.
Нажмите Compare.
Чтобы изменить цвет линии результатов решателя Разделения, в панели Properties, в столбце Compare to, кликают по цветному Line, выбирают различный цвет, такой как желтый, и затем нажимают Set.
Результаты симуляции решателя Разделения содержат значительную болтовню.
Болтовня сигнала происходит из-за жесткости, которая связана с инерцией в блоках Tire (Magic Formula). Инерция является также причиной первого начального предупреждения условия. Чтобы разрешить болтовню сигнала и начальное предупреждение условия, упростите динамику шины:
Откройте подсистему Vehicle.
Откройте настройки блока Tire LF.
В настройках Dynamics, набор Inertia к No Inertia
.
Используя тот же процесс, не используйте инерцию для Tire RF, Tire LR и блоков Tire RR.
Второе начальное условие, предупреждающее, происходит из-за заблокированного состояния блока Dog Clutch 1 в начале симуляции. Решатель Разделения не может решить динамику для начального крутящего момента, который заблокированная муфта передает между звонком и концентратором. Разрешить предупреждение:
Откройте подсистему Dual Clutch Transmission.
Откройте подсистему Gears.
Откройте настройки блока Dog Clutch 1. В настройках Initial Conditions, набор Clutch initial state к Unlocked
.
Симулируйте и затем исследуйте и сравните результаты в Инспекторе Данных моделирования.
Запустите симуляцию.
Откройте Инспектора Данных моделирования и сравните, результаты симуляции фиксированного шага решателя Разделения к базовой линии следует из симуляции переменного шага. Сконфигурировать сравнение, в верхней части, правой панели:
На правой стороне установки Baseline кликните по стрелке вниз и выберите Run 1: sdl_vehicle_clutch
.
На правой стороне установки Compare to кликните по стрелке вниз и выберите Run 3: sdl_vehicle_clutch
.
Нажмите Compare.
Результаты симуляции решателя Разделения больше не содержат значительную болтовню и намного более похожи на базовые результаты.