Программа моделирования в ограничениях

Иногда с помощью системы CLP(R) удается найти весьма изящные решения задач числового моделирования. Такие средства являются особенно подходящими, если моделируемая система может рассматриваться как состоящая из большого количест­ва компонентов и соединений между этими компонентами. К таким системам отно­сятся, например, электрические схемы, характерными компонентами которых явля­ются резисторы и конденсаторы.

С компонентами связаны параметры и переменные, имеющие реальное значение, такие как электрические сопротивления, напряжения и токи. Подобная организация модели хорошо сочетается со стилем программирования в ограничениях. Законы фи­зики налагают ограничения на переменные, связанные с компонентами. Соединения иежду компонентами налагают дополнительные ограничения. Поэтому для решения задач числового моделирования с помощью системы CLP(R) для семейства систем, таких как электрические сети, необходимо определить законы, распространяющиеся на компоненты тех типов, которые используются в данной проблемной области, а также законы, регламентирующие соединения компонентов. Эти законы задаются как ограничения на переменные. Затем для моделирования конкретной системы из такого семейства необходимо определить конкретные компоненты и соединения в системе. В результате этого интерпретатор CLP налагает ограничения на всю систему и осуществляет моделирование по принципу удовлетворения ограничений. Безуслов­но, такой подход является эффективным, если типы ограничений, относящиеся к моделируемой проблемной области, могут эффективно обрабатываться данной кон­кретной системой CLP.

В данном разделе этот подход применяется для моделирования электрических схем, состоящих из резисторов, диодов и источников питания. Отношения между напряжениями и токами в таких схемах являются кусочно-линейными. Учитывая то, что применяемая система CLP(R) эффективно обрабатывает линейные равенства и неравенства, она является подходящим инструментальным средством для моделиро­вания подобных схем.

На рис. 14.3 показаны рассматриваемые компоненты и соединения, а также соот­ветствующие ограничения, налагаемые этими компонентами и соединениями. Такие элементы могут быть определены в программе CLP(R) следующим образом. Резистор

i

имеет некоторое сопротивление R и две клеммы, Т1 и Т2. Переменными, связанными с каждой клеммой, являются электрический потенциал V и ток I (направленный в резистор). Поэтому клемма Т представляет собой пару ;V,I), Определяемое закона­ми физики поведение резистора можно описать с помощью следующего предиката:

resistor( (VI,II), (V2,I2), В ) :-{ II = -12, V1-V2 = I1*R }.

Поведение источника питания можно определить аналогичным образом, как по­казано в программе, приведенной в листинге 14.3. В этом листинге дано также опре­деление диода. А что касается соединений, то лучше всего определить общий случай, в котором соединено любое количество клемм, следующим образом: conn! [ Terminal!, Tenrinal2, ...])


Глава 14. Логическое программирование в ограничениях



&)


II