This repository has been archived by the owner on Jan 23, 2025. It is now read-only.
forked from brstu/TMAU-2024
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
19 changed files
with
954 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,121 @@ | ||
# Обзор | ||
|
||
|
||
- `class `[`TempEquation`](#class_temp_equation) Абстрактный класс, служащий основой для температурных уравнений. | ||
- `class `[`SimpleTempEquation`](#class_simple_temp_equation) Простое уравнение, используемое для вычисления температуры. | ||
- `class `[`ComplexTempEquation`](#class_complex_temp_equation) Сложное уравнение для расчета температурных значений. | ||
- `class `[`ControlUnit`](#class_control_unit) Система управления, моделирующая температурный контроль. | ||
|
||
## class `TempEquation` | ||
|
||
Абстрактный класс, предназначенный для представления температурных уравнений. | ||
|
||
### Обзор | ||
|
||
|
||
- `public virtual double `[`compute`](#class_temp_equation_1a09f70a5d58f9a836b682c4ad9d75ddc4)`(double currentState, double powerInput) = 0` | Функция для вычисления температуры на основе текущего состояния и теплового ввода. | ||
- `public virtual `[`~TempEquation`](#class_temp_equation_1a4e7d514b4b9a840b746a686048ab1f18)`() = default` | Стандартный деструктор. | ||
|
||
### Элементы | ||
|
||
- #### `public virtual double `[`compute`](#class_temp_equation_1a09f70a5d58f9a836b682c4ad9d75ddc4)`(double currentState, double powerInput) = 0` | ||
|
||
Функция, вычисляющая выходное значение на основе входного состояния и теплового потока. | ||
|
||
**Параметры** | ||
* `currentState` - Значение текущего состояния. | ||
* `powerInput` - Величина теплового ввода. | ||
|
||
#### `public virtual `[`~TempEquation`](#class_temp_equation_1a4e7d514b4b9a840b746a686048ab1f18)`() = default` | ||
|
||
Уничтожает экземпляр `TempEquation`. | ||
|
||
## class `SimpleTempEquation` | ||
|
||
Простое уравнение для вычисления температуры. | ||
|
||
### Обзор | ||
|
||
|
||
- `public inline `[`SimpleTempEquation`](#class_simple_temp_equation_1a29c36f0f2d6a1ecb27dfe676fe4a6b6a)`(double x, double y)` | Конструктор простого уравнения с заданными параметрами. | ||
- `public inline virtual double `[`compute`](#class_simple_temp_equation_1ac0c3db10c3b3be2ae5dc1e227bbfb09c)`(double currentState, double powerInput)` | Функция для вычисления состояния в рамках простого уравнения. | ||
- `public virtual `[`~SimpleTempEquation`](#class_simple_temp_equation_1ad78eae7d3bfb0a40147e39d3060f3629)`() = default` | Стандартный деструктор. | ||
|
||
### Элементы | ||
|
||
#### `public inline `[`SimpleTempEquation`](#class_simple_temp_equation_1a29c36f0f2d6a1ecb27dfe676fe4a6b6a)`(double x, double y)` | ||
|
||
Создает новый объект `SimpleTempEquation` с указанными параметрами. | ||
|
||
**Параметры** | ||
- `x` - Коэффициент для текущего состояния. | ||
- `y` - Коэффициент для теплового ввода. | ||
|
||
#### `public inline virtual double `[`compute`](#class_simple_temp_equation_1ac0c3db10c3b3be2ae5dc1e227bbfb09c)`(double currentState, double powerInput)` | ||
|
||
Функция, вычисляющая выходное значение с использованием простого уравнения. | ||
|
||
#### `public virtual `[`~SimpleTempEquation`](#class_simple_temp_equation_1ad78eae7d3bfb0a40147e39d3060f3629)`() = default` | ||
|
||
Уничтожает экземпляр `SimpleTempEquation`. | ||
|
||
## class `ComplexTempEquation` | ||
|
||
Сложное уравнение для вычисления температуры. | ||
|
||
### Обзор | ||
|
||
|
||
- `public inline `[`ComplexTempEquation`](#class_complex_temp_equation_1abf94db879e6a11a3b8d4c5d6e2a8c8a2)`(double a, double b, double c, double d)` | Конструктор для сложного уравнения с определенными параметрами. | ||
- `public inline virtual double `[`compute`](#class_complex_temp_equation_1a25dc6765a041b63ec20976f80ad23fa4)`(double currentState, double powerInput)` | Функция для вычисления состояния в рамках сложного уравнения. | ||
- `public virtual `[`~ComplexTempEquation`](#class_complex_temp_equation_1ae7cf4cb5096b5fbd3bff78c3bfb63b2f)`() = default` | Стандартный деструктор. | ||
|
||
### Элементы | ||
|
||
#### `public inline `[`ComplexTempEquation`](#class_complex_temp_equation_1abf94db879e6a11a3b8d4c5d6e2a8c8a2)`(double a, double b, double c, double d)` | ||
|
||
Создает новый объект `ComplexTempEquation` с указанными параметрами. | ||
|
||
**Параметры** | ||
- `a` - Коэффициент для текущего состояния. | ||
- `b` - Коэффициент для квадрата предыдущего состояния. | ||
- `c` - Коэффициент для теплового ввода. | ||
- `d` - Коэффициент для синуса предыдущего теплового ввода. | ||
|
||
#### `public inline virtual double `[`compute`](#class_complex_temp_equation_1a25dc6765a041b63ec20976f80ad23fa4)`(double currentState, double powerInput)` | ||
|
||
Функция, вычисляющая выходное значение на основе сложного уравнения. | ||
|
||
#### `public virtual `[`~ComplexTempEquation`](#class_complex_temp_equation_1ae7cf4cb5096b5fbd3bff78c3bfb63b2f)`() = default` | ||
|
||
Уничтожает экземпляр `ComplexTempEquation`. | ||
|
||
## class `ControlUnit` | ||
|
||
Система управления для моделирования температурного контроля. | ||
|
||
### Обзор | ||
|
||
|
||
- `public void `[`simulate`](#class_control_unit_1acb8cf7932d39a2bcd053dc22bca24672)`(double targetState, double initialState, TempEquation& equation)` | Имитация работы системы управления для температурного уравнения. | ||
- `private double `[`computeSignal`](#class_control_unit_1a7dcb55c416527f9644de795b6ff16f3b)`(double deviation, double prevDeviation1, double prevDeviation2)` | Вычисляет управляющий сигнал на основе текущих и предыдущих отклонений. | ||
|
||
### Элементы | ||
|
||
#### `public void `[`simulate`](#class_control_unit_1acb8cf7932d39a2bcd053dc22bca24672)`(double targetState, double initialState, TempEquation& equation)` | ||
|
||
Имитация системы управления температурой для заданного состояния. | ||
|
||
**Параметры** | ||
* `targetState` - Желаемое значение состояния. | ||
* `initialState` - Начальное значение состояния. | ||
* `equation` - Используемое уравнение в процессе симуляции. | ||
|
||
#### `private double `[`computeSignal`](#class_control_unit_1a7dcb55c416527f9644de795b6ff16f3b)`(double deviation, double prevDeviation1, double prevDeviation2)` | ||
|
||
Вычисление управляющего сигнала на основании текущих и предыдущих отклонений. | ||
|
||
**Параметры** | ||
* `deviation` - Текущее отклонение. | ||
* `prevDeviation1` - Отклонение предыдущего шага. | ||
* `prevDeviation2` - Отклонение на два шага назад. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
#Лабораторная работа №2 | ||
<p align="center">Министерство образования Республики Беларусь</p> | ||
<p align="center">Учреждение образования</p> | ||
<p align="center">«Брестский государственный технический университет»</p> | ||
<p align="center">Кафедра ИИТ</p> | ||
<br><br><br><br> | ||
<p align="center">Лабораторная работа №2 </p> | ||
<p align="center">По дисциплине: «ТИМАУ»</p> | ||
<p align="center">Тема: «Изучение ПИД-регуляторов»</p> | ||
<br><br><br> | ||
<p align="right">Выполнил Студент 3-го курса</p> | ||
<p align="right">Группы АС-64</p> | ||
<p align="right">Булавсвкий А.С.</p> | ||
<p align="right">Проверила</p> | ||
<p align="right">Ситковец Я.C.</p> | ||
<br><br><br> | ||
<p align="center">Брест 2024</p> | ||
|
||
--- | ||
|
||
------------------------------------------------------ | ||
Цель работы: | ||
Целью данной лабораторной работы является изучение возможностей использования инструмента Doxygen для документирования кода программного обеспечения. В ходе работы будет изучено, как правильно оформлять документацию, какие разделы должны быть включены в документацию, как использовать комментарии в коде для документирования функций и классов, а также как использовать специальные директивы Doxygen для упрощения оформления документации. | ||
------------------------------------------------------ | ||
Ход работы: | ||
------------------------------------------------------ | ||
|
||
|
||
|
||
|
||
Для ПИД-регулятора установлены следующие параметры: **gain = 0.1, integrationTime = 10, derivativeTime = 80, samplingInterval = 50, simulationTime = 30**. | ||
|
||
|
||
## Результаты выполнения программы | ||
|
||
```console | ||
--- Параметры для простой модели --- | ||
Введите значение 1: 5 | ||
Введите значение 2: 2 | ||
--- Параметры для сложной модели --- | ||
Введите значение 1: 11 | ||
Введите значение 2: 9 | ||
Введите значение 3: 2 | ||
Введите значение 4: 4 | ||
|
||
--- Симуляция простой модели --- | ||
Шаг 1 -> Ошибка: 5.001, Текущая температура: 17.601, Управляющий сигнал: 1.301 | ||
Шаг 2 -> Ошибка: -9.599, Текущая температура: 13.409, Управляющий сигнал: -0.795 | ||
Шаг 3 -> Ошибка: -5.407, Текущая температура: 10.6608, Управляющий сигнал: -2.16908 | ||
Шаг 4 -> Ошибка: -2.65884, Текущая температура: 5.34044, Управляющий сигнал: -4.82928 | ||
Шаг 5 -> Ошибка: 2.66156, Текущая температура: 4.5678, Управляющий сигнал: -5.2156 | ||
Шаг 6 -> Ошибка: 3.4342, Текущая температура: 5.9276, Управляющий сигнал: -4.5357 | ||
Шаг 7 -> Ошибка: 2.0744, Текущая температура: 8.40646, Управляющий сигнал: -3.29627 | ||
Шаг 8 -> Ошибка: -0.40446, Текущая температура: 9.62599, Управляющий сигнал: -2.68651 | ||
Шаг 9 -> Ошибка: -1.62399, Текущая температура: 9.37961, Управляющий сигнал: -2.8097 | ||
Шаг 10 -> Ошибка: -1.37761, Текущая температура: 8.27299, Управляющий сигнал: -3.36301 | ||
Шаг 11 -> Ошибка: -0.270986, Текущая температура: 7.39098, Управляющий сигнал: -3.80401 | ||
Шаг 12 -> Ошибка: 0.61102, Текущая температура: 7.22352, Управляющий сигнал: -3.88774 | ||
Шаг 13 -> Ошибка: 0.778482, Текущая температура: 7.63838, Управляющий сигнал: -3.68031 | ||
Шаг 14 -> Ошибка: 0.363624, Текущая температура: 8.14654, Управляющий сигнал: -3.42623 | ||
Шаг 15 -> Ошибка: -0.144544, Текущая температура: 8.37768, Управляющий сигнал: -3.31066 | ||
Шаг 16 -> Ошибка: -0.375675, Текущая температура: 8.27456, Управляющий сигнал: -3.36222 | ||
Шаг 17 -> Ошибка: -0.272557, Текущая температура: 8.02547, Управляющий сигнал: -3.48677 | ||
Шаг 18 -> Ошибка: -0.023465, Текущая температура: 7.84844, Управляющий сигнал: -3.57528 | ||
Шаг 19 -> Ошибка: 0.153562, Текущая температура: 7.83632, Управляющий сигнал: -3.58134 | ||
Шаг 20 -> Ошибка: 0.165682, Текущая температура: 7.93853, Управляющий сигнал: -3.53023 | ||
Шаг 21 -> Ошибка: 0.0634664, Текущая температура: 8.04619, Управляющий сигнал: -3.47641 | ||
Шаг 22 -> Ошибка: -0.0441851, Текущая температура: 8.08538, Управляющий сигнал: -3.45681 | ||
Шаг 23 -> Ошибка: -0.0833818, Текущая температура: 8.05426, Управляющий сигнал: -3.47237 | ||
Шаг 24 -> Ошибка: -0.0522629, Текущая температура: 7.99861, Управляющий сигнал: -3.5002 | ||
Шаг 25 -> Ошибка: 0.00339414, Текущая температура: 7.96433, Управляющий сигнал: -3.51734 | ||
Шаг 26 -> Ошибка: 0.0376734, Текущая температура: 7.96674, Управляющий сигнал: -3.51613 | ||
Шаг 27 -> Ошибка: 0.0352643, Текущая температура: 7.99119, Управляющий сигнал: -3.50391 | ||
Шаг 28 -> Ошибка: 0.01081299, Текущая температура: 8.01351, Управляющий сигнал: -3.49275 | ||
Шаг 29 -> Ошибка: -0.0115075, Текущая температура: 8.01954, Управляющий сигнал: -3.48973 | ||
Шаг 30 -> Ошибка: -0.0175383, Текущая температура: 8.01104, Управляющий сигнал: -3.49398 | ||
|
||
--- Симуляция сложной модели --- | ||
Шаг 1 -> Ошибка: 5.001, Текущая температура: 35.601, Управляющий сигнал: 1.301 | ||
Шаг 2 -> Ошибка: -27.599, Текущая температура: -55.0968, Управляющий сигнал: -5.475 | ||
Шаг 3 -> Ошибка: 63.0988, Текущая температура: -26.0668, Управляющий сигнал: 9.52242 | ||
Шаг 4 -> Ошибка: 34.0688, Текущая температура: -10.3632, Управляющий сигнал: 19.0119 | ||
Шаг 5 -> Ошибка: 18.3652, Текущая температура: 25.8567, Управляющий сигнал: 36.6076 | ||
Шаг 6 -> Ошибка: -17.8547, Текущая температура: 26.2182, Управляющий сигнал: 38.8851 | ||
Шаг 7 -> Ошибка: -18.2162, Текущая температура: 27.022, Управляющий сигнал: 35.6585 | ||
Шаг 8 -> Ошибка: -19.022, Текущая температура: 1.23171, Управляющий сигнал: 26.3987 | ||
Шаг 9 -> Ошибка: 6.77029, Текущая температура: 3.25808, Управляющий сигнал: 23.7223 | ||
Шаг 10 -> Ошибка: 4.74392, Текущая температура: -7.04297, Управляющий сигнал: 22.4537 | ||
Шаг 11 -> Ошибка: 15.045, Текущая температура: 5.873, Управляющий сигнал: 27.8276 | ||
Шаг 12 -> Ошибка: 2.129, Текущая температура: 14.4172, Управляющий сигнал: 30.3433 | ||
Шаг 13 -> Ошибка: -6.41519, Текущая температура: 10.9879, Управляющий сигнал: 31.2523 | ||
Шаг 14 -> Ошибка: -2.98592, Текущая температура: 11.9495, Управляющий сигнал: 30.3029 | ||
Шаг 15 -> Ошибка: -3.94752, Текущая температура: 4.43068, Управляющий сигнал: 28.0108 | ||
Шаг 16 -> Ошибка: 3.57132, Текущая температура: 9.33548, Управляющий сигнал: 28.1453 | ||
Шаг 17 -> Ошибка: -1.33348, Текущая температура: 7.42213, Управляющий сигнал: 27.4522 | ||
Шаг 18 -> Ошибка: 0.579868, Текущая температура: 11.0665, Управляющий сигнал: 28.0672 | ||
Шаг 19 -> Ошибка: -3.06455, Текущая температура: 7.03151, Управляющий сигнал: 27.1029 | ||
Шаг 20 -> Ошибка: 0.970491, Текущая температура: 10.0905, Управляющий сигнал: 27.2024 | ||
Шаг 21 -> Ошибка: -2.08848, Текущая температура: 8.00583, Управляющий сигнал: 26.2462 | ||
Шаг 22 -> Ошибка: -0.00383079, Текущая температура: 8.05183, Управляющий сигнал: 26.2329 | ||
Шаг 23 -> Ошибка: -0.0498326, Текущая температура: 7.33214, Управляющий сигнал: 25.8849 | ||
Шаг 24 -> Ошибка: 0.669857, Текущая температура: 6.83711, Управляющий сигнал: 26.054 | ||
Шаг 25 -> Ошибка: 1.16489, Текущая температура: 7.98606, Управляющий сигнал: 26.402 | ||
Шаг 26 -> Ошибка: 0.0159402, Текущая температура: 9.02936, Управляющий сигнал: 26.606 | ||
Шаг 27 -> Ошибка: -1.02736, Текущая температура: 9.03171, Управляющий сигнал: 26.5261 | ||
Шаг 28 -> Ошибка: -1.02971, Текущая температура: 8.29184, Управляющий сигнал: 26.1782 | ||
Шаг 29 -> Ошибка: -0.289844, Текущая температура: 7.16876, Управляющий сигнал: 25.8556 | ||
Шаг 30 -> Ошибка: 0.833244, Текущая температура: 6.40963, Управляющий сигнал: 25.8838 |
Oops, something went wrong.