- •В.П.Обоскалов
- •Предисловие
- •Excel. Теоретические аспекты
- •Основные понятия
- •Основные термины
- •Работа с объектами
- •Функциональные клавиши
- •Указатель мыши
- •Формулы. Имена ячеек. Функции
- •Диаграммы
- •Функции списка
- •Формы данных
- •Фильтры
- •Автофильтр
- •Расширенный фильтр
- •Промежуточные итоги
- •Сводные таблицы
- •Консолидация данных
- •Нелинейные уравнения. Оптимизационные задачи
- •Поиск решения
- •Подбор параметра
- •Проектирование вычислений с помощью таблицы подстановки
- •Внешняя среда
- •Экспорт и импорт данных
- •Связь с базами данных
- •Вызов программы ms Query
- •Мастер запросов
- •Макросы
- •Запись макроса
- •Относительные ссылки
- •Выполнение макроса
- •Подключение макроса к объектам Назначение сочетания клавиш для запуска записанного ранее макроса
- •Назначение макроса кнопке или графическому объекту
- •Текст макроса
- •Excel. Лабораторный практикум
- •Начальное знакомство
- •Выделение блоков
- •Прозрачность ячеек. Перемещение данных. Копирование
- •Относительная и абсолютная адресация
- •Заполнение таблицы. Формулы. Относительная адресация. Суммирование
- •Абсолютная адресация. Имена ячеек
- •Форматирование таблицы
- •Вставка и удаление строк и столбцов
- •Форматирование ячеек
- •Форматирование столбцов и строк
- •Сетка. Показ формул
- •Автозаполнение. Списки
- •Автозаполнение
- •Диаграммы
- •Диаграмма. Общий случай
- •Гистограмма и круговая диаграмма
- •Графики функций
- •Работа с массивами данных
- •Подбор параметра. Поиск решения
- •Подбор параметра
- •Поиск Решения
- •Транспортная задача
- •Функции списка
- •Сортировка
- •Формы данных
- •Вычисление итогов
- •Консолидация данных
- •Сводная таблица
- •Внешняя среда
- •Экспорт и импорт данных. Связь документов
- •Процедуры пользователя
- •Диалоговые окна
- •UserForm
- •Решение инженерных задач наExcel
- •Проектирование эт
- •Основные функции
- •Суммирование
- •Примеры
- •Функции даты
- •Формульные расчеты
- •Тип оборудования
- •Самостоятельная работа
- •Самостоятельная работа
- •Коэффициенты, характеризующие график нагрузки
- •Проектирование таблицы.
- •Проектирование таблицы
- •Самостоятельная работа
- •Температурный режим трансформатора
- •Математический метод
- •Самостоятельная работа
- •Ремонтная ведомость Самостоятельная работа
- •Работа с матрицами
- •Расчет сети постоянного тока
- •Самостоятельная работа
- •Расчет токов трехфазного короткого замыкания
- •Метод z-матрицы
- •Эквивалентирование сети
- •Расчет токов кз по модели сети постоянного тока
- •Оптимизационные задачи
- •Решение систем нелинейных уравнений
- •Самостоятельная работа
- •Оптимальное распределение мощности нагрузки между параллельно работающими агрегатами
- •Линейное программирование
- •Самостоятельная работа
- •Двойственная задача линейного программирования
- •Самостоятельная работа
- •Работа с комплексными числами
- •Самостоятельная работа
- •Прогнозирование нагрузок
- •Метод наименьших квадратов
- •Самостоятельная работа
- •Метод скользящего среднего
- •Линейный тренд
- •Самостоятельная работа
- •Вероятность и статистика
- •Функции расчета вероятностных параметров
- •Математическое ожидание
- •Дисперсия
- •Корреляционный момент
- •Коэффициент корреляции
- •Гистограммы
- •Нормальное распределение
- •Расчет вероятностного режима электрической сети
- •Самостоятельная работа
- •Самостоятельная работа
- •Гистограмма случайной величины
- •Самостоятельная работа
- •Регрессия
- •Дополнительная регрессионая статистика
- •Простая линейная регрессия
- •Самостоятельная работа
- •Использование f-статистики
- •Вычисление t-статистики
- •Объектное программирование. Visual Basic
- •Основные понятия
- •Основные методы
- •МетодыRange, Cells, Offset
- •Самостоятельная работа
- •Методы и свойства активности объекта
- •Методы активности
- •Свойства, характеризующие активность
- •Макрорекордер
- •Самостоятельная работа
- •Свойства, характеризующие содержимое
- •Самостоятельная работа
- •Основные элементы языка
- •Общие сведения и структура программных модулей
- •Самостоятельная работа
- •Типы данных и переменные
- •Оператор Dim
- •Массивы
- •Пользовательские типы данных. Структуры
- •Динамическое перераспределение памяти
- •Константы
- •Видимость переменных и констант
- •Операторы присваивания
- •Математические и строковые операции
- •Процедуры
- •Вызов процедуры
- •Самостоятельная работа
- •Использование необязательных аргументов
- •Самостоятельная работа
- •Функции
- •Передача массива
- •Ссылки на внешние библиотеки
- •1. Скалярное произведение векторов (столбцы Excel) разной размерности
- •2. Поэлементное произведение массивов
- •Функции Application
- •Операторы принятия решения
- •ОператорIf
- •Блочная структура if
- •Многоблочная структура if
- •Select Case
- •Безусловный переход
- •Циклы объектного типа
- •Пример двойного цикла
- •Передача массива данных в таблицу
- •Коррекция блока ячеек таблицы
- •Ввод и вывод данных
- •Чтение и запись последовательных файлов
- •Диалоговые функции
- •MsgBox()
- •Самостоятельная работа
- •Функция InputBox()
- •Ввод названия файла
- •Самостоятельная работа
- •Диалоговые окна Excel
- •Самостоятельная работа
- •Диалоговые окна пользователя
- •Элементы управления
- •Командная кнопка (CommandButton)
- •Самостоятельная работа
- •Надпись (Label)
- •Самостоятельная работа
- •Окно редактирования (TextBox)
- •Окно списка (ListBox)
- •Самостоятельная работа
- •Выпадающее окно (ComboBox)
- •Групповое окно (Frame)
- •Контрольный индикатор (CheckBox)
- •Кнопка выбора (OptionButton)
- •Заполнение массива случайными числами
- •Линейная интерполяция
- •Самостоятельная работа
- •Оптимальное распределение нагрузки
- •Самостоятельная работа
- •Функции комплексных чисел
- •Самостоятельная работа
- •Обращение комплексной матрицы
- •Самостоятельная работа
- •Решение систем дифференциальных уравнений
- •' Модуль "Ввод исходных данных из таблицы Excel"
- •Перенумерация узлов
- •Самостоятельная работа
- •Матрица инциденций по узлам
- •Индивидуальные задания
- •Библиографический список
- •620002, Екатеринбург, ул. Мира,19
- •620002, Екатеринбург, ул. Мира,19 в.П.Обоскалов
Решение систем дифференциальных уравнений
Электроэнергетическая система - это система динамического типа. В каждый момент в ЭЭС происходят те или иные возмущения, приводящие к изменению режима. При этом новое состояние может быть устойчивым (в ответ на случайные изменения режима система управления возвращает ЭЭС в исходное состояние) или неустойчивым. Переходные процессы в ЭЭС описываются системами дифференциальных уравнений (ДУ). Представляет интерес решение систем ДУ в среде электронных таблиц.
В качестве примера решения системы ДУ рассмотрим электромеханический переходный процесс движения ротора синхронного генератора при возникновении и отключении короткого замыкания в электрической сети. Данный процесс описывается следующей системой дифференциальных уравнений:
где Tj (c.)-постоянная момента инерции генератора; PT (о.е.)- момент турбины; РС (о.е.) - максимальная синхронная мощность генератора; РD (о.е.) - демпфирующий момент; s (о.е.) - скольжение и (рад.) - угол ЭДС генератора.
Рассматриваются три режима, связанные единством переходного процесса: доаварийный, на интервале времени (0,Тк), аварийный (Тк, Тот) и послеаварийный (Тот, Тmax.). Каждому из указанных режимов соответствуют определенные значения РС, РD .
Решение системы выполняется численным методом Рунге-Кутты четвертого порядка, суть которого при решении одного дифференциального уравнения заключается в следующем. На шагеk расчетного процесса определяются четыре оценки производной - в начале интервала (xk, xk +h) дискретности , две в его середине,и одна в конце интервала. Определяется усредненная оценка производной, причем С1 и С2 дается двойной вес:С=(С1+2С2+2С3+С4)/6 искомый параметр x(t+h)= x(t+h)+ Ch.
При решении системы дифференциальных уравнений
методом Рунге-Кутты представленная структура решения остается такой же, за исключением того, что простые переменная x(t) и функция f(x,t) заменяются на векторы соответственно (t) и(). Применительно к рассматриваемой системе ДУ рекуррентные соотношения имеют вид
где
Ниже приведена VB - программа, реализующая поставленную задачу. Следует обратить внимание на организацию ввода исходных данных, в частности на формирование столбца названий переменных. Первоначально с помощью оператора Array() формируется одномерный массив - строка ID из идентификаторов вводимых данных. Далее этот массив переписывается в двумерный (с одним столбцом) массив ID1. Окончательно через свойство FormulaArray = ID1 данный массив передается блоку ячеек Excel-таблицы.
Предполагается, что числовые значения исходных данных расположены справа от идентификаторов данных. Отсюда передача данных программе организована путем непосредственного присвоения (Range("…").Value).
Если массив исходных данных фиксирован относительно ячейки А1, то расположение результирующего массива организовано по принципу "куда хотите?" Для этого предусмотрен диалог InputBox(). В результате программой будет получен идентификатор (строка) верхней левой ячейки результирующего блока. В основной программе вывод результатов адаптирован к данной ячейке и осуществляется на каждом шаге цикла по времени.
Программа " Электромеханический переходный процесс"
Option Base 1
Rem Глобальные переменные, видимые из всех модулей
Private PC, PD, D, s 'синхронный и демпфирующий моменты, угол, скольжение
'для доаварийного, аварийного и послеаварийного интервалов времени:
Private Tj, PT, PCda, PCab, PCpa, PDda, PDab, PDpa, _
Tk, Tot, Tmax, h, r As Range
Rem Электромеханический переходный процесс
Public Sub trans_proccess()
Rez_title = Array("Время", "Угол", "Скольжение")
Dim time(15, 2), ID, ID1(15, 1), NRB As String
vvod_data NRB ' Ввод исходных данных из таблицы Excel
Rem ' Результирующий титул
Set r = Range(Range(NRB).Offset(0, 0), Range(NRB).Offset(0, 2))
r.FormulaArray = Rez_title
PC = PCda: PD = PDda: D = Application.Asin(PT / PCda): s = 0: i = 0
'Расчетный процесс
For t = 0 To Tmax Step h ' Цикл по времени
i = i + 1 'Счетчик для записи в таблицу
Range(NRB).Offset(i, 0).Value = t ' Вывод результатов расчета
Range(NRB).Offset(i, 1).Value = D * 180 / 3.14159
Range(NRB).Offset(i, 2).Value = s
If (t > Tk) Then PC = PCab: PD = Pdab ' Идентификация режима
If (t > Tot) Then PC = PCpa: PD = Pdpa
' Оценка производных
cdu D, s, r1, b1
cdu D + h * r1 / 2, s + h * b1 / 2, r2, b2
cdu D + h * r2 / 2, s + h * b2 / 2, r3, b3
cdu D + h * r3, s * h + b3, r4, b4
D = D + h * (r1 + 2 * r2 + 2 * r3 + r4) / 6: ' Коррекция параметров
s = s + h * (b1 + 2 * b2 + 2 * b3 + b4) / 6
Next t
End Sub
' Модуль "Оценка производных"
Public Sub cdu(D, s, c1, c2)
c2 = (PT - PC * Sin(D) - PD * s) / Tj
c1 = 314 * s
End Sub