Вычислительная система «Управление»

УДК 519.711

Ю.И Параев

ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА «УПРАВЛЕНИЕ»

Приводится описание вычислительной системы «Управление», разработанной для проведения лабораторных работ по курсу «Теория управления» на персональных компьютерах типа PC IBM. Эта система может также широко использоваться в научных исследованиях в области теории автоматического управления и смежных вопросах.

Вычислительная система «Управление» (ВСУ) первоначально разрабатывалась для проведения лабораторных, курсовых и дипломных работ по курсу «Теория управления» на персональных компьютерах типа PC IBM и совместимых с ними. Позднее она широко использовалась и в научных исследованиях.

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

Тематика работ связана с решением таких задач, как

- моделирование систем (в том числе и стохастических),

- исследование систем на устойчивость,

- синтез регуляторов и компенсаторов различных типов (ПИД, оптимальных, динамических, модальных и т.п.),

- синтез наблюдателей и фильтров (Капмана, Луенбер-гера и т.п.),

- частотные методы исследования.

В математическом отношении эти задачи связаны с решением дифференциальных или разностных уравнений, решением матричных уравнений Ляпунова, Риккати, Сильвестра, вычислением определителей Гурвица и рядом других вычислительных задач.

ВСУ позволяет проводить эти вычисления в диалоговом режиме Все числовые данные оформляются в виде матриц, которым присваиваются свои имена, причем размерности матриц, в которые заносятся результаты счета, определяются автоматически. Размерности матриц могут быть произвольными. Пользователь работает только с кодами операций и именами матриц и векторов, причем в режиме «подсказки» коды операций вводятся автоматически. Пользователь имеет дело только с формулами уравнений, которые определяют решение той или иной задачи. Поскольку ВСУ содержит большой набор (около 250) операций линейной алгебры и операций, связанных с решением алгебраических, дифференциальных и разностных уравнений, то она может использоваться при изучении других учебных дисциплин и проведении научных исследований, математически связанных с угазанными процедурами.

ВСУ содержит основные группы операций:

- операции управления системой, в том числе установка параметров вычислительных процедур, включая машинный ноль;

- операции ввода различных матриц, в том числе случайных:

- операции компоновки и формирования матриц: перестановка, удаление, выделение, дублирование блоков столбцов ши строк, компоновка матриц из блоков, вписывание одной матрицы в другую, формирование матриц управляемости в наблюдаемости, выделение линейно независимых строк и столбцов и т.д.;

- арифметические операции над матрицами: сложение, вычитание, умножение, обращение, вычисление квадратного корш из симметрической матрицы и т.п.; поэлементные арифметические операции;

- вычисление характеристик матриц: ранга, определителя, главных миноров, характеристического многочлена, собственных чисел и векторов и т.д.;

- приведение матриц к каноническим формам - жорда-новой, естественной, Шура, Хессельберга и др., нахождение инвариантных многочленов матриц;

- решение алгебраических уравнений (включая псевдообращение), решение матричных прямых и обратных уравнений Ляпунова и Риккати, уравнения Сильвестра для непрерывных и дискретных систем;

- решение дифференциальных и разностных уравнений, в том числе и стохастических при случайных воздействиях гауссовского и пуассоновского типов;

- приведение непрерывных систем управления к дискретным;

- операции с многочленами: сложение и перемножение многочленов, введение биномиальных многочленов и многочленов Батерворда, вычисление матрицы Рауса и определителей Гурвица для многочлена, вычисление корней многочлена, вычисление матричных многочленов;

- вычисление определенных интегралов и табуляция функций (в том числе матричных);

- ввод функций, определяемых пользователем;

- частотные методы исследования систем управления: вычисление годографа Михайлова, амплитудных и фазовых частотных характеристик, перемножение и сложение передаточных функций, вычисление передаточной функции для замкнутой системы, построение передаточной функции для динамической системы и обратная задача;

- представление графического материала, в том числе построение фазовых портретов.

В системе предусмотрен программный режим, позволяющий составлять из операций программы, которым могут присваиваться свои имена и которые затем могут выполняться автоматически. Все выполненные в процессе диалога операции запоминаются и, таким образом, автоматически получается готовая программа. Имеется возможность включения в программы команд условного выполнения операций и команд условного и безусловного перехода по меткам, а также организация циклов. Предусмотрено включение одних программ в другие. Всего возможна организация до 20 программных уровней. Программный режим позволяет одновременно просчитывать несколько вариантов задачи с изменением какого-либо параметра. Для набора и отладки программ в системе предусмотрен специальный редактор. Предусмотрена операция автоматического изменения в программах одних имен матриц на другие, что позволяет использовать имеющиеся программы как стандартные, т.е. использовать их при решении разных задач.

Числовые результаты и созданные программы можно записывать в файлы и, таким образом, создавать второй уровень системы. Система позволяет обрабатывать любые числовые массивы, записанные в кодах ASCII.

По функциональным возможностям и интерфейсу система «Управление» несколько напоминает универсальную интерпретирующую среду матричных вычислений MatLab («Матричная лаборатория»). Но в отличие от системы MatLab система «Управление» специально ориентирована на решение задач моделирования, управления и обработки информации в динамических системах, описываемых в пространстве состояний. Поэтому она имеет значительно большее число встроенных специальных операций для данной предметной области.

99

Более того, организация системы позволяет включать в нее новые операции без каких-либо затруднений, поэтому она постоянно совершенствуется. Удачный интерфейс системы «Управление» и простая организация программного режима существенно упрощают работу пользователя.

1. Организация системы

1.1. Запуск

1.1.1. ВСУ работает автономно в среде MS DOS (или WINDOWS). Имеется возможность работы в сети с общим жестким диском.

1.1.2. В файле DIM.BAS содержатся параметры системы: величина числового массива (не может превышать 16380), максимальное число используемых матриц, максимальное число программ, максимальное число программных уровней и т.д. Эти параметры в файле DIM. BAS можно изменять с учетом возможностей компьютера (в частности, с величиной строковой памяти). Текущее количество свободной памяти указывается в конце списка введенных матриц (операция ctm).

1.1.3. Причина сбоев при запуске или работе:

- нехватка строковой памяти - внесите изменения в файл DIM.BAS, уменьшив число матриц максимальное число операций в программах, максимальное число программ, максимальное число программных уровней и т.д., и затем снова запустите ВСУ;

- нехватка зарезервированных массивов для числа матриц программ и операций - удалите лишние матрицы;

- при работе в сети с общим жестким диском в файле DIM.BAS неправильно задан соответствующий параметр.

1.1.4. При работе может создаваться файл ERR. DAT, в который заносятся случившиеся ошибки (с указанием их кода и соответствующей операции). Его можно удалять в любое время.

1.1.5. После запуска на экране появляется заставка, в которой кратко изложены общие правила работы с системой. Этого достаточно даже для начинающего пользователя. Признаком готовности системы к работе или к выполнению следующей операции служит появление на экране надписи «ОПЕРАЦИЯ:».

1.2. Организация данных

1.2.1. Все числовые данные оформляются в виде матриц порядка пхт. Векторам соответствуют матрицы порядка п* 1 или 1 хл, отдельным числам - матрицы порядка 1x1. Размерности исходных матриц определяются при их вводе. Размерности матриц, в которые заносятся результаты счета, определяются автоматически. Размерности матриц могут быть произвольными. Нужно только учитывать, что величина числового массива не должна превышать 16000 чисел. Максимальное количество различных матриц задается в файле DIM.BAS и практически не должно превышать 1000.

Матрицам присваиваются имена, которые могут состоять из латинских букв, цифр и символов (не допускаются ЗАПЯТАЯ и символы +, :, Л, *, (,),

[, ], !, так как они используются в арифметических операциях). Лучше имена матриц начинать с букв. Это же относится и к именам программ.

100

1.2.2. Многочлен

fiX) = ап+ |А," + а„Х"~1 + ... + а2Х + аи где а„ + | * 0, задается в виде вектора. В разных операциях используются две формы многочленов и соответствующих векторов. Многочлен называется нормированным (сопровождается отметкой [л]), если ему соответствует л-мерный вектор а, составленный из чисел аи а2,..., а„. При этом предполагается, что а„+ j = 1. Так, например, представляется характеристический многочлен матрицы. Многочлен называется ненормированным (далее в тексте и в меню подсказки сопровождается отметкой И), если ему соответствует л + 1-мерный

вектор, составленный из чисел аь а2.aman+i. Нужно

обратить внимание на порядок нумерации коэффициентов многочлена и элементов вектора. Если в какой-то операции возможно использование обеих форм задания многочленов, то ставится отметка [s], С помощью операции 1пр можно переходить от одной формы представления многочленов к другой.

1.2.3. Передаточная функция

fr(p) Ь1 + Ь2Р + - + ЬпРИ'] + Ьп^Ря а1 + агр + ... + апр"-' + ап^рЙ'

где в числителе или знаменателе коэффициенты при старших степенях р могут равняться нулю, но не одновременно, задается с помощью матрицы порядка

2 х (л+ 1)вида W =

6, V А Ь„+1

а, а2‘ • а а , “л ИД+|

Передаточная функция считается физически реализуемой, если степень многочлена в числителе меньше степени многочлена в знаменателе, т.е. по крайней мере bn+1 = 0, но а„+(* 0.

1.3. Диалоговый режим

1.3.1. Для работы с системой после появления на экране надписи «ОПЕРАЦИЯ:» следует ввести в виде одного слова саму операцию. Общая структура этого слова следующая:

КОД операции фрагмент! фрагмент2 ... .

Если пользователь не знает кода операции и структуру слова, то он может получить подсказку в МЕНЮ ОПЕРАЦИЙ, куда можно войти с помощью ENTER. Вообще, при всех затруднениях нажимайте ENTER!

Код операции состоит из трех латинских букв. В меню коды операций разбиты на группы по смысловому признаку. Коды операций из одной группы начинаются с одинаковых букв. Выбрав группу операций и нажав ENTER, попадаем в список операций данной группы. Выбрав нужную операцию и нажав ENTER, получаем окно для набора слова. В этом окне приводится шаблон структуры слова. Если пользователь знает код операции и шаблон структуры слова, то он может вводить это слово сразу после надписи «ОПЕРАЦИЯ:», не входя в МЕНЮ.

После введения кода следует ввести необходимые фрагменты слова, между которыми всегда должен стоять ПРОБЕЛ. Внутри фрагмента пробелы недопустимы. Буквы, набранные в верхнем и нижнем регистрах, считаются разными. Исключение относится только к кодам операций и именам стандартных функций.

В меню операций указываются необходимые аргументы операции. Эти аргументы обозначаются про-

писными (большими) или строчными (малыми) буквами. Большими буквами отмечены аргументы, которые должны быть именами матриц или для скалярных задач - числами. При обработке каждого фрагмента сначала проверяется наличие указанной матрицы, а если ее нет, то проверяется - является ли фрагмент числом. Если окажется, что фрагмент не является ни тем, ни другим, то выдается сообщение об ошибке «Матрицы нет».

Строчными буквами обозначаются скалярные параметры, которые можно вводить в виде каких-то арифметических выражений. Эти арифметические выражения могут содержать элементы имеющихся матриц, числа и стандартные или вводимые пользователем функции. В арифметических выражениях можно использовать символы +, -, *, /, Л и круглые скобки (). Квадратные скобки используются только для обозначения аргументов стандартных и вводимых функций. Элементы матриц указываются в виде A(i, j), элементы векторов - в виде A(i). Исключением являются элементы А( 1, 1) или /4(1), когда достаточно указать только имя матрицы. Для вычисления индексов / и j допустимо также использовать арифметические выражения. При этом при получении дробных значений они округляются до ближайшего целого снизу.

При описании операций, а также в подсказках необязательные имена, выражения или признаки заключены в СКОБКИ. Если при вводе операции такие параметры не указываются, то они принимают значения по умолчанию. При вводе операции СКОБКИ не указываются! Признак / указывает на возможность выполнения другого варианта операции. В МЕНЮ ОПЕРАЦИЙ некоторые операции сопровождаются краткими комментариями, в которых поясняются особенности операции.

1.3.2. Одним словом можно ввести выполнение нескольких одинаковых операций, разделив группы матриц с помощью знака «;» -

КОД фрагменты: фрагменты и т.д.

(например, при msm ХА В, X X С вычисляется сумма Х=А+В+С), или разных операций, разделив их знаком «:» -КОД1 фрагменты: фрагменты:...

:КОД2 Фрагменты: фрагменты и т.д. (например, при шргх А В ; у С D: msm Хху вычисляется X=AB+CD). Это удобно при составлении программ.

1.3.3. В операциях первой (или первыми) стоит матрица, в которую заносится результат вычислений. Ниже при описании операций в большинстве случаев такие матрицы обозначаются через X, Y, Z. Имя этой матрицы может совпадать с именем какой-либо уже введенной матрицы, в том числе и с используемой в данной операции. В таком случае последняя матрица удаляется. Это удобно для удаления лишних матриц.

1.3.4. В системе имеются следующие стандартные функции abs[ ] - абсолютное значение, ath[ ] - арктангенс, cos[ ] - косинус, ехр[ ] - экспонента, fix[ ] -удаление десятичной части числа, int[ ] - округление до целого, log[ ] - натуральный логарифм, sgn[ ] -знаковая функция, sin[ ] - синус, sqr[ ] - квадратный корень, &п[ ] - тангенс.

Можю ввести дополнительные функции с помощью операции ррп. Вводимые функции должны обязательно начинаться с буквы F. Аргументы функций

могут быть любыми арифметическими выражениями, включая любые стандартные и введенные функции. Все эти арифметические выражения не должны содержать ПРОБЕЛЫ, иначе они будут восприниматься как разные фрагменты. При обращении к этим функциям допустимо в аргумент вставлять другие функции, а также и саму функцию. Например, допустимо выражение F[.F[;c+l]]. С помощью операции ppf эти введенные функции можно оформить в программу, чтобы сохранить их для последующей работы.

1.3.5. В диалоговом режиме активны следующие функциональные клавиши (клавиши, активные в данный момент, высвечиваются в нижней строке экрана).

F1 - «Матрицы». При нажатии на F1 появляется окно, где приводится список всех введенных матриц. Выбрать нужную матрицу можно с помощью маркера. При этом становятся активными следующие клавиши:

F5 - «Переименование матриц» - изменение имени матрицы;

F6 - «Изменение матриц» - можно изменить какой-либо элемент матрицы;

F7 - запись выделенных матриц в файл;

F8 - удаление выделенных матриц.

Выделение нужных матриц, программ или файлов осуществляется с помощью INS. Все матрицы можно выделить с помощью правого +.

F2 - «Программы». При нажатии на F2 появляется окно, где приводится список всех введенных программ. При этом становятся активными следующие клавиши:

F5 - «Переименование программ» - изменение имени программы;

F6 - «Изменение программ» - переход в редактор программ;

F7 - запись выделенных программ в файл;

F8 - удаление выделенных программ;

F9 - запуск программы.

Если при работе какие-либо файлы считывались, то после нажатия F7 кроме надписи «Укажите имя файла» внизу экрана высвечиваются имена считанных ранее файлов. При нажатии соответствующей клавиши F происходит запись в указанный файл, т.е. в таком случае не нужно создавать новый файл.

F3 - « Числовые Файлы». При нажатии на F3 появляется окно, где приводится список всех имеющихся файлов, содержащих числовые массивы (см. ниже). Выбрав нужный файл, можно считать его с помощью ENTER, причем в ДОПОЛНЕНИЕ к имеющемуся массиву. Кроме того, становятся активными следующие клавиши:

F5 - «Переименование» - изменение имени файла;

F6 - «Считывание файла» вместо имеющегося массива, т.е. имеющиеся до считывания матрицы удаляются;

F8 - удаление выделенных файлов;

F10 - введение новой директории.

F4 - «Программные файлы». При нажатии на F4 появляется окно, где приводится список всех имеющихся файлов, содержащих массивы программ (см. ниже). Выбрав нужный файл, можно считать его с помощью ENTER, причем в ДОПОЛНЕНИЕ к имеющемуся массиву. Кроме того, становятся активными следующие клавиши:

F5 - «Переименование» - изменение имени файла;

101

F6 - «Считывание файла» вместо имеющегося массива, т.е. имеющиеся до считывания программы удаляются;

F8 - удаление выделенных файлов;

F10 - введение новой директории.

После введения кода операции активными остаются клавиши F1 - «Матрицы» и F2 -«Программы». С помощью этих клавиш можно войти в список матриц или программ. Выбрав с помощью маркера нужное имя, можно, нажав ENTER, ввести это имя в набираемое слово.

1.4. Графический режим

Числовые массивы, задаваемые в виде матриц, можно отразить на экране в виде графиков. Операции построения графиков имеют следующий вид: е** имена матриц (необязательные параметры или признаки). Вторыми буквами кода операции могут быть k, р, 1, которые определяют расположение графика на экране: в центре, в правой или в левой части экрана соответственно. Третьи буквы в коде операции g, f, s определяют тип графика.

g - собственно ГРАФИК. Числа откладываются по вертикали, причем элементы каждой строки каждой матрицы располагаются равномерно по горизонтали в интервале [0,1] и соединяются ломаной. Если после набора операции набрать /, то кривая аппроксимируется горизонтальными отрезками. Каждой строке матрицы соответствует своя кривая. Возможно наряду с именами матриц указывать конкретные числа. Например, gig А В 5,55. Для изменения интервала [0, 1] на интервал [0, /] нужно это сделать либо при вводе операции, набрав в конце слова через пробел = г, либо после построения графика нажать F6 и затем ввести t. При этом t может быть либо нужным числом, либо каким-то выражением.

f- ФАЗОВЫЙ ПОРТРЕТ. Первый элемент каждого столбца каждой матрицы откладывается по горизонтали, а остальные - по вертикали. Элементы каждой строки (начиная со второй) соединяются ломаной. Если после набора операции набрать /, то кривая аппроксимируется горизонтальными отрезками. Каждой строке матрицы (кроме первой) соответствует своя кривая. Выводимые матрицы должны содержать не менее двух строк.

s - СПЕКТР матрицы. Выводимые матрицы должны состоять только из двух столбцов. Элементы первого столбца каждой матрицы откладываются по горизонтали, а соответствующие элементы второго столбца - по вертикали.

Максимальное число выводимых кривых равно 8. Поэтому для вывода на экран массива, содержащего большее число строк, его нужно разбить на блоки. Можно менять порядок вывода строк. Для этого в режиме ГРАФИК после имен матриц нужно набрать \ и номера строк (все без пробелов) от 1 до 9. Например, при А\934 на экран выводятся 9, 3 и 4-я строки матрицы А. В режиме ФАЗОВЫЙ ПОРТРЕТ после имен матриц можно набрать (без пробелов) \ и далее номер строки, элементы которой откладываются по горизонтали, а затем номера остальных строк (все от 1 до 9). Если после \ указать только один номер, то остальные строки выводятся в порядке возрастания номеров. Например, при А\934 по горизонтали откладываются элементы 9-й строки, а на

экран выводятся строки 3-я и 4-я; при А\3 по горизонтали откладываются элементы 3-й строки, а на экран выводятся строки 1,2, 4 и т.д.

Неправильно заданные строки игнорируются.

Для операций ГРАФИК и ФАЗОВЫЙ ПОРТРЕТ предусмотрено введение меток для разных кривых. Дня введения меток нужно нажать F5 и набрать номер кривой и ENTER. Перемещение меток осуществляется клавишами <- и фиксация меток - клавишей ENTER. Одновременно внизу экрана указываются значения координат точки. Выход из режима меток осуществляется с помощью ENTER. В операции ФАЗОВЫЙ ПОРТРЕТ нужно помнить, что первой кривой соответствует вторая строка матрицы и т.д.

Клавиши FI, F2, F3, F10 включают и выключают цвет, сетку, рамку и подписи на рисунке соответственно. Под графиками после нажатия F9 можно набрать текст (не более двух строк).

Переход к выполнению следующей операции осуществляется клавишей ENTER. Если далее вводится графическая операция (начинающаяся с буквы g) без обращения к подсказке, то система остается в графическом режиме. Это позволяет строить графики в правой и левой частях экрана.

Изображение, полученное на экране, может быть отпечатано на принтере или записано в буфер с помощью PrintScreen.

1.5. Программный режим

В системе предусмотрена возможность из выполненных операций составлять программы и работать с этими программами. Каждой программе присваивается свое имя. Операция pio позволяет оформить уже выполненные операции в новую программу. Для набора и отладки программ в системе предусмотрен специальный редактор (см. ниже), хотя это можно делать и с помощью обычных редакторов (NORTON и т.п.). Переход в режим набора и отладки программ осуществляется с помощью операций pip, pio, pvp или клавиш F2 и F6.

В одну программу можно вставлять другие программы (кроме ее самой). В результате возможна организация нескольких программных уровней (число таких уровней устанавливается в файле DIM. BAS). С помощью операции pm можно выполнять программу несколько раз. Таким образом можно организовывать циклические вычисления. С помощью операции ррр можно просчитывать несколько вариантов одной задачи при варьировании какого-либо параметра. Имеется возможность автоматического переименования имен матриц в программе, что позволяет создавать библиотеку стандартных программ.

1.6. Редактор для отладки программ

Вход в редактор осуществляется с помощью операций pip, pio, pvp или клавиш F2 и F6. Выход из редактора - с помощью Esc или Ctrl+Q. Клавиши ENTER, Backpace, Home, End, DEL, INS, PageUp, PageDown, Ctrl+PageUp, Ctrl+PageDown имеют обычные функции.

F3 - переход в МЕНЮ ОПЕРАЦИЙ, где можно выбрать и набрать нужную операцию, которая затем поместится на место, указанное маркером.

102

F8 - включение и выключение INS.

F4, F5 - выделение блока строк (F4 - начало, F5 -конец).

ENTER или Ctrl+M - разделение строки (в режиме вставки).

Ctrl+Y - удаление строки.

Ctrl+F - запись программы в файл,

Ctrl+N - изменение имен матриц - можно автоматически изменить имена имеющихся в программе матриц или программ на новые.

Ctrl+G - изменение имени редактируемой программы.

Ctrl+K. - ввод или изменение комментария к программе.

Ctrl+P - считывание другой программы на место, указываемое маркером.

Ctrl+X - копирование выделенного блока на место, указываемое маркером.

Ctrl+V - перестановка выделенного блока на место, указываемое маркером.

Ctrl+W - удаление выделенного блока.

При выходе из редактора проводится проверка правильности набранных операций: проверяется правильность кода и числа обязательных аргументов. Из редактора можно выйти лишь тогда, когда в программе нет ошибок. Без исправления ошибок можно выйти из редактора, если в начале каждой строки с ошибками поставить знакт.е. превратив строку в комментарий.

1.7. Работа с файлами

1.7.1. Система работает с файлами двух типов: файлами, содержащими числовые массивы (им по умолчанию присваивается расширение <d-c>), и с файлами, содержащим массивы программ (им по умолчанию присваивается расширение <d-p>). При записи и считывании таких файлов расширение указывать не следует. Имена файлов не должны содержать знак + (это стандартное ограничение в MS DOS).

1.7.2. Организация файлов.

В числовых файлах для каждой матрицы порядка пхт отводится строка, имеющая вид:

+ имя матрицы п т' комментарий. после которой следуют числа. Если комментарий отсутствует, то ’ можно не указывать. В самой системе в качестве комментария записывается операция, с помощью которой получена данная матрица, однако в редакторе этот комментарий можно изменять.

В программных файлах для каждой программы, состоящей из п операций, отводится и+1 строка. Первая из этих строк имеет вид: + имя программы 1 комментарий. В остальные п строк заносятся операции в виде операция' комментарий.

Если комментарии отсутствуют, то' можно не указывать. Допустимы строки с одним комментарием (знак ' обязателен). В самой системе комментарий для программы вводится пользователем, а в качестве комментариев для операций записываются их расшифровки. Метки отмечаются с помощью * и устанавливаются перед соответствующей операцией. Например, *аа imaА пт.

Можно проводить изменения в файлах с помощью обычных редакторов (NORTON и т.п.) и вводить и обрабатывать любые числовые массивы, записанные в кодах

ASCII. Для этого нужно организовать числовой файл с расширением <d-c> по приведенной выше схеме.

При считывании файлов нужно учитывать, что массивы могут считываться в ДОПОЛНЕНИЕ к имеющимся или НА МЕСТО имеющихся. В первом случае возможно появление матриц или программ с одинаковыми именами, что может вызвать ошибки при работе.

При записи файлов (расширение не указывается) с помощью операций грс, грр записывается весь имеющийся массив. При записи файлов с помощью F1 (или F2), INS и F7 записывается выделенная часть массива. В последнем случае после нажатия F7 кроме надписи «Укажите имя файла» внизу экрана высвечиваются имена считанных ранее файлов. При нажатии соответствующей клавиши F происходит запись в указанный файл, т.е. не нужно создавать новый файл.

2. Список операций

2.1. Операции управления системой

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

cum А\ А2 ... - удаление матриц Аь А2, ... . Если указать nt-n2, то удаляются все матрицы с номерами от щ до п2 в списке матриц включительно. Если указать XX*, то удаляются все матрицы, имена которых начинаются с XX. При cum* удаляется весь массив.

ctm А\ А2 ... - вывод матриц А\, А2, ... на экран. Можно указывать и их номера в списке.

elm А\ А2... - печать матриц А,, А2,... на принтере. Можно указывать и их номера в списке.

esp - вывод на экран списка программ с указанием имен, числа операций и комментария.

cup>4i А2... -удаление программ с именами Л.... ctpAtA2... - вывод на экран текста программ Ah А2>.... clp А\ А2... - печать текста программ А\, А2, ... на принтере.

Часть из этих операций можно выполнить с помощью функциональных клавиш (см. выше).

епп N А - определение размерности квадратной матрицы А.

enm N М А - определение размерности прямоугольной матрицы А.

Операции епп и стал могут быть полезными при составлении стандартных программ, предназначенных для решения задач разной размерности.

cte A ij- вывод элемента A(i,j) на экран в виде числа с плавающей запятой. Если А - скаляр, то индексы указывать не нужно. Если А - вектор, то можно указать один индекс. Эта операция удобна для просмотра «малых» элементов матрицы, так как при выводе матрицы все ее элементы печатаются в одном формате.

eve (/ s) - изменение параметров счета: е(1) - машинного ноля, е(2) - точности вычислений, е(6) -фиксированного числа итераций и т.д. В данной операции / - номер параметра, s - новое значение. Если

103

эти значения не указывать, то выводится список всех параметров.

сио - удаление выполненных операций. Все выполненные операции запоминаются, и из них можно оформить новую программу. Данная операция удаляет выполненные операции, если они не нужны.

спр - выдается информация о системе: величине числового массива, допустимого числа матриц, вводимых операций и встроенных программ. Эти характеристики задаются в файле DIM.BAS.

cps - пауза. Может использоваться в программном режиме для контроля за выполнением программ, cst - конец работы (можно с помощью ESC).

2.2. Операции ввода матриц

ima А пт- ввод произвольной матрицы порядка л х от. ipr A s — ввод параметра s, т.е. формируется матрица А порядка 1x1 с элементом, равным s. Значение s может быть каким-то выражением.

imO А пт- ввод нулевой матрицы порядка п х т. \теАпт(а)~ ввод единичной матрицы порядка п х т. imn А п т (а) - ввод наддиагональной матрицы порядка яхи.

imp А п т (а) - ввод поддиагональной матрицы порядка и х от.

imk А п от (а) - ввод косодиагональной матрицы порядка л х от.

ied А п от (а) - ввод матрицы, состоящей из 1. inr А п от (а/) - ввод матрицы, состоящей из чисел 1, 2, 3, ... Если справа указывается /, то числа заносятся в обратном порядке.

igs А п от (а) - формирование случайной матрицы, элементы которой являются гауссовскими случайными величинами с нулевыми средними и единичными дисперсиями.

irs А п от (а) - формирование случайной матрицы, элементы которой являются равномерно распределенными в интервале [0,1] случайными величинами.

ips А п от р - формирование случайной матрицы, элементы которой являются случайными величинами, распределенными по закону Пуассона с параметром р.

ior Ani (af) - ввод /-го орта порядка п, т.е. вектора порядка п, у которого все элементы равны нулю, кроме /-го, равного 1. Если справа указывается /, то образуется вектор-строка, иначе вектор-столбец.

ist А п w (а!) - ввод столбца, состоящего из степеней числа w, начиная с нулевой. Если справа указывается /, то образуется вектор-строка.

В этих операциях числа я и от могут быть произвольными. Например, при вводе единичной матрицы при и=1 и от=4 создается матрица А=[ 1 0 0 0]. Результат умножается на число а. Если это число не указывается, то о=1. Число а можно задавать в виде какого-либо выражения. При вводе слова скобки не указываются. Знак / указывается в конце слова.

iem A ij s - присвоение элементу A(i,j) матрицы А значения s. Если матрицы А нет, то она вводшся, причем ее размерность определяется числами / и у. Если эти числа превышают размерность существующей матрицы А, то ее размерность увеличивается, причем промежуточные элементы приравниваются нулю.

104

iev A is (Г) - присвоение элементу / вектора А значения s. Если вектора А нет, то он вводится, причем его размерность равна /'. При добавлении признака / образуется вектор-строка, иначе - вектор-столбец. Если число / превышает размерность существующего вектора А, то его размерность увеличивается, причем промежуточные элементы приравниваются нулю.

ism А п к - ввод спектральной матрицы А порядка п х 2, к - число вещественных собственных чисел. В первый столбец включаются вещественные части собственных чисел, во второй - мнимые.

2.3. Операция изменения матриц

kpc X A ij - матрица X получается из матрицы А путем перестановки /-го иу'-го столбцов.

kps X A ij - матрица X получается из матрицы А путем перестановки /-й иу'-й строки.

kacXAij- матрицаXполучается из матрицы А путем удаления столбцов с /-го поу-й включительно.

kus X A ij - матрица X получается из матрицы А путем удаления строк с /-й поу'-ю включительно.

kic ХА ij - матрица X получается путем выделения из матрицы А столбцов с /-го по у-й включительно.

kis X A ij - матрица X получается путем выделения из матрицы А строк с /-й поу'-ю включительно.

Если в этих операциях указывается только /, то по умолчанию у = / и в операциях участвует только одна /-я строка (или столбец).

kbcХА ij к- перестановка блока столбцов: столбцы с /-го по у'-й переставляются на место, начиная с к-то. Промежуточные столбцы передвигаются.

kbs X A ij к - перестановка блока строк: строки с /-Й по у'-ю переставляются на место, начиная с к-й. Промежуточные строки передвигаются.

kdc ХА ij к- дублирование блока столбцов: столбцы с /-го по у'-й дублируются на место, начиная с Л-го. Если /от, то промежуточные столбцы заполняются нулями.

kds X A ij к - дублирование блока строк: строки с /-й по у'-ю дублируются на место, начиная с к-й. Если к>п, то промежуточные строки заполняются нулями.

YxXAij- выделение /у'-го элемента матрицы А. Если А - вектор, то указываются только один индекс.

kimXA ij к/-матрица X получается путем выделения из матрицы А минора с угловыми элементами (/, у) - (к, I). Если А - вектор, то указываются только два индекса.

kpb A ij - разделение матрицы А на 4 блока, т.е. образуются матрицы с именами А\ь А и, А2\, А22 такие,

что X =

^11 ^12 ^22 J

причем / х у - размер блока Аи.

Если указывается только /, то по умолчанию у = /.

kkv ХА В ij -в матрицу А вписывается матрица В так, что на место элемента (/, у) матрицы А ставится элемент (1,1) матрицы В. Числа i и у могут быть любыми и превышать размеры матрицы А. В последнем случае матрица X дополняется нулями. Если указывается только /, то по умолчанию у = /.

2.4. Операция формирования матриц

find X А (!) - формирование квадратной диагональной матрицы X с диагональными элементами,

равными элементам матрицы (или вектора) А. Если добавить /, то X - вектор, составленный из элементов главной диагонали матрицы А.

fmf ХА- формирование сопровождающей матрицы (Фробениуса), последняя строка, которой состоит из элементов вектора А со знаком минус, т.е.

О 1 0-0

0 0 1-0

а, аг ау ап

frnoХА i- формирование матрицы отражения для столбца А, т.е. X = I - awT, где a = 2/vTv, вектор - v строится следующим образом:

0 приА</, v(k) = • s при£ = /,

А(к)щтк >/',

где s = A(i) ± [A2(i) +... +Л2(п)]т, причем + или - выбирается так, чтобы число s было максимальным по модулю. fmuXA В {f)-X- матрица управляемости, т.е. Х=[Ь1ЛЬГ..Л-'Ь1,..,ЬЯЛЬЯ...Л-'ЬЯ,],

где Ь\, .... Ьт - столбцы матрицы В. Если справа добавляется /, то в X заносятся только линейно независимые столбцы матрицы управляемости. Одновременно формируется матрица X_U, в которой указываются номера этих столбцов.

fmn YA C(f)-Y-матрица наблюдаемости, т.е.

А'сх...А' с,....

Т Я* I

с А с ... А с

•**Л ‘'i

Г.

где сТь .... с7т - строки матрицы С. Если справа добавляется /, то в Y заносятся только линейно независимые строки матрицы наблюдаемости. Одновременно формируется матрица Y_U, в которой указываются номера этих строк.

Ас ХА - матрица X состоит из линейно независимых столбцов матрицы А.

As ХА - матрица X состоит из линейно независимых строк матрицы А.

Лес ХА В - компоновка по столбцам: X = [А В] - к матрице А справа приписывается матрица В. Если число строк в этих матрицах разное, то недостающие снизу строки в X заполняются нулями. Если матрицы А нет, то Х=В.

Acs ХАВ- компоновка по строкам:

к

матрице А снизу приписывается матрица В. Если число столбцов в этих матрицах разное, то недостающие справа столбцы в X заполняются нулями. Если матрицы Л нет, юХ=В.

АсЬ X Ац Ai2 A2i А22 - компоновка из блоков, т.е.

.14 4, Ui

Есл! размерности блоков не совпадают, то недостающие в X столбцы (справа) или строки (снизу) заполняются нулями. Например, при операции ПсЬЛГЛи

Г А„ 0 “

0 А2\ Ац образуется матрица X =

А2\ А22

foe 1А - формирование столбца из столбцов матрицы^

fos ЛА - формирование строки из строк матрицы А.

fkd X А,, А2 ... , А„ - компоновка блочно-диаго-

нальной матрицы, т.е. X =

А, 0-0 0А2-0

0 0-4

Ар X А п т - матрица А переписывается построчно в матрицу X размерности яхт. Если размерность X оказывается больше размерности матрицы А, то недостающие элементы заполняются нулями. С помощью этой операции можно изменять размерность числовых массивов.

2.5. Арифметические операции

mam ХА (а)- умножение матрицы на число-Х= а А. По умолчанию а = 1.

mtr ХА - транспонирование матрицы -Х= А7. mcmXА -симметризация-X-(А + А7)/2. mob ХА- обращение матрицы-Х=А~ '. тех ХА (- матричная экспонента -X = ехр(Л/). msv ХА В(а b) - сумма матриц - X - аА + ЬВ. По умолчанию a = b = 1.

msb ХАВ- разность матриц -Х=А - В. mpr X А В (а) - произведение матриц А и В - X = =аАВ. По умолчанию а = 1.

mkr ХА В - кронекерово произведение матриц,

ЪиА-Ь^яА'

т.е. X -

ЬщА — Ь^А

mks X 4 - квадратный корень из симметрической матрицы, т.е. А =ХХ.

mkf X А (В) - квадратическая форма - X = А7ВА. Если матрица В не указывается, то она полагается единичной.

mvp X А (В) - квадратическая форма - X = АВА7. Если матрица В не указывается, то она полагается единичной.

moh ХА т - X = Ац~ A^iAnT^i- Матрица^ раз-

бивается на блоки

АПАП А2\ А22 .

, причем блок А и имеет

размерность тхт.

mod XА\ А2 ... (/) - в X заносится значение максимального по модулю элемента матриц А,, А2, ...

min X А1 А2...(/)- в X заносится значение минимального элемента матриц Аи А2, ...

max XАх А2 ... (J) - ъ X заносится значение максимального элемента матриц А ь А2,...

Если в последних операциях указать /, то дополнительно образуется матрица с именем А*_тоd (или i4*_min, А*_тах), в которую заносятся индексы этого элемента.

mps ХАВ .../(А, В,...) - поэлементные вычисления, т.е. X(i,j) =//!(/, Д B(i, j), ....), где/4, В, ...) -некоторое выражение, куда входят имена матриц А, В, .... Эти матрицы должны иметь одинаковые размерности и разные имена. Их число не должно превышать 16. Например, при вводе операции mps ХАВ А*В образуется матрица X, составленная из поэлементных произведений элементов матриц А и В. Эта операция удобна для табуляции функций. Для этого в

105

качестве А нужно взять матрицу, состоящую из чисел натурального ряда.

2.6. Характеристики матриц

asm XA (af) -X-сумма элементов матрицы А. Если добавить /, то вычисляется след матрицы А, т.е. сумма элементов главной диагонали. По умолчанию а = 1. argXA -Х= rang Л. adtA^-X=detA.

agm X А - X - вектор, составленный из главных миноров матрицы А.

axm ХА-Х- вектор [и], составленный ю коэффициентов характеристического многочлена матрицы А.

акр X А{!) - вычисление спектральной матрицы: X-матрица порядка их 2, составленная из собственных значений произвольной матрицы А. Первый столбец состоит из вещественных частей, второй - из мнимых. Если добавить /, то образуются матрицы Х#В и XUM, составленные из соответственно вещественных и мнимых частей собственных векторов матрицы А.

aks XA(J)-X-вектор, составленный из собственных значений симметрической матрицы А. Если добавить /, то образуется матрица X#, составленная из соответствующих собственных векторов.

apmXА Р-Х= РгХАР - подобная матрица, где Р -невырожденная матрица.

arq RQA- вычисление матриц R и Q для А, где R -верхняя треугольная матрица, Q - ортогональная матрица такая, что А = QR.

asr HS А - вычисление матрицы Шура Н - верхней блочно-треугольной матрицы с диагональными блоками порядка 1 х1 или 2x2. S - ортогональная матрица такая, что Н = STAS.

ahs Н S А - вычисление матрицы Хессельберга Н-верхней треугольной матрицы с ненулевой первой поддиагональю, S - ортогональная матрица такая, что Я = = STAS.

2.7. Решение алгебраических уравнений для непрерывных систем

eab ХАВ- решение алгебраического уравнения АХ = В при квадратной и невырожденной матрице А, т .е.Х=А~хВ.

esl XADB- решение уравнения Сильвестра АХ+ +XD + В = 0.

ens Y AD ВХ - невязка уравнения Сильвестра, т.е. Y=AX+XD + B.

elp X А С - решение прямого уравнения Ляпунова АХ+ХАт+С = 0.

elo X А С - решение обратного уравнения Ляпунова АГХ+ХА + С = 0.

enl Y А С X (/) - невязка решения прямого уравнения Ляпунова, т.е. Y = АХ + ХА1 + С. При добавлении знака / вычисляется невязка решения обратного уравнения Ляпунова Y - АТХ+ХА + С.

erp X А С Н (Х0) - решение прямого уравнения Риккати АХ+ХАТ+С- ХНХ = 0.

его X А С Я (ДГ0) - решение обратного уравнения Риккати АТХ + ХА + С - ХНХ = 0.

enr Y А С Я X (/)- невязка решения прямого уравнения Риккати, т.е. Y = АХ + ХА1 + С - ХНХ. При до-106

бавлении знака / вычисляется невязка решения обратного уравнения Риккати Y=АХ+ХАТ +С - ХНХ.

В этих уравнениях матрицы А, В, С, D, Я заданы, X-искомое решение. Матрицы А, С, D, Я должны быть квадратными, причем С и Я - симметрическими. При решении уравнений Сильвестра и Ляпунова применяется предварительное преобразование матриц А и D к форме Шура. Уравнения Риккати решаются методом последовательных приближений Ньютона, когда на каждом шаге решается соответствующее уравнение Ляпунова. В операциях решения уравнений Риккати Хй - начальное приближение. Если оно не задается, то оно выбирается автоматически. Решение может расходиться, если не выполняются условия управляемости и наблюдаемости, а также если начальное приближение Х0 не обеспечивает устойчивость замкнутой системы.

еас ХА В - псевдообращение решения алгебраического уравнения АХ = В при произвольной матрице А порядка пхт. Решение вычисляется в виде (АТА + г1)-хАгВ при ntm,

А1 (ААТ + sl)~xВ при т>п.

Здесь е - регуляризующий малый параметр.

emf X F Z (С D) - минимизация функционала J = =(Z - FX)T C(Z - FX) + XJDX относительно вектора X, т.е. X = (FT CF + DyxFJCZ. Если СиОне указываются, то по умолчанию С = / и D = 0.

2.8. Решение алгебраических уравнений для дискретных систем

hab ХАВ- решение алгебраического уравнения X-=АХ + В при квадратной матрице А, т.е. Х= {1-А)'хВ. hslХА D В - решение уравнения Сильвестра^ AXD+В. hns Y AD ВХ - невязка уравнения Сильвестра, т.е. Y=AXD + В-Х.

hip X АС - решение прямого уравнения Ляпунова Х=АХАТ+С.

Ыо ХА С - решение обратного уравнения Ляпунова Х=АТХА + С.

hnl X А С X (/) - невязка решения прямого уравнения Ляпунова, т.е. Y = АХАТ + С -X. При добавлении знака / вычисляется невязка решения обратного уравнения Ляпунова Y=А1 ХА + С - X.

hrp X А С Н (Л'о) - решение прямого уравнения Риккати X=АХАТ + С- АХНТ(1 + НХНтухНХА\

hro X А С В (Ау - решение обратного уравнения Риккати X=АТХА + С - АТХВ(1+ В1ХВухВ1ХА.

hnr Y А С НХ (/) - невязка решения прямого уравнения Риккати, т.е. Y= АХАТ + С - AXH\l + НХНУНХА^-Х. При добавлении знака / вычисляется невязка решения обратного уравнения Риккати, т.е. Y = АТХА + С --АТХВ(1+ВГХВУ1ВТХА - X.

В этих уравнениях матрицы А, В, С, D, Н заданы, I-единичная матрица, X - искомое решение. Матрицы А и С должны быть квадратными, матрица С - симметрической. При решении уравнений Сильвестра и Ляпунова применяется предварительное преобразовашие матриц А и D к форме Шура. Уравнения Риккати решаются методом последовательных приближений Ньютона, когда на каждом шаге решается соответствующее уравнение Ляпунова. В операциях решения уравнений Риккати Х0 - начальное приближение. Если

оно не задается, то оно выбирается автоматически. Решение может расходиться, если не выполняются условия управляемости и наблюдаемости, а также если начальное приближение Х0 не обеспечивает устойчивость замкнутой системы.

hkf К А Н X - вычисление коэффициента фильтра Калмана К = АХНТ{1 + НХНТ)~\ где X - решение прямого уравнения Риккати, которое должно быть уже найдено.

hkr К А В X - вычисление коэффициента оптимального регулятора (АКОР) К = (/ + ВТХВ)~'ВТХАТ, где X - решение обратного уравнения Риккати, которое должно быть уже найдено.

2.9. Дискретизация непрерывных систем

Данная группа операций связана с преобразованием непрерывной системы в дискретную. Непрерывная система задается уравнением

х = Ах + Ви,

где x(t) - л-мерный вектор состояний объекта; u(t) -m-мерный вектор входных воздействий; ф) - стандартный r-мерный белый гауссовский шум; А, В, L -заданные матрицы соответствующих размерностей. Соответствующая дискретная система строится в виде

х

где r(l), r(2), ..., r(k), ... - последовательность независимых между собой стандартных гауссовских случайных величин. Здесь

F = exp(At) = U(t) - переходная матрица, (9.3) /

G = G

О

М-такая матрица, что

MMr= p

о

где t - интервал дискретизации; /- единичная матрица.

Эти преобразования выполняются с помощью следующих операций. Здесь матрицы А, В, С, D, L считаются заданными, t - задаваемый интервал дискретизации, dao F At- вычисление матрицы F по формуле (9.3). dab FG А В t - вычисление матриц F и G по формулам (9.3) и (9.4).

dar F М A L t - вычисление матриц F и М по формулам (9.3) и (9.5).

dbr F G М А В L t - вычисление матриц F, G и М по формулам (9.3), (9.4) и (9.5).

2.10. Интегрирование дифференциальных уравнений

Данная группа операций выполняет интегрирование уравнения

x = Ax + b + Lq, х

на интервале времени [0, /]. Здесь х - и-мерный вектор состояний объекта; b - и-мерный вектор входных постоянных воздействий; ф) - стандартный r-мерный белый гауссовский шум; A, L - заданные матрицы соответствующих размерностей. В процессе решения запоминается к промежуточных значений, равномерно расположенных на интервале интегрирования. В результате образуется матрица порядка л х (А + 1), первым столбцом которой является вектор хо, а последним - вектор x(i).

tao X А х0 t к - интегрирование уравнения (10.1) при 6 = 0 и I = 0.

tab X А В х0 t к - интегрирование уравнения (10.1) при I = 0.

tarXA Lx0t к - интегрирование уравнения (10.1) при b = 0.

Их ХА BLxo tk-интегрирование уравнения (10.1).

2.11. Решение разностных уравнений

Эта группа операций выполняет решение уравнения х

А=0, 1,... Здесь х - и-мерный вектор состояний объекта; Ъ - и-мерный вектор входных постоянных воздействий;

г(0), г(1).г(к), ... - последовательность стандартных

гауссовских величин; F и М-заданные матрицы соответствующих размерностей. В процессе решения образуется матрицаXпорядка л х (А + 1), где к-число шагов. Первым столбцом матрицы X является вектор х0, последним - вектор х(к).

zaoXFxq к-решение уравнения (11.1) при Ь=0 и М= 0. zab6хо*-решение уравнения (11.1) приМ= 0. zarXFMxo к - решение уравнения (11.1) при Ь = 0. zbrXFbMx0 к - решение уравнения (11.1). Одновременно введены операции решения уравнения

*(*+!) = Fx(k) + Ь + МНк) + ДА), х(0) = х0, (11.2) где, в отличие от (11.1), добавлен вектор ДА), который на каждом шаге с вероятностью р равен /и с вероятностью 1 - р равен 0.

zfoATxbp А- решение уравнения (112) при b=М-0. tSoXF Ьхрк-решение уравнения (11.2) при М= 0. zfrXFMxop к-решение уравнения (11.2) при Ь = 0. zfp XFMbxopk- решение уравнения (11.2).

2.12. Операции с многочленами

lpn X л w - введение биномиального многочлена [л]: X - вектор, составленный из коэффициентов бинома Ньютона, т.е. X(i) = Clw"~l; п - порядок многочлена; w - параметр.

lpbXnw — введение многочлена Батерворда [л] порядка л, т.е. X - вектор, составленный из коэффициентов этого многочлена Многочлены Батерворда соответствуют кругам Батерворда, когда собственные числа располагаются в левой полуплоскости по дуге радиуса w.

lsb X л w - X - спектральная п х 2-матрица Батерворда, составленная из корней многочлена Батерворда. В первый столбец включены вещественные части корней, во второй - мнимые.

Ifm ХА- построение многочлена [л] для спектральной матрицы А, т.е. X - вектор, составленный из коэффициентов многочлена, корни которого задаются спектральной матрицей А.

lmg ХА- матрица Рауса, построенная из коэффициентов многочлена A(w) [л], т.е.

’ ои 1 0 • • 0 0 '

°п-2 а« • • 0 0

°п-Л *л-2- • 0 0

0 0 0 • °г

0 0 0 •  0 °|.

lnp X А (а /) - перенормировка многочлена: в вектор А добавляется элемент ап + i = а. Если а не указы-

107

вается, то а = 1. Если справа добавить символ /, то из вектора А исключается элемент ап (если только л>1).

Ism ХА В(аЫ)~ сумма многочленов A(w) и B(w) [у]: X(w) = aA(w) + bB(w). Если справа добавить символ /, то многочлены А и В, а также и многочлен X считаются нормированными, в противном случае - ненормированными, включая и многочлен X. Если весовые коэффициенты а и 6 не указываются, то a=b= 1. Если складываются два нормированных многочлена одинаковой степени, то коэффициенты суммарного многочлена делятся пополам.

lpm X А В (/) - произведение многочленов A(w) и B(w) [j]: Дн») = A(w)B(w). Если справа добавить символ /, то многочлены А и В и, следовательно, X считаются нормированными, в противном случае - ненормированными (включая и X).

log ХА — определители Гурвица для многочлена A(w) [и]: X - вектор, составленный из главных миноров матрицы Рауса, построенной на основе многочлена A(w).

lkp ХА- корни многочлена Л(\у) [и]: X - спектральная и х 2-матрица, составленная из вещественных и мнимых частей корней многочлена.

lkr X У В С D - Ди<) [и] и Y(w) [р] - многочлены, удовлетворяющие уравнению B(w)X(w) - Qyv)Y{w) = Дн>), где многочлены B(w) [л], C(w) \р] и Ди») [л] заданы. Эта операция используется при вычислении коэффициентов пропорционально-интегрального регулятора.

lmr X А - X - матрица Джури, используемая при канонических преобразованиях:

аг а1   ап-1 а« 1

аз а4 • " ап 1 0

°5  •• 1 0 0

а„ 1 • •• 0 0 0

1 0 • •• 0 0 0

где а2, а2,..., а„ - коэффициенты многочлена A(w) [и].

Itb X А а b п (/) - табуляция многочленов [р], коэффициенты которых содержатся в строках матрицы А. Эти коэффициенты располагаются по мере возрастания степени аргумента. Коэффициент при старшей степени указывать обязательно, [а, Ь\ - интервал табулирования, и - число точек. В первую строку X заносятся значения аргумента. При наборе этой операции значения а я b можно задавать в логарифмическом масштабе. Для этого справа после набора всей операции нужно добавить символ /. Графики функций следует строить с помощью операций gkfj gpf, gif (фазовый портрет).

1mm X В А (/) - вычисление матричного многочлена В(А) от матрицы А. Многочлен B(w) задается вектором B=[bu b2, ..., А„]. Если символ / не указывается, то многочлен B(w) предполагается нормированным и

Х = В(А) = А” + Ь„А”-' + Ь^А"-г + ... + Ь1А + Ь11.

Если символ / указывается, то многочлен B(w) предполагается ненормированным и

Х = В(А) = ЬиАп-' + Ьп_1Ая-1 + ... + Ь2А + Ь11.

2.13. Частотные методы

wgd X А (а Ъ п Г) - годограф Михайлова: первая строка X состоит из значений вещественной части многочлена A(iw) [р], вторая - из мнимой.

108

waf X W (а Ъ п Г) - амплитудно-фазовая частотная характеристика (АФЧХ): первая строка X состоит из значений вещественной части передаточной функции W(iw), вторая - мнимой.

wax X W (а b п Г) - амплитудно-частотная характеристика (АЧХ): первая строка X состоит из значений параметра w, вторая - из значений модуля передаточной функции iV(iw).

wfx XW(abn/)~ фазово-частотная характеристика (ФЧХ): первая строка X состоит из значений параметра w, вторая - из значений аргумента передаточной функции 1V(iw), деленных на л = 3,14...

В этих операциях [а, Ь] - интервал изменения параметра w, п — число точек. Если числа а, Ь, п не указываются, то по умолчанию а = О, Ь= Ю^р), п - 100, где р - наибольшая степень многочленов. При наборе этих операций значения а и b можно задавать и в логарифмическом масштабе. Для этого справа после набора всей операции нужно добавить символ /. Если при этом числа а, Ь, п не указываются, то по умолчанию а = - 4, b = Ир, п = 100. Графики функций следует строить с помощью операций gkf, gpf, gif (фазовый портрет). Передаточные функции W{iw) задаются в виде матрицы порядка 2 х (л + 1) (см. п. 1.2.3).

wpr W Wi W2 - перемножение передаточных функций fV(p) = tVi(p)lV2(p).

wsm W IV, W2 - сложение передаточных функций W(p) = fV,(p) + W2(p).

wob W W0 - вычисление передаточной функции для замкнутой системы W(p) = fV0(p)/( 1 + fV0(p)), где fV0(р) - передаточная функция разомкнутой системы.

wds А В С W - построение динамической системы вида

x = Ax + Bu,z = Cx

для передаточной функции lV(p), представленной в виде матрицы порядка 2х(л+ 1). Эта передаточная функция должна быть физически реализуемой, т.е. ап + 1*0. Если ап+! = 1, то А будет матрицей Фробениуса (4.1), в нижней строке которой стоят элементы второй строки матрицы W без последнего элемента, В = [0 0... 1], С - первая строка матрицы W без последнего элемента. Если коэффициент а„ + \Ф 1, то элементы нижней строки матрицы А и элементы строки С делятся на ап+ |.

wpf W ABC - W(p) = С(р1 ~ А)~ХВ - передаточная функция для системы (13.1), где С должна быть строкой, В - столбцом.

2.14. Представление графического материала

Организация представления графического материала описана в первой части.

gig А Номера) Л2(\номера)... (=//)- график в левой части экрана.

gpg Л,(\номера) Л2(\номера)... (=//)- график в правой части экрана.

gkg Л[(\номера) Л2(\номера)... (=//)- график в центре экрана.

If Л,(\номера) Л2(\номера)... (/) - фазовый портрет в левой части экрана.

gpf А Номера) Л2(\номера)... (!) - фазовый портрет в правой части экрана.

gkf y4j(\HOMepa) Л2(\номера)... (/) - фазовый портрет в центре экрана.

gls A\ Л2 -.. — cneinp матрицы в левой части экрана, gps А | А2... - спектр матрицы в правой части экрана, gks А\ А2... - спектр матрицы в центре экрана.

2.15. Программный режим

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

2.15.1. Операции ввода и изменения программ

pri А (комментарий) - ввод новой программы А. pio А (комментарий) - оформление выполненных операций в программу А. Все выполненные в процессе работы операции запоминаются. Данная операция позволяет оформить из них новую программу А. pvp А - изменение программы А - переход в ред актор, pvm Р А! А2... At / В\ В2... Вк - в программе Р имена матриц А,, ..., At заменяются соответственно на имена Вх, ..., Вк. Если после имени указать *, например Ах*, то во всех именах, начинающихся с А,, буквы Ах заменятся на В,.

Эта операция аналогична изменению имен матриц в редакторе с помощью Ctrl + W, но выполняется без перехода в редактор. Поэтому она может быть использована в программном режиме

2.15.2. Операции условного перехода

piе х a C\D\E - условный переход: если х < а, то выполняется С; если х = а, то - £>; если х>а, то - Е.

pif х а Ь С\ D\ Е - условный переход: если х < а, то выполняется С; если а £ х < А, то - £>; если х>Ь, то - Е.

Здесь х, а и b могут быть числами или какими-то выражениям; С, D, Е - какие-либо операции. Операции С, D или Е могут отсутствовать, но знак \ должен указываться два раза. Если С, D или Е отсутствуют, то при выполнении соответствующего условия осуществляется переход к следующей в программе операции. Если С, D, Е- операции, то для их ввода можно воспользоваться подсказкой с помощью ENTER, pbf - безусловный переход к операции с меткой *п.

2.15.3. Операции выполнения программ

pm А (п /)- запуск программы А. Она повторяется п раз. Если п не указывается, то и = 1. Эту операцию можно использовать для организации цикла. Если в конце операции указать символ /, то при счете выводятся результаты всех промежуточных операций, что может быть полезным при отладке программ.

ррр ABnbhij(f)~ прогонка программы А для п вариантов значений параметра - / j-го элемента матрицы В. Если /' и j не указываются, то / =j = 1. b - значение параметра B(i,j) в первом варианте, А - шаг изменения этого параметра Если в конце операции символ / не указывается, то при счете к-го варианта параметр B(i, J) = b + +h(k - 1), т.е. значение параметра увеличивается на шаг А. В противном случае B(i, f) = bit ~ ', т.е. значение параметра умножается на А. Матрица В не должна удаляться в процессе выполнения программы, а элемент B(i,j) изменяться. Полученные результаты можно формировать в виде одной матрицы, для чего программа должна со-

держать операции вида: fkc XX У или fks XX У, где У -результат счета в одном варианте, X - запоминаемый массив. Например, при наличии в программе операций: msm Q А В: fkcXXQ и выполнении трех вариантов счета образуется матрица X = [01, Q2, 03]. В программе может формироваться несколько подобных матриц. В программе после операций, вычисляющих нужные матрицы, можно также поставить знак ! (это можно сделать в редакторе). В результате эти матрицы будут запоминаться и к их именам будет добавляться номер варианта. Например, если в программе имеется операция msm X А В ! и будет выполняться 3 варианта, то в результате счета появятся матрицы Х_1, Х_2, Х_3. После выполнения операции ррр варьируемый элемент B(J, j) принимает первоначальное значение. В конце работы программы на экран выводится результат последней операции. Промежуточные результаты можно получить, включив в программу операции ctm или elm.

2.15.4. Специальные вычисления

ptb Z А X У п Хо А (/) - табуляция функции у =Дх). Здесь Z - результат табуляции - матрица, состоящая из столбцов fxx), Лхг).Дх„); А - имя программы, вычис-

ляющей функцию у =Дх); X - имя аргумента; У - имя результата в этой программе. Переменная У должна быть вектором или скаляром, п - число точек, хо - начальное значение аргумента X, А - шаг изменения значения X. Если справа символ / не указывается, то на к-м шаге х*=х0+ А( к- 1), в противном случае хК=xjt ~'.

pig Z А X У а b (п) - интегрирование функции у = =У(х). Здесь Z - результат; А - имя программы, вычисляющей функцию у = Дх); X - имя аргумента; У - имя функции (У должно быть вектором или скаляром); а, А -пределы интегрирования; п - число точек интегрирования. Интеграл вычисляется по формуле Симпсона. Если число п не указывается, то п = 100.

ptf ZXftx) a bn- табуляция функции у = Дх). Здесь Z - результат табуляции: первая строка -значения аргумента, вторая - значения функции, X - имя переменной; Дх) - скалярное выражение; [а, А] - интервал изменения аргумента; п - число точек. При вводе функции недопустимы пробелы.

pin Z XJ[x) а b (и) - интегрирование функции у= =Дх). Здесь Z - результат; X - имя переменной интегрирования; Дх) - выражение; а b - пределы интегрирования; п - число точек. Интеграл вычисляется по формуле Симпсона. Если п не указывается, то п = 100.

Отличие операций ptb и pig от ptf и pin состоит в том, что в операциях ptb и pig функция вычисляется с помощью программы А и может быть векторной, а в операциях ptf и pin функция задается непосредственно скалярным выражением.

2.15.5. Введение специальных функций

pfii Fa хДх) - ввод функции Fa[x\ - Дх). Здесь х -имя аргумента. Имя функции должно начинаться с F. При обращении к этим функциям аргумент ставится в квадратные скобки. Аргумент может быть любым. Например, при обращении допустимо выражение F\F[t + 3]]. При вводе выражения пробелы недопустимы, psf- список введенных функций, ppf А (комментарий) - оформление введенных функций в программу А. Данная операция позволяет

109

оформить операции ввода функций в программу, которую можно запомнить и затем использовать в дальнейшей работе.

2.16. Работа с файлами

Подробно об организации файлов и работы с ними изложено выше в п.1.7.

грс А - запись сформированного числового массива в файл.

ric А - считывание числового массива из файла, rdc А - то же, но считываемый числовой массив записывается в дополнение к имеющемуся. Здесь нужно учитывать возможность появления матриц с одинаковыми именами.

грр А - запись массива программ в файл, rip А - считывание массива программ из файла, rdp А - то же, но считываемый массив программ записывается в дополнение к имеющемуся. Здесь нужно учитывать возможность появления программ с одинаковыми именами, ruf А - удаление файла, rof А - список всех файлов. rsfv4 - список файлов с расширением <d-c> и <d-p>. rrik А - открытие каталога. гикЛ - удаление каталога.

В этих операциях А - имя каталога или имя файла. Если при записи расширение файла не указывается, то файлам, содержащим числовые массивы, по умолчанию присваивается расширение <d-c>, а файлам, содержащим массивы программ, - расширение <d-p>.

При считывании таких файлов расширение не указывается. Если при считывании имя файла не указывается, то появляется окно со всеми файлами, но только с расширениями <d-c> или <d-p>. С другой стороны, при записи массивов можно указывать любое расширение, но тогда при их считывании расширение нужно указывать обязательно. При записи внизу панели высвечиваются имена ранее считанных файлов. Можно записать массивы в эти файлы, нажав клавишу F с соответствующим номером. При удалении файлов расширение указывается во всех случаях, кроме удаления с помощью F3 (или F4), INS и F8. При входе в другую директорию указывается ее имя (например, а:\ или a:\dir\).

rpf/4i Л2 ... (.ааа) ... - запись матриц Л ь А2,... в файлы с последовательным доступом с именами А^.ааа, А2.ааа, ... Расширение указывается только в конце вводимого слова (точка обязательна). Если расширение не указывается, то по умолчанию присваивается расширение <doc>.

rif F (.ааа) А пт- считывание числового массива из файла с последовательным доступом F.aaa (если расширение не указывается, то по умолчанию к имени добавляется расширение <doc>). А п т - имя матрицы и ее размерность, которое присваивается считанному массиву. Если Ап т не указываются, то матрице присваивается имя файла, п = 1, а т равно числу считанных чисел.

Последние две операции позволяют проводить обмен числовыми массивами с другими вычислительными системами.

Статья поступила в научную редакцию «Кибернетика и информатика» 20 декабря 1999 г.

110