- •В.П.Обоскалов
- •Предисловие
- •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 в.П.Обоскалов
' Модуль "Ввод исходных данных из таблицы Excel"
Public Sub vvod_data(NRB As String)
Dim ID1(15, 1)
Rem Application.Dialogs(xlDialogFunctionWizard).Show ' - можно и так
´ Поучительное оформление таблицы исходных данных
ID = Array("Tj", "PT", "PCda", "PCab", "PCpa", "PDda", "PDab", "PDpa", _
"Tk", "Tot", "Tmax", "h")
Range("a1").Value = "ИСХОДНЫЕ ДАННЫЕ"
For i = 1 To 12: ID1(i, 1) = ID(i): Next
Range("a2", "A13").FormulaArray = ID1
´ Результирующие данные -куда хочу, туда пишу
NRB = InputBox(prompt:=" Укажите начало результирующего блока", _
Title:="Выполните коррекцию данных", Default:="E2")
´ Считывание исходных данных
Tj = Range("B2").Value: PT = Range("B3").Value
PCda = Range("B4").Value: PCab = Range("B5").Value: PCpa = Range("B6").Value
PDda = Range("B7").Value: PDab = Range("B8").Value: PDpa = Range("B9").Value
Tk = Range("B10").Value: Tot = Range("B11").Value:
Tmax = Range("B12").Value: h = Range("B13").Value
End Sub
Самостоятельная работа
Внимательно прочитайте представленную программу. Попытайтесь найти новые для вас алгоритмические и программные решения.
Выполните отладку программы на примере данных, представленных в табл. 4.10. Выведите на диаграмму (рис. 4.8) результирующие временные функции.
Предусмотрите вывод в результирующую таблицу мощности генератора PG = PC Sin(δ) + PD s.
Выведите на экран функцию (s).
Выполните ряд экспериментов: изменением длительности КЗ получите ситуацию нарушения устойчивости; определите, как .влияют на устойчивость демпфирующий момент, послеаварийная максимальная синхронная мощность.
Таблица 4.43
Tj |
7 |
PT |
0,8 |
Pсda |
1,4 |
Pcab |
0,2 |
Pсpa |
1 |
PDda |
20 |
PDab |
2 |
P
Рис.
4.78. Переходный процесс. |
20 |
Tk |
0,01 |
Tot |
0,2 |
Tmax |
3 |
h |
0,01 |
Перенумерация узлов
Практически во всех задачах электроэнергетики, где задана топология сети и где предполагается использование матричных методов, нумерация узлов должна быть непрерывной, начиная от единицы до последнего номера, без пропусков. В то же время, пользователю не хотелось бы ставить себя в такие жесткие рамки - ему удобно нумеровать узлы совершенно произвольно. Решением проблемы является двойная нумерация - машинная для математики и исходная для пользователя. Одним из вариантов согласования нумераций может быть массив номеров узлов, где порядковый номер элемента массива является машинным номером, а величина элемента - исходным номером узла.
Ниже приводится программный блок формирования такого массива. Исходными данными являются число ветвей (w), массивы начальных (NB) и конечных (KB) номеров смежных узлов рассматриваемого множества ветвей. Результирующими являются число узлов и массив номеров узлов (MN).
В качестве отладочного предлагается модуль proba(), где формируются массивы смежных узлов. Модуль перенумерация() является, по существу, диспетчерским и содержит единственный цикл по ветвям. Проверка наличия рассматриваемого узла в массиве MN осуществляется в модуле Запись_номера().
Option Base 1
Private MN() As Integer 'Искомый массив
' Модуль отладки
Public Sub proba()
Dim i As Integer, w As Integer
Dim NB(10) As Integer, KB(10) As Integer, n As Integer
Dim vv As Object 'Пример переменной типа Object
Set vv = Range("A2:B6") ' В блоке A2:B6 начала и концы ветвей
w = vv.Rows.Count ' Число ветвей
For i = 1 To w ' формирование массивов начал (NB) и концов (KB) ветвей
NB(i) = vv.Cells(i, 1)
KB(i) = vv.Cells(i, 2)
Next i
перенумерация w, NB(), KB(), n, MN()
End Sub
' Основной модуль перенумерации узлов
Public Sub перенумерация (w As Integer, NB() As Integer, KB() As Integer, _
n As Integer, MN() As Integer)
Dim i As Integer
n = 1: ReDim Preserve MN(n): MN(1) = NB(1):
For i = 1 To w
Запись_номера n, NB(i)
Запись_номера n, KB(i)
Next i
End Sub
' Вспомогательный модуль. Динамическое расширение массиваPublic Sub Запись_номера (n As Integer, NoB As Integer)
Dim i As Integer, j As Integer, flag As Byte
flag = 0: For j = 1 To n ' Проверка наличия узла в массиве MN
If NoB = MN(j) Then flag = 1: Exit For
Next j
If flag = 0 Then n = n + 1: ReDim Preserve MN(n): MN(n) = NoB
End Sub