Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Маткад.doc
Скачиваний:
43
Добавлен:
03.11.2018
Размер:
2.6 Mб
Скачать

Организация циклов

Простейший цикл по одной переменной может быть выполнен двумя операндами:

первым задается переменная (в примере на рис. 22 – а), вторым – функция переменной. Переменная задается начальным значением, оператором, фиксирующим интервал изменения переменной и конечным значением. В первом примере это а := 1 .. 10. Многоточие выполняется клавишей ; или кнопкой m .. n на палитре Матрицы. Интервал можно вызвать только клавишей ;. Он вызывается в виде , начало и конец интервала заносятся слева и справа. Шаг переменной в этом случае равен единице. Во втором примере переменная задается начальным значением, следующим значением за начальным, затем ставится интервал и конечное значение интервала. Шаг цикла в этом случае любой.

Рис. 22. Примеры простых циклов

Цикл можно задать и оператором for (нажатием соответствующей кнопки на па-

литре Программирование). Выдается оператор Слева от знака вводится

имя переменной цикла, справа – диапазон значений, в котором должна изменяться переменная цикла. Форма задания диапазона в точности такая же, как и для дискретного аргумента (например, рис. 22). В оставшееся поле ввода заносится выражение, подлежащее повторяющимся вычислениям. Примеры организации циклов приведены на рис. 22 и 23.

MathCAD позволяет выполнить цикл по нескольким переменным. Это так называемые циклы в цикле. Рис. 23 иллюстрирует пример заполнения матрицы последовательным рядом чисел. Для этого задаются две переменные: t – текущая строка; q – текущий столбец.

Условные передачи управления

Обычно MathCAD выполняет операции сверху вниз и слева направо. Но часто по какому-либо условию требуется обойти часть вычислений. В этом случае применяется условная передача управления по заданному признаку. Например, формируется матрица проводимостей сети. При количестве узлов, определяемых десятками и сотнями, в математической модели сети могут быть пропущен ряд узлов, например, нет узлов 48, 135 и 240, а номер последнего узла 341. В этом случае строки и столбцы 48, 135, и 240 будут нулевыми, а матрица проводимостей – особенной. Чтобы сделать матрицу неособенной, в диагональные ячейки 48, 135 и 240 необходимо занести любые числа, например, единицы. Выполняется это сравнением всех диагональных элементов матрицы с нулем. Если диагональные элементы равны нулю, на их место ставится единица.

Рис. 23. Примеры организации циклов

Условная передача управления осуществляется оператором справа от if (соответствует русскому «если») записывается условие, по которому выполняется оператор, записываемый слева от if. Если условие не выполняется, тогда выполняется оператор, записываемый слева от otherwise (соответствует русскому «иначе»).

Пример заполнения нулевых диагональных элементов единицами приведен на рис. 24.

Итерационные расчеты, какими являются расчеты нормальных режимов электрических сетей, заканчиваются, если разность между предыдущим значением параметра и вычисленным на текущем шаге не превышает некоторой заданной величины. Чтобы в этом случае выйти из цикла, используется оператор break. Пример использования оператора break тоже приведен на рис 24. Формирование вектора U3 заканчивается когда разность U13 = 7 и U23 = 7 меньше 0,1. Формирование вектора закончилось на третьем шаге, хотя цикл состоит из шести шагов.

На рис. 25 приведен пример процедуры вычисления параметров двухобмоточного трансформатора. В исходных данных задаются паспортные данные трансформатора. В случае отсутствия потерь в трансформаторе (Pxx = 0, Pкз = 0, Ixx = 0) алгоритм не предусматривает вычисления активных проводимостей. Если в исходных данных присутствуют потери холостого хода и короткого замыкания, вычисляется поперечная проводимость, определяемая током холостого хода и активная составляющая продольного сопротивления.

Рис. 24. Пример условной передачи управления.

Рис. 25. Пример процедуры расчета параметров двухобмоточного трансформатора

и заполнения ими матрицы проводимостей электрической сети

32