Что означает гистерезис и как он применяется к информатике или программированию?

Я просматривал какой-то код и увидел неконтекстный комментарий о "гистерезисе". Я думаю, что выяснил, что делает код, поэтому мой вопрос не содержит ничего конкретного. Я просто не понимаю, что означает этот термин или как он применим в программировании. Я посмотрел вокруг и увидел некоторые математические определения, но хотел бы получить больше информации. Из того, что я могу сказать, гистерезис как-то связан с предсказанием или принятием определенного состояния для X на основе того, что случилось с X в прошлом?

6 ответов

Решение

Гистерезис характеризует систему, поведение (выход) которой зависит не только от ее входных данных в момент времени t, но также от ее прошлого поведения, от пути, которым она следовала.

Хорошо известным устройством, проявляющим гистерезис, является термостат. Представьте себе термостат, который включал бы и выключал нагрев при температуре 70°F. Когда температура около 70°F, хотя и немного колеблется, термостат будет постоянно включать и выключать нагрев. Как правило, термостат построен с гистерезисом: он включит нагрев при (скажем) 69°F, но отключит нагрев при 71°F. Это позволяет избежать постоянных переключений.

РЕДАКТИРОВАТЬ: взгляните на статью в Википедии.

Пример термостата:

heatPointLow = 8°C
heatPointHeight = 10°C
heater = off

while(true){
    if(temperature < heatPointLow)
        heater = on
    if(temperature > heatPointHeight)   
        heater = off
}

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

Google был моим другом:

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

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

Я думаю о тех пузырях "Device Driver Configured" в панели задач Windows 7, как о гистерезисе: пузырь появляется в ответ на событие завершения из ОС и начинает исчезать. Событие при наведении курсора на пользователя сбрасывает этот таймер, давая пользователю время щелкнуть пузырь для получения подробной информации о событии; он задерживает анимацию затухания, даже если после этого события мыши находятся за пределами области пузырька.

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

Ищите "Берсерк гистерезис" в YouTube для примера. Без гистерезиса роботы в игре буквально просто дергаются и практически не двигаются (когда происходит много активности).

Хорошие ответы. На практических уровнях интеграции это очень важно. Интеграционный слой с гистерезисом сам по себе является подсистемой. Понятно, что идеалом является отсутствие гистерезиса (машина Мура); но, как правило, существует несоответствие в конечных автоматах каждой из систем, и это может быть решено только переводчиком, использующим гистерезис. Например, модуль полевой службы Microsoft Dynamics/Great Plains записывает состояние в своей таблице журнала аудита основного обслуживания SVC00210. Каждый звонок находится в каком-то SRVSTAT. При интеграции планировщика, такого как планировщик оптимизации сервиса ClickSoftware, необходимо работать с его состоянием. Состояние CS определяется пользовательской реализацией. Например, открыто, InRoute, OnSite, Incomplete, Cancelled, Complete. Кроме того, он также находится в состоянии незавершенности с ожидающими деталями, хотя он реализован как подсистема состояний в незавершенном состоянии. Итак, переходы в GP должны отображаться в CS. К сожалению, GP допускает (делает запись на экране ввода для вызова) переходы из одного состояния в себя; таким образом, событие перехода не может быть использовано исключительно для запуска изменения состояния в GP. Следовательно, новое триггерное событие является комбинацией перехода состояния GP, а также мета-состояния, определенного некоторой логикой на множестве прошлых событий. Как видите, гистерезис быстро превращает проблему из простой в сложную. С точки зрения компьютерных наук, идеалом является машина Мура, а практической - машина Мили. Я предпочитаю думать об этом как о мучной муке с жуками, живущими в ней, и все! Я думаю, что возможно изготовить машину Мура из любой машины Мили, у машины Мура будет просто больше состояний. Смотрите: Мили v / s. Мур

Не могу выразить это более кратко, чем первое предложение статьи в Википедии:

Гистерезис - это зависимость состояния системы от ее истории.


TS; Н.М.

Интересный взгляд на понятие гистерезиса выражен в статье " Гистерезис как жизнь":

Эта форма или график неизменно связана со всеми реальными случаями использования гистерезиса:

Типичная кривая гистерезиса

Если мы называем ось X "время", а ось Y "события", то мы можем сказать, скорее в поэтическом, чем в научном смысле, что все жизни начинаются одинаково. Со временем каждый человек испытывает события. Хотя события уникальны, они все же попадают в ограниченный диапазон "всего человеческого опыта".

Гистерезис с меткой

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

Другие вопросы по тегам