Поток: САУ-231
Лекция 1: Основы системного анализа
НЕДЕЛЯ 1: ВВЕДЕНИЕ В СИСТЕМНЫЙ АНАЛИЗ

Лекция: Основы системного анализа в робототехнике

Изучение базовых принципов системного подхода для проектирования и анализа робототехнических систем

1.5 часа
1
Основы системного анализа в робототехнике
1.5 часа
Лекция
+
Блок 1: Понятие системы в робототехнике

1. Что такое система? ⚙️

Определение системы:

Система — совокупность взаимосвязанных элементов, образующих целостность и выполняющих определённую функцию.

Модель "Вход-Процесс-Выход" (IPO):

Вход
Процесс
Выход

Ключевые свойства систем:

СвойствоОпределениеПример LFR
ЦелостностьСистема работает как единое целоеРобот движется согласованно
ЭмерджентностьСвойства ≠ сумме свойств элементовДатчики по отдельности не следят за линией
ИерархичностьПодсистемы и надсистемыДатчик → блок управления → робот
Блок 2: Системный подход

2. Системный подход к решению инженерных задач ????️

Системный подход:

Методология исследования и проектирования, основанная на представлении объекта как системы.

Декомпозиция — разбиение сложной задачи на подзадачи.

Критерии качества системы:

КритерийОпределение
БыстродействиеВремя реакции
ТочностьОтклонение от требуемого
НадёжностьВремя безотказной работы
Блок 3: Математические основы

3. Математические основы системного анализа ????

Состояние системы:

Минимальный набор переменных, описывающих "память" системы.

Уравнение состояния:
dx/dt = f(x, u, t)
где x — вектор состояния, u — управление.
Блок 4: Варианты проектов

4. Классификация и анализ вариантов роботов ????

ГруппаВариантыХарактеристикиКритические параметрыЦелевые показателиОсобенности
Группа 1:
Эконом
1: Складской экономm=1.2±0.1 кг, μ=0.28, бюджет ≤4500 рубСтоимостьv≥0.8 м/с, перерегулирование ≤20%Работа 16 ч/сут
8: Офисный логистm=2.1±0.2 кг, μ=0.32Энергоэффективностьv=0.5-0.7 м/с, КПД≥85%USB-C зарядка
Группа 2:
Точные
2: Лабораторный точникm=0.25±0.05 кг, μ=0.55Точность ±2 ммv=0.3-0.4 м/с, перерегулирование ≤5%Чистая комната
5: Медицинский курьерm=1.8±0.2 кг, μ=0.42Шум ≤40 дБv=0.7-0.9 м/с, вибрации ≤0.1gСтерильность
9: Учебный тренажёрm=0.9±0.1 кг, μ=0.48, бюджет ≤8000 рубНаглядностьИзменение параметров "на лету"Открытый API
Группа 3:
Промышленные
3: Промышленный тяжеловесm=7.5±1.0 кг, μ=0.18Наработка ≥2000 чv≥0.6 м/с, тяга ≥50 НIP54, -40..+40°C
6: Библиотечный помощникm=3.2±0.3 кг, μ=0.35Безопасностьv=0.4-0.6 м/с, тормозной путь ≤0.5 мМягкий бампер
7: Строительный инспекторm=4.5±0.5 кг, μ=0.25-0.65Всепогодность -20..+50°Cv≥0.8 м/с, запас хода ≥4 чСтабилизация
Группа 4:
Экстремальные
4: Соревновательный гонщикm≤0.8 кг, μ=0.72v≥2.5 м/сВремя круга ≤8 с, перегрузки до 3gАэродинамика
10: Аэропортный гидm=5.8±0.4 кг, μ=0.38Наработка ≥5000 чv=0.4-1.2 м/с, 24/7Crowd avoidance
11: Сельскохозяйственныйm=2.8±0.3 кг, μ=0.22-0.80Влажность 100%v=0.2-0.5 м/с, автономность ≥12 чМойка давлением
Примеры анализа вариантов
Пример 1: Вариант 1 "Складской эконом"

Масса: 1.2 кг, μ: 0.28, v≥0.8 м/с, бюджет ≤4500 руб.

Сила трения: F_тр = μ·m·g = 0.28·1.2·9.81 ≈ 3.3 Н.
Необходимая мощность: P = F·v = 3.3·0.8 ≈ 2.6 Вт.

Пример 2: Вариант 4 "Соревновательный гонщик"

Центростремительное ускорение на повороте: a = v²/R. При v=2.5 м/с, R=0.5 м: a≈12.5 м/с² ≈1.3g.

Совет: Если делать, сделается!
Задание к следующему занятию

Создайте папку проекта со следующими файлами:

.m
variant_parameters.m
Параметры вашего варианта
.slx
lfr_model.slx
Simulink модель динамики
Лекция 2: Расширенные модели динамики
НЕДЕЛЯ 2: РАСШИРЕННЫЕ МОДЕЛИ ДИНАМИКИ

Лекция 2: Расширенные модели динамики для всех групп роботов

Учёт энергопотребления, шумов, тепла, препятствий и других требований ТЗ

1.5 часа
2
Расширенные модели динамики
1.5 часа
Лекция
+
1. Единый словарь переменных и ограничений

ФИЗИЧЕСКИЕ ПЕРЕМЕННЫЕ СОСТОЯНИЯ

СимволВеличинаЕдиница измерения
$t$Времяс
$v$Линейная скорость роботам/с
$\omega$Угловая скорость колесарад/с
$\theta$Угол поворота колесарад
$x$Пройденный путьм
$i$Ток двигателяА
$U$Напряжение на двигателеВ
$T_m$Температура двигателя°C
$P_{el}$Электрическая мощностьВт
$P_{mech}$Механическая мощностьВт
$F_x$Сила тяги на колёсахН
$F_r$Сила сопротивления качениюН
$F_a$Сила аэродинамического сопротивленияН
$F_g$Сила сопротивления уклонуН
$F_{step}$Сила преодоления препятствияН
$F_{obs}$Сила от бампера/препятствияН
$F_b$Тормозная силаН
$F_{ext}$Внешняя нагрузка (обобщённая)Н
$N$Нормальная реакция опорыН

◆ ПАРАМЕТРЫ РОБОТА И ДВИГАТЕЛЯ

СимволВеличинаЕдиница измерения
$m$Масса роботакг
$m_{load}$Масса грузакг
$J$Момент инерции ротора + колесакг·м²
$r$Радиус колесам
$n$Передаточное число редуктора
$\eta$КПД редуктора
$k_m$Постоянная момента двигателяН·м/А
$k_e$Постоянная противо-ЭДСВ·с/рад
$R$Сопротивление обмоткиОм
$c_r$Коэффициент сопротивления качению
$\mu$Коэффициент сцепления
$C_x$Коэффициент аэродинамического сопротивления
$A$Лобовая площадьм²
$\rho$Плотность воздухакг/м³
$g$Ускорение свободного падениям/с²
$\alpha$Угол уклонарад
$h$Высота препятствиям

ОГРАНИЧЕНИЯ ТЗ (ЦЕЛЕВЫЕ ПОКАЗАТЕЛИ)

СимволВеличинаЕдиница измерения
$v_{max}$Максимальная скоростьм/с
$v_{min}$Минимальная скоростьм/с
$a_{max}$Максимальное ускорением/с²
$s_{brake}$Тормозной путьм
$\sigma_{pos}$Точность позиционированиямм
$OS$Перерегулирование%
$t_s$Время установленияс
$L_p$Уровень звукового давлениядБ
$a_{vib}$Уровень вибраций$g$
$P_{max}$Максимальная потребляемая мощностьВт
$\eta_{min}$Минимальный КПД%
$T_{max}$Максимальная температура°C
$MTBF$Наработка на отказч
$t_{op}$Время автономной работыч
$t_{charge}$Время зарядкимин
$IP$Степень пылевлагозащиты
$C_{max}$Максимальная стоимостьруб
2. Базовая модель АТТ (повторение)
Уравнение движения: $$m\frac{dv}{dt} = F_x - F_r$$
Электромеханика: $$F_x = \frac{\eta n k_m}{R} U - \frac{\eta n^2 k_e k_m}{R} v$$ $$i = \frac{U - k_e \omega}{R}, \quad \omega = \frac{n v}{r}$$
Сила сопротивления качению: $$F_r = c_r m g$$
Это минимальная модель, которая работает для всех вариантов. Но для выполнения требований ТЗ её нужно расширять дополнительными уравнениями.
3. Специализированные модели по группам вариантов
ГРУППА 1: ЭКОНОМ-РЕШЕНИЯ
Вариант 1: Складской эконом Вариант 8: Офисный логист

Ключевые особенности ТЗ:

  • Вар.1: бюджет ≤4500 руб, v≥0.8 м/с, работа 16 ч/сут
  • Вар.8: энергопотребление ≤15 Вт, КПД ≥85%, зарядка USB-C

Модель динамики:

$$m\frac{dv}{dt} = F_x - F_r$$

Добавление модели энергопотребления (для вар.8):

$$P_{el} = U \cdot i + P_{const}$$ $$i = \frac{U - k_e \omega}{R}$$ $$P_{mech} = F_x \cdot v = \eta \cdot P_{el}$$

Ограничения:

$$\text{Вар.1: } v \geq 0.8 \text{ м/с}, \quad OS \leq 20\%, \quad t_{op} \geq 16 \text{ ч}$$ $$\text{Вар.8: } P_{el} \leq 15 \text{ Вт}, \quad \eta \geq 0.85, \quad 0.5 \leq v \leq 0.7 \text{ м/с}$$
Что добавляется в Simulink:
  • Блок расчёта тока i = (U - k_e·ω)/R
  • Блок мощности P_el = U·i
  • Сравнение с лимитами (Display/Scope)
ГРУППА 2: ВЫСОКОТОЧНЫЕ
Вариант 2: Лабораторный точник Вариант 5: Медицинский курьер Вариант 9: Учебный тренажёр

Ключевые особенности ТЗ:

  • Вар.2: точность ±2 мм, перерегулирование ≤5%, пылезащита
  • Вар.5: шум ≤40 дБ, вибрации ≤0.1g, стерильность
  • Вар.9: изменение параметров "на лету", стоимость ≤8000 руб

Модель динамики (базовая):

$$m\frac{dv}{dt} = F_x - F_r$$

Модель акустического шума (для вар.5):

$$L_p = 20 \log_{10}\left(\frac{A}{A_0}\right)$$ $$A \propto \left|\frac{di}{dt}\right| + \left|\frac{d\omega}{dt}\right| + A_{cogging}(\theta)$$ $$\left|\frac{di}{dt}\right| \leq \beta_{\max} \quad \text{(ограничение для шума)}$$

Нестационарная модель (для вар.9):

$$m(t), \quad k_m(t), \quad k_e(t), \quad R(t), \quad c_r(t) \quad \text{— изменяемы в реальном времени}$$ $$F_{ext}(t) \quad \text{— имитация ошибок студента}$$

Ограничения:

$$\text{Вар.2: } \sigma_{pos} \leq \pm 2 \text{ мм}, \quad OS \leq 5\%, \quad t_s \leq 1.5 \text{ с}$$ $$\text{Вар.5: } L_p \leq 40 \text{ дБ}, \quad a_{vib} \leq 0.1g, \quad t_{op} \geq 6 \text{ ч}$$ $$\text{Вар.9: } C_{max} \leq 8000 \text{ руб}, \quad \text{Открытый API}$$
Что добавляется в Simulink:
  • Блоки производных di/dt, dω/dt для расчёта шума
  • Блоки с переменными параметрами (Gain с внешним сигналом)
  • Блоки ограничения скорости нарастания тока (Rate Limiter)
ГРУППА 3: ПРОМЫШЛЕННЫЕ
Вариант 3: Промышленный тяжеловес Вариант 6: Библиотечный помощник Вариант 7: Строительный инспектор

Ключевые особенности ТЗ:

  • Вар.3: тяга ≥50 Н, наработка ≥2000 ч, работа при ±40°C
  • Вар.6: тормозной путь ≤0.5 м, безопасность, мягкий бампер
  • Вар.7: проходимость препятствий до 5 см, всепогодность

Модель динамики с дополнительными силами:

$$(m + m_{load})\frac{dv}{dt} = F_x - F_r - F_g - F_{step} - F_{obs}$$

️ Тепловая модель (для вар.3):

$$T_m = T_{amb} + R_{th} \cdot i^2 R$$ $$T_m \leq T_{max}, \quad MTBF \geq 2000 \text{ ч}$$

Модель торможения (для вар.6):

$$F_b = \frac{k_m}{R} U_{brake} + \frac{k_e k_m}{R} \omega \quad \text{(рекуперация)}$$ $$s_{brake} = \frac{v^2}{2a_{brake}} \leq 0.5 \text{ м}$$

Модель преодоления препятствия (для вар.7):

$$F_{step} = m g \left[1 - \left(1 - \frac{h}{r}\right)^2\right]^{1/2}, \quad h \leq 0.05 \text{ м}$$

Ограничения:

$$\text{Вар.3: } F_x \geq 50 \text{ Н}, \quad SM \geq 6 \text{ дБ}, \quad IP54$$ $$\text{Вар.6: } s_{brake} \leq 0.5 \text{ м}, \quad F_{obs} \text{ — мягкий бампер}$$ $$\text{Вар.7: } h_{max} = 0.05 \text{ м}, \quad T_{amb} = -20..+50°C$$
Что добавляется в Simulink:
  • Тепловая модель (интегратор температуры)
  • Модель торможения с рекуперацией
  • Сила F_step как функция высоты препятствия
⚡ ГРУППА 4: ЭКСТРЕМАЛЬНЫЕ
Вариант 4: Соревновательный гонщик Вариант 10: Аэропортный гид Вариант 11: Сельскохозяйственный обходчик

Ключевые особенности ТЗ:

  • Вар.4: скорость ≥2.5 м/с, перегрузки до 3g, время круга ≤8 с
  • Вар.10: наработка ≥5000 ч, crowd avoidance, адаптивная скорость
  • Вар.11: влажность 20-100%, химстойкость, переменное μ

Модель динамики с учётом аэродинамики и сцепления:

$$m\frac{dv}{dt} = F_x - F_r - F_a - F_g$$ $$F_a = \frac{1}{2} \rho C_x A v^2$$

⚠️ Модель срыва сцепления (recovery) для вар.4:

$$F_x > \mu N \quad \Rightarrow \quad \text{буксование} \quad \Rightarrow \quad \text{алгоритм recovery}$$ $$N = (m + m_{load})g \cos \alpha$$

Модель crowd avoidance (для вар.10):

$$v_{set} = f(\rho_{people})$$ $$F_{obs}(d) = \begin{cases} k_{soft}(d_0 - d), & d \leq d_0 \\ 0, & d > d_0 \end{cases}$$

Модель переменного сцепления (для вар.11):

$$\mu = \mu_0 + k_{\mu} \cdot RH$$ $$\mu = 0.22..0.80 \quad \text{в зависимости от влажности}$$

Ограничения:

$$\text{Вар.4: } v \geq 2.5 \text{ м/с}, \quad a \leq 3g, \quad P_{el} \leq 30 \text{ Вт}$$ $$\text{Вар.10: } MTBF \geq 5000 \text{ ч}, \quad v = 0.4..1.2 \text{ м/с (адаптивная)}$$ $$\text{Вар.11: } RH = 20..100\%, \quad \mu = 0.22..0.80, \quad t_{op} \geq 12 \text{ ч}$$
Что добавляется в Simulink:
  • Аэродинамическая сила F_a (блок Math Function: u²)
  • Логика срыва сцепления (Switch, Compare)
  • Переменное μ как функция влажности
  • Сила отталкивания от людей F_obs(d)
4. Методика расчёта недостающих параметров
В ТЗ нет многих параметров, но их нужно задать для моделирования!

ШАГ 1. Диаметр колеса $r$

$$\omega_{max} = \frac{v_{max}}{r} \quad \text{[рад/с]}$$ $$n_{max} = \frac{v_{max}}{2\pi r} \cdot 60 \quad \text{[об/мин]}$$

Инженерное правило: задаём номинальные обороты двигателя $\omega_{nom} \approx 300$ рад/с (≈3000 об/мин) и подбираем $n$ и $r$:

$$r = \frac{v_{max}}{\omega_{nom}} \cdot n$$

Пример для гонщика (вар.4, v=2.5 м/с):

При n=1: $r = 2.5/300 = 0.0083$ м (8.3 мм) — слишком мало!
Берём n=10: $r = 2.5/(300/10) = 0.083$ м = 83 мм — реалистично.

⚙️ ШАГ 2. Требуемая сила тяги $F_x$

$$F_x = F_r + F_a + F_g + ma$$

Для горизонтали без аэродинамики:

$$F_x = c_r m g + m \cdot \frac{v_{max}}{t_{acc}}$$

Время разгона $t_{acc}$ если не задано — принимаем 1–2 с.

Пример для тяжеловеса (вар.3, m=7.5+20=27.5 кг, v=0.6 м/с):

$F_r = 0.02 \cdot 27.5 \cdot 9.81 \approx 5.4$ Н
$a = 0.6/2 = 0.3$ м/с², $ma = 8.25$ Н
$F_x \approx 14$ Н, но ТЗ требует $F_x \geq 50$ Н — значит, нужно учесть уклон или требование ТЗ.

ШАГ 3. Момент на колесе и двигателе

$$\tau_{wheel} = F_x \cdot r$$ $$\tau_{motor} = \frac{\tau_{wheel}}{n \cdot \eta}$$

Пример: $F_x = 50$ Н, $r = 0.1$ м → $\tau_{wheel} = 5$ Н·м
При n=30, η=0.7: $\tau_{motor} = 5/(30·0.7) \approx 0.24$ Н·м — реалистично для коллекторного мотора.

ШАГ 4. Ток и напряжение

$$i = \frac{\tau_{motor}}{k_m}, \quad U = iR + k_e\omega$$

$k_m$ берём из каталога моторов (0.01–0.05 для малых, 0.1–0.3 для мощных).
Подбираем напряжение питания (12В, 24В, 48В) под доступные драйверы.

✅ ШАГ 5. Проверка ограничений

  • По сцеплению: $F_x \leq \mu m g$ — иначе буксует
  • По току: $i \leq i_{max}$ двигателя
  • По мощности: $P = Ui \leq P_{max}$ (если задано)
  • По теплу: $i^2 R \leq \frac{T_{max}-T_{amb}}{R_{th}}$

ИТОГ: таблица выбранных параметров для своего варианта

ПараметрОткуда берём
$m$ТЗ
$r$Рассчитали из оборотов и редуктора
$c_r$Таблица по покрытию
$k_m, k_e, R$Каталог моторов (подобран под $F_x$, $\tau$)
$n$, $\eta$Подобраны под $\omega_{motor}$
$U$Стандарт (12/24/48 В)
5. Единый алгоритм работы для любого варианта
  1. ВЫДЕЛИТЬ из ТЗ: $m$, $v_{max}$, $\mu$, особые требования
  2. НАЗНАЧИТЬ диаметр колеса $r$ из условия 3000 об/мин с редуктором
  3. РАССЧИТАТЬ $F_x$ по уравнению движения + запас
  4. ВЫЧИСЛИТЬ $\tau_{wheel} = F_x \cdot r$
  5. ВЫБРАТЬ редуктор $n$, чтобы $\tau_{motor}$ попало в типовой диапазон (0.05–0.5 Н·м)
  6. ВЫБРАТЬ мотор из каталога по $\tau_{motor}$, $\omega_{motor}$, $P$
  7. ПРОВЕРИТЬ $i$, $P$, $T$, $\mu$
  8. СОБРАТЬ Simulink-модель с электромеханикой и динамикой
  9. ДОБАВИТЬ специфику (шум, тепло, препятствия) после отладки базовой модели
Главный принцип: сначала базовая модель — потом надстройки под требования ТЗ!
6. Пример расчёта: Вариант 1 "Складской эконом"

ТЗ: m = 1.2 кг, v = 0.8 м/с, μ = 0.28, бюджет моторов ≤ 1500 руб

ШАГ 1. Диаметр колеса

$$\omega_{nom} = 300 \text{ рад/с}, \quad n = 10 \Rightarrow r = \frac{0.8}{300/10} = 0.027 \text{ м} = 27 \text{ мм}$$

ШАГ 2. Сила тяги

$$F_r = c_r m g = 0.02 \cdot 1.2 \cdot 9.81 \approx 0.235 \text{ Н}$$ $$a = \frac{0.8}{1.5} = 0.533 \text{ м/с²}, \quad ma = 0.64 \text{ Н}$$ $$F_x = 1.2 \cdot (0.235 + 0.64) \approx 1.05 \text{ Н}$$

ШАГ 3. Моменты

$$\tau_{wheel} = 1.05 \cdot 0.027 = 0.0284 \text{ Н·м}$$ $$\tau_{motor} = \frac{0.0284}{10 \cdot 0.7} = 0.00406 \text{ Н·м} = 4.06 \text{ мН·м}$$

ШАГ 4. Выбор мотора (из таблицы)

Берём мотор N20: $k_m = 0.012$ Н·м/А, $k_e = 0.012$ В·с/рад, $R = 5$ Ом, $U = 12$ В

$$i = \frac{0.00406}{0.012} = 0.338 \text{ А}$$ $$\omega = \frac{n v}{r} = \frac{10 \cdot 0.8}{0.027} = 296 \text{ рад/с}$$ $$U = iR + k_e\omega = 0.338 \cdot 5 + 0.012 \cdot 296 = 1.69 + 3.55 = 5.24 \text{ В} < 12 \text{ В}$$

ШАГ 5. Проверка сцепления

$$\mu m g = 0.28 \cdot 1.2 \cdot 9.81 = 3.30 \text{ Н} > F_x = 1.05 \text{ Н} \quad \text{— OK}$$

ШАГ 6. Расчёт коэффициентов для Simulink

$$k_1 = \frac{\eta n k_m}{R} = \frac{0.7 \cdot 10 \cdot 0.012}{5} = 0.0168 \text{ Н/В}$$ $$k_2 = \frac{\eta n^2 k_e k_m}{R} = \frac{0.7 \cdot 100 \cdot 0.012 \cdot 0.012}{5} = 0.00202 \text{ Н·с/м}$$
Результат: параметры для Simulink: m=1.2, k1=0.0168, k2=0.00202, Fr=0.235, U=12.
Выводы по лекции
  • Базовая модель $m\dot{v} = F_x - F_r$ подходит для всех, но не отражает специальных требований ТЗ.
  • Каждая группа вариантов требует дополнительных уравнений: энергопотребление, шум, тепло, препятствия и т.д.
  • Недостающие параметры ($r$, $n$, $k_m$, $k_e$, $R$) не угадываются, а рассчитываются из физических ограничений.
  • В Simulink сначала собираем базовую модель, затем добавляем специфические блоки.
Лекция 3: Сенсорные системы, шумы и люфты
НЕДЕЛЯ 3: СЕНСОРЫ, ШУМЫ, ЛЮФТЫ И РЕГУЛЯТОРЫ

Лекция 3: Сенсорные системы, шумы и люфты в динамике

Моделирование датчиков, помех, механических люфтов и введение в П-регулятор

1.5 часа
3
Сенсоры, шумы, люфты, П-регулятор
1.5 часа
Лекция
+
1. Модели датчиков для LFR

ИК-датчики линии

Принцип работы:

ИК-излучение отражается от поверхности. Чёрная линия поглощает свет, белый фон отражает. Напряжение на выходе пропорционально отражающей способности.

Передаточная характеристика (идеальная): $$U_{out} = U_{max} \cdot \left(1 - \frac{|x|}{w/2}\right), \quad |x| \leq w/2$$ где $x$ — отклонение от центра линии, $w$ — ширина линии.
Реальная характеристика (с учётом нелинейности): $$U_{out} = \frac{U_{max}}{1 + (x/x_0)^2}$$

Энкодеры

Модель с квантованием:

Энкодер выдаёт импульсы, соответствующие углу поворота. В Simulink моделируется как квантователь с шагом $\Delta \theta = 2\pi / N$, где $N$ — число импульсов на оборот.

$$\theta_{measured} = \Delta \theta \cdot \text{round}\left(\frac{\theta}{\Delta \theta}\right)$$ $$\omega_{measured} = \frac{\Delta \theta}{\Delta t} \cdot \text{количество импульсов за шаг}$$

Гироскопы

Модель гироскопа:

Измеряет угловую скорость. Основные погрешности: шум, дрейф нуля, температурная зависимость.

$$\omega_{measured} = \omega_{true} + b + n(t) + \alpha_T (T - T_0)$$ где $b$ — постоянное смещение (bias), $n(t)$ — шум, $\alpha_T$ — температурный коэффициент.
Пример параметров для учебного гироскопа MPU6050:
  • Чувствительность: 131 LSB/°/с
  • Шум: 0.05 °/с/√Гц
  • Дрейф: 0.1 °/с после прогрева
2. Моделирование шумов и помех

Типы шумов в Simulink

Тип шумаМодельБлок Simulink
Гауссовский белый шум$n(t) \sim \mathcal{N}(0, \sigma^2)$Random Number
Импульсные помехи$p(t) = A \cdot \delta(t-t_k)$Poisson + Pulse Generator
Дрейф нуля$b(t) = b_0 + \beta \cdot t$Ramp + Constant
Температурный дрейф$b(T) = \alpha_T (T - T_0)$Gain (с входом T)
Битые пиксели$U_{out} = 0$ при $x \in [x_1, x_2]$Switch + Dead Zone
Отношение сигнал/шум (SNR): $$SNR_{дБ} = 20 \log_{10}\left(\frac{U_{signal}}{U_{noise}}\right)$$

Выбор уровня шума под ТЗ

Для высокоточных вариантов (2,5,9) требования к шуму жёсткие. Рекомендуемые значения:

ВариантДопустимый шум$\sigma$ (ИК-датчик)
2 (Лабораторный точник)±2 мм0.02 от макс. сигнала
5 (Медицинский курьер)шум ≤40 дБ0.03 от макс. сигнала
9 (Учебный)наглядность0.05 (можно больше)
Пример модели ИК-датчика с шумом:
x ──►[f(x)]──► идеальный сигнал ──►(∑)──► U_out
                                   ▲
                                   │
                              [Random Number] σ=0.02
                                   │
                              [Poisson] (импульсы)
                                
3. Люфты в механической системе

⚙️ Модель люфта (backlash)

Люфт в редукторе:

Зазор между зубьями передач, при котором изменение направления движения не сразу передаётся на выходной вал.

Модель люфта в Simulink: $$\theta_{out} = \text{backlash}(\theta_{in}, \delta)$$ где $\delta$ — величина люфта в радианах (или градусах).

Блок Simulink: Backlash (Simulink/Discontinuities). Параметры:

  • Deadband width: $2\delta$ (полный размах)
  • Initial output: 0

Влияние люфта на точность

Для вариантов с высокими требованиями к точности (2,5,6) люфт критичен. Рекомендуемые значения по типу редуктора:

Тип редуктораЛюфт (угловые минуты)Люфт (рад)
Планетарный прецизионный5-10'0.0015-0.003
Прямозубый30-60'0.009-0.017
Червячный10-20'0.003-0.006
Косозубый15-30'0.004-0.009
Влияние люфта на позиционирование: $$\Delta x = \delta \cdot r \cdot n$$ где $r$ — радиус колеса, $n$ — передаточное число.
Пример для вар.2 (лабораторный точник):
Планетарный редуктор, люфт 10' = 0.003 рад, r=0.02 м, n=30
$\Delta x = 0.003 \cdot 0.02 \cdot 30 = 0.0018$ м = 1.8 мм
Это близко к требуемой точности ±2 мм — значит, люфт нужно учитывать!

Упругость колёс и подвески

Моделируется как пружина с жёсткостью $k$ и демпфером $c$:

$$F_{elastic} = k \cdot \Delta x + c \cdot \dot{\Delta x}$$

Влияет на колебания при резких ускорениях и торможениях.

4. П-регулятор для слежения за линией

️ Структура регулятора

Задача:

Удерживать робота на линии, управляя разностью скоростей левого и правого колеса.

      Ошибка e(t) = сигнал с датчиков (отклонение)
             │
             ▼
      [Kp] ──► Разность скоростей Δu
             │
             ▼
u_left  = u0 + Δu/2
u_right = u0 - Δu/2
                            
П-регулятор: $$\Delta u(t) = K_p \cdot e(t)$$ $$u_{left} = u_0 + \frac{\Delta u}{2}, \quad u_{right} = u_0 - \frac{\Delta u}{2}$$

Расчёт коэффициента Kp

Kp выбирается из условия устойчивости и желаемой скорости реакции.

Оценочная формула (для системы с моментом инерции J): $$K_p \approx \frac{J \cdot \omega_c}{k_m \cdot n \cdot \eta}$$ где $\omega_c$ — желаемая частота среза (рад/с), обычно 2-5 рад/с.

Более точный подбор — методом проб в Simulink:

  1. Начать с малого Kp (0.1-0.5)
  2. Увеличивать до появления колебаний
  3. Взять Kp = 0.5·Kp_критическое

Влияние шумов и люфтов на регулятор

  • Шумы вызывают высокочастотные колебания управления → нужно ограничивать Kp или добавлять фильтр
  • Люфт приводит к запаздыванию и может вызвать автоколебания
  • Рекомендация: при наличии люфта Kp выбирают в 2-3 раза меньше, чем для идеальной системы
Важно: П-регулятор не устраняет статическую ошибку. Для точного позиционирования (вар.2,5) потребуется ПИД-регулятор (следующая лекция).
Пример для вар.1:
J ≈ 0.002 кг·м², km=0.012, n=10, η=0.7
При ωc=3 рад/с: Kp ≈ 0.002·3/(0.012·10·0.7) = 0.071
Начинаем с Kp=0.07, увеличиваем до появления колебаний.
5. Что важно для разных групп вариантов
ГруппаКритичные эффектыЧто моделировать
1. ЭкономНизкая стоимостьПростые датчики (2-3 шт), большой шум, люфт
2. ВысокоточныеТочность, шумМного датчиков (8-12), малый шум, малый люфт, калибровка
3. ПромышленныеНадёжность, препятствияДатчики препятствий, люфт, упругость
4. ЭкстремальныеСкорость, сцеплениеБыстрые датчики, срыв сцепления, аэродинамика
Вывод: Модель датчиков, шумов и люфтов должна соответствовать требованиям ТЗ и группе варианта.
Ключевые формулы лекции
$$U_{IR}(x) = \frac{U_{max}}{1 + (x/x_0)^2}$$
$$\theta_{measured} = \Delta \theta \cdot \text{round}\left(\frac{\theta}{\Delta \theta}\right)$$
$$\omega_{measured} = \omega_{true} + b + n(t) + \alpha_T (T - T_0)$$
$$\theta_{out} = \text{backlash}(\theta_{in}, \delta)$$
$$\Delta x = \delta \cdot r \cdot n$$
$$\Delta u(t) = K_p \cdot e(t)$$
$$K_p \approx \frac{J \cdot \omega_c}{k_m \cdot n \cdot \eta}$$
Лекция 4: Интеграция моделей и анализ динамики разгона
НЕДЕЛЯ 4: ИНТЕГРАЦИЯ И АНАЛИЗ

Лекция 4: Интеграция моделей и анализ динамики разгона

Объединение всех усложнений в единую модель и верификация по ТЗ

1.5 часа
4
Интеграция моделей и анализ разгона
1.5 часа
Лекция
+
1. Что мы сделали за 3 недели
НеделяЛекцияПрактикаЧто добавили в модель
1Основы системного анализаЗнакомство с вариантомБазовые параметры, IPO-модель
2Расширенные модели динамикиРасчёт недостающих параметров, сборка расширенной моделиЭнергопотребление, шум, тепло, препятствия, аэродинамика и т.д.
3Сенсоры, шумы, люфты, П-регуляторМоделирование датчиков, реализация П-регулятораИК-датчики с шумами, энкодеры, люфт, обратная связь
Текущее состояние: у каждого студента есть модель, учитывающая:
  • Динамику с дополнительными силами (по группе варианта)
  • Датчики с шумами и люфтами
  • П-регулятор для слежения за линией
2. Интеграция всех компонентов в единую модель

️ Общая архитектура финальной модели

┌─────────────────────────────────────────────────────────────┐
│                      Входное воздействие                      │
│              (желаемая траектория / ступенчатый сигнал)       │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│                    Блок регулятора (П)                        │
│  e = U_ref - U_IR                                             │
│  Δu = Kp * e                                                  │
│  u_left = u0 + Δu/2, u_right = u0 - Δu/2                      │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│              Модель динамики (с усложнениями)                 │
│  • Два мотора с электромеханикой                              │
│  • Силы: Fr, Fa, Fg, F_step, F_obs (по варианту)             │
│  • Тепловая модель (по варианту)                              │
│  • Люфт в редукторе (Backlash)                                │
│  • Расчёт тока, мощности                                      │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────┐
│                    Модели датчиков                            │
│  • ИК-датчики (с шумами, выбросами)                          │
│  • Энкодеры (с квантованием)                                  │
│  • Гироскоп (с дрейфом) (опционально)                        │
└─────────────────────────────────────────────────────────────┘
                              │
                              └──────────► U_IR (обратная связь)
                            
Принцип интеграции:

Все дополнительные блоки должны быть параметризованы и включаться/отключаться без изменения структуры модели. Это позволит исследовать влияние каждого эффекта отдельно.

Рекомендации по структуре модели:

  • Используйте подсистемы (Subsystem) для каждого крупного блока (регулятор, динамика, датчики).
  • Выносите параметры в workspace через скрипт инициализации.
  • Для исследования влияния отдельных эффектов используйте Manual Switch или If-блоки.
  • Все сигналы, важные для анализа, выводите на Scope и в To Workspace.
Пример структуры в Simulink:
FINAL_MODEL/
├── init_script.m (загружает все параметры)
├── Reference (Constant / Signal Builder)
├── P_Controller (Subsystem)
├── Robot_Dynamics (Subsystem)
│   ├── Motors
│   ├── Forces (Fr, Fa, F_step...)
│   ├── Thermal (если есть)
│   └── Backlash
├── Sensors (Subsystem)
│   ├── IR_Array
│   ├── Encoders
│   └── Gyro
└── Scopes & To Workspace
                            
3. Анализ динамики разгона

Ключевые показатели разгона

ПоказательОбозначениеФормулаЕд. изм.
Время разгона до 90% скорости$t_{90}$$v(t_{90}) = 0.9 v_{max}$с
Время установления (5% коридор)$t_s$$|v(t) - v_{уст}| < 0.05 v_{уст}$ для $t > t_s$с
Перерегулирование$OS$$\frac{v_{max} - v_{уст}}{v_{уст}} \cdot 100\%$%
Установившаяся скорость$v_{уст}$$\lim_{t \to \infty} v(t)$м/с
Максимальное ускорение$a_{max}$$\max(\frac{dv}{dt})$м/с²
v(t)
│   ┌──────────────────── v_уст
│  ╱│
│ ╱ │
│╱  │
│   │
└───┴──────────────── t
   t90  ts
                            

Рис. 1. Характерные точки переходного процесса

Как измерить в Simulink

  1. Запустите симуляцию с достаточно большим временем (чтобы скорость вышла на установившийся режим).
  2. Используйте блоки To Workspace для сохранения $v(t)$ и $t$.
  3. В MATLAB после симуляции выполните скрипт анализа:
    % анализ разгона v_data = v.signals.values; % массив скорости t_data = v.time; % массив времени v_ss = v_data(end); % установившаяся скорость % время достижения 90% idx_90 = find(v_data >= 0.9*v_ss, 1, 'first'); t90 = t_data(idx_90); % перерегулирование v_max = max(v_data); OS = (v_max - v_ss)/v_ss * 100; % время установления (5% коридор) tol = 0.05*v_ss; idx_ts = find(abs(v_data - v_ss) > tol, 1, 'last'); if isempty(idx_ts) ts = 0; else ts = t_data(idx_ts + 1); end fprintf('t90 = %.2f с, ts = %.2f с, OS = %.1f%%, v_ss = %.2f м/с\n', t90, ts, OS, v_ss);
Важно: Для разных вариантов могут быть свои требования к этим показателям. Например, для вар.2 (точник) важен ts и OS, для вар.4 (гонщик) — t90.
4. Верификация соответствия требованиям ТЗ

✅ Таблица проверки для каждого варианта

ГруппаТребование ТЗКак проверитьКритерий
1. Экономv ≥ 0.8 м/с (вар.1)v_уст из анализа≥0.8
OS ≤ 20% (вар.1)OS из анализа≤20%
P_el ≤ 15 Вт (вар.8)Макс. мощность≤15
2. ВысокоточныеТочность ±2 мм (вар.2)max|e(t)| при слежении≤2 мм
L_p ≤ 40 дБ (вар.5)Расчёт шума≤40
ts ≤ 1.5 с (вар.2)ts из анализа≤1.5
3. ПромышленныеF_x ≥ 50 Н (вар.3)Сила тяги≥50
s_brake ≤ 0.5 м (вар.6)Тормозной путь≤0.5
h_step ≤ 0.05 м (вар.7)Преодоление препятствияУспех
4. Экстремальныеv ≥ 2.5 м/с (вар.4)v_уст≥2.5
MTBF ≥ 5000 ч (вар.10)Тепловая модельT ≤ T_max
μ = 0.22..0.80 (вар.11)Проверка сцепленияНет пробуксовки
Процедура верификации:
  1. Запустить модель в типовых режимах (разгон, движение по прямой, поворот, торможение).
  2. Для каждого режима измерить требуемые показатели.
  3. Сравнить с ТЗ.
  4. Если показатели не достигаются — вернуться к выбору компонентов или настройке Kp.
Пример для вар.2 (лабораторный точник):
Режим разгона: v_уст = 0.38 м/с (требование 0.3-0.4) ✓
                ts = 1.2 с (требование ≤1.5) ✓
                OS = 4% (требование ≤5%) ✓
Режим слежения: max ошибка = 1.8 мм (требование ±2 мм) ✓
Вывод: ТЗ выполняется.
                            
5. Сбор данных для отчёта

Какие данные нужно сохранить

Тип данныхРежим симуляцииЧто сохранять
РазгонСтупенчатое задание скоростиv(t), a(t), i(t), T(t) (если есть)
Движение по прямойПостоянная заданная скоростьv(t), ошибка слежения
ПоворотЗадание траектории с изгибомТраектория x(t), y(t), ошибка
ТорможениеСтупенчатое снижение заданияv(t), s_brake
Препятствие (если есть)Внешнее воздействиеv(t), F_step, факт преодоления

Использование блоков To Workspace

% Настройка блока To Workspace Variable name: v_data Save format: Structure With Time Decimation: 1 (сохранять все точки) Sample time: 0 (наследовать)

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

v_data.time % массив времени v_data.signals.values % массив значений

Построение графиков для отчёта

% Пример построения графика скорости figure; plot(v_data.time, v_data.signals.values, 'b-', 'LineWidth', 1.5); xlabel('Время, с'); ylabel('Скорость, м/с'); title('Разгон робота'); grid on; saveas(gcf, 'acceleration.png');
Критерий готовности: у вас есть все графики и численные значения для заполнения отчёта.
Ключевые формулы лекции
$$t_{90} = \min\{t: v(t) \geq 0.9 v_{уст}\}$$
$$OS = \frac{v_{max} - v_{уст}}{v_{уст}} \cdot 100\%$$
$$t_s = \min\{t: |v(\tau) - v_{уст}| \leq 0.05 v_{уст} \ \forall \tau \geq t\}$$
$$e_{max} = \max_t |x_{ref}(t) - x(t)|$$
Практика 1: Знакомство с вариантом
НЕДЕЛЯ 1: ПРАКТИКА

Практика 1: Знакомство с вариантом

Анализ технического задания и формализация параметров

1.5 часа
2
Методика анализа технического задания
1.5 часа
Практика
+

Чек-лист для студента:

  1. Выделение ключевых параметров:
    • Масса робота (m)
    • Коэффициент трения (μ)
    • Целевая скорость (v_target)
    • Длина трассы (L)
    • Количество поворотов
  2. Определение ограничений:
    • Бюджетные ограничения
    • Энергетические ограничения
    • Ограничения по безопасности
    • Эксплуатационные ограничения
  3. Выделение критериев успеха:
    • Вероятность успеха (P_success)
    • Точность позиционирования
    • Скорость выполнения задачи
    • Энергоэффективность
  4. Идентификация уникальных требований (особые условия, интерфейсы).
  5. Формализация задачи (математическая модель, критерии оптимизации).

MATLAB код для создания файла параметров

% Функция для создания параметров варианта function create_variant_params(variant_number) params = get_base_parameters(variant_number); params.mass = []; % [кг] params.mu = []; % коэф. трения params.target_speed = []; % [м/с] params.overshoot_limit = []; params.constraints.budget = []; save(sprintf('variant_%d_params.mat', variant_number), 'params'); end
Задание

Создайте файл параметров для вашего варианта.

.m
variant_parameters.m
Параметры робота
Практика 3: Расчёт параметров для усложнённых моделей
НЕДЕЛЯ 2: ПРАКТИКУМ

Практика 3: Расчёт недостающих параметров для усложнённых моделей

Определяем тепловые, акустические, механические и другие параметры, которых нет в ТЗ

1.5 часа
3
Расчёт параметров для усложнений
1.5 часа
Практика
+
Что мы уже умеем

В Практике 2 мы научились рассчитывать базовые параметры:

  • Радиус колеса $r$ и передаточное число $n$
  • Силу тяги $F_x$ и момент $\tau_{motor}$
  • Выбор двигателя ($k_m$, $k_e$, $R$)
  • Коэффициенты $k_1$, $k_2$ для Simulink
Теперь задача сложнее: в Лекции 2 мы добавили новые физические эффекты — тепло, шум, препятствия, переменное сцепление и т.д. Для них нужны дополнительные параметры, которых нет в ТЗ и которые мы не рассчитывали раньше.
Какие параметры нужны для усложнённых моделей
ГруппаЭффектНедостающий параметрОбозначениеЕд. изм.
1. ЭкономЭнергопотреблениеПостоянная мощность (электроника)$P_{const}$Вт
КПДКПД двигателя в рабочей точке$\eta_{motor}$
2. ВысокоточныеАкустический шумКоэффициент шума от di/dt$\beta_{noise}$дБ/(А/с)
Амплитуда когинга (зубцовых пульсаций)$A_{cogging}$
ВибрацииКоэффициент вибраций от ускорения$k_{vib}$$g/(м/с²)$
НестационарностьДиапазон изменения массы$\Delta m$кг
3. ПромышленныеТепловая модельТепловое сопротивление$R_{th}$°C/Вт
Теплоёмкость двигателя$C_{th}$Дж/°C
ТорможениеУстановившееся замедление$a_{brake}$м/с²
ПрепятствияКоэффициент упругости подвески$k_{susp}$Н/м
Запас устойчивостиВысота центра масс$h_{cg}$м
4. ЭкстремальныеАэродинамикаКоэффициент аэродинамического сопротивления$C_x$
Лобовая площадь$A$м²
Crowd avoidanceЖёсткость "мягкого" бампера$k_{soft}$Н/м
Переменное сцеплениеКоэффициент влияния влажности$k_{\mu}$1/%
RecoveryПорог срыва сцепления$\varepsilon$

Эти параметры не даны в ТЗ! Их нужно оценить по справочникам, аналогиям или разумным предположениям.

Методики оценки недостающих параметров
Группа 1: Эконом-решения (вар. 1, 8)

Для варианта 8 (Офисный логист) — энергопотребление

$$P_{const} = P_{el} - P_{mech} \approx 2..5 \text{ Вт (контроллер, датчики)}$$

Рекомендация: принять $P_{const} = 3$ Вт для первого приближения.

⚙️ КПД двигателя $\eta_{motor}$

$$\eta_{motor} = \frac{P_{mech}}{P_{el}} = \frac{F_x \cdot v}{U \cdot i}$$

Для микродвигателей (N20) $\eta_{motor} \approx 0.6..0.75$ в рабочей точке.

Пример для вар.8: Принимаем $\eta_{motor} = 0.7$, тогда полный КПД привода $\eta_{total} = \eta_{motor} \cdot \eta_{gear} = 0.7 \cdot 0.7 = 0.49$.
Группа 2: Высокоточные (вар. 2, 5, 9)

Для варианта 5 (Медицинский курьер) — акустический шум

$$L_p = 20 \log_{10}\left(\frac{A}{A_0}\right), \quad A \propto \left|\frac{di}{dt}\right| + A_{cogging}$$

Коэффициент $\beta_{noise}$: показывает, на сколько дБ растёт шум при увеличении di/dt на 1 А/с.

Для бесшумных двигателей (Faulhaber) $\beta_{noise} \approx 2..3$ дБ/(А/с). Для обычных коллекторных — до 10 дБ/(А/с).

Когинг (зубцовые пульсации) $A_{cogging}$

Для серводвигателей с косозубым редуктором $A_{cogging} \approx 0.05..0.1$ от среднего момента. Для обычных — 0.2..0.3.

Вибрации $k_{vib}$

$$a_{vib} = k_{vib} \cdot a \quad [g]$$

Коэффициент вибраций: для прецизионных двигателей $k_{vib} \approx 0.05..0.1$ $g/(м/с²)$.

Для варианта 9 (Учебный тренажёр) — диапазон изменения параметров

$$\Delta m = \pm 0.3 \text{ кг (добавление груза)}$$ $$\Delta k_m = \pm 20\% \text{ (имитация старения)}$$
Пример для вар.5: Принимаем $\beta_{noise} = 3$ дБ/(А/с), $A_{cogging} = 0.1$, $k_{vib} = 0.08$.
Группа 3: Промышленные (вар. 3, 6, 7)

️ Для варианта 3 (Промышленный тяжеловес) — тепловая модель

$$T_m = T_{amb} + R_{th} \cdot P_{loss}, \quad P_{loss} = i^2 R$$

Тепловое сопротивление $R_{th}$: для двигателей с естественным охлаждением $R_{th} \approx 2..5$ °C/Вт. С принудительным — 0.5..1 °C/Вт.

Теплоёмкость $C_{th}$: определяет скорость нагрева. $C_{th} \approx 50..200$ Дж/°C в зависимости от массы двигателя.

Для варианта 6 (Библиотечный помощник) — торможение

$$s_{brake} = \frac{v^2}{2 a_{brake}} \leq 0.5 \text{ м}$$

Из этого можно найти требуемое замедление $a_{brake} \geq \frac{v^2}{2 \cdot 0.5}$.

Для v = 0.6 м/с: $a_{brake} \geq 0.36$ м/с². Реально достижимо 0.5..1 м/с² рекуперативным торможением.

Для варианта 7 (Строительный инспектор) — препятствия

$$F_{step} = m g \left[1 - \left(1 - \frac{h}{r}\right)^2\right]^{1/2}$$

Здесь неизвестен только коэффициент упругости подвески $k_{susp}$, если нужно считать динамику наезда. Для первого приближения считаем подвеску жёсткой.

Запас устойчивости

$$SM = \frac{d/2}{h_{cg}} \quad \text{(для статической устойчивости)}$$

Высота центра масс $h_{cg}$: для колёсных роботов $h_{cg} \approx 0.3..0.5$ от высоты корпуса. Принимаем $h_{cg} = 0.1$ м для низких платформ, до 0.3 м для высоких.

Пример для вар.3: $R_{th} = 3$ °C/Вт, $C_{th} = 100$ Дж/°C, $h_{cg} = 0.15$ м.
⚡ Группа 4: Экстремальные (вар. 4, 10, 11)

Для варианта 4 (Соревновательный гонщик) — аэродинамика

$$F_a = \frac{1}{2} \rho C_x A v^2$$

Коэффициент аэродинамического сопротивления $C_x$: для обтекаемого корпуса 0.3..0.4, для плоского — 0.8..1.0.

Лобовая площадь $A$: ширина × высота робота. Для гонщика $A \approx 0.1 \times 0.1 = 0.01$ м².

Плотность воздуха $\rho = 1.2$ кг/м³ (при 20°C).

⚠️ Срыв сцепления (recovery)

Порог $\varepsilon$: при $F_x > \mu N (1 + \varepsilon)$ считаем, что началось буксование. Обычно $\varepsilon = 0.05..0.1$ (запас 5-10%).

Для варианта 10 (Аэропортный гид) — crowd avoidance

$$F_{obs}(d) = \begin{cases} k_{soft}(d_0 - d), & d \leq d_0 \\ 0, & d > d_0 \end{cases}$$

Жёсткость "мягкого" бампера $k_{soft}$: выбирается так, чтобы на расстоянии $d_0$ сила была достаточной для остановки.

$$k_{soft} \approx \frac{m \cdot a_{max}}{d_0}$$

Для m=5.8 кг, $a_{max}=1$ м/с², $d_0=0.5$ м → $k_{soft} \approx 11.6$ Н/м.

Для варианта 11 (Сельскохозяйственный) — переменное сцепление

$$\mu = \mu_0 + k_{\mu} \cdot RH$$

Коэффициент влияния влажности $k_{\mu}$: из диапазона μ=0.22 при RH=20% до μ=0.80 при RH=100%:

$$k_{\mu} = \frac{0.80 - 0.22}{100 - 20} = \frac{0.58}{80} = 0.00725 \ [1/\%]$$
Пример для вар.4: $C_x = 0.35$, $A = 0.012$ м², $\varepsilon = 0.1$.
Сводная таблица рекомендуемых значений (первое приближение)
ПараметрРекомендуемое значениеДля каких вариантов
$P_{const}$3 Вт8
$\eta_{motor}$0.71, 8
$\beta_{noise}$3 дБ/(А/с)5
$A_{cogging}$0.1 (отн.)5
$k_{vib}$0.08 g/(м/с²)5
$\Delta m$±0.3 кг9
$R_{th}$3 °C/Вт3
$C_{th}$100 Дж/°C3
$a_{brake}$0.5 м/с²6
$h_{cg}$0.15 м3, 6, 7
$C_x$0.354
$A$0.01..0.02 м²4
$k_{soft}$10..20 Н/м10
$k_{\mu}$0.00725 1/%11
$\varepsilon$ (срыв)0.14

Эти значения можно использовать, если нет более точных данных. В реальном проекте они уточняются экспериментально.

Алгоритм действий для вашего варианта
  1. Определите свою группу по таблице из Лекции 2.
  2. Выпишите из ТЗ все особые требования (шум, тепло, препятствия и т.д.).
  3. Для каждого требования найдите в методиках выше соответствующий недостающий параметр.
  4. Примите разумное значение из рекомендованной таблицы или рассчитайте по формулам.
  5. Запишите все параметры в расширенный скрипт инициализации.
Пример для вар.5 (Медицинский курьер):
Требование ТЗ: шум ≤40 дБ, вибрации ≤0.1g
Недостающие параметры:
- beta_noise = 3 дБ/(А/с)
- A_cogging = 0.1
- k_vib = 0.08 g/(м/с²)
- Допустимая производная тока: |di/dt| ≤ (40 - 20)/3 ≈ 6.7 А/с
                            
Расширенный MATLAB-шаблон с учётом специфики
%% init_variant_X_extended.m % Базовые параметры (из Практики 2) m = 1.8; % масса, кг r = 0.04; % радиус колеса, м n = 20; % передаточное число eta_gear = 0.75; % КПД редуктора km = 0.030; % Н·м/А ke = 0.030; % В·с/рад R = 1.8; % Ом U_nom = 18; % В Fr = 0.15; % сила сопротивления, Н %% Специфические параметры для вар.5 (Медицинский курьер) % Акустический шум beta_noise = 3; % дБ/(А/с) A_cogging = 0.1; % относительная амплитуда когинга di_max = 6.7; % максимальная производная тока, А/с % Вибрации k_vib = 0.08; % g/(м/с²) % Ограничения ТЗ Lp_max = 40; % дБ a_vib_max = 0.1; % g %% Сохранение save('variant_5_params_extended.mat');

Добавьте в этот шаблон параметры, соответствующие вашей группе.

Задание к следующему занятию
  1. Определите группу своего варианта по Лекции 2.
  2. Выпишите все специфические требования из ТЗ, которые требуют дополнительных параметров.
  3. Для каждого требования найдите или оцените недостающий параметр по методикам выше.
  4. Создайте расширенный скрипт инициализации init_variant_X_extended.m со всеми параметрами.
.m
init_variant_X_extended.m
Расширенный скрипт со всеми параметрами для усложнённой модели
.mat
variant_X_params_extended.mat
Сохранённые параметры
Важно: Если параметр не удаётся оценить — запишите, как вы его приняли и почему. В отчёте это будет обоснованием.
Практика 5: Моделирование датчиков и шумов
НЕДЕЛЯ 3: ПРАКТИКУМ

Практика 5: Моделирование датчиков и шумов в Simulink

Добавляем в модель сенсоры, шумы, люфты и анализируем их влияние

1.5 часа
5
Моделирование датчиков и шумов
1.5 часа
Практика
+
Цель работы

Добавить в существующую модель динамики (из Практики 4) блоки, моделирующие:

  • ИК-датчики линии с характеристикой $U(x)$
  • Шумы (гауссовский, импульсный, дрейф)
  • Энкодеры с квантованием
  • Люфт в редукторе (блок Backlash)

Исследовать, как шумы и люфты влияют на сигналы датчиков и точность системы.

Библиотека блоков для датчиков

ИК-датчик линии

$$U_{out} = \frac{U_{max}}{1 + (x/x_0)^2} + n(t) + p(t)$$
x ──►[Fcn: Umax/(1+(x/x0)^2)]──► идеальный сигнал ──►(∑)──► U_out
                                              ▲        ▲
                                              │        │
                                         [Noise]  [Impulse]
                            

Параметры для настройки:

  • $U_{max}$ — макс. напряжение (обычно 3.3 или 5 В)
  • $x_0$ — характерная ширина линии (0.005-0.01 м)
  • $\sigma$ — СКО шума (0.02-0.05 от Umax)
  • Вероятность импульсной помехи (0.01-0.05)

Энкодер с квантованием

$$\theta_{meas} = \frac{2\pi}{N} \cdot \text{round}\left(\frac{\theta \cdot N}{2\pi}\right)$$
θ ──►[Gain: N/(2π)]──►[Round]──►[Gain: 2π/N]──► θ_meas
                            

Параметры: $N$ — число импульсов на оборот (типовые значения 12, 24, 48, 360, 1024)

Гироскоп с дрейфом

$$\omega_{meas} = \omega_{true} + b_0 + \beta t + n(t)$$
ω_true ──►(∑)──► ω_meas
          ▲    ▲
          │    │
     [b0+βt] [Noise]
                            

⚙️ Люфт в редукторе

Используйте готовый блок Backlash из библиотеки Simulink/Discontinuities.

θ_motor ──►[Backlash]──► θ_wheel
                            

Параметр: Deadband width = $2\delta$ (полный размах люфта в радианах).

Рекомендуемые параметры для разных вариантов
ВариантЧисло ИК-датчиков$\sigma$ шума (отн.)Импульсные помехиЛюфт $\delta$ (рад)N энкодера
1 (Эконом)3-50.050.030.0112
2 (Точник)8-120.010.0050.0015360
3 (Тяжеловес)4-60.030.020.00548
4 (Гонщик)6-80.020.010.0081024
5 (Мед. курьер)8-100.010.0020.003512
6 (Библиотечный)8-120.020.010.004256
7 (Строительный)4-6 + ToF0.040.050.00648
8 (Офисный)4-60.030.020.00824
9 (Учебный)4-80.050.050.0112
10 (Аэропорт)12+ ToF0.020.010.003512
11 (Сельхоз)6-80.030.020.005256

Используйте эти значения как отправную точку. При необходимости корректируйте.

Задание 1: Модель ИК-датчика с шумом
  1. Создайте подсистему (Subsystem) "IR_Sensor".
  2. Вход: отклонение от линии $x$ (м).
  3. Выход: напряжение $U$ (В).
  4. Реализуйте формулу:
    $$U = \frac{5}{1 + (x/0.01)^2} + 0.1 \cdot \text{randn} + 0.5 \cdot \text{impulse}$$
    где impulse = 1 с вероятностью 0.01, иначе 0.
  5. Подключите осциллограф и посмотрите сигнал при изменении x от -0.02 до 0.02 м.
Результат: График зависимости U(x) с шумом и выбросами.
Задание 2: Модель энкодера с квантованием
  1. Создайте подсистему "Encoder".
  2. Вход: угол поворота $\theta$ (рад).
  3. Выход: измеренный угол $\theta_{meas}$ (рад).
  4. Реализуйте квантование с N=48 импульсов на оборот:
    $$\theta_{meas} = \frac{2\pi}{48} \cdot \text{round}\left(\frac{\theta \cdot 48}{2\pi}\right)$$
  5. Подайте на вход линейно растущий сигнал $\theta = 10t$, сравните вход и выход.
Вопрос: Какова ошибка квантования? Как она зависит от N?
Задание 3: Люфт в редукторе
  1. Добавьте блок Backlash в модель привода.
  2. Параметры: Deadband width = 0.02 рад (примерно 1°).
  3. Подайте на вход синусоидальный сигнал малой амплитуды (0.01 рад) и посмотрите выход.
  4. Подайте сигнал с изменением направления (например, треугольный) и пронаблюдайте гистерезис.
Синус 0.01 рад ──►[Backlash]──► Scope
                            
Наблюдение: При малых амплитудах выход может быть нулевым — это зона нечувствительности.
Задание 4: Интеграция в полную модель
  1. Откройте свою модель из Практики 4 (variant_X_extended.slx).
  2. Добавьте в неё блоки датчиков:
    • ИК-датчик (или массив датчиков) для измерения отклонения от линии.
    • Энкодеры на валах двигателей.
    • Гироскоп для измерения угловой скорости (опционально).
  3. Добавьте люфт между двигателем и колесом.
  4. Запустите симуляцию и сравните сигналы с датчиков (зашумлённые) с реальными значениями.
  5. Сделайте выводы о влиянии шумов и люфта.
Ожидаемый результат:
  • Шумы вызывают флуктуации показаний датчиков.
  • Люфт приводит к запаздыванию и гистерезису.
  • При движении по линии ошибка измерения отклонения возрастает из-за шумов.
Дополнительное задание (для вариантов 5,9,11)

Для варианта 5 (медицинский): Добавьте модель шума с ограничением по дисперсии так, чтобы результирующая ошибка позиционирования не превышала 2 мм.

Для варианта 9 (учебный): Сделайте параметры шума и люфта изменяемыми извне (через константы или слайдеры).

Для варианта 11 (сельхоз): Добавьте зависимость уровня шума от влажности (внешний сигнал RH).

Контрольные вопросы
  1. Как влияет увеличение числа ИК-датчиков на точность определения положения линии?
  2. Почему при квантовании энкодера возникает ошибка? Как её уменьшить?
  3. Как люфт влияет на точность позиционирования при движении в одну сторону и при реверсе?
  4. Какой тип шума наиболее критичен для вашего варианта?
  5. Как можно скомпенсировать дрейф гироскопа?
Задание к следующему занятию
  1. Добавить в свою модель все необходимые датчики с шумами согласно варианту.
  2. Добавить люфт в редуктор.
  3. Запустить симуляцию, получить графики зашумлённых сигналов.
  4. Сделать выводы о влиянии шумов и люфта на точность.
  5. Сохранить модель как variant_X_sensors.slx.
.slx
variant_X_sensors.slx
Модель с датчиками, шумами и люфтами
.png
sensor_signals.png
Графики сигналов датчиков
Практика 7: Интеграция модели и анализ разгона
НЕДЕЛЯ 4: ПРАКТИКУМ

Практика 7: Интеграция модели и анализ разгона

Объединяем все компоненты, проводим финальные симуляции и верификацию

1.5 часа
7
Интеграция и анализ разгона
1.5 часа
Практика
+
Цель работы

Объединить все ранее разработанные компоненты в единую финальную модель, провести комплексный анализ динамики разгона и проверить соответствие требованиям технического задания.

Результат: готовая к сдаче модель, файлы данных и численные показатели для отчёта.
Чек-лист: что должно быть готово
КомпонентОткудаСтатус
Параметры варианта (базовые)Практика 2
Расширенные параметры (тепло, шум, ...)Практика 3
Модель динамики с усложнениямиПрактика 4
Модели датчиков с шумами и люфтомПрактика 5
П-регулятор с настроенным KpПрактика 6
Скрипт инициализации (все параметры)Практика 3-6
Важно: Если какой-то компонент не готов или не отлажен — вернитесь к соответствующей практике. Интеграция "сырых" блоков приведёт к неработоспособности модели.
Задание 1: Сборка финальной модели
  1. Создайте новую модель variant_X_final.slx.
  2. Скопируйте в неё все отработанные подсистемы из предыдущих моделей:
    • Подсистему регулятора (из Практики 6)
    • Подсистему динамики (из Практики 4)
    • Подсистему датчиков (из Практики 5)
  3. Организуйте связи между подсистемами:
    • Выход датчиков (U_IR) → вход регулятора (обратная связь)
    • Выход регулятора (u_left, u_right) → вход динамики
    • Из динамики: v, ω, θ → входы датчиков
  4. Добавьте блоки To Workspace для всех сигналов, которые понадобятся в анализе:
    • Скорость v(t)
    • Ускорение a(t)
    • Ток i(t)
    • Ошибка слежения e(t)
    • Температура T(t) (если есть)
    • Траектория x(t), y(t) (если моделируется)
  5. Запустите симуляцию с базовым сценарием (ступенчатое задание) и проверьте, что всё работает.
┌────────────────────────────────────────────────────┐
│                  FINAL MODEL                         │
├────────────────────────────────────────────────────┤
│                                                      │
│  [Reference] ──► [P_Controller] ──► [Dynamics] ──┐  │
│                        ▲              │           │  │
│                        │              ▼           │  │
│                        └─────── [Sensors] ◄───────┘  │
│                                                      │
│  [To Workspace] ◄──────────────────────────────────┘  │
└────────────────────────────────────────────────────┘
                            
Совет: Используйте блоки Goto/From для передачи сигналов между подсистемами, чтобы не загромождать линии связи.
Задание 2: Анализ динамики разгона

Сценарий 1: Разгон до максимальной скорости

  1. Установите на входе регулятора ступенчатое задание: $U_{ref} = U_{max}$ (соответствует движению по прямой).
  2. Задайте время симуляции 5-10 секунд (до выхода на установившийся режим).
  3. Запустите симуляцию и сохраните данные.
  4. Выполните скрипт анализа (из Лекции 4) и получите:
    • $v_{уст}$ — установившаяся скорость
    • $t_{90}$ — время разгона до 90%
    • $t_s$ — время установления (5% коридор)
    • $OS$ — перерегулирование
    • $a_{max}$ — максимальное ускорение

Сценарий 2: Реакция на ступенчатое изменение задания

  1. Подайте на вход сигнал, изменяющийся с 0 до U_max в момент t=1 с, и обратно в 0 в t=5 с.
  2. Проанализируйте переходные процессы при разгоне и торможении.
% Скрипт анализа для всех сценариев function analyze_step_response(v_data, t_data, v_target) v_ss = v_data(end); t90_idx = find(v_data >= 0.9*v_ss, 1); t90 = t_data(t90_idx); v_max = max(v_data); OS = (v_max - v_ss)/v_ss * 100; tol = 0.05*v_ss; ts_idx = find(abs(v_data - v_ss) > tol, 1, 'last'); ts = t_data(ts_idx + 1); a = diff(v_data)./diff(t_data); a_max = max(a); fprintf('v_ss = %.2f м/с\n', v_ss); fprintf('t90 = %.2f с\n', t90); fprintf('ts = %.2f с\n', ts); fprintf('OS = %.1f%%\n', OS); fprintf('a_max = %.2f м/с²\n', a_max); % Проверка по ТЗ if v_ss >= v_target disp('✓ Скорость соответствует ТЗ'); else disp('✘ Скорость ниже требуемой'); end end
Ожидаемые результаты для разных групп:
  • Вар.1 (эконом): v_ss ≈ 0.8 м/с, OS ≤ 20%, t90 ≈ 1.5-2 с
  • Вар.2 (точник): v_ss ≈ 0.35 м/с, OS ≤ 5%, ts ≤ 1.5 с
  • Вар.3 (тяжеловес): v_ss ≥ 0.6 м/с, F_x ≥ 50 Н
  • Вар.4 (гонщик): v_ss ≥ 2.5 м/с, a_max большая
Задание 3: Верификация всех требований ТЗ

Для каждого требования из вашего ТЗ проведите соответствующий тест:

ТребованиеТестКритерий
Максимальная скоростьРазгон до упораv_уст ≥ v_target
ПеререгулированиеРазгонOS ≤ OS_max
Время установленияРазгонts ≤ ts_max
Точность слеженияДвижение по трассеmax|e| ≤ ε_max
Тяговое усилиеРазгон с грузомF_x ≥ F_req
Тормозной путьЭкстренное торможениеs_brake ≤ s_max
Потребляемая мощностьРазгонP_max ≤ P_limit
ТемператураДлительный прогонT_max ≤ T_limit
ШумРазгонL_p ≤ L_limit

Для каждого теста запишите полученное значение и вывод (соответствует / не соответствует).

Если какой-то показатель не соответствует ТЗ — попробуйте:
  • Изменить Kp (возможно, нужно уменьшить для снижения OS или увеличить для быстродействия)
  • Вернуться к выбору компонентов (более мощный двигатель, другой редуктор)
  • Проверить, не слишком ли велики шумы или люфт
В реальном проекте это итерационный процесс.
Задание 4: Сбор данных для отчёта

Какие графики нужно сохранить:

  1. График скорости v(t) при разгоне (с отметками t90, ts, v_уст).
  2. График ускорения a(t) при разгоне.
  3. График тока i(t) и мощности P(t).
  4. График ошибки слежения e(t) при движении по трассе.
  5. Траектория робота x(t), y(t) (если моделировали).
  6. График температуры T(t) (если есть тепловая модель).
  7. График уровня шума L_p(t) (для вар.5).

Какие численные значения записать:

  • Все показатели из задания 2 и 3.
  • Параметры модели (m, r, n, km, ke, R, Kp).
  • Особые параметры (Rth, Cx, A, k_soft, k_mu и т.д.).
% Сохранение графиков в файлы figure(1); plot(t_data, v_data, 'b-', 'LineWidth', 1.5); hold on; plot([0 t_data(end)], [v_ss v_ss], 'r--'); plot([t90 t90], [0 v_ss], 'g--'); xlabel('Время, с'); ylabel('Скорость, м/с'); title('Разгон робота'); legend('v(t)', 'v_уст', 't90'); grid on; saveas(gcf, 'v_profile.png');
Что должно быть готово к концу занятия
.slx
variant_X_final.slx
Финальная интегрированная модель
.m
init_variant_X_final.m
Скрипт инициализации со всеми параметрами
.m
analyze_results.m
Скрипт анализа (выдаёт численные значения)
.png
*.png
Все сохранённые графики (5-10 файлов)
.mat
results.mat
Сохранённые данные симуляции
Всё это понадобится для оформления отчёта на Практике 8.
Практика 2: Три задачи системного аналитика
НЕДЕЛЯ 2: ПРАКТИКУМ

Практика 2: Три задачи системного аналитика

ВЫДЕЛИТЬ → НАЗНАЧИТЬ → СОБРАТЬ. Полный цикл от ТЗ до Simulink-модели.

1.5 часа
3
Задачи 1–3: Выделить, Назначить, Собрать
1.5 часа
Практика
+
Цель работы

???? ЗАДАЧА 1. ВЫДЕЛИТЬ

  • Извлечь из ТЗ жёсткие параметры: $m$, $v_{\max}$, $\mu$, $c_r$
  • Выписать ограничения

⚙️ ЗАДАЧА 2. НАЗНАЧИТЬ

  • Выбрать колёса, редуктор, двигатель
  • Рассчитать $k_1$, $k_2$

???? ЗАДАЧА 3. СОБРАТЬ

  • Simulink-модель динамики
  • Графики $v(t), a(t), x(t)$
1. Модель динамики
$$ m\frac{dv}{dt} = F_x - F_r $$
$$ F_x = k_1 U - k_2 v $$
$$ k_1 = \frac{\eta n k_m}{R},\quad k_2 = \frac{\eta n^2 k_e k_m}{R} $$
$$ F_r = c_r m g $$
2. База знаний: колёса, редукторы, двигатели, драйверы

ТАБЛИЦА 1. КОЛЁСА

ТипМатериал / μДиаметр, ммНазначение
МиниатюрноеПолиуретан (0.25–0.30)20–30Склад, офис
ПрецизионноеРезина мед. (0.50–0.60)18–25Лаборатории
ГрузовоеПолиамид (0.15–0.20)90–120Промышленность
ВысокоскоростноеСиликон (0.70–0.75)70–90Соревнования
БесшумноеРезина мягкая (0.40–0.45)35–50Медицина
МягкоеТермоэластопласт (0.30–0.40)50–70Библиотеки
ВнедорожноеПневматика (0.25–0.70)120–150Стройка
Высокий КПДПолиуретан тв. (0.30–0.35)45–60Энергоэффективность
УчебноеРезина (0.45–0.50)30–40Образование
АвиационноеРезина спец. (0.35–0.40)70–90Аэропорты
АгрохимстойкоеРезина агро (0.20–0.80)110–130Теплицы

ТАБЛИЦА 1.1. РЕДУКТОРЫ

ТипПередаточное $n$КПД $\eta$ЛюфтПрименение
Прямозубый пластик5:1–20:10.65–0.75ВысокийЭконом
Планетарный10:1–50:10.70–0.80Очень низкийТочные
Червячный30:1–80:10.50–0.65НизкийТяговые
Косозубый15:1–30:10.75–0.85НизкийБесшумные

ТАБЛИЦА 2. ДВИГАТЕЛИ

ТипМодель$k_m$, Н·м/А$k_e$, В·с/рад$R$, Ом$U$, В$P$, ВтЦена, руб
МикродвигательN200.010–0.0150.010–0.0153–86–121–3200–400
Серво прециз.Maxon DCX0.020–0.0300.020–0.0302–418–248–154000–6000
Щёточный тяг.MY10160.12–0.180.12–0.180.3–0.624200–3003000–4500
БесколлекторныйTurnigy0.030–0.0400.030–0.0400.1–0.31225–402500–3500
Серво низкошум.Faulhaber0.025–0.0350.025–0.0351.5–2.51815–255000–7000
Колл. с энкодеромPololu0.060–0.0800.060–0.0801.0–1.51220–301800–2500
ГерметичныйAMETEK0.20–0.250.20–0.250.2–0.336350–4505500–7000
Высокоэфф.Maxon EC0.040–0.0500.040–0.0500.5–0.82412–184800–6000
УчебныйIG320.015–0.0200.015–0.0202.5–4.0125–8800–1200
Сдвоенный резерв.Dunkermotoren0.090–0.1100.090–0.1100.4–0.648120–18011000–14000
Химстойкий BLDCEC-i 400.070–0.0900.070–0.0900.3–0.548100–15013000–16000

ТАБЛИЦА 3. ДРАЙВЕРЫ

ТипТок, АНапряжение, ВИнтерфейсЦена, руб
Эконом2×26–12ШИМ150–300
Прецизионный212–24USB/CAN8500–11000
Тяговый2×2512–24RC/PWM11000–14000
Гоночный BLDC4012DShot1500–2200
Бесшумный1.512–24RS23216000–20000
С рекуперацией2×1512USB/I2C8000–10000
Герметичный10036–48CAN25000–32000
USB-драйвер2×3.66–24ШИМ400–600
Учебный212ШИМ1000–1500
Резервированный2×3048EtherCAT29000–35000
Влагозащищённый1548CAN9000–11000
3. Алгоритм: три задачи по шагам

???? ЗАДАЧА 1. ВЫДЕЛИТЬ

ШагДействие
1.1Записать массу $m$ (кг)
1.2Записать $v_{\max}$ (м/с)
1.3Записать $\mu$ (коэф. сцепления)
1.4Определить $c_r$ по покрытию
1.5Выписать особые ограничения

⚙️ ЗАДАЧА 2. НАЗНАЧИТЬ

ШагДействиеФормула
2.1Задать время разгона $t_{\text{acc}}$1–2 с
2.2Выбрать $n$ (редуктор)5,10,15,20,30,50
2.3Рассчитать $r$$r = \frac{v_{\max}}{314/n}$
2.4$F_x$ (сила тяги)$F_x = 1.2(c_r m g + m v_{\max}/t_{\text{acc}})$
2.5Момент на колесе $\tau_{\text{wheel}}$$\tau_{\text{wheel}} = F_x r$
2.6Момент двигателя $\tau_{\text{motor}}$$\tau_{\text{motor}} = \tau_{\text{wheel}}/(n \eta)$
2.7Выбрать двигатель (табл.2)$\tau_{\text{motor}} \le \tau_{\text{ном}}$
2.8Выписать $k_m, k_e, R, U$из паспорта
2.9Выбрать редуктор (табл.1.1)$n, \eta$
2.10Выбрать драйвер (табл.3)$I_{\max} \ge \tau_{\text{motor}}/k_m$
2.11Рассчитать $k_1, k_2$$k_1 = \eta n k_m / R$, $k_2 = \eta n^2 k_e k_m / R$
2.12Проверить сцепление$F_x \le \mu m g$

???? ЗАДАЧА 3. СОБРАТЬ

ШагДействие
3.1Создать Simulink-модель: Constant, Gain, Add, Integrator, Scope
3.2Задать $k_1, k_2, m, F_r, U$
3.3Собрать $m\dot{v} = k_1U - k_2v - F_r$
3.4Получить $v(t)$, $a(t)$, $x(t)$
Задание к следующему занятию
ЧТО НУЖНО СДЕЛАТЬ:
  1. ВЫДЕЛИТЬ: Из ТЗ выписать $m, v_{\max}, \mu$, определить $c_r$.
  2. НАЗНАЧИТЬ: Выбрать компоненты, рассчитать $k_1$, $k_2$.
  3. СОБРАТЬ: Simulink-модель, графики $v(t), a(t), x(t)$.
.m
variant_X_calculation.m
Скрипт с расчётами
.slx
lfr_dynamics.slx
Simulink модель
Практика 4: Сборка усложнённых моделей в Simulink
НЕДЕЛЯ 2: ПРАКТИКУМ

Практика 4: Сборка усложнённых моделей в Simulink

Реализуем тепловые модели, шумы, препятствия и другие эффекты из Лекции 2

1.5 часа
4
Сборка усложнённых моделей
1.5 часа
Практика
+
От базовой модели к усложнённой

В Практике 2 мы собрали базовую модель динамики:

$$m\frac{dv}{dt} = k_1 U - k_2 v - F_r$$

В Лекции 2 мы рассмотрели дополнительные эффекты для разных групп вариантов:

  • Группа 1: энергопотребление, КПД
  • Группа 2: акустический шум, вибрации, нестационарность
  • Группа 3: тепловая модель, торможение, препятствия
  • Группа 4: аэродинамика, срыв сцепления, crowd avoidance, переменное μ
Цель практики: добавить в базовую модель Simulink блоки, реализующие эти эффекты, используя параметры, рассчитанные в Практике 3.
Базовая модель (что уже должно быть)
U ──►[ k1 ]──►(∑)──►[1/m]──►[∫]──► v
        ▲       │                     │
        │       ▼                     │
        └────[ k2 ]◄──────────────────┘
        │
        └────[ Fr ]──────────────────►(∑)
                            

Добавлены также блоки для тока и мощности:

v ──►[ n/r ]──► ω ──►[ ke ]──►(∑)──►[ 1/R ]──► i
                        ▲        │
                        │        │
U ─────────────────────┘        └──►[×U]──► P_el
                            
Библиотека блоков для усложнений

Группа 1: Энергопотребление (вар.8)

Добавляемые блоки:

  • Constant: $P_{const} = 3$ Вт
  • Add: $P_{total} = P_{el} + P_{const}$
  • Compare to Constant: проверка $P_{total} \leq 15$ Вт
  • Stop Simulation: остановка при превышении
    i ──►[×U]──► P_el ──►(∑)──► P_total ──►[≤15]──► Stop
                          ▲
                          │
                    [P_const]
                            

Группа 2: Шум и вибрации (вар.5)

Добавляемые блоки:

  • Derivative: для di/dt
  • Abs: |di/dt|
  • Gain: $\beta_{noise}$ (перевод в дБ)
  • Constant: $A_{cogging}$ (пульсации)
  • Add: сумма шумовых компонент
  • Compare: проверка $L_p \leq 40$ дБ
$$L_p = 20 \log_{10}\left(\frac{|di/dt| \cdot \beta_{noise} + A_{cogging}}{A_0}\right)$$
i ──►[d/dt]──►| |──►[β]──►[log]──►(∑)──► L_p
                                    ▲
                                    │
                              [A_cogging]
                            

Для вибраций: $a_{vib} = k_{vib} \cdot a$

a ──►[k_vib]──► a_vib ──►[≤0.1]──► (проверка)
                            

Группа 3: Тепло, торможение, препятствия

️ Тепловая модель (вар.3)
$$T_m = T_{amb} + R_{th} \cdot i^2 R, \quad \frac{dT}{dt} = \frac{i^2 R - (T-T_{amb})/R_{th}}{C_{th}}$$
i ──►[u²]──►[×R]──► P_loss ──►[÷C_th]──►[∫]──► T_m
                                    ▲        │
                                    │        │
                                    └──[ - ]─┘
                                    (T - T_amb)/R_th
                            
Тормозной путь (вар.6)
$$s_{brake} = \frac{v^2}{2 a_{brake}}$$
v ──►[u²]──►[÷(2·a_brake)]──► s_brake ──►[≤0.5]──► проверка
                            
Препятствия (вар.7)
$$F_{step} = m g \left[1 - \left(1 - \frac{h}{r}\right)^2\right]^{1/2}$$
h ──►[1 - h/r]──►[u²]──►[1 - ...]──►[sqrt]──►[×mg]──► F_step ──►(∑ сил)
                            

⚡ Группа 4: Аэродинамика, сцепление, crowd avoidance

Аэродинамика (вар.4)
$$F_a = \frac{1}{2} \rho C_x A v^2$$
v ──►[u²]──►[× 0.5·ρ·Cx·A ]──► F_a ──►(∑ сил) с минусом
                            
⚠️ Срыв сцепления (вар.4)
$$\text{Если } F_x > \mu m g (1+\varepsilon) \Rightarrow \text{буксование}$$
F_x ──►[> μmg(1+ε)]──► Switch ──► recovery_mode
                            
Crowd avoidance (вар.10)
$$F_{obs} = \begin{cases} k_{soft}(d_0 - d), & d \leq d_0 \\ 0, & d > d_0 \end{cases}$$
d ──►[d <= d0]──► Switch ──►[×k_soft]──► F_obs ──►(∑ сил)
         │                       ▲
         └──(d0 - d)─────────────┘
                            
Переменное сцепление (вар.11)
$$\mu = \mu_0 + k_{\mu} \cdot RH$$
RH ──►[×k_μ]──►(∑)──► μ ──► в блок проверки сцепления
                 ▲
                 │
               [μ0]
                            
Как интегрировать новые блоки

Общий принцип: все дополнительные силы (аэродинамика, препятствия, crowd avoidance) добавляются в сумматор сил со знаком минус. Тепловые и шумовые модели — параллельно, они не влияют на движение, только на ограничения.

           ┌── F_a
           │
           ├── F_step
U──►...──►(∑)──► движение
           │
           └── F_obs
                            

Дополнительные проверки (температура, шум, мощность) подключаются к соответствующим сигналам и могут останавливать симуляцию при нарушении.

Важно: Сначала добейтесь устойчивой работы базовой модели, затем добавляйте усложнения по одному и проверяйте их влияние.
Пример полной модели для варианта 5 (Медицинский курьер)

Параметры (из Практики 3):

  • Базовые: m=1.8, r=0.04, n=20, km=0.03, ke=0.03, R=1.8, Fr=0.15, U=18
  • Специфические: beta_noise=3, A_cogging=0.1, k_vib=0.08, di_max=6.7

Структура модели:

  1. Базовая часть: расчёт v, a, x, i, P_el
  2. Блок шума: di/dt → |di/dt| → β·|di/dt| + A_cogging → L_p
  3. Блок вибраций: a → k_vib·a → a_vib
  4. Блоки проверки: L_p ≤ 40, a_vib ≤ 0.1, |di/dt| ≤ 6.7
% Инициализация для вар.5 m=1.8; r=0.04; n=20; km=0.03; ke=0.03; R=1.8; Fr=0.15; U=18; beta_noise=3; A_cogging=0.1; k_vib=0.08; di_max=6.7; Lp_max=40; a_vib_max=0.1;

Ожидаемые результаты: при разгоне с максимальным ускорением di/dt может превысить лимит → симуляция остановится, нужно будет уменьшить ускорение (увеличить время разгона).

Чек-лист: что должно быть в финальной модели
КомпонентЕсть?
Базовая динамика: v, a, x
Расчёт тока i(t)
Расчёт мощности P_el(t)
Специфические блоки для вашей группы
Проверка ограничений из ТЗ (с остановкой или предупреждением)
Графики всех ключевых сигналов
Критерий готовности: модель работает и при нарушении любого требования ТЗ выдает сигнал (остановку или предупреждение).
Задание к следующему занятию
  1. Откройте свою базовую модель из Практики 2.
  2. Добавьте в неё специфические блоки согласно вашей группе (по материалам выше).
  3. Используйте параметры, рассчитанные в Практике 3.
  4. Добейтесь, чтобы модель работала и проверяла все ограничения ТЗ.
  5. Сохраните модель как variant_X_extended.slx.
  6. Сделайте скриншоты модели и графиков для отчёта.
.slx
variant_X_extended.slx
Расширенная модель с усложнениями
.m
init_variant_X_extended.m
Скрипт инициализации со всеми параметрами
.png
screenshots/
Папка со скриншотами
Практика 6: Реализация П-регулятора и анализ устойчивости
НЕДЕЛЯ 3: ПРАКТИКУМ

Практика 6: Реализация П-регулятора и анализ устойчивости

Замыкаем обратную связь, настраиваем Kp, исследуем влияние шумов и люфтов

1.5 часа
6
П-регулятор и анализ устойчивости
1.5 часа
Практика
+
Цель работы

Реализовать П-регулятор для слежения за линией, исследовать влияние коэффициента Kp на качество управления, а также влияние шумов и люфтов на устойчивость системы.

Конечный результат: замкнутая система управления, удерживающая робота на линии при наличии возмущений.
Структура замкнутой системы
      Заданная траектория (линия)
                │
                ▼
         [Сумматор ошибки]◄─── сигнал с датчиков
                │
                ▼
      [П-регулятор: Δu = Kp·e]
                │
                ▼
[Преобразование в u_left, u_right]
                │
                ▼
  [Модель динамики с датчиками]
                │
                └───► сигналы датчиков
                            
Алгоритм управления: $$e(t) = U_{ref} - U_{IR}(t)$$ $$\Delta u(t) = K_p \cdot e(t)$$ $$u_{left} = u_0 + \frac{\Delta u}{2}, \quad u_{right} = u_0 - \frac{\Delta u}{2}$$

где $U_{ref}$ — напряжение, соответствующее положению точно над линией (обычно $U_{max}/2$).

Задание 1: Реализация П-регулятора
  1. Откройте модель из Практики 5 (variant_X_sensors.slx).
  2. Добавьте блоки для расчёта ошибки:
    • Constant: $U_{ref} = 2.5$ В (при Umax=5 В)
    • Add: $e = U_{ref} - U_{IR}$
  3. Добавьте Gain: $K_p$ (начальное значение 0.1).
  4. Добавьте блоки формирования управляющих сигналов:
    • Constant: $u_0$ — базовое напряжение (например, 6 В для 12-вольтовой системы)
    • Gain: 0.5 для $\Delta u/2$
    • Add/Subtract: $u_{left} = u_0 + \Delta u/2$, $u_{right} = u_0 - \Delta u/2$
  5. Подключите u_left и u_right ко входам модели динамики (вместо постоянного U).
  6. Запустите симуляцию и посмотрите, как меняется ошибка e(t).
U_ref ──►(∑)──► e ──►[Kp]──► Δu ──►[0.5]──► Δu/2 ──►(∑)──► u_left
          ▲                             │                ▲
          │                             │                │
     U_IR ┘                             └──►(∑)──► u_right
                                          │    ▲
                                          └────┘
                                        u0 (constant)
                            
Проверка: Убедитесь, что знаки правильные! При положительной ошибке (робот слева от линии) нужно поворачивать направо, т.е. u_left > u_right.
Задание 2: Настройка коэффициента Kp
  1. Проведите серию экспериментов с разными Kp: 0.05, 0.1, 0.2, 0.5, 1.0, 2.0.
  2. Для каждого Kp запишите:
    • Время установления (когда ошибка впервые войдёт в ±5% от установившейся)
    • Перерегулирование (максимальное превышение)
    • Наличие колебаний
  3. Постройте графики зависимости перерегулирования и времени установления от Kp.
  4. Определите критический Kp, при котором возникают незатухающие колебания.
  5. Выберите оптимальный Kp = 0.5·Kp_крит (по правилу Зиглера-Никольса).
Пример для вар.1:
KpПеререгулированиеВремя установления, сПримечание
0.050%3.2Медленно
0.15%1.8Хорошо
0.218%1.2Колебания
0.535%1.0Сильные колебания
1.0Неустойчиво

Kp_крит ≈ 0.8, оптимальный Kp = 0.4.

Задание 3: Влияние шумов на работу регулятора
  1. При оптимальном Kp последовательно увеличивайте уровень шума (σ) в 2, 5, 10 раз.
  2. Наблюдайте за сигналом управления u_left, u_right. Появляются ли высокочастотные колебания?
  3. Если да, попробуйте уменьшить Kp в 2 раза и повторите эксперимент.
  4. Сделайте вывод: как шум влияет на максимально допустимый Kp?
Оценка: при наличии шума Kp_max ≈ Kp_opt_ideal / (1 + SNR_коэффициент)
Наблюдение: Шумы вызывают дребезг управления, что может привести к перегреву двигателей и повышенному износу.
Задание 4: Влияние люфта на устойчивость
  1. При оптимальном Kp (без шума) включите люфт в редукторе (блок Backlash).
  2. Начните с малого люфта (0.001 рад) и постепенно увеличивайте до 0.01, 0.02, 0.05 рад.
  3. Для каждого значения люфта определите критический Kp, при котором возникают автоколебания.
  4. Постройте график зависимости Kp_крит от величины люфта.
Результат: С увеличением люфта максимально допустимый Kp уменьшается. При большом люфте система может стать неустойчивой даже при малом Kp.
Физика явления: Люфт вносит запаздывание и гистерезис, что снижает запас устойчивости.
Задание 5: Моделирование движения по трассе
  1. Создайте простую трассу: прямые участки и повороты.
  2. Для этого задайте желаемое положение линии как функцию времени или координаты x.
  3. Подайте это на вход модели (вместо постоянного U_ref).
  4. Промоделируйте прохождение трассы с оптимальным Kp и с учётом шумов/люфтов.
  5. Постройте траекторию робота и оцените максимальное отклонение от линии.
Желаемая траектория (x_ref(t)) ──►[модель датчика]──► U_ref
                                       (идеальный датчик)
                                            │
                                            ▼
                                    [сравнение с реальным]
                            

Для создания трассы можно использовать Signal Builder или MATLAB-функцию.

% Пример задания трассы (MATLAB Function) function x_ref = трасса(t) if t < 2 x_ref = 0; % прямо elseif t < 4 x_ref = 0.1 * (t-2); % плавный поворот else x_ref = 0.2; % смещение end end
Анализ результатов и выводы

По итогам работы необходимо сделать выводы по следующим пунктам:

  1. Как зависит качество управления (перерегулирование, время установления) от Kp?
  2. Какое значение Kp оптимально для вашего варианта и почему?
  3. Как шумы влияют на работу регулятора? Как можно уменьшить их влияние?
  4. Как люфт влияет на устойчивость? Почему при люфте приходится уменьшать Kp?
  5. Удаётся ли роботу удерживаться на линии при прохождении трассы? Каково максимальное отклонение?
  6. Соответствует ли полученная точность требованиям ТЗ?
Важно: Все выводы должны быть подтверждены графиками и численными значениями.
Задание к следующему занятию
  1. Доработать модель с П-регулятором, подобрав оптимальный Kp.
  2. Исследовать влияние шумов и люфта на устойчивость.
  3. Промоделировать прохождение трассы, получить графики ошибки и траектории.
  4. Сделать выводы о соответствии ТЗ.
  5. Сохранить модель как variant_X_control.slx.
  6. Подготовить отчёт с графиками и выводами.
.slx
variant_X_control.slx
Модель с П-регулятором
.png
step_response.png
Графики переходного процесса
.png
trajectory.png
Траектория движения
Практика 8: Оформление отчёта и сдача проекта
НЕДЕЛЯ 4: ЗАЩИТА ПРОЕКТА

Практика 8: Оформление отчёта и сдача проекта

Максимум 40 баллов: по 10 за каждый цикл + 10 за оформление

1.5 часа
8
Оформление отчёта и сдача
1.5 часа
Практика
+
Критерии оценки (максимум 40 баллов)
КритерийМакс. балл
Цикл 1: Анализ ТЗ и расчёт параметров
- Корректно выписаны все исходные данные из ТЗ
- Рассчитаны недостающие параметры (r, n, km, ke, R, k1, k2)
- Выбраны компоненты (колёса, редуктор, двигатель, драйвер)
- Проверены ограничения (сцепление, бюджет)
10
Цикл 2: Моделирование динамики и усложнения
- Собрана базовая модель в Simulink
- Добавлены усложнения по группе варианта (тепло, шум, аэродинамика и т.д.)
- Добавлены датчики с шумами и люфт
- Модель работает, выдаёт осмысленные результаты
10
Цикл 3: Регулятор и анализ разгона
- Реализован П-регулятор, подобран оптимальный Kp
- Проведён анализ разгона (t90, ts, OS, v_уст)
- Проверено соответствие всем требованиям ТЗ
- Проведён анализ влияния шумов/люфтов
10
Оформление отчёта
- Структура отчёта соответствует требованиям
- Все графики подписаны, имеют легенды, оси
- Численные результаты сведены в таблицу
- Сделаны чёткие выводы о соответствии ТЗ
- Приложены все файлы (модель, скрипты, графики)
10
ИТОГО:40
Примечание: Баллы снижаются за отсутствие любого из перечисленных пунктов. Частичное выполнение оценивается пропорционально.
Структура отчёта

???? Рекомендуемая структура (в MATLAB Live Script или Word):

  1. Титульный лист (название работы, ФИО, группа, вариант).
  2. Исходные данные (ТЗ) — таблица с параметрами из вашего варианта.
  3. Цикл 1: Расчёт параметров
    • Выбор колеса и редуктора (с обоснованием).
    • Расчёт силы тяги, моментов.
    • Выбор двигателя (таблица с параметрами).
    • Расчёт k1, k2, проверка сцепления, бюджета.
    • Результат: таблица всех параметров.
  4. Цикл 2: Моделирование динамики
    • Схема Simulink-модели (скриншот).
    • Описание добавленных усложнений (тепло, шум, аэродинамика...).
    • Графики: v(t), i(t), P(t), T(t) (если есть).
    • Верификация: сравнение расчётной и полученной скорости.
  5. Цикл 3: Регулятор и анализ разгона
    • Подбор Kp (таблица с перерегулированием/временем).
    • График переходного процесса с отметками t90, ts, OS.
    • Анализ влияния шумов и люфта.
    • Результаты моделирования трассы (если есть).
  6. Сводная таблица соответствия ТЗ
    • Для каждого требования из ТЗ — полученное значение и вывод.
  7. Заключение и выводы
    • Соответствует ли проект ТЗ? Если нет — что можно улучшить.
  8. Приложение
    • Листинги скриптов (init, analyze).
    • Все сохранённые графики (в хорошем разрешении).
Пример оформления таблицы соответствия ТЗ:
Требование ТЗЗначениеПолученоСтатус
Масса, кг1.2 ± 0.11.2
Скорость, м/с≥ 0.80.82
Перерегулирование, %≤ 2015
Бюджет моторов, руб≤ 15001200
Состав сдаваемых материалов

Все файлы должны быть упакованы в один архив Фамилия_ИО_Вариант_X.zip со следующей структурой:

????
models/
Папка с моделями Simulink
.slx
variant_X_final.slx
Финальная модель
????
scripts/
Папка со скриптами
.m
init_variant_X.m
Скрипт инициализации
.m
analyze_results.m
Скрипт анализа
????
figures/
Папка с графиками (PNG)
????
report.pdf
Отчёт (PDF или MATLAB Live Script .mlx)
????
README.txt
Краткое описание (опционально)
Важно: Перед сдачей проверьте, что все файлы открываются и скрипты выполняются без ошибок. Модель должна запускаться на любом компьютере с MATLAB/Simulink.
Чек-лист самопроверки перед сдачей
Пункт
В отчёте указаны ФИО, группа, номер варианта
Все исходные данные из ТЗ выписаны в таблицу
Приведены расчёты недостающих параметров с формулами
Есть скриншот модели Simulink
Есть графики v(t), i(t), P(t) (минимум 3 графика)
Графики подписаны, есть легенда, единицы измерения
Показан процесс подбора Kp (таблица с разными значениями)
Рассчитаны t90, ts, OS для выбранного Kp
Составлена таблица соответствия всем пунктам ТЗ
Сделаны выводы (соответствует / не соответствует)
Все файлы (модель, скрипты, графики) приложены к архиву
Архив назван по шаблону: Фамилия_ИО_Вариант_X.zip
Если все пункты отмечены — можно сдавать!
Порядок сдачи
  1. Загрузите архив в систему дистанционного обучения (или отправьте преподавателю по почте).
  2. Будьте готовы на следующем занятии кратко (3-5 минут) представить свою работу:
    • Какой вариант, какие особенности.
    • Основные трудности и как их решили.
    • Соответствует ли проект ТЗ.
  3. Ответьте на вопросы преподавателя по модели и расчётам.
Удачи в сдаче! ????
Навигатор промтов для всех практик
-Структура промтов

Промты для всех 8 практик

Не копируйте! Разбивайте их ещё мельче и отправляйте в DeepSeek / ChatGPT / Claude — нейросеть инсмтрумент для создания заготовок!

Цикл 1

Анализ ТЗ и расчёт параметров

Практики 1-2
⚙️ Цикл 2

Моделирование динамики и усложнения

Практики 3-4-5
️ Цикл 3

Регулятор, анализ разгона, отчёт

Практики 6-7-8
1
Знакомство с вариантом
Выделение параметров из ТЗ
Цикл 1
+
Промт для нейросети
Я студент, делаю курсовой проект по робототехнике. У меня вариант [ВСТАВЬТЕ НОМЕР ВАРИАНТА]. Вот техническое задание (замени текст ниже на своё ТЗ): [ВСТАВЬТЕ СЮДА ТЕКСТ СВОЕГО ТЗ ИЗ ФАЙЛА] Помоги мне выполнить Практику 1: 1. Выдели из ТЗ ключевые параметры: массу m (кг), целевую скорость v_max (м/с), коэффициент сцепления μ, тип покрытия → определи коэффициент сопротивления качению cr. 2. Выпиши все особые требования (бюджет, точность, шум, время работы и т.д.). 3. Составь структуру params для MATLAB (как в примере ниже). 4. Напиши комментарии к каждому полю. Пример структуры: params.mass = 1.2; % кг params.v_max = 0.8; % м/с params.mu = 0.28; % коэф. сцепления params.cr = 0.02; % коэф. сопротивления (линолеум) params.budget = 4500; % руб params.motor_budget = 1500; % руб params.work_hours = 16; % час/сутки params.overshoot_max = 20; % % Дай ответ в виде готового кода для MATLAB с комментариями.
Что делает этот промт: Нейросеть проанализирует ваше ТЗ и создаст структуру params с комментариями — заготовку для дальнейших расчётов.
2
Три задачи системного аналитика
Расчёт базовых параметров
Цикл 1
+
Промт для нейросети
На основе моего варианта (параметры ниже) выполни расчёты для Практики 2: Параметры (замени своими значениями из Практики 1): m = [твоя масса]; % кг v_max = [твоя скорость]; % м/с mu = [твой μ]; % коэф. сцепления cr = [твой cr]; % коэф. сопротивления Теперь сделай следующее (Задачи 1-2-3): ЗАДАЧА 1 (ВЫДЕЛИТЬ) — уже сделано. ЗАДАЧА 2 (НАЗНАЧИТЬ): 1. Задай время разгона t_acc = 1.5 с. 2. Выбери передаточное число редуктора n (5,10,15,20,30,50) и КПД η (0.7 для прямозубого, 0.75 для планетарного). 3. Рассчитай радиус колеса r = v_max / (ω_nom) * n, где ω_nom = 300 рад/с. 4. Рассчитай силу тяги Fx = 1.2 * (cr*m*9.81 + m*v_max/t_acc). 5. Найди момент на колесе τ_wheel = Fx * r. 6. Найди момент двигателя τ_motor = τ_wheel / (n*η). 7. Выбери подходящий двигатель из таблицы (приведи таблицу с параметрами km, ke, R, U_nom). 8. Рассчитай ток i = τ_motor / km, угловую скорость ω = n*v_max/r, напряжение U = i*R + ke*ω. 9. Проверь сцепление: Fx ≤ μ*m*9.81. 10. Рассчитай коэффициенты k1 = η*n*km/R, k2 = η*n^2*ke*km/R. ЗАДАЧА 3 (СОБРАТЬ): Напиши инструкцию по сборке базовой Simulink-модели для уравнения m*dv/dt = k1*U - k2*v - cr*m*9.81. Опиши, какие блоки использовать и как их соединить. Дай ответ с формулами, пояснениями и готовыми значениями для моего варианта.
Пример вставки своих данных:
m = 1.2; v_max = 0.8; mu = 0.28; cr = 0.02;
3
Расчёт недостающих параметров для усложнений
Тепло, шум, люфты, аэродинамика
Цикл 2
+
Промт для нейросети
Мой вариант относится к группе: [ВСТАВЬТЕ ГРУППУ: 1-Эконом / 2-Высокоточные / 3-Промышленные / 4-Экстремальные]. У меня есть базовые параметры из Практики 2: m = [значение], r = [значение], n = [значение], km = [значение], ke = [значение], R = [значение]. Мне нужно рассчитать дополнительные параметры для усложнённой модели согласно Лекции 2 и моей группе. Для моей группы [напиши группу] определи: 1. Какие дополнительные физические эффекты нужно моделировать (энергопотребление, шум, тепло, аэродинамика, препятствия, crowd avoidance, переменное сцепление)? 2. Для каждого эффекта дай методику оценки недостающего параметра: - Если нужно тепловое сопротивление Rth — как его оценить? - Если нужен коэффициент шума β_noise — какое значение принять? - Если нужен коэффициент аэродинамики Cx, лобовая площадь A — как найти? - Если нужна жёсткость бампера k_soft — как рассчитать? - Если нужно переменное сцепление — как найти k_μ? 3. Составь расширенную структуру params_extended с этими параметрами и комментариями. 4. Напиши код для MATLAB, который добавляет эти параметры к已有的 скрипту инициализации. Дай ответ с пояснениями и готовыми значениями для моего варианта (в разумных пределах, если точных данных нет).
⚠️ Важно: Укажите свою группу точно. От этого зависит, какие усложнения добавлять.
4
Сборка расширенной модели в Simulink
Интеграция усложнений
Цикл 2
+
Промт для нейросети
У меня есть базовая Simulink-модель динамики из Практики 2. Я рассчитал дополнительные параметры для своей группы (группа [ВСТАВЬТЕ ГРУППУ]) в Практике 3. Помоги мне добавить в модель усложнения: 1. Для моей группы [группа] перечисли, какие блоки нужно добавить в Simulink и как их подключить. - Если энергопотребление (вар.8): блоки расчёта P_el, сравнение с лимитом. - Если шум (вар.5): блоки di/dt, расчёт L_p, ограничение di/dt. - Если тепло (вар.3): тепловая модель с Rth, Cth, интегратор температуры. - Если препятствия (вар.7): блок расчёта F_step от высоты h. - Если аэродинамика (вар.4): блок Fa = 0.5*ρ*Cx*A*v^2. - Если crowd avoidance (вар.10): блок F_obs(d). - Если переменное сцепление (вар.11): блок расчёта μ(RH). 2. Нарисуй ASCII-схему, показывающую, как эти блоки встраиваются в базовую модель (где добавить сумматоры, куда подключить обратные связи). 3. Напиши пошаговую инструкцию: что открыть, какой блок взять из библиотеки, какие параметры установить. 4. Дай пример настройки блока To Workspace для сохранения сигналов v(t), i(t), T(t) и т.д. Ответ оформи в виде инструкции для студента.
Результат: Вы получите готовую схему подключения всех усложнений для вашей группы.
5
Моделирование датчиков и шумов
ИК-датчики, энкодеры, люфты
Цикл 2
+
Промт для нейросети
Мой вариант: [НОМЕР ВАРИАНТА], группа [ГРУППА]. Мне нужно добавить в модель Simulink блоки датчиков согласно Практике 5. Создай для меня: 1. Подсистему "IR_Sensor" (ИК-датчик линии): - Вход: отклонение от линии x (м). - Выход: напряжение U (В). - Модель: U = Umax/(1 + (x/x0)^2) + шум + импульсные помехи. - Параметры: Umax = 5 В, x0 = 0.01 м, σ_шума = 0.02*Umax, вероятность импульса = 0.01. - Нарисуй ASCII-схему подсистемы с блоками (Fcn, Random Number, Poisson, Add). 2. Подсистему "Encoder" (энкодер с квантованием): - Вход: угол θ (рад). - Выход: измеренный угол θ_meas (рад). - Модель: θ_meas = (2π/N) * round(θ * N/(2π)), где N = 48 (или другое число для моего варианта). - ASCII-схема с блоками Gain, Round, Gain. 3. Подсистему "Backlash" (люфт в редукторе): - Использовать готовый блок Backlash с параметром Deadband width = 0.02 рад. - Покажи, как его включить между двигателем и колесом. 4. Дай рекомендации по параметрам для моего варианта (число датчиков, уровень шума, величина люфта) на основе таблицы из Практики 5. 5. Напиши инструкцию по интеграции этих подсистем в мою модель (куда подключить входы/выходы). Ответ должен содержать готовые схемы и настройки блоков.
Для варианта 1 (эконом):
N=12, люфт 0.01 рад, 3-5 датчиков.
6
Реализация П-регулятора и анализ устойчивости
Замкнутая система
Цикл 3
+
Промт для нейросети
У меня есть модель с динамикой и датчиками. Теперь нужно добавить П-регулятор для слежения за линией. Мой вариант: [НОМЕР], группа [ГРУППА]. Параметры из предыдущих расчётов: m = [значение], r = [значение], n = [значение], km = [значение], ke = [значение], R = [значение], J ≈ [оцени]. Сделай для меня: 1. Схему П-регулятора в Simulink: - Вход: ошибка e = U_ref - U_IR (где U_ref = 2.5 В для датчика 5В). - Выход: разность скоростей Δu. - Преобразование в u_left = u0 + Δu/2, u_right = u0 - Δu/2 (u0 = 6 В для 12В системы). - Нарисуй ASCII-схему с блоками. 2. Помоги подобрать Kp: - Напиши скрипт для перебора Kp от 0.05 до 2 с шагом 0.05. - Для каждого Kp нужно получить перерегулирование OS и время установления ts. - Определи критический Kp_крит (когда начинаются незатухающие колебания). - Рекомендуй Kp_opt = 0.5 * Kp_крит. 3. Исследуй влияние шумов: - При оптимальном Kp увеличь уровень шума в 2, 5, 10 раз. - Опиши, как меняется качество управления. 4. Исследуй влияние люфта: - При оптимальном Kp увеличь люфт от 0.001 до 0.05 рад. - Построй зависимость Kp_крит от величины люфта (качественно). 5. Дай рекомендации по настройке Kp для моего варианта с учётом шумов и люфта. Ответ оформи как инструкцию с формулами и описанием действий.
Цель: Получить оптимальный Kp и понять, как шумы/люфты влияют на устойчивость.
7
Интеграция модели и анализ разгона
Финальная сборка, t90, ts, OS
Цикл 3
+
Промт для нейросети
У меня есть финальная модель с регулятором, датчиками и всеми усложнениями. Мой вариант: [НОМЕР]. Помоги мне провести анализ динамики разгона и верификацию по ТЗ: 1. Напиши скрипт analyze_acceleration.m, который: - Загружает данные из Workspace (сигналы v, t). - Находит установившуюся скорость v_ss. - Вычисляет t90 (время достижения 90% v_ss). - Вычисляет перерегулирование OS = (v_max - v_ss)/v_ss * 100%. - Вычисляет время установления ts (вход в 5% коридор). - Строит график v(t) с отметками t90, ts, v_ss. - Выводит все значения в командное окно. 2. Для моего варианта составь таблицу соответствия ТЗ (как в примере): | Требование | ТЗ | Получено | Статус | |------------|----|----------|--------| | v_max | 0.8 м/с | 0.82 м/с | ✅ | | OS | ≤20% | 15% | ✅ | | ... | ... | ... | ... | 3. Если какие-то требования не выполняются, предложи, что можно изменить (Kp, двигатель, редуктор). 4. Дай инструкцию по сохранению графиков в файлы (format: PNG). Ответ должен содержать готовый код и пояснения.
⚠️ Важно: Вставьте в промт конкретные требования из вашего ТЗ.
8
Оформление отчёта и сдача проекта
40 баллов
Цикл 3
+
Промт для нейросети
Я выполнил все практики 1-7 для своего варианта [НОМЕР]. Помоги мне оформить отчёт по Практике 8. У меня есть: - Все расчёты из Практик 1-3. - Модели Simulink из Практик 4-7. - Графики и численные результаты из Практики 7. Создай структуру отчёта в формате MATLAB Live Script (.mlx) или Word: 1. Титульный лист (ФИО, группа, вариант). 2. Исходные данные (ТЗ) — таблица. 3. Цикл 1: Расчёт параметров: - Выбор колеса, редуктора, двигателя (с обоснованием). - Таблица с параметрами (m, r, n, km, ke, R, k1, k2). 4. Цикл 2: Моделирование динамики: - Скриншот модели Simulink. - Описание добавленных усложнений. - Графики v(t), i(t), P(t), T(t) (с подписями). 5. Цикл 3: Регулятор и анализ разгона: - Процесс подбора Kp (таблица с Kp, OS, ts). - График переходного процесса с t90, ts, OS. - Анализ влияния шумов/люфтов. - Таблица соответствия ТЗ. 6. Заключение и выводы (соответствует/не соответствует). 7. Приложение (листинги скриптов). Дай шаблон с плейсхолдерами, куда я вставлю свои данные и графики. Ответ оформи как готовый документ (текст с разметкой).
Максимум 40 баллов: 10 + 10 + 10 + 10. Используйте чек-лист из Практики 8 для самопроверки.
Made on
Tilda