Skip to content
This repository has been archived by the owner on Jan 23, 2025. It is now read-only.

Commit

Permalink
Merge branch 'brstu:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
gleb7499 authored Nov 9, 2024
2 parents db1bbcd + 294fd3e commit 4a8e196
Show file tree
Hide file tree
Showing 19 changed files with 954 additions and 3 deletions.
6 changes: 3 additions & 3 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,10 @@
|1|Белаш Александр Олегович|||||||||||
|2|Брызгалов Юрий Николаевич|||||||||||
|3|Будник Анна Андреевна|[as0006433](./trunk/as0006433/)|:white_check_mark:|:white_check_mark:||||||||
|4|Булавский Андрей Сергеевич|[as0006404](./trunk/as0006404/)|:white_check_mark:|:white_check_mark:||||||||
|4|Булавский Андрей Сергеевич|[as0006404](./trunk/as0006404/)|:white_check_mark:|:white_check_mark:|:white_check_mark:|||||||
|5|Бурак Илья Эдуардович|||||||||||
|6|Горкавчук Никита Михайлович|[as64220038](./trunk/as64220038/)|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|:white_check_mark:|||||
|7|Евкович Андрей Викторович|[as0006407](./trunk/as0006407/)|:white_check_mark:|:white_check_mark:|:white_check_mark:|||||||
|7|Евкович Андрей Викторович|[as0006407](./trunk/as0006407/)|:white_check_mark:|:white_check_mark:|:white_check_mark:||:white_check_mark:|||||
|8|Ежгунович Глеб Михайлович|||||||||||
|9|Иванюк Иван Александрович|[as0006409](./trunk/as0006409/)|:white_check_mark:|:white_check_mark:|||||||||
|10|Игнаткевич Кирилл Сергеевич|[as0006442](./trunk/as0006442)|:white_check_mark:|:white_check_mark:||||||||
Expand All @@ -70,5 +70,5 @@
|16|Рабченя Максим Юрьевич|||||||||||
|17|Ровнейко Захар Сергеевич|||||||||||
|18|Смердина Анастасия Валентиновна|[as0006424](./trunk/as0006424/)|:white_check_mark:|:white_check_mark:||||||||
|19|Хомич Виталий Геннадьевич|[as0006454](./trunk/as0006454/)|:white_check_mark:|:white_check_mark:||||||||
|19|Хомич Виталий Геннадьевич|[as0006454](./trunk/as0006454/)|:white_check_mark:|:white_check_mark:|:white_check_mark:|||||||
|20|Ярмолюк Артём Сергеевич|||||||||||
121 changes: 121 additions & 0 deletions trunk/as0006404/task_02/doc/doxygen.md
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` - Отклонение на два шага назад.
108 changes: 108 additions & 0 deletions trunk/as0006404/task_02/doc/readme.md
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
Loading

0 comments on commit 4a8e196

Please sign in to comment.