Ниже приводится описание некоторого подмножества универсального промежуточного языка базовой версии программного комплекса ПА-6, которое для краткости назовем миниязыком. Включенные в это подмножество конструкции языка позволяют описывать непрерывные объекты различной физической природы и задание на их анализ во временной области.
Для описания объектов должны использоваться элементы из постоянной библиотеки комплекса ПА-6, так как в миниязык не включены средства описания произвольных функциональных зависимостей пользователя.
Подготовка описания объекта. Она проводится пользователем вручную и состоит из следующих этапов.
Этап 1. Объект разделяется на однородные в физическом отношении подсистемы, а подсистемы в свою очередь делятся на дискретные элементы.
Этап 2. Для каждой подсистемы зарисовывается эквивалентная схема, содержащая элементы, имеющиеся в постоянной библиотеке комплекса ПА-6 (двухполюсники и многополюсники).
Этап 3.Узлы эквивалентной схемы нумеруются целыми положительными числами из непрерывного ряда, начинающегося с 1.
Этап 4. Выявляются элементы, обладающие одинаковыми параметрами.
Этап 5. Выбирается согласованная система единиц величин (как правило, СИ). В дальнейшем все числовые величины миниязыка должны задаваться в этой системе без указания их размерности.
■ П р и м е ч а н и е. Этапы 1 и 2 подготовки описания объекта подробно описаны в четвертой книге.
Если при составлении эквивалентной схемы объекта возникает необходимость в элементе, отсутствующем в постоянной библиотеке комплекса ПА-6, то пользователь должен сам запрограммировать
математическую модель этого элемента и поместить подпрограмму в библиотеку. Другой, более прострой для неподготовленного пользователя способ преодоления этой трудности — использование специальных библиотечных элементов, реализующих простейшие функциональные зависимости (линейные, нелинейные, пороговые). Из таких элементов пользователь может «собрать» любой необходимый ему макроэлемент. После завершения работ рассмотренных этапов пользователь кодирует описание объекта и задание на его проектирование на миниязыке.
Рис.5.8.Структура описания объекта проектирования и задания на его расчет на мини-языке программного комплекса ПА-6
Структура описания на мини-языке комплекса ПА-6. Структура описания объекта и задания на проектирование представлена на рис. 5.8. Сначала задается описание структуры и элементов объекта с помощью конструкций ЯОО, затем следует описание задания на проектирование. Описание объекта состоит из следующих разделов:
1) описание структуры (список элементов с указанием номеров узлов их подключения);
2) описание величин, выводимых на печать в процессе моделирования объекта;
3) описание параметров элементов эквивалентной схемы. Каждый раздел описания начинается с ключевого слова (заголовка), первым символом которого является .
Все предложения должны начинаться с первой позиции строки, пробел в первой позиции служит признаком строки-комментария (из этого правила есть одно исключение, описанное ниже).
При описании конструкций языка будем использовать следующие обозначения < ххх > — символы, заключенные в угловые скобки, являются простым именем сложного элемента языковой конструкции (нетерминалом); [ххх] — элемент языковой конструкции, заключенный в квадратные скобки, не является обязательным.
В качестве примера использования этих обозначений рассмотрим заголовок описания проектируемого объекта. Он должен иметь следующий вид:
FR : [< ИO >]
где ИО — имя объекта, последовательность не более шести букв латинского алфавита и цифр, обязательно начинающаяся с буквы.
Описание структуры (топология) эквивалентной схемы на миниязыке комплекса ПА-6.Описание структуры начинается с заголовка
# ТОР:,за которым на последующих строках следует список описаний элементов, составляющих схему. Описание одного элемента в списке выглядит следующим образом:
<ИММЭ> [<ДИЭ>] <НУ—1> ... <HУ-N> [,<HПП>];
где ИММЭ — имя математической модели элемента (оно же имя элемента), последовательность не более трех букв латинского алфавита, не начинающаяся с букв А, В, М, ДИЭ —десятичный идентификатор элемента, произвольная последовательность не более трех цифр (позволяет выделить конкретный элемент среди всех элементов схемы, обладающих одним ИММЭ); НУ—J—-номер узла схемы, к которому подключен j-й вывод (полюс) элемента; ИПП — идентификатор признака повторяемости параметров элементов, произвольная последовательность не более шести букв (русских и латинских) и цифр, обязательно начинающаяся с буквы.
Считается, что все элементы, в описании которых присутствует одинаковый ИПП, имеют одинаковые параметры, числовые значения параметров для них задаются однократно (см. ниже).
Имя математической модели элемента фактически представляет собой имя библиотечной подпрограммы, реализующей математическую модель элемента. Оно совместно с десятичным идентификатором составляет идентификатор элемента (ИЭ), который позволяет выделить конкретный элемент среди всех элементов схемы. В описании элемента разделителем между номерами узлов и идентификатором элемента служит один пробел. Например,
С 11 46, РЫЧАГ — элемент «масса», <ИЭ> = С,
<ИПП> = РЫЧАГ
UP25 1 68, L4S; — элемент «упругость» <ИЭ> = UР25,
В качестве последнего примера использован зависимый источник расхода, применяемый при описании гидравлических и пневматических систем. Этот элемент — четырехполюсник [в нем источник фазовой переменной типа потока включен между первыми двумя полюсами (подсоединенными к узлам 8 и 9 фрагмента)] и зависит от фазовых переменных типа потенциала на двух последних полюсах (подсоединенных к узлам 17 и 23), т. е. g = К(ф3— Ф4), где К — параметр элемента (рис. 5.9).
Указанная функциональная зависимость реализована в заранее составленной подпрограмме, носящей имя GZ. Для простых линейных двухполюсных элементов (в примерах это С и UP25) порядок перечисления номеров узлов подключения на правильность расчета влияния не оказывает, "от него зависят только знаки распечатываемых фазовых переменных, связанных с этими элементами (см. ниже).
Миниязык разрешает располагать на каждой строке произвольное (но целое) количество описаний элементов, 1:ри этом между ними никаких разделителей (в том числе и пробел) не допускается. Порядок описаний элементов произвольный, комментарии могут
занимать свободную от описаний элементов часть строки (как это и сделано в примерах), но должны быть отделены от них по крайней мере одним пробелом.
Описание параметров элементов эквивалентной схемы наминиязыке комплекса ПА-6. Вслед за заголовком # PARAM:,записываемым на отдельной строке, задается список числовых значений параметров элементов эквивалентной схемы. Параметры элементов описываются строго в том же порядке, в котором сами элементы записаны под заголовком # ТОР: . Для элементов, имеющих несколько параметров, числовые значения перечисляются в порядке, принятом для данного элемента (и зафиксированном в документации на подпрограмму элемента). Параметры элементов, обладающих одинаковым идентификатором признака повторяемости (ИПП), указываются только один раз, для первого по порядку элемента с данным ИПП. Числовые значения параметров элементов записываются в виде бесформатных действительных чисел (ДЧ). Общая форма записи действительных чисел в миниязыке следующая:
[-] [<ЦЧМ>] [.<ДЧМ>] [Е[-] <П>] где ЦЧМ — целая часть мантиссы (последовательность десятичных цифр); ДЧМ — дробная часть мантиссы (последовательность десятичных цифр); П — порядок (последовательность не более двух десятичных цифр).
Общее число символов в записи ДЧ не должно превышать 16. Разделителем действительных чисел в списке служит символ «;», слева и справа которого находится любое (в том числе нулевое) количество пробелов. При перенесении списка с одной строки на другую символ «;» должен оставаться на первой строке. Комментарий может занимать целую строку или свободную от ДЧ часть строки, но обязательно должен начинаться с символа «/» (косая черта) — это и есть то исключение из правил о комментариях, о котором говорилось выше.
Описание величин, выводимых на печать, на миниязыке комплекса ПА-6. В комплексе ПА-6 используется представление результатов расчета переходных процессов в виде таблиц и графиков значений указанных пользователем величин. Шаги модельного времени построения -
таблиц и графиков выбираются пользователем (см. ниже). Описание величин, выводимых на печать, начинается с заголовка
# DISPLAY:, на последующих строках задается список вели-
чин, выводимых на печать. Каждая величина описывается одним из трех следующих способов.
Способ 1. Печать переменных двухполюсного элемента
<ПП>:<ИЭ>[=[<ДЧ-1>,<ДЧ-2>]]
где ПП — признак печати, принимающий значение U, I или Р; ИЭ — идентификатор двухполюсного элемента.
Если ПП=1, то на печать выводится фазовая переменная типа потока, направленная в элемент с идентификатором ИЭ из узла, указанного первым при описании этого элемента в разделе топологии. Если ПП = и, то на печать выводится разность фазовых переменных типа потенциала узлов, указанных первым и вторым. При ПП = Р на печать выводится значение мгновенной мощности, потребляемой двухполюсником (для элементов — источников энергии эта величина, естественно, отрицательна).
Символ « = » означает необходимость построения графика данной величины. Пара действительных чисел ДЧ-1 и ДЧ-2 задает пределы, в которых строится график. Если они опущены, то график будет построен в пределах минимального и максимального значений, принимаемых величиной в процессе расчета. При отсутствии в описании величины печати символа « = » комплекс ПА-6 выдает только числовые значения данной величины, сведенные в столбец таблицы.
Способ 2. Печать разности фазовых переменных типа потенциала произвольных узлов фрагмента
<ИВ> (<НУ-1>, <НУ-2>) [=КДЧ-1>, <ДЧ-2>]]
где ИВ — имя величины печати [произвольная последовательность не более шести букв (русских и латинских) и цифр, обязательно начинающаяся с буквы]; НУ-1 и НУ-2 — номера узлов, разность фазовых переменных типа потенциала которых выводится на печать под именем ИВ.
Способ 3. Печать фазовой переменной типа потока произвольного вывода многополюсного элемента
1:<ИЭ>/<НВ>/[=[<ДЧ-1>,<ДЧ-2>]]
где НВ — номер ветви многополюсного элемента с идентификатором ИЭ, фазовая переменная типа потока которой выводится на печать. За положительное принято направление от узла схемы в элемент. Описания величин печати в списке разделяются друг от друга символом «;». В одной строке можно размещать произвольное целое число описаний, последним символом продолжаемой строки обязательно должен быть разделитель «;». Комментарии могут располагаться на свободной от списка части строки и должны быть отделены от описаний, по крайней мере, одним пробелом. Например,
# DISPLAY:
I:UP25 = —1,IE— 1; — включить в таблицу результатов фазовую переменную типа потока через двухполюсник UP25, построить для нее график в пределах – 1 … 0,1;
U:С4 =; ДАВЛ (28,17) ; включить в таблицу результатов разность фазовых переменных типа потенциала на выходах двухполюсника и в узлах 28 и 17, для разности на С4 дополнительно построить график в пределах минимального и максимального значений:
I:TN111/3/ — включить в таблицу результатов фазовую переменную типа потока, направленную в многополюсник TN111 по его третьему выводу.
Описание задания на расчет объекта на миниязыке комплекса ПА-6. Вслед за заголовком RUN: записываются операторы (директивы) языка описания задания (каждый с первой позиции отдельной строки). Общий вид оператора
# # <ОП> : <ИП> [(СПП)] [,<СРП>]
где ОП — один из операторов миниязыка; ИП — имя одной из подпрограмм реализации соответствующего оператора, последовательность не более шести букв латинского алфавита и цифр, обязательно начинающаяся с буквы; СПП — список параметров подпрограммы; СРП—список режимных параметров оператора.
Параметры подпрограммы реализации оператора задаются в виде ключевых слов длиной в три латинские буквы, знака равенства « = » и действительного числа, являющегося значением параметра подпрограммы. Записанные таким образом параметры разделяются в СПП символом «,». Некоторые параметры подпрограммы (или все) могут быть опущены, в этом случае они принимают значения «по умолчанию» (эти значения указываются для каждой подпрограммы в ее документации).
Рассмотрим правила записи двух операторов миниязыка совместно с одной из подпрограмм из состава комплекса ПА-6.
Оператор задания нулевых начальных условий
# # INIT:ZERO
В результате выполнения этого оператора все фазовые переменные объекта принимают нулевые значения. В задании на миниязыке этот оператор всегда должен быть первым.
Оператор расчета переходных процессов комбинированным методом интегрирования
# #DYNA:COMBYN (ACR=<ДЧ-l>, EPS =
= <ДЧ-2>, SMN = <ДЧ-3>, SMX = <ДЧ-4>,
Е = <ДЧ-5>, DTP = <ДЧ-6>, DTG = <ДЧ-7>
где ДЧ-1, ..., ДЧ-4 — параметры подпрограммы комбинированного неявно-явного метода интегрирования [ДЧ-1 — гарантируемая локальная погрешность интегрирования (абсолютная величина, по умолчанию 0,001); ДЧ-2 — константа автоматического выбора шага интегрирования (выбирается как 0,5 от ДЧ-1, по умолчанию 0,0005); ДЧ-3— минимальный (он же начальный) шаг интегрирования (по умолчанию 10-6); ДЧ-4 — максимальный допустимый шаг интегрирования (по умолчанию 1000)]; ДЧ-5, ..., ДЧ-7 — режимные параметры оператора [ДЧ-5 — отрезок модельного времени расчета переходных процессов; ДЧ-6 — шаг модельного времени построения таблицы величин, выводимых на печать; ДЧ-7 — шаг модельного времени построения графиков].
Режимные параметры DTP и DTG не обязательны. Их отсутствие в операторе означает отказ от вывода таблиц и графиков величин печати.
Рассмотренный миниязык не отражает всего многообразия возможностей программного комплекса ПА-6 (совместный анализ непрерывных и дискретных объектов, многовариантный анализ и параметрическая оптимизация, описание произвольных функциональных зависимостей пользователей и др.), однако его вполне достаточно для проведения цикла лабораторных работ и выполнения упражнений (см. седьмую и восьмую книги).