В.В.ФАРОНОВ ___________ СИСТЕМА АВТОМАТИЗИРОВАННОГО МОДЕЛИРОВАНИЯ _________________________________________ И ПАРАМЕТРИЧЕСКОЙ ОПТИМИЗАЦИИ _____________________________ ░░░ ░ ░ ░░░ ░ ░ ░ ░ ░ ░░ ░ ░ ░░ ░░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░░ ░ ░░░░░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░░░ ░ ░ ░ ░ ░ ░ ВЕРСИИ 4.3s, 4.3r, 4.3d и 4.3e _______________________________ РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ ________________________ ______________________________________________________________ Москва 1990 г. - 2 - АННОТАЦИЯ _________ В данном документе описываются версии 4.3s, 4.3r, 4.3d и 4.3 системы автоматизированного моделирования и параметрической опти- мизации СИАМ. Эти версии являются существенно переработанными ва- риантами реализованных ранее версий 1, 2 и 3 этой же системы для ЭВМ семейств ЕС и СМ. Описываемые версии могут использоваться на персональных ЭВМ, совместимых с IBM PC/XT/AT. По сравнению с широко распространенной версией 4.2х для ПК этого типа в описываемой исправлены замеченные неточности и введе- ны средства, упрощающие разработку громоздких математических моде- лей (см. п.3.1.6). Кроме того, в версию 4.3х введены встроеннные средства печати графического экрана (см. п.3.2.7). . - 3 - Содержание __________ 1. Назначение .............................................. 4 2. Обращение к программе ................................... 6 3. Режимы работы ........................................... 8 3.1 Режим ввода модели .................................... 9 3.1.1. Ввод блоков ......................................... 10 3.1.2. Ввод и уничтожение линий ............................ 11 3.1.3. Редактирование блоков ............................... 13 3.1.4. Уничтожение и добавление блоков ..................... 14 3.1.5. Работа с дисковыми файлами .......................... 14 3.1.6. Работа с крупными моделями .......................... 15 3.2. Режим моделирования ................................... 17 3.2.1 Выбор метода и установка параметров интегрирования .. 17 3.2.2 Выбор блоков для динамического отображения графиков 18 3.2.3 Начальный запуск и продолжение моделирования ........ 19 3.2.4 Вывод графиков ...................................... 20 3.2.5 Изменение длины графиков и вывод таблицы результатов 22 3.2.6 Масштабирование графиков в окнах .................... 24 3.2.7 Вывод копий графического экрана ..................... 24 3.3 Режим параметрической оптимизации ..................... 26 3.3.1 Выбор метода ........................................ 27 333.3.2 Выбор целевой функции ............................... 27 3.3.3 Выбор оптимизируемых параметров ..................... 28 3.3.4 Запуск процедуры оптимизации ........................ 28 3.4 Режим построения частотных характеристик .............. 30 Приложения ................................................. 33 П.1 Типовые блоки и их алгоритмы ......................... 33 П.1.1 Динамические звенья ............................. 33 П.1.2 Генераторные звенья ............................. 35 П.1.3 Математические и логические операции ............ 36 П.1.4 Нелинейные звенья ............................... 40 П.2 Алгоритмы методов численного интегрирования ........ 43 П.3 Алгоритмы методов параметрической оптимизации ...... 45 . - 4 - 1. Назначение _____________ Система автоматизированного моделирования и параметричес- кой оптимизации СИАМ предназначена для автоматизации научных и инженерных расчетов в области анализа и синтеза широкого класса динамических систем с сосредоточенными параметрами. С помощью СИАМ можно: - проводить имитационное моделирование; - осуществлять параметрическую оптимизацию; - строить частотные характеристики. Описываемые в настоящем документе версии отличаются форма- том внутреннего представления данных, а именно: 4.3s - 32-разрядная арифметика с плавающей запятой; каждое чи- сло занимает в памяти ПЭВМ 4 байта, имеет 7...8 знача- щих цифр в мантиссе при диапазоне десятичного порядка от -39 до +38; 4.3r - 48-разрядная арифметика с плавающей запятой; каждое чи- сло занимает в памяти ПЭВМ 6 байт, имеет 11...12 знача- щих цифр в мантиссе при диапазоне десятичного порядка от -45 до +38; 4.3d - 64-разрядная арифметика с плавающей запятой; каждое чи- сло занимает в памяти ПЭВМ 8 байт, имеет 15...16 знача- щих цифр в мантиссе при диапазоне десятичного порядка от -324 до +308; 4.3e - 80-разрядная арифметика с плавающей запятой; каждое чи- сло занимает в памяти ПЭВМ 10 байт, имеет 19...20 зна- чащих цифр в мантиссе при диапазоне десятичного порядка от -4951 до +4932; Во всем остальном версии абсолютно идентичны. В дальнейшем они обозначаются 4.3x. Следует учесть, что каждая из модифика- ций версии 4.3x может работать на любых ПЭВМ, совместимых с компьютерами IBM PC/XT/AT, как оснащенных арифметическими сопро- цессорами, так и без них, однако версия 4.3s отличается макси- мальной скоростью для ПК с сопроцессорами, а версия 4.3r - для ПК без сопроцессоров. Во всех случаях версия 4.3е обеспечивает максимальную точность. СИАМ ориентирована на блочно-структурную форму представления математических моделей. В версиях 4.3x элементами модели могут быть только типовые блоки, включенные в состав СИАМ на этапе ее создания (в последующих разработках это ограничение будет снято). Модель в СИАМ - это совокупность типовых блоков и связей между ними. Связать блок А с блоком Б - означает подать на вход алгоритма, реализованного в блоке Б, результат работы алгоритма, реализованного в блоке А. В дальнейшем условимся называть резу- льтат работы алгоритма любого блока его (блока) выходным сигна- лом или просто сигналом блока, а сигналы, используемые на входе алгоритма - входными сигналами. Выходной сигнал любого блока может быть передан на вход произвольного числа других блоков, что позволяет воспроизводить средствами СИАМ математические модели большой сложности. Характерной особенностью версий 4.3x СИАМ (далее просто - 5 - СИАМ) является реализованный в них графическими средствами ПЭВМ объектно-ориентированный диалог: на экране ПЭВМ структура моде- ли воспроизводится в форме, обычно используемой при изображении на листе бумаги, а все необходимые для обработки модели указа- ния пользователь задает СИАМ в основном с помощью функциона- льной клавиатуры. Такая форма диалога избавляет пользователя от необходимости изучения входного языка и концентрирует его вни- мание на существенных для решаемой задачи вопросах. Сложность любых задач, решаемых с помощью ЭВМ, в большинст- ве случаев ограничивается доступной оперативной памятью и ре- альной производительностью машины. Для оценки предельных возмо- жностей СИАМ можно руководствоваться следующими данными. Производительность ПЭВМ (оценивалась тестовыми программами в _______________________ среде TurboPascal 5.5 для 4, 6, 8 и 10-байтной арифметики): Тип ПЭВМ Проц-р/Сопроц. Частота, Средняя скорость,оп.пл.зпт/с МГц 4-байт.6-байт.8-байт.10-байт Cordata NEC V20 10.00 1783 1401 1616 1567 ЕС 8531.М2 8088/8087 4.77 19139 6452 17316 15873 Atari PC-4 80286/80287 12.00 30303 17391 28392 25000 Unipaq 80386/80387 24.00 148818 51948 121212 90909 Память СИАМ ___________ - доступная программе (без инструментальных оболочек типа NC, XTree,Windows и виртуальных дисков) - 580 K; - занимаемая программой СИАМ - 200 K; - используемая для размещения данных - 380 K; - занимаемая одним блоком структуры - (22 + N*S) байт, где N - количество используемых в блоке параметров; S - длина внутреннего представления числа с плавающей запятой (зависит от версии, см. выше); - занимаемая одной линией - 15 байт. В режиме имитационного моделирования помимо этого использу- ется следующая буферная память: - (15 + S + NN*S) байт на каждый блок, где NN - количество точек для запоминания промежуточных результатов; - (6 * S) байт на каждую единицу порядка системы обыкновенных дифференциальных уравнений, которую автоматически порождает СИАМ по исходной структуре модели. Если допустить, что единица структуры - блок имеет в сред- нем 5 коэффициентов, порождает дифференциальное уравнение 2-го порядка, связан 2-мя линиями c другими блоками и результаты мо- делирования запоминаются в 100 промежуточных точках, то такой блок будет занимать 539 байт для наиболее компактной версии 4.3s и 1247 байт для наиболее точной версии 4.3e, что дает возмож- ность разместить в памяти СИАМ в первом случае 660 блоков при общем порядке модели 1320, а во втором случае - 280 блоков при общем порядке 560. Таким образом, можно с уверенностью конста- тировать, что максимальная сложность решаемых с помощью СИАМ задач в основном определяется приемлемым временем счета и суще- ственно зависит от имеющейся в распоряжении пользователя техники (см. выше). . - 6 - 2. Обращение к программе ------------------------ Для обращения к программе СИАМ необходимо вызвать одну из программ SIAM-S.EXE, SIAM-R.EXE, SIAM-D.EXE или SIAM-E.EXE в зависимости от того, какая из модификаций (соответственно, 4.3s, 4.3r, 4.3d или 4.3e) используется Вами для работы. На лицензион- ной дискете N1 содержится модификация 4.3s. Для ее вызова необходимо вставить в привод гибкого диска лицензионную дискету N1 и дать команду A:SIAM-S Если система была предварительно скопирована на жесткий диск, команда запуска программы СИАМ должна содержать соответствующий путь к файлу (если текущий каталог не содержит программу СИАМ), например: C:\SIAM\SIAM-S. Если Вы хотите использовать модификации 4.3d,4.3r или 4.3e,необ- ходимо запускать, соответственно, программу SIAM-D, SIAM-R или SIAM-E. После правильного вызова программы начинается загрузка ее в память ПЭВМ, после чего программа проверяет наличие на диске нуж- ных для ее работы файлов: SIAM.BLC - файл с текстовыми и численными данными для проце- дуры выбора/коррекции типовых блоков; SIAM.PIC - файл с пиктограммами типовых блоков; SIAM.HLP - файл с текстами встроенной справочной службы. Все перечисленные файлы должны располагаться в том же каталоге, где находится и основная вызываемая программа SIAM-x.EXE. Если какой-либо из файлов отсутствует в этом каталоге, программа попытается отыскать его в текущем каталоге, а если его нет и там, - запросит путь к нужному каталогу. После нормальной загрузки, которая продолжается 5...10 с, экран очищается и на нем появляется приглашение к работе - текст, содержащий полное название системы и ее версию. Если в этот момент нажать клавишу ESC, система завершит свою работу, если нажать "Ввод" - перейдет к основному режиму работы. В стандартной поставке СИАМ рассчитана на работу со знакоге- нератором, закодированным по "альтернативному" варианту кодиров- ки, причем предполагается, что Ваш компьютер оснащен цветным эк- раном. Поэтому, если текст на экране Вашей ПЭВМ невозможно или трудно прочитать, нажмите клавишу F1. По этому сигналу программа переходит к процедуре настройки на кодировку знакогенератора: экран очищается и на нем появляется 4 пары строк, содержащих один и тот же текст: Настройка на кодировку знакогененратора: если Вы легко читаете эту строку, нажмите клавишу F1 (F2, F3, F4). В зависимости от кодировки, одна из этих пар должна легко читаться - нажмите соответствующую клавишу. После этого появляется запрос: Ваш компьютер оснащен цветным дисплеем (Y/N) ? Нажмите клавишу с буквой N, если Ваш компьютер оснащен монохромным дисплеем или если Вы не хотите видеть цветной текст справочной службы. Нажатие на любую другую клавишу будет интерпретироваться системой как утвердительный ответ - на экране появится Y. На следующий запрос процедуры настройки: Использовать встроенную обработку Print Screen (Y/N) ? следует ответить нажатием на клавишу Y, если Вы хотите - 7 - воспользоваться встроенной процедурой обработки прерывания 5 и управлять выводом графических копий экрана (см. п.3.2.7). Любой другой ответ будет интерпретироваться программой как отказ от встроенной обработки. После подговки нужного ответа нажмите клавишу "Ввод" и на экране вновь появится приглашение к работе. Если в ответ на приглашение нажать на клавишу "Ввод", программа обращается к лицензионной дискете, которая должна к этому моменту находиться в приводе A. Если дискета не обнаружена или если система не опознала ее как лицензионную, раздается короткий звуковой сигнал. В процессе дальнейшей работы при обращении к функциям моделирования, построения частотных характеристик или параметрической оптимизации система сообщит о необходимости вставить дискету N1 в привод A. Если система установлена на жесткий диск с помощью программы SETHDISK.EXE, контроль лицензионной дискеты не производится. Вызов программы SIAM-x.EXE может сопровождаться одновременной передачей ей имени файла, содержащего подготовленную ранее модель. Для этого нужно использовать обращение типа SIAM-x <ИМЯ_ФАЙЛА> Например: SIAM-S MOD.SIA или SIAM-R MYMODEL Здесь MOD.SIA, MYMODEL - имена файлов (если в имени файла опущено расширение, программа автоматически дополнит его расширением .SIA). После такого вызова программа не выводит на экран приглаше- ние, а сразу начинает основной режим работы и загружает с диска указанный файл. . - 8 - 3. Режимы работы ________________ В этом разделе описывается взаимодействие пользователя с СИАМ на различных этапах решения задачи. В СИАМ имеется 4 основных режима работы: - режим ввода модели; - режим имитационного моделирования; - режим параметрической оптимизации; - режим построения частотных характеристик. Каждый из этих режимов отличается назначением функциональ- ных клавишей и видом графического экрана, но две клавиши не ме- няют своего назначения во всех случаях: F1 обеспечивает доступ к встроенной контекстно-зависимой справочной службе, а ESC - отказ от выбранного продолжения (ESC в режиме ввода модели испо- льзуется как команда выхода из СИАМ). Кроме того, не меняется и функциональное назначение отдельных зон графического экрана: верхняя строка-меню указывает назначение функциональной клавиа- туры в текущем режиме работы, средняя зона - это рабочее окно, в котором отображается структурная схема модели, нижняя зона испо- льзуется СИАМ для оперативного построения графиков, организации диалога c пользователем и вывода некоторой справочной информации. . - 9 - 3.1 Режим ввода модели _______________________ Режим ввода модели можно считать главным, так как только из него можно перейти в любой другой режим работы СИАМ. Функциональные клавиши в этом режиме имеют следующее назна- чение (названия клавишей приводятся в том виде, как они обозна- чены в верхней строке-меню): F1-Пмщ - Вызвать справочную службу СИАМ. F2-Блок - Перейти к подрежиму ввода блока и исходящей из него линии. F3-Перо - Поднять/опустить "перо"; при опущенном "пере" слово "Перо" в меню выделяется негативным изображением. F4-Ред - Перейти к режиму редактирования блоков. F5-Диск - Записать блок-схему на диск или читать ее с диска. F6-Окно - Показать/убрать окно-подсказку в нижней зоне экрана. F7-Мод - Перейти к режиму имитационного моделирования. F8-Опт - Перейти к режиму параметрической оптимизации. F9-ЛЧХ - Перейти к режиму построения частотных характеристик. ESC-Конец- Выйти из СИАМ. Кроме того, в режиме ввода модели могут использоваться сле- дующие клавиши: - клавиши, обозначенные стрелками вверх, вниз, влево и вправо (далее условимся их называть клавишами управления курсором)- для перемещения графического курсора по экрану; - клавиши "PgUp", "PgDn", Home", "End" - для смещения струк- турной схемы в рабочем окне, соответственно, вниз, вверх, вправо и влево относительно границ окна; - клавиша "Ins" - для включения/отключения звукового сигнала; - клавиша "Del" - для уничтожения блока или линии (см. п.3.1.4). Кроме того, некоторые функциональные клавиши модифицируют свое действие, если они нажаты совместно со сдвиговыми клавишами (Alt, Shift или Ctrl). Совместное нажатие сдвиговой и функциональной клавишей (например, Alt и F2) осуществляется следующим образом. Сначала нужно нажать сдвиговую клавишу (Alt), затем, не отпуская ее, функциональную клавишу (F2), после чего обе клавиши можно отпустить. Такое совместное нажатие в дальнейшем обозначается плюсом, например Alt+F2. Ниже кратко описаны дополнительные возможности клавиатуры в режиме ввода модели. Alt+F1 - настроить программу на работу с нужным знакогене- ратором (см. п.2). Alt+F2 - позиционировать курсор на блок с нужным номером (см. п.3.1.6). Alt+F3 - указать начало длинной или составной линии (см. п.3.1.2). Ctrl+F3- указать конец длинной или составной линии и вычер- тить ее (см. п.3.1.2). Alt+F4 - выделить блок с указанным номером перед переходом к его редактированию (см. п.3.1.3). Alt+F6 - перейти к режиму быстрого поиска нужного фрагмента модели (см. п.3.1.6). Ctrl+F6- задать масштаб изображения и перейти к быстрому поиску фрагмента модели (см. п.3.1.6). Средняя зона экрана используется для отображения структур- - 10 - ной схемы или ее фрагмента. Структурная схема может смещаться относительно окна приблизительно на 100 линейных размеров экрана по горизонтали и 300 - по вертикали. Схема смещается автомати- чески всякий раз, когда перемещаемый пользователем курсор до- стигает границ окна, а также клавишами "PgUp",...,"End" (см. выше).Однако при любом смещении в окне видна хотя бы часть стру- ктуры. В нижней зоне экрана обычно выводится окно-подсказка с ус- ловными изображениями (пиктограммами) типовых блоков. При нажа- тии на клавишу F6 , которая работает в режиме двоичного пере- ключателя, эта зона экрана может освобождаться и использоваться совместно со средней зоной для отображения моделируемой структу- ры. Если нижняя зона отсутствует, пиктограммы блоков нумеруются в порядке их объявления в модели, в противном случае нумерация удаляется. В рабочем окне всегда виден мигающий графический курсор. С ним отождествляется "перо", которое можно опускать или подни- мать с помощью клавиши F3 , работающей в режиме двоичного пе- реключателя. В зависимости от состояния пера меняется вид кур- сора: если перо поднято, курсор имеет вид кружка с точкой в цен- тре, при опущенном пере - вид галочки, ориентированной по нап- равлению перемещения курсора. Перемещение курсора с опущенным пером оставляет видимый след на экране - линию, курсор с подня- тым пером не оставляет след. Процесс ввода модели состоит в создании блоков и соединяю- щих их линий. 3.1.1. Ввод блоков При нажатии на клавишу F2 СИАМ переходит в подрежим выбора блоков из системной библиотеки типовых блоков. При этом перо опускается и курсор перестает мигать, что свидетельствует о том, что его перемещение уже недоступно пользователю. В нижней части экрана независимо от состояния двоичного переключателя F6 появляется окно-подсказка с пиктограммами некоторых типовых блоков. Одна из пиктограмм выделяется негативным изображением (указателем). Будем называть соответствующий типовой блок активным. В этом подрежиме доступны следующие клавиши: F1-Помощь - дает информацию об алгоритме, реализованном в ак- тивном блоке. PgUp,PgDn - cмещают пиктораммы вниз или вверх, при этом откры- вается доступ к другим типовым блокам (в версиях 4.3x реализованы 52 типовых блока, одновременно в окне-подсказке могут отображаться не более 22-х). Home, End - делают активным самый первый или самый последний типовой блок. ESC - возвращает СИАМ в режим ввода модели. Клавиши управления курсором перемещают указатель к соседним блокам и таким образом делают их активными. При нажатии на клавишу "Ввод" СИАМ переходит к процедуре ус- тановки параметров активного блока. При этом экран полностью очищается и в нем появляется текст, описывающий алгоритм актив- ного блока и смысл используемых в нем параметров. Параметры вместе с принятыми в системе их значениями по умолчанию выводятся в нижней части экрана. Активный параметр (по аналогии с активным блоком) выделяется цветовым окном. Клавишами - 11 - перевода курсора вверх/вниз можно выделить нужный параметр, пос- ле чего цифровыми клавишами ввести его новое значение. При вводе параметров используется общий формат чисел вида *X.XXXXXXe*XX, где X - любая цифра; * - знак плюс или минус (отсутствие знака означает плюс); e (или E) - символ десятичного основания. Положение десятичной точки - произвольное. При вводе целочислен- ных значений точку можно опускать. Если десятичная точка указа- на, слева и справа от нее должно быть хотя бы по одной цифре. Экспоненциальная часть числа "e*XX" или "E*XX" также может опус- каться. Она имеет смысл "умножить на 10 в степени XX". Например, 3.14е-2 - читается "3.14 умножить на 10 в степени минус 2". Если в числе указан символ десятичного основания "e" ("E"), справа от него должна быть хотя бы одна цифра десятичного поряд- ка. Ошибочно введенный символ можно удалить клавишей "Забой сле- ва" (клавиша с обозначенной на ней левой стрелкой - располагает- ся справа в верхнем ряду основной зоны клавиатуры над клавишей "Ввод"). После установки параметров нужным образом необходимо нажать клавишу "Ввод". По этому сигналу СИАМ возвращает экран в графи- ческий режим и помещает в рабочее окно на то место, которое за- нимал курсор, пиктограмму выбранного блока с исходящей из него линией. Если вместо клавиши "Ввод" нажать ESC, блок не будет по- мещен в модель, даже если у него были изменены параметры. В версиях 4.3x можно располагать блоки только на горизон- тальных линиях. В зависимости от направления входящей в блок ли- нии он ориентируется слева направо или наоборот. Если перед об- ращением к режиму ввода блоков перо было поднято, СИАМ автомати- чески опускает перо. При этом блок приобретает ориентацию той линии, на которую будет опущено перо, а если перо опускается на свободное место, то блок всегда ориентируется слева направо. После выхода из процедуры установки параметров СИАМ остает- ся в подрежиме ввода блоков, давая пользователю возможность про- должить формирование структурной схемы. 3.1.2. Ввод и уничтожение линий В большинстве практически важных случаев используются стру- ктуры с обратными связями и ветвлением. Для создания ветвящихся структур приходится прерывать порядок построения блоков "в ряд" и дорисовывать недостающие связи с помощью линий. Линией в СИАМ считается прямолинейный отрезок, начинающийся на линии (блоке) и заканчивающийся на другой линии (блоке). При выходе из подрежима ввода блоков перо опущено и указывает конец линии, исходящей из блока. Такую линию будем называть активной. Перемещение курсора по направлению активной линии удлиняет ее, в обратном направлении - укорачивает. При смене направления пере- мещения курсора на ортогональное, а также при подъеме пера или при достижении текущей линией границ блока, линия перестает быть активной, о чем свидетельствует короткий звуковой сигнал и появ- ление в конце линии галочки. Неактивную линию нельзя укоротить или удлинить с помощью курсора. Любое возможное пересечение линий (в том числе и наложение линий друг на друга) никак не анализируется системой. Исключени- ем является случай, когда перо опускается на линию и с этого ме- ста берет начало другая линия. Вновь создаваемая линия будет - 12 - "помнить" блок, из которого выходит линия-родитель, и в свою очередь передаст этот блок другим линиям, начинающимся от нее. Для создания ветвящихся структур курсор с поднятым пером перемещается к линии, от которой должна начинаться ветвь, после чего перо опускается на линию. Попытка опустить перо не на линию вызовет сообщение об ошибке. В этом случае необходимо точнее ус- тановить положение курсора. Следует иметь в виду, что для увели- чения скорости перемещения курсора по экрану в обычном режиме используется скачкообразное смещение курсора на 5 пикселей (то- чек) в горизонтальном и на 2 пикселя в вертикальном направлении. Если необходимо точное позиционирование курсора, следует исполь- зовать клавиши перемещения курсора с одновременно нажатой клави- шей верхнего регистра ("Shift"). Режим медленного перемещения курсора можно фиксировать клавишей "NumLock". При вычерчивании линии ее конец может достичь границ неко- торого блока. В этом случае раздается звуковой сигнал, перо ав- томатически поднимается и СИАМ анализирует блок: если блок имеет хотя бы один незанятый вход, СИАМ устанавливает связь от блока, который "помнит" линия, к данному блоку. В противном случае СИАМ сообщает об ошибке и уничтожает текущую линию. При использовании блоков с двумя входами (сумматор, умножи- тель и т.п.) применяется следующее правило: первая достигшая блок линия независимо от ее направления определяет первый опе- ранд бинарной логической или математической операции (обознача- ется x1 в описании алгоритма блока); линия, проведенная к блоку позднее, - второй операнд (x2). Это правило следует помнить при использовании блоков, в которых важен порядок следования операн- дов (вычитание, деление и т.п.). Для вычерчивания длинных или составных (составленных из двух ортогональных) линий может использоваться следующий прием. Сначала курсор с поднятым пером перемещается к тому месту, отку- да должна начинаться длинная (составная) линия, и опускается на линию (если курсор с опущенным пером уже находится в нужной точ- ке, поднимать и опускать его вновь необязательно). Затем нажима- ется Alt+F3. В этот момент перо поднимется и курсор станет круг- лым, однако транспарант "Перо" в верхней строке-меню будет по-прежнему выделен негативом - программа запомнила начало длин- ной (составной) линии. Теперь можно подвести курсор к тому мес- ту, где необходимо закончить линию, и нажать Ctrl+F3. Если нача- ло и конец линии находятся на одной и той же горизонтали или вертикали, длинная линия будет вычерчена сразу. Если координаты начала и конца определяют наклонную линию, программа будет вы- черчивать две ортогональных линии (составную линию). В этом слу- чае на экране будет развернуто следующее меню: Начертить составную линию (ESC - не чертить) --------------------------- Горизонтальную и вертикальную Вертикальную и горизонтальную Первая опция означает, что сначала будет вычерчиваться го- ризонтальная, а затем вертикальная линия, вторая - наоборот, сначала вертикальная, затем горизонтальная. Вы должны выбрать нужный Вам способ и нажать "Ввод" - составная линия будет вычер- чена (нажатие ESC означает отказ от вычерчивания). При вычерчивании длинной (составной) линии игнорируется возможное пересечение вновь вычерчиваемой линии с уже существую- щими блоками модели. Исключение составляет ближайшая окрестность - 13 - курсора (курсор в этот момент указывает конец линии): если кур- сор частично или полностью располагается внутри некоторого бло- ка, будет установлена связь от блока, который "помнит" линия к этому блоку. Для удаления неактивной линии необходимо подвести к ней круглый курсор (с поднятым пером) и нажать клавишу Del - прог- рамма запросит подтверждение операции уничтожения и, если подт- верждение получено, уничтожит указанную линию. При этом будут уничтожены также и все другие линии, берущие от нее начало (дочерние линии), а также разорваны все ранее установленные этой линией (линиями) связи блоков. Программа блокирует уничтожение корневой линии, т.е. той, которая выходит непосредственно из блока. Если Вы пытаетесь уничтожить корневую линию, она будет лишь укорочена или удлинена до стандартной начальной длины, хотя все ее дочернии линии будут уничтожены и ликвидированы установ- леные этими линиями связи блоков. 3.1.3. Редактирование блоков В ходе работы с системой часто возникает необходимость по- лучения вариантов решения при изменении параметров модели. Для изменения или просмотра параметров ранее созданного блока модели используется режим редактирования. Этот режим инициируется кла- вишей F4 в любом другом режиме работы СИАМ. При нажатии на клавишу один из блоков структуры (на который в настоящий момент указывает курсор) выделяется миганием. Клави- шами управления курсором можно сместить мигающее изображение к соседним блокам и таким образом выделить нужный блок. Отметим, что при переходе к соседним блокам программа пыта- ется вначале отыскать блок из числа видимых в даный момент на экране и ближайший к выделенному блоку. Если такового не найдено с нужной стороны (сверху, снизу, слева или справа,- в зависимос- ти от нажатой клавиши управления курсором), блок ищется среди других блоков, которые, возможно, не видны на экране. В резуль- тате видимое изображение фрагмента модели в рабочей зоне может замениться на изображение другого фрагмента. В некоторых случаях "неудачно" расположенный блок может заслоняться другими блоками, так что клавишами управления курсо- ром не удается его выделить. В таких ситуациях можно использо- вать указание графическим курсором: нажмите клавишу "Пробел" (длинная клавиша в самом низу клавиатуры), подведите появившийся круглый курсор к нужному блоку и нажмите "Ввод". Такого же эф- фекта можно добиться, если перед переходом к режиму редактирова- ния (перед нажатием на F4) установить курсор на нужный блок. На- конец, можно выделить любой блок модели, если для вызова проце- дуры редактирования использовать сочетание клавишей Alt+F4: программа запросит номер блока и затем выделит миганием нужный блок. Для перехода к редактированию выделенного блока следует на- жать клавишу "Ввод". В этом случае экран восстановит в точности такой же вид, какой он имел к моменту создания этого блока. Те- перь можно выбрать нужный параметр и изменить его значение так, как это описано в п. 3.1.1. Следует помнить, что любые изменения параметров фиксируются в модели только в том случае, если для выхода из режима ввода параметров использовалась клавиша "Ввод". При выходе с помощью клавиши "ESC" все сделанные в данном режиме изменения парамет- - 14 - ров аннулируются. 3.1.4. Уничтожение и добавление блоков Для уничтожения любого ранее созданного блока используется следующий прием. Курсор с поднятым пером перемещается по экрану до тех пор, пока его центр не попадет внутрь нужного блока. За- тем нажимается клавиша "Del". После этого изображение блока на- чинает мигать и появляется приглашение подтвердить операцию уни- чтожения. Если подтверждение получено, СИАМ уничтожает блок и все исходящие из него линии. Для добавления к структуре нового блока нужно сначала соз- дать линию, на которой он будет располагаться, либо отвести кур- сор на свободное место. Следует иметь в виду, что при создании нового блока и исходящей из него линии СИАМ никак не контролиру- ет топологию ранее созданной структуры, оставляя этот контроль полностью на усмотрение пользователя. В результате блоки как и линии могут частично или целиком накладываться друг на друга, что, однако, никак не повлияет на образование связей между ними. Во избежание возможных недоразумений не рекомендуется разме- щать блоки в "пустотах", образованных в результате удаления дру- гих блоков: при создании блока и исходящей из него линии могут быть нарушены границы соседнего блока, что, однако, никак не за- фиксируется системой. Чтобы все-таки вставить блок или блоки вместо удаленного блока следует размещать новые блоки на любом свободном месте и устанавливать связь вновь созданного фрагмента структуры с остальной ее частью с помощью линий. 3.1.5. Работа с дисковыми файлами В СИАМ имеется возможность записи структуры в дисковый файл и чтения структуры из файла. Доступ к операциям с диском осуще- ствляется клавишей F5. При записи на диск СИАМ запрашивает имя вновь создаваемого файла. Это имя может быть любым допустимым для MS/DOS именем, в том числе и с предшествующим ему путем. Длина собственно имени не должна превышать 8 символов, допускается использовать любые комбинации букв, цифр, а также тире и знак подчеркивания. За именем может следовать расширение - последовательность до трех символов. Если расширение есть, оно отделяется от имени точкой. Примеры правильных имен: file_N1.sia имяф.рсш 123 My-File.sia primer.1 primer.2 Как видно из этих примеров, могут использоваться символы ки- риллицы, а также большие и маленькие буквы (которые, кстати, не различаются системой: в 5-ом примере можно записать mY-fILE.Sia, что будет полностью идентично первоначальной записи). Если в от- вет на запрос СИАМ указывается только имя без расширения и раз- деляющей точки, СИАМ дополняет имя стандартным расширением .SIA, однако если за именем указана точка, такого добавления не будет. Путь - это указание на положение файла в древовидной файло- вой структуре дискового носителя информации. Структура пути: d:\subd1\subd2\...\subdn Здесь d: - имя диска (обычно c: для винчестера и a: для дискеты); subd1..subdn - имена вложенных подкаталогов (в подкаталог - 15 - subd1 входит подкаталог subd2 и т.д.). Примеры имен с указанием пути: c:\siam\lena a:a.sia Если при записи на диск СИАМ обнаружит уже существующий на нем одноименный файл, он заменит расширение этого файла на .BAK, а если уже существовал одноименный файл с расширением .BAK, то предварительно сотрет его. Во всех случаях СИАМ не дает дополни- тельных сообщений. Структура записывается в файл вместе с текущими значениями параметров. Для оценки требуемого для размещения файла простран- ства на диске используется формула SF = SB1 + SB2 + ... + NL * 15 + 4 где SF - длина файла в байтах; SBi - длина i-го блока (см. п. 1); NL - количество линий. При чтении информации из дискового файла используются все вышесказанные соглашения относительно имени файла. Если к момен- ту чтения в СИАМ уже была введена какая-либо структура, система запросит подтверждение на ее уничтожение. В версиях 4.3x не предусмотрена возможность чтения фрагмен- та структуры и ее объединения с ранее введенной частью. Дисковый формат представления структуры унифицирован, так что структура, записанная одной модификацией СИАМ (например, 4.3s), доступна для чтения в любой другой модификации (например, 4.3e). 3.1.6. Работа с крупными моделями Работа с крупными моделями, структура которых не размещает- ся целиком на экране, вызывает определенные трудности. В версиях 4.3х для упрощения работы с большими моделями имеются следующие дополнительные возможности. Alt+F2 - позиционировать курсор в центр нужного блока; Alt+F3 - указать начало длинной (составной) линии; Ctrl+F3- указать конец длинной (составной) линии; Alt+F4 - редактировать нужный блок; Alt+F6 - перейти к быстрому поиску фрагмента структуры; Ctrl+F6- указать масштаб изображения и перейти к быстрому поиску фрагмента структуры. Сочетание Alt+F2 или Ctrl+F6 означает совместное нажатие соответствующих клавишей: вначале нажимается клавиша Alt или Ctrl и затем, НЕ ОТПУСКАЯ ЕЕ, нужная функциональная клавиша. После этого обе клавиши отпускаются. Функции Alt+F3, Ctrl+F3 описаны в п.3.1.2, функция Alt+F4 - в п.3.1.3, остальные описываются ниже. Прежде всего отметим, что при использовании клавиши F6 из- меняется вид модели: при отказе от окна-подсказки с изображения- ми типовых блоков (в нижней части экрана) все блоки модели будут пронумерованы в порядке их объявления и над условными изображе- ниями блоков появятся их номера. Обратное переключение в режим вывода окна-подсказки блокирует нумерацию. Нумерация позволяет использовать описанную в п.3.1.3 функцию Alt+F4 для редактирова- ния нужного блока. Кроме того, с помощью клавишей Alt+F2 Вы мо- жете установить курсор в центр любого блока, причем в рабочей зоне экрана автоматически появится нужный фрагмент модели (такую процедуру удобно использовать при вычерчивании длинных и состав- ных линий, см. п.3.1.2). - 16 - При нажатии Alt+F2 в центре экрана появляется небольшое ок- но с запросом Номер блока: Теперь Вы можете набрать на клавиатуре номер блока и нажать "Ввод", - и тогда СИАМ покажет на экране фрагмент структуры, со- держащий этот блок, причем курсор будет в центре блока, или на- жать ESC и отказаться от поиска. Совместное нажатие Alt и F6 переводит СИАМ в подрежим быст- рого поиска нужного фрагмента структуры. В этом подрежиме поль- зователю доступны следующие клавиши из зоны цифровых клавишей (справа на клавиатуре): - (серая клавиша "минус") - уменьшить масштаб изображения структуры на экране в два раза; + (серая клавиша "плюс") - увеличить масштаб в два раза; / (серая клавиша "делить") - уменьшить масштаб настолько, чтобы вся структура целиком могла уместиться на экране; * (серая клавиша "умножить") - сменить масштаб изображения на нормальный или восстановить уменьшенный масштаб (рабо- тает как двоичный переключатель); Кдавишами "Ввод" или ESC Вы можете завершить подрежим быст- рого поиска и вернуться к режиму ввода модели. При отображении структуры в уменьшенном масштабе на экране появляется мигающий прямоугольник, который показывает фрагмент структуры - именно эта часть общей модели будет выведена на эк- ран при выходе из подрежима. Клавишами смещения курсора можно перемещать мигающий прямоугольник по экрану и таким образом быстро выбирать нужный фрагмент структуры. Серая клавиша "*" позволяет "распахнуть" окно-прямоугольник на весь экран и пока- зать подробно текущий фрагмент. Повторное нажатие на эту клавишу вернет экран в режим уменьшенного изображения структуры. Если текущий масштаб изображения 1:1, выводимые блоки нумеруются. Во всех случаях блоки изображаются "пустыми" прямоугольниками и концы линий не отмечаются стрелками. Нажатие на Alt+F6 приведет к запросу Коэфф-т уменьшения= В ответ Вы должны указать, во сколько раз необходимо уменьшить масштаб изображения на экране. После этого СИАМ переходит к опи- санному выше подрежиму быстрого поиска фрагмента струтуры. Сле- дует учесть что "коэффициент уменьшения" означает вещественное число больше 1.0, указывающее, во сколько раз уменьшать видимые размеры блоков и линий. Поэтому ответ 2, например, приведет к уменьшению размеров в 2 раза, 3 - в три раза и т.д. (именно в этом смысле здесь используется понятие "уменьшенный масштаб"). Вы можете задать и дробное вещественное число, например, 2.5. Если Вы пытаетесь задать отрицательное число или число меньше 1.0, СИАМ игнорирует это указание и установит масштаб 1:1. Таким образом, в режиме быстрого поиска нельзя рассматривать фрагменты с увеличенными по сравнению с обычными размерами. Заметим, что при работе с уменьшенным масштабом в СИАМ ис- пользуется арифметика с плавающей точкой, поэтому скорость фор- мирования изображений на экране будет несколько меньше, чем в обычном режиме ввода модели (разница в скоростях особенно ощути- ма на ПК без сопроцессоров). . - 17 - 3.2. Режим моделирования ________________________ Переход к режиму моделирования осуществляется по клавише F7 из режима ввода модели. Назначение функциональной клавиатуры: F1-Пмщ - Получить доступ к справочной службе. F2-Мет - Выбрать метод и параметры интегрирования. F3-Счет - Запустить процедуру интегрирования. F4-Ред - Редактировать блок (см. п. 3.1.3). F5-Окно - Задать блоки для отображения в окнах. F6-Грф - Задать блоки для вывода графиков. F7-Рез - Задать количество точек графиков; вывести таблицу результатов на экран, принтер или в дисковый файл. F8-Мсш - Масштабировать графики в окнах. F9-Прд - Продолжить интегрирование. ESC-Выход- Вернуться в режим ввода модели. Кроме того, в этом режиме доступны клавиши: PgUp,PgDn,Home,End - смещение структуры относительно окна. Клавиши управления курсором - перемещение курсора в окне. Del - уничтожение блока или линии. В ходе моделирования осуществляется численное решение сис- темы обыкновенных дифференциальных уравнений (СОДУ), которую ав- томатически формирует СИАМ по исходной структурной схеме. Резу- льтаты решения запоминаются в LG точках для каждого блока. Эти результаты затем используются для построения графиков и при вы- воде таблиц. Порядок интегрируемой системы ограничивается лишь доступ- ной памятью и может быть весьма большим. На структуру накладыва- ется единственное ограничение: она должна быть такой, чтобы ВХОДНОЙ сигнал любого блока мог быть вычислен системой ДО вычис- ления ВЫХОДНОГО сигнала этого же блока. Система допускает интег- рирование как в "прямом" (tk>t0), так и в "обратном" (tk - имя вида A...Z или AX...ZX, присвоенное линейному блоку (см. выше); <Буфер> - имя вида M0...M9 для обозначения одного из 10 внут- ренних буферов; буфер - это область памяти, в ко- торой СИАМ может сохранять коэффициенты полиномов числителя и знаменателя дробно-рациональной пере- даточной функции; порядок любого полинома не дол- жен превышать 100; <Константа>- вещественное число без знака; <Операция> - один из следующих знаков, используемых для обоз- начения операций над передаточными функциями: "+" - операция сложения; "-" - операция вычитания; "*" - операция умножения; "/" - операция деления; <Операнд> - <Блок> или <Буфер> или <Константа>. С учетом сделанных определений можно описать допустимые пре- дложения языка. Этих предложений - три. Первое используется для проведения подготовительных операций и имеет вид <Буфер> = <Операнд> <Операция> <Операнд> Например, M0=S-K или M1=1+A Второе - указание СИАМ построить ЧХ: L = <Операнд> Например, L=D - 31 - Наконец, третье позволяет вывести на экран коэффициенты по- линомов передаточной функции любого блока или содержимое любого буфера: <Блок> = ? или <Буфер> = ? Приведем примеры правильных операторов: M0=A*B M1=1+C M2=M0/D L=M2 M2=? M3=2.3-1 Примеры синтаксически неверных операторов: M1=M+A (не может быть операнд с именем M) F=E/V (нельзя присвоить результат блоку) L=C-Y (нельзя использовать выражение в операции вывода ЧХ) Операторы языка построения ЧХ вводятся алфавитно-цифровыми клавишами и заканчиваются нажатием клавиши "Ввод". Ошибочно вве- денный символ можно удалить клавишей "Забой слева". Порядок использования внутренних буферов - произвольный, однако СИАМ следит за тем, чтобы соответствующий буфер не был пуст, если он используется в качестве операнда справа от знака равенства. Никакой другой семантический контроль, в том числе на соответствие используемых операций преобразования передаточных функций фактической структуре модели или на непротиворечивость использования буферов, СИАМ не осуществляет. После ввода предложений типа L = <Блок> или L = <Буфер> СИАМ выводит соответствующие ЧХ. B качестве основной формы пред- ставления ЧХ в СИАМ принята форма логарифмических частотных характеристик (ЛЧХ). Амплитудная ЛЧХ вычисляется по формуле L(lg(w)) = 20 lg(mod(W(jw))), а фазовая - по формуле F(lg(w)) = arg(W(jw)), где w - частота; lg - десятичный логарифм; mod - модуль комплексного числа; W - частотная характеристика; j - мнимая единица; arg - аргумент комплексного числа. ЛЧХ вычисляются при изменении частоты w от минимального wMin до максимального wMax значения. Диапазон частот разбива- ется на 300 подынтервалов с равномерным шагом относительно лога- рифма частоты. Амплитудная ЛЧХ выводится толстой, а фазовая - тонкой линией. Сразу после вывода ЛЧХ пользователю доступны клавиши: F1-Помощь - Доступ к справочной службе. F2-Изменить частоту- Переход к процедуре изменения диапазона частот wMin ... wMax. F3-Большой график - Вывод ЛЧХ в укрупненном масштабе. F4-АФЧХ - Вывод "обычных" ЧХ (см. ниже). ESC-Выход - Возврат к основному меню режима построе- ния ЧХ. При выборе продолжения F2 появляется дополнительное окно, в котором указываются граничные значения wMin и wMax диа- пазона изменения частоты. Пользователь может изменить любое из - 32 - этих значений или оба сразу, но так, чтобы wMin было меньше wMax. Задавать границы можно как в натуральном, так и в логари- фмическом масштабе. После изменения нужным образом границ нажи- мается "Ввод" и СИАМ перестраивает графики. При выборе F3 система выводит графики в укрупненном масш- табе, при этом они частично накладываются на структурную схему. При нажатии на F4 СИАМ выводит "обычные" ЧХ. В этом случае используется замена W(jw) = U(w) + jV(w), где U(w) - действительная часть ЧХ; V(w) - мнимая часть ЧХ. График строится как функция U(w) от V(w) при изменении частоты w в диапазоне от wMin до wMax . Диапазон частот ра- збивается на 300 подынтервалов с равномерным шагом относительно логарифма частоты. Масштабы выводимого графика по горизонтали и вертикали - независимые, но при нажатии Alt+F4 график строится в одинаковом масштабе по каждой из осей. Как и при выводе "большого" графика ЛЧХ, график "обычной" АФЧХ занимает значительную часть экрана и заслоняет собой струк- турную схему. Поэтому при нажатии на ESC оба графика исчезают и восстанавливается вид экрана с "маленьким" графиком ЛЧХ. Од- новременно освобождается курсор и СИАМ переходит к вводу новых операторов входного языка. Необходимо отметить, что при вычислении логарифмической фа- зовой характеристики используется формула V(w) F(lg(w)) = arctg ------ . U(w) В силу специфики вычисления arctg (в ЭВМ всегда вычисляется главное значение арктангенса, т.е. Arctg) на графике фазовой ЛЧХ могут быть резкие скачки на плюс-минус 360 градусов. В сис- теме имеется встроенный контроль за изменением фазы, однако при особо резких изменениях фазы он может оказаться неэффективным. Чтобы понять, чем вызван скачок фазы - особенностью модели или несовершенством алгоритма вычисления ЛЧХ, рекомендуется в сом- нительных случаях построить график "обычной" АФЧХ с одинаковым масштабом по горизонтали и вертикали (Alt+F4) и по нему оценить истинный вид фазовой ЛЧХ. . - 33 - ПРИЛОЖЕНИЕ П.1 Типовые блоки и их алгоритмы ____________________________ В этом разделе приводится перечень типовых блоков, вошедших в версии 4.3x СИАМ, с описанием реализованных в них алгоритмов. Описания имеют в точности такой же вид, как на экране при вызове встроенной справочной службы. П.1.1 Динамические звенья __________________________ К динамическим относятся блоки, которые порождают во внут- реннем представлении модели линейные дифференциальные уравнения того или иного порядка. П.1.1.1 Динамическое звено общего вида Блок реализует передаточную функцию: m m-1 K*(b0*S + b1*s + ... + bm) W(S)=------------------------------ n n-1 a0*S + a1*S + ... + an (динамическое звено обшего вида; обязательные условия: m <= n и a0 <> 0). Для работы блока необходимо вначале задать порядки полино- мов числителя "m" и знаменателя "n", а после нажатия на клавишу Enter - коэффициенты K, ai, bi и, при необходимости, начальные ус- ловия Y0i. П.1.1.2 Интегрирующее звено Блок реализует передаточную функцию: K W(S)=--- S (интегрирующее звено). Для работы блока необходимо задать коэффи- циент усиления K и начальные условия Y0. П.1.1.3 Апериодическое звено Блок реализует передаточную функцию: K W(S)=--------- TS + 1 (апериодическое звено). Обязательное условие: T <> 0. Для работы блока необходимо задать коэффициент усиления K, постоянную времени T и начальные условия Y0. П.1.1.4 Колебательное звено Блок реализует передаточную функцию: K W(S)= ----------------- 2 2 T S + 2TdS + 1 - 34 - (колебательное звено). Обязательное условие: T <> 0. Для работы блока необходимо задать коэффициент усиления K, постоянную времени T, коэффициент демпфирования d и начальные условия Y0 и Y1. П.1.1.5 Интегро-дифференцирующее звено Блок реализует передаточную функцию: K*(T1*S + 1) W(S)=-------------- T2*S + 1 (интегро-дифференцирующее звено 1-го порядка). Обязательное усло- вие: T2 <> 0. Для работы блока необходимо задать коэффициент уси- ления K, постоянные времени T1 -числителя, T2 - знаменателя и на- чальные условия Y0. П.1.1.6 Запаздывающее звено Блок реализует передаточную функцию: -TS K*(TS-2) W(S)= K*e =---------- T*S + 2 (аппроксимация запаздывания рядом Падэ 1-го порядка). Обязательное условие: T <> 0. Для работы блока необходимо задать коэффициент усиления K, постоянную времени T и начальные условия Y0. П.1.1.7 Два апериодических звена Блок реализует передаточную функцию: K W(S)= --------------------- (T1*S + 1)(T2*S + 1) (два апериодических звена). Обязательные условия: T1 <> 0 и T2 <> 0. Для работы блока необходимо задать коэффициент усиления K, пос- тоянные времени T1, T2 и начальные условия Y0 и Y1. П.1.1.8 Интегратор с апериодическим звеном Блок реализует передаточную функцию: K W(S)= --------- S(TS + 1) (интегратор c апериодическим звеном). Обязательное условие: T <> 0. Для работы блока необходимо задать коэффициент усиления K, пос- тоянную времени T и начальные условия Y0 и Y1. П.1.1.9 Интегратор c колебательным звеном Блок реализует передаточную функцию: K W(S)= ------------------ 2 2 S(T S + 2TdS + 1) (интегратор с колебательным звеном). Обязательное условие: T <> 0. Для работы блока необходимо задать коэффициент усиления K, посто- янную времени T, коэффициент демпфирования d и начальные условия Y0,Y1,Y2. - 35 - П.1.1.10 Дифференцирующее 1-го порядка и колебательное звено Блок реализует передаточную функцию: K*(T1*S + 1) W(S)= ------------------ 2 2 T S + 2TdS + 1 (дифференцирующее 1-го порядка и колебательное звенья). Обязатель- ное условие: T <> 0. Для работы блока необходимо задать коэффици- ент усиления K, постоянные времени T,T1, коэффициент демпфирования d, начальные условия Y0,Y1 П.1.1.11 Квадратичный функционал качества Блок реализует функцию: 1 2 у(t)=--- <интеграл от 0 до T> x (t)*dt T (квадратичный функционал качества). Здесь T=t - текущее модельное время; x(t) - мгновен. значение входн.сигнала; у(t) - выходной сигнал. Для работы блока необходимо задать начальные условия Y0. П.1.1.12 Реальное дифференцирующее звено Блок реализует передаточную функцию: K*S W(S)=-------- TS + 1 (реальное дифференцирующее звено). Обязательное условие: T <> 0. Для работы блока необходимо задать коэффициент усиления K, посто- янную времени T и начальные условия Y0. П.1.2 Генераторные звенья __________________________ К генераторным отнесены блоки, которые имитируют различные возмущения, действующие на реальную систему. Для своей работы блоки этого типа не нуждаются во входных сигналах. П.1.2.1 Скачок положения Блок генерирует ступенчатый выходной сигнал (скачок положения). Для работы блока необходимо задать величину скачка K. П.1.2.2 Скачок скорости Блок генерирует линейно нарастающий выходной сигнал (скачок ско- рости). Для работы блока необходимо задать величину скачка скорос- ти K. П.1.2.3 Скачок ускорения Блок генерирует выходной сигнал в виде скачка ускорения. Для ра- боты блока необходимо задать величину скачка ускорения K. - 36 - П.1.2.4 Гармоника Блок генерирует синусоидальный выходной сигнал. Для работы блока необходимо задать частоту синусоиды W (в радианах в секунду). П.1.2.5 Меандр Блок генерирует прямоугольный выходной сигнал (меандр). Для ра- боты блока необходимо задать частоту сигнала W (в радианах в се- кунду). П.1.2.6 Треугольное воздействие Блок генерирует треугольный выходной сигнал. Для работы блока необходимо задать частоту сигнала W (в радианах в секунду). П.1.2.7 Пила Блок генерирует пилообразный выходной сигнал. Для работы блока необходимо задать частоту сигнала W (в радианах в секунду). П.1.2.8 Модельное время Блок генерирует выходной сигнал, численно равный текущему зна- чению модельного времени. Для работы блока параметы не требуются. П.1.2.9 Белый шум Блок генерирует псевдослучайную последовательность вещественных чисел, равномерно распределенных в диапазоне от Ymiп до Ymax. Для работы блока необходимо задать нижнюю Ymiп и верхнюю Ymax границы диапазона. П.1.2.10 Нормальный шум Блок генерирует псевдослучайную последовательность нормально распределенных вещественных чисел. Для работы блока необходимо за- дать математическое ожидание m0 и дисперсию D нормального закона распределения. П.1.3 Математические и логические операции ___________________________________________ П.1.3.1 Вычитание Блок реализует операцию вычитания двух сигналов: у(t)=х1(t)-х2(t), где у(t) - выходной сигнал; x1(t), x2(t) - входные сигналы. Для работы блока параметы не требуются. П.1.3.2 Сложение Блок реализует операцию сложения двух сигналов: у(t)=х1(t)+х2(t), где у(t) - выходной сигнал; - 37 - x1(t), x2(t) - входные сигналы. Для работы блока параметы не требуются. П.1.3.3 Умножение Блок реализует операцию умножения двух сигналов: у(t)=х1(t)*х2(t), где у(t) - выходной сигнал; x1(t), x2(t) - входные сигналы. Для работы блока параметы не требуются. П.1.3.4 Деление Блок реализует операцию деления двух сигналов: у(t)=х1(t)/х2(t), где у(t) - выходной сигнал; x1(t), x2(t) - входные сигналы. Для работы блока параметы не требуются. П.1.3.5 Возведение в квадрат Блок осуществляет операцию возведения в квадрат мгновенного зна- чения входного сигнала: 2 у(t)= K * x (t) , где у(t) - выходной сигнал; x(t) - входной сигнал; K - коэффициент. Для работы блока необходимо задать коэффициент усиления K. П.1.3.6 Корень квадратный Блок осуществляет операцию извлечения квадратного корня из мгновенного значения модуля входного сигнала: у(t)= K * SQRT(ABS(x(t))) , где у(t) - выходной сигнал; x(t) - входной сигнал; K - коэффициент; SQRT - символ извлечения корня; ABS - символ получения модуля. Для работы блока необходимо задать коэффициент усиления K. П.1.3.7 Экспонента Блок осуществляет операцию получения экспоненты от мгновенного значения входного сигнала: x(t) у(t)= K * e , где у(t) - выходной сигнал; x(t) - входной сигнал; K - коэффициент. Для работы блока необходимо задать коэффициент усиления K. П.1.3.8 Логарифм натуральный Блок осуществляет операцию получения логарифма натурального от мгновенного значения модуля входного сигнала: - 38 - у(t)= K * ln(ABS(x(t))) , где у(t) - выходной сигнал; x(t) - входной сигнал; K - коэффициент; ABS - символ получения модуля. Для работы блока необходимо задать коэффициент усиления K. П.1.3.9 Логарифм десятичный Блок осуществляет операцию получения логарифма десятичного от мгновенного значения модуля входного сигнала: у(t)= K * lg(ABS(x(t))) , где у(t) - выходной сигнал; x(t) - входной сигнал; K - коэффициент; ABS - символ получения модуля. Для работы блока необходимо задать коэффициент усиления K. П.1.3.10 Синус Блок осуществляет операцию получения синуса от мгновенного зна- чения входного сигнала: у(t)= K * siп(x(t)) , где у(t) - выходной сигнал; x(t) - входной сигнал; K - коэффициент. Для работы блока необходимо задать коэффициент усиления K. П.1.3.11 Косинус Блок осуществляет операцию получения косинуса от мгновенного зна- чения входного сигнала: у(t)= K * cos(x(t)) , где у(t) - выходной сигнал; x(t) - входной сигнал; K - коэффициент. Для работы блока необходимо задать коэффициент усиления K. П.1.3.12 Тангенс Блок осуществляет операцию получения тангенca от мгновенного значения входного сигнала: у(t)= K * tд(x(t)) , где у(t) - выходной сигнал; x(t) - входной сигнал; K - коэффициент. Для работы блока необходимо задать коэффициент усиления K. П.1.3.13 Арктангенс Блок осуществляет операцию получения арктангенса от мгновен- ного значения входного сигнала: у(t)= K * Arctд(x(t)) , где у(t) - выходной сигнал; x(t) - входной сигнал; K - коэффициент. Для работы блока необходимо задать коэффициент усиления K. - 39 - П.1.3.14 Модуль Блок осуществляет операцию получения модуля от мгновенного значения входного сигнала: у(t)= K * ABS(x(t)) , где у(t) - выходной сигнал; x(t) - входной сигнал; K - коэффициент; ABS - символ получения модуля. Для работы блока необходимо задать коэффициент усиления K. П.1.3.14 Логическое "И" Блок реализует следующий алгоритм: если x1(t) Є 0 и x2(t) Є 0, то у(t)=1, иначе у(t)=0, где у(t) - выходной сигнал; x1(t), x2(t) - входные сигналы. Для работы блока параметы не требуются. П.1.3.15 Логическое "ИЛИ" Блок реализует следующий алгоритм: ЕСЛИ x1(t) Є 0 ИЛИ x2(t) Є 0, TO у(t)=1, ИНАЧЕ у(t)=0, где у(t) - выходной сигнал; x1(t), x2(t) - входные сигналы. Для работы блока параметы не требуются. П.1.3.16 Логическое "НЕ" Блок реализует следующий алгоритм: ЕСЛИ x(t) > 0, TO у(t)=0, ИНАЧЕ у(t)=1, где у(t) - выходной сигнал; x(t) - входной сигнал. Для работы блока параметы не требуются. П.1.3.17 Запоминание минимума Блок запоминает и выдает минимальное значение входного сигнала. Для работы блока параметы не требуются. П.1.3.18 Запоминание максимума Блок запоминает и выдает максимальное значение входного сигнала. Для работы блока параметы не требуются. П.1.3.19 Управляемый ключ Блок реализует функцию управляемого ключа по следующему алго- ритму: ЕСЛИ x2(t) > 0, ТО у(t)=х1(t), ИНАЧЕ у(t)=0. Здесь у(t) - выходной сигнал; x1(t), x2(t) - входные сигналы. Для работы блока параметы не требуются. - 40 - П.1.3.20 Усилитель Блок реализует функцию усиления мгновенного значения входного сигнала: у(t)= K * x(t) , где у(t) - выходной сигнал; x(t) - входной сигнал; K - коэффициент. Для работы блока необходимо задать коэффициент усиления K. П.1.4 Нелинейные звенья _________________________ П.1.4.1 Насыщение Блок реализует нелинейную статическую характеристику типа "насы- щение": у(t) ^ ! +----- ! /: Xmin !/ : -----------/------------ x(t) : /! Xmax :/ ! -----+ ! Для работы блока необходимо задать коэффициент усиления K линейно- го участка, а также нижнюю Xmin и верхнюю Xmax его границы. П.1.4.2 Нечувствительность Блок реализует нелинейную статическую характеристику типа "нечувс- твительность": у(t) ^ ! / ! / Xmin ! / -------+--+--+------- x(t) / ! Xmax / ! / ! Для работы блока необходимо задать коэффициент усиления K линей- ных участков, а также нижнюю Xmin и верхнюю Xmax границы нечувс- твит-сти. П.1.4.3 Насыщение c нечувствительностью Блок реализует нелинейную статич. характеристику типа "насыще- ние+нечувствительность": у(t) ^ ! +----- ! /: k1 k2 ! / : --------+--+--+--------- x(t) : / ! k3 k4 :/ ! -----+ ! Для работы блока необходимо задать коэффициент усиления K линейных - 41 - участков, а также абсциссы точек излома k1, k2, k3 и k4. П.1.4.4 Сухое трение Блок реализует нелинейную статическую характеристику типа "сухое трение": у(t) ^ y(t) = y1 для x(t) > 0; у1 +------ y(t) = 0 для x(t) = 0; ! y(t) = y2 для x(t) < 0. ! --------!-------- x(t) ! ! ------+ у2 Для работы блока необходимо задать параметры нелинейности у1 и у2. П.1.4.5 Двухпозиционное реле Блок реализует нелинейную статическую харакку типа "двухпозици- онное реле": у(t) ^ +--+--+--- ! ! ! x1 ! ! ! x2 -------!--+--!----- x(t) ! ! ! ! ! ! ---+--+--+ Для работы блока необходимо задать параметры нелинейности x1,x2 и начальное состояние реле Y0. П.1.4.6 Трехпозиционное реле Блок реализует нелинейную статическую характеристику типа "трех- позиционное реле": у(t) ^ +1!..+--+-- ! ! ! x1 x2 ! ! ! ----+--+--+--+--+-- x(t) ! ! ! x3 x4 ! ! ! --+--+..!-1 Для работы блока необходимо задать параметры нелинейности x1,x2,x3,x4 и начальное состояние реле Y0. П.1.4.7 Люфт Блок реализует нелинейную статическую характеристику типа "люфт": . - 42 - у(t) ^ /-----/ /! / -x1 / ! / -----/--+--/----- x(t) / ! /+x1 / !/ /-----/ Для работы блока необходимо задать половину ширины люфта x1, начальное состояние выходного сигнала Y0 и коэффициент усиления K. П.1.4.8 Излом Блок реализует нелинейную статическую характеристику типа "из- лом": у(t) ^ \ ! / \ ! / \ ! / k1 \!/ k2 ----------+--------- x(t) Для работы блока необходимо задать коэффициенты усиления k1 и k2. П.1.4.9 Однозначная нелинейность Блок реализует однозначную нелинейную статическую характеристику произвольного вида, аппроксимируемую кусочно-ломанной кривой: у(t) ^ ! + у3 уN ! :\ + + ! : \ /:.... /: ! : + : \ / : ! : : : + : --+--+--+-+-...-+--+--- x(t) x1 x2 x3 xN Для работы блока необходимо вначале задать количество точек излома N, а после нажатия клавиши "Ввод"- координаты точек излома х1,у1, х2,у2, ... , xN,уN. . - 43 - ПРИЛОЖЕНИЕ П.2 Алгоритмы методов численного интегрирования ___________________________________________ При описании алгоритмов используются следующие обозначения: y - вектор начальных условий; t - текущее модельное время; f - вектор производных; H - шаг интегрирования в методах с постоянным шагом; h - текущий шаг интегрирования в методах с автоматическим выбором шага; eps- оценка локальной погрешности. П.2.1 Метод Эйлера k1 = f(y, t) k2 = f(y+k1*H, t+H) y(t+H) = y+(k1+k2)*H/2 П.2.2 Метод Рунге-Кутта H2 = H/2 k1 = f(y, t) k2 = f(y+k1*H2, t+H2) k3 = f(y+k2*H2, t+H2) k4 = f(y+k3*H , t+H ) y(t+H) = y+(k1+2*k2+2*k3+k4)*H/6 П.2.3 Метод Кутта-Мерсона k1 = f(y, t) k2 = f(y+k1*h/3, t+h/3) k3 = f(y+(k1+k2)*h/6, t+h/3) k4 = f(y+(k1+3*k3)*h/8, t+h/2) k5 = f(y+(k1-3*k3+4*k4)*h/2, t+h) y(t+h) = y+(k1+4*k4+k5)*h/6 eps = abs(y(t+h)-y-(k1-3*k3+4*k4)*h/2) Алгоритм заимствован из книги: Б.Колдербэнк. Программирование на Фортране. Фортран-66 и Фортран-77: М., "Радио и связь", 1986, с. 150...154. П.2.4 Метод Фельберга k1 = f(y, t) k2 = f(y+k1*h/4, t+h/4) k3 = f(y+(k1+3*k2)*3*h/32, t+3*h/8) k4 = f(y+(1932*k1+7296*k3-7200*k1)*h/2197, t+12*h/13) k5 = f(y+(8341*k1-845*k4+29440*k3-32832*k2)*h/4104, t+h) k6 = f(y+(9295*k4-6080*k1-5643*k5+ +41040*k2-28352*k3)*h/20520, t+h/2) y(t+h) = y+(902880*k1+3855735*k4-1371249*k5+3953664*k3+ +277020*k6)*h/7618050 eps = abs(21970*k4-2090*k1-15048*k5+22580*k3- -27360*k6)/(abs(y)+abs(y(t+h))) - 44 - Алгоритм заимствован из книги: Форсайт и др. Машинные методы математических вычислений: М., "Мир", 1980, с. 151...164. . - 45 - ПРИЛОЖЕНИЕ П.3 Алгоритмы методов параметрической оптимизации _____________________________________________ При описании алгоритмов параметрической оптимизации исполь- зуются следующие обозначения: F - текущее значение целевой функции; Fmin - минимальное достигнутое значение целевой функции; X - вектор текущих значений параметров; X0 - вектор значений параметров, для которого получено Fmin; xi - i-й компонент вектора X (i-й параметр); xmin ... xmax - диапазон изменения i-го параметра; dx - относительный диапазон неопределенности параметров. П.3.1 Метод случайных испытаний (метод Монте-Карло) На каждом шаге оптимизации выбирается случайное значение xi внутри диапазона xmin ... xmax. Для полученного таким образом X находится F , которое сравнивается c Fmin. Если F < Fmin, то осуществляется запоминание X0 = X и Fmin = F . Метод никак не использует уже накопленную информацию o по- ведении целевой функции. П.3.2 Метод покоординатного спуска (метод Гаусса-Зейделя) Для каждого xi осуществляется процедура поиска такого значения xi0 , при котором целевая функция достигает своего ми- нимума. Поиск ведется по алгоритму "золотого сечения" в комбина- ции с параболической аппроксимацией (алгоритм заимствован из книги: Форсайт и др. Машинные методы математических вычислений: М., "Мир", 1980, с.120...123). После завершения поиска по последнему параметру формируется X0 и Fmin , затем процедура повторяется для 1-го параметра. Если новое значение 1-го параметра отличается от ранее найденно- го не более чем на (xmax - xmin) * dx , оптимизация считается успешно завершенной. П.3.3 Метод прямого поиска (метод Хука-Дживса) Алгоритм заимствован из книги: Библиотека алгоритмов 151Б-200Б: М., "Радио и связь", 1981, с. 60...66. При нарушении методом границ изменения параметров использу- ется алгоритм барьеров: в качестве F возвращается величина, близкая к машинной бесконечности.