Изучение базовых принципов системного подхода для проектирования и анализа робототехнических систем
Система — совокупность взаимосвязанных элементов, образующих целостность и выполняющих определённую функцию.
| Свойство | Определение | Пример LFR |
|---|---|---|
| Целостность | Система работает как единое целое | Робот движется согласованно |
| Эмерджентность | Свойства ≠ сумме свойств элементов | Датчики по отдельности не следят за линией |
| Иерархичность | Подсистемы и надсистемы | Датчик → блок управления → робот |
Методология исследования и проектирования, основанная на представлении объекта как системы.
Декомпозиция — разбиение сложной задачи на подзадачи.
| Критерий | Определение |
|---|---|
| Быстродействие | Время реакции |
| Точность | Отклонение от требуемого |
| Надёжность | Время безотказной работы |
Минимальный набор переменных, описывающих "память" системы.
| Группа | Варианты | Характеристики | Критические параметры | Целевые показатели | Особенности |
|---|---|---|---|---|---|
| Группа 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°C | v≥0.8 м/с, запас хода ≥4 ч | Стабилизация | |
| Группа 4: Экстремальные | 4: Соревновательный гонщик | m≤0.8 кг, μ=0.72 | v≥2.5 м/с | Время круга ≤8 с, перегрузки до 3g | Аэродинамика |
| 10: Аэропортный гид | m=5.8±0.4 кг, μ=0.38 | Наработка ≥5000 ч | v=0.4-1.2 м/с, 24/7 | Crowd avoidance | |
| 11: Сельскохозяйственный | m=2.8±0.3 кг, μ=0.22-0.80 | Влажность 100% | v=0.2-0.5 м/с, автономность ≥12 ч | Мойка давлением |
Масса: 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 Вт.
Центростремительное ускорение на повороте: a = v²/R. При v=2.5 м/с, R=0.5 м: a≈12.5 м/с² ≈1.3g.
Создайте папку проекта со следующими файлами:
Учёт энергопотребления, шумов, тепла, препятствий и других требований ТЗ
| Символ | Величина | Единица измерения |
|---|---|---|
| $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}$ | Максимальная стоимость | руб |
Инженерное правило: задаём номинальные обороты двигателя $\omega_{nom} \approx 300$ рад/с (≈3000 об/мин) и подбираем $n$ и $r$:
Пример для гонщика (вар.4, v=2.5 м/с):
Для горизонтали без аэродинамики:
Время разгона $t_{acc}$ если не задано — принимаем 1–2 с.
Пример для тяжеловеса (вар.3, m=7.5+20=27.5 кг, v=0.6 м/с):
Пример: $F_x = 50$ Н, $r = 0.1$ м → $\tau_{wheel} = 5$ Н·м
При n=30, η=0.7: $\tau_{motor} = 5/(30·0.7) \approx 0.24$ Н·м — реалистично для коллекторного мотора.
$k_m$ берём из каталога моторов (0.01–0.05 для малых, 0.1–0.3 для мощных).
Подбираем напряжение питания (12В, 24В, 48В) под доступные драйверы.
| Параметр | Откуда берём |
|---|---|
| $m$ | ТЗ |
| $r$ | Рассчитали из оборотов и редуктора |
| $c_r$ | Таблица по покрытию |
| $k_m, k_e, R$ | Каталог моторов (подобран под $F_x$, $\tau$) |
| $n$, $\eta$ | Подобраны под $\omega_{motor}$ |
| $U$ | Стандарт (12/24/48 В) |
ТЗ: m = 1.2 кг, v = 0.8 м/с, μ = 0.28, бюджет моторов ≤ 1500 руб
Берём мотор N20: $k_m = 0.012$ Н·м/А, $k_e = 0.012$ В·с/рад, $R = 5$ Ом, $U = 12$ В
Моделирование датчиков, помех, механических люфтов и введение в П-регулятор
ИК-излучение отражается от поверхности. Чёрная линия поглощает свет, белый фон отражает. Напряжение на выходе пропорционально отражающей способности.
Энкодер выдаёт импульсы, соответствующие углу поворота. В Simulink моделируется как квантователь с шагом $\Delta \theta = 2\pi / N$, где $N$ — число импульсов на оборот.
Измеряет угловую скорость. Основные погрешности: шум, дрейф нуля, температурная зависимость.
| Тип шума | Модель | Блок 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 |
Для высокоточных вариантов (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] (импульсы)
Зазор между зубьями передач, при котором изменение направления движения не сразу передаётся на выходной вал.
Блок Simulink: Backlash (Simulink/Discontinuities). Параметры:
Для вариантов с высокими требованиями к точности (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 |
Моделируется как пружина с жёсткостью $k$ и демпфером $c$:
Влияет на колебания при резких ускорениях и торможениях.
Удерживать робота на линии, управляя разностью скоростей левого и правого колеса.
Ошибка e(t) = сигнал с датчиков (отклонение)
│
▼
[Kp] ──► Разность скоростей Δu
│
▼
u_left = u0 + Δu/2
u_right = u0 - Δu/2
Kp выбирается из условия устойчивости и желаемой скорости реакции.
Более точный подбор — методом проб в Simulink:
| Группа | Критичные эффекты | Что моделировать |
|---|---|---|
| 1. Эконом | Низкая стоимость | Простые датчики (2-3 шт), большой шум, люфт |
| 2. Высокоточные | Точность, шум | Много датчиков (8-12), малый шум, малый люфт, калибровка |
| 3. Промышленные | Надёжность, препятствия | Датчики препятствий, люфт, упругость |
| 4. Экстремальные | Скорость, сцепление | Быстрые датчики, срыв сцепления, аэродинамика |
Объединение всех усложнений в единую модель и верификация по ТЗ
| Неделя | Лекция | Практика | Что добавили в модель |
|---|---|---|---|
| 1 | Основы системного анализа | Знакомство с вариантом | Базовые параметры, IPO-модель |
| 2 | Расширенные модели динамики | Расчёт недостающих параметров, сборка расширенной модели | Энергопотребление, шум, тепло, препятствия, аэродинамика и т.д. |
| 3 | Сенсоры, шумы, люфты, П-регулятор | Моделирование датчиков, реализация П-регулятора | ИК-датчики с шумами, энкодеры, люфт, обратная связь |
┌─────────────────────────────────────────────────────────────┐
│ Входное воздействие │
│ (желаемая траектория / ступенчатый сигнал) │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Блок регулятора (П) │
│ 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 (обратная связь)
Все дополнительные блоки должны быть параметризованы и включаться/отключаться без изменения структуры модели. Это позволит исследовать влияние каждого эффекта отдельно.
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
| Показатель | Обозначение | Формула | Ед. изм. |
|---|---|---|---|
| Время разгона до 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. Характерные точки переходного процесса
| Группа | Требование ТЗ | Как проверить | Критерий |
|---|---|---|---|
| 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) | Проверка сцепления | Нет пробуксовки |
Режим разгона: v_уст = 0.38 м/с (требование 0.3-0.4) ✓
ts = 1.2 с (требование ≤1.5) ✓
OS = 4% (требование ≤5%) ✓
Режим слежения: max ошибка = 1.8 мм (требование ±2 мм) ✓
Вывод: ТЗ выполняется.
| Тип данных | Режим симуляции | Что сохранять |
|---|---|---|
| Разгон | Ступенчатое задание скорости | v(t), a(t), i(t), T(t) (если есть) |
| Движение по прямой | Постоянная заданная скорость | v(t), ошибка слежения |
| Поворот | Задание траектории с изгибом | Траектория x(t), y(t), ошибка |
| Торможение | Ступенчатое снижение задания | v(t), s_brake |
| Препятствие (если есть) | Внешнее воздействие | v(t), F_step, факт преодоления |
После симуляции данные будут доступны в workspace как структура:
Анализ технического задания и формализация параметров
Создайте файл параметров для вашего варианта.
Определяем тепловые, акустические, механические и другие параметры, которых нет в ТЗ
В Практике 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$ | — |
Эти параметры не даны в ТЗ! Их нужно оценить по справочникам, аналогиям или разумным предположениям.
Рекомендация: принять $P_{const} = 3$ Вт для первого приближения.
Для микродвигателей (N20) $\eta_{motor} \approx 0.6..0.75$ в рабочей точке.
Коэффициент $\beta_{noise}$: показывает, на сколько дБ растёт шум при увеличении di/dt на 1 А/с.
Для бесшумных двигателей (Faulhaber) $\beta_{noise} \approx 2..3$ дБ/(А/с). Для обычных коллекторных — до 10 дБ/(А/с).
Для серводвигателей с косозубым редуктором $A_{cogging} \approx 0.05..0.1$ от среднего момента. Для обычных — 0.2..0.3.
Коэффициент вибраций: для прецизионных двигателей $k_{vib} \approx 0.05..0.1$ $g/(м/с²)$.
Тепловое сопротивление $R_{th}$: для двигателей с естественным охлаждением $R_{th} \approx 2..5$ °C/Вт. С принудительным — 0.5..1 °C/Вт.
Теплоёмкость $C_{th}$: определяет скорость нагрева. $C_{th} \approx 50..200$ Дж/°C в зависимости от массы двигателя.
Из этого можно найти требуемое замедление $a_{brake} \geq \frac{v^2}{2 \cdot 0.5}$.
Для v = 0.6 м/с: $a_{brake} \geq 0.36$ м/с². Реально достижимо 0.5..1 м/с² рекуперативным торможением.
Здесь неизвестен только коэффициент упругости подвески $k_{susp}$, если нужно считать динамику наезда. Для первого приближения считаем подвеску жёсткой.
Высота центра масс $h_{cg}$: для колёсных роботов $h_{cg} \approx 0.3..0.5$ от высоты корпуса. Принимаем $h_{cg} = 0.1$ м для низких платформ, до 0.3 м для высоких.
Коэффициент аэродинамического сопротивления $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).
Порог $\varepsilon$: при $F_x > \mu N (1 + \varepsilon)$ считаем, что началось буксование. Обычно $\varepsilon = 0.05..0.1$ (запас 5-10%).
Жёсткость "мягкого" бампера $k_{soft}$: выбирается так, чтобы на расстоянии $d_0$ сила была достаточной для остановки.
Для m=5.8 кг, $a_{max}=1$ м/с², $d_0=0.5$ м → $k_{soft} \approx 11.6$ Н/м.
Коэффициент влияния влажности $k_{\mu}$: из диапазона μ=0.22 при RH=20% до μ=0.80 при RH=100%:
| Параметр | Рекомендуемое значение | Для каких вариантов |
|---|---|---|
| $P_{const}$ | 3 Вт | 8 |
| $\eta_{motor}$ | 0.7 | 1, 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 Дж/°C | 3 |
| $a_{brake}$ | 0.5 м/с² | 6 |
| $h_{cg}$ | 0.15 м | 3, 6, 7 |
| $C_x$ | 0.35 | 4 |
| $A$ | 0.01..0.02 м² | 4 |
| $k_{soft}$ | 10..20 Н/м | 10 |
| $k_{\mu}$ | 0.00725 1/% | 11 |
| $\varepsilon$ (срыв) | 0.1 | 4 |
Эти значения можно использовать, если нет более точных данных. В реальном проекте они уточняются экспериментально.
Требование ТЗ: шум ≤40 дБ, вибрации ≤0.1g
Недостающие параметры:
- beta_noise = 3 дБ/(А/с)
- A_cogging = 0.1
- k_vib = 0.08 g/(м/с²)
- Допустимая производная тока: |di/dt| ≤ (40 - 20)/3 ≈ 6.7 А/с
Добавьте в этот шаблон параметры, соответствующие вашей группе.
init_variant_X_extended.m со всеми параметрами.Добавляем в модель сенсоры, шумы, люфты и анализируем их влияние
Добавить в существующую модель динамики (из Практики 4) блоки, моделирующие:
Исследовать, как шумы и люфты влияют на сигналы датчиков и точность системы.
x ──►[Fcn: Umax/(1+(x/x0)^2)]──► идеальный сигнал ──►(∑)──► U_out
▲ ▲
│ │
[Noise] [Impulse]
Параметры для настройки:
θ ──►[Gain: N/(2π)]──►[Round]──►[Gain: 2π/N]──► θ_meas
Параметры: $N$ — число импульсов на оборот (типовые значения 12, 24, 48, 360, 1024)
ω_true ──►(∑)──► ω_meas
▲ ▲
│ │
[b0+βt] [Noise]
Используйте готовый блок Backlash из библиотеки Simulink/Discontinuities.
θ_motor ──►[Backlash]──► θ_wheel
Параметр: Deadband width = $2\delta$ (полный размах люфта в радианах).
| Вариант | Число ИК-датчиков | $\sigma$ шума (отн.) | Импульсные помехи | Люфт $\delta$ (рад) | N энкодера |
|---|---|---|---|---|---|
| 1 (Эконом) | 3-5 | 0.05 | 0.03 | 0.01 | 12 |
| 2 (Точник) | 8-12 | 0.01 | 0.005 | 0.0015 | 360 |
| 3 (Тяжеловес) | 4-6 | 0.03 | 0.02 | 0.005 | 48 |
| 4 (Гонщик) | 6-8 | 0.02 | 0.01 | 0.008 | 1024 |
| 5 (Мед. курьер) | 8-10 | 0.01 | 0.002 | 0.003 | 512 |
| 6 (Библиотечный) | 8-12 | 0.02 | 0.01 | 0.004 | 256 |
| 7 (Строительный) | 4-6 + ToF | 0.04 | 0.05 | 0.006 | 48 |
| 8 (Офисный) | 4-6 | 0.03 | 0.02 | 0.008 | 24 |
| 9 (Учебный) | 4-8 | 0.05 | 0.05 | 0.01 | 12 |
| 10 (Аэропорт) | 12+ ToF | 0.02 | 0.01 | 0.003 | 512 |
| 11 (Сельхоз) | 6-8 | 0.03 | 0.02 | 0.005 | 256 |
Используйте эти значения как отправную точку. При необходимости корректируйте.
Синус 0.01 рад ──►[Backlash]──► Scope
variant_X_extended.slx).Для варианта 5 (медицинский): Добавьте модель шума с ограничением по дисперсии так, чтобы результирующая ошибка позиционирования не превышала 2 мм.
Для варианта 9 (учебный): Сделайте параметры шума и люфта изменяемыми извне (через константы или слайдеры).
Для варианта 11 (сельхоз): Добавьте зависимость уровня шума от влажности (внешний сигнал RH).
variant_X_sensors.slx.Объединяем все компоненты, проводим финальные симуляции и верификацию
Объединить все ранее разработанные компоненты в единую финальную модель, провести комплексный анализ динамики разгона и проверить соответствие требованиям технического задания.
| Компонент | Откуда | Статус |
|---|---|---|
| Параметры варианта (базовые) | Практика 2 | ☐ |
| Расширенные параметры (тепло, шум, ...) | Практика 3 | ☐ |
| Модель динамики с усложнениями | Практика 4 | ☐ |
| Модели датчиков с шумами и люфтом | Практика 5 | ☐ |
| П-регулятор с настроенным Kp | Практика 6 | ☐ |
| Скрипт инициализации (все параметры) | Практика 3-6 | ☐ |
variant_X_final.slx.
┌────────────────────────────────────────────────────┐
│ FINAL MODEL │
├────────────────────────────────────────────────────┤
│ │
│ [Reference] ──► [P_Controller] ──► [Dynamics] ──┐ │
│ ▲ │ │ │
│ │ ▼ │ │
│ └─────── [Sensors] ◄───────┘ │
│ │
│ [To Workspace] ◄──────────────────────────────────┘ │
└────────────────────────────────────────────────────┘
Для каждого требования из вашего ТЗ проведите соответствующий тест:
| Требование | Тест | Критерий |
|---|---|---|
| Максимальная скорость | Разгон до упора | 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 |
Для каждого теста запишите полученное значение и вывод (соответствует / не соответствует).
ВЫДЕЛИТЬ → НАЗНАЧИТЬ → СОБРАТЬ. Полный цикл от ТЗ до Simulink-модели.
| Тип | Материал / μ | Диаметр, мм | Назначение |
|---|---|---|---|
| Миниатюрное | Полиуретан (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 | Теплицы |
| Тип | Передаточное $n$ | КПД $\eta$ | Люфт | Применение |
|---|---|---|---|---|
| Прямозубый пластик | 5:1–20:1 | 0.65–0.75 | Высокий | Эконом |
| Планетарный | 10:1–50:1 | 0.70–0.80 | Очень низкий | Точные |
| Червячный | 30:1–80:1 | 0.50–0.65 | Низкий | Тяговые |
| Косозубый | 15:1–30:1 | 0.75–0.85 | Низкий | Бесшумные |
| Тип | Модель | $k_m$, Н·м/А | $k_e$, В·с/рад | $R$, Ом | $U$, В | $P$, Вт | Цена, руб |
|---|---|---|---|---|---|---|---|
| Микродвигатель | N20 | 0.010–0.015 | 0.010–0.015 | 3–8 | 6–12 | 1–3 | 200–400 |
| Серво прециз. | Maxon DCX | 0.020–0.030 | 0.020–0.030 | 2–4 | 18–24 | 8–15 | 4000–6000 |
| Щёточный тяг. | MY1016 | 0.12–0.18 | 0.12–0.18 | 0.3–0.6 | 24 | 200–300 | 3000–4500 |
| Бесколлекторный | Turnigy | 0.030–0.040 | 0.030–0.040 | 0.1–0.3 | 12 | 25–40 | 2500–3500 |
| Серво низкошум. | Faulhaber | 0.025–0.035 | 0.025–0.035 | 1.5–2.5 | 18 | 15–25 | 5000–7000 |
| Колл. с энкодером | Pololu | 0.060–0.080 | 0.060–0.080 | 1.0–1.5 | 12 | 20–30 | 1800–2500 |
| Герметичный | AMETEK | 0.20–0.25 | 0.20–0.25 | 0.2–0.3 | 36 | 350–450 | 5500–7000 |
| Высокоэфф. | Maxon EC | 0.040–0.050 | 0.040–0.050 | 0.5–0.8 | 24 | 12–18 | 4800–6000 |
| Учебный | IG32 | 0.015–0.020 | 0.015–0.020 | 2.5–4.0 | 12 | 5–8 | 800–1200 |
| Сдвоенный резерв. | Dunkermotoren | 0.090–0.110 | 0.090–0.110 | 0.4–0.6 | 48 | 120–180 | 11000–14000 |
| Химстойкий BLDC | EC-i 40 | 0.070–0.090 | 0.070–0.090 | 0.3–0.5 | 48 | 100–150 | 13000–16000 |
| Тип | Ток, А | Напряжение, В | Интерфейс | Цена, руб |
|---|---|---|---|---|
| Эконом | 2×2 | 6–12 | ШИМ | 150–300 |
| Прецизионный | 2 | 12–24 | USB/CAN | 8500–11000 |
| Тяговый | 2×25 | 12–24 | RC/PWM | 11000–14000 |
| Гоночный BLDC | 40 | 12 | DShot | 1500–2200 |
| Бесшумный | 1.5 | 12–24 | RS232 | 16000–20000 |
| С рекуперацией | 2×15 | 12 | USB/I2C | 8000–10000 |
| Герметичный | 100 | 36–48 | CAN | 25000–32000 |
| USB-драйвер | 2×3.6 | 6–24 | ШИМ | 400–600 |
| Учебный | 2 | 12 | ШИМ | 1000–1500 |
| Резервированный | 2×30 | 48 | EtherCAT | 29000–35000 |
| Влагозащищённый | 15 | 48 | CAN | 9000–11000 |
| Шаг | Действие |
|---|---|
| 1.1 | Записать массу $m$ (кг) |
| 1.2 | Записать $v_{\max}$ (м/с) |
| 1.3 | Записать $\mu$ (коэф. сцепления) |
| 1.4 | Определить $c_r$ по покрытию |
| 1.5 | Выписать особые ограничения |
| Шаг | Действие | Формула |
|---|---|---|
| 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.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)$ |
Реализуем тепловые модели, шумы, препятствия и другие эффекты из Лекции 2
В Практике 2 мы собрали базовую модель динамики:
В Лекции 2 мы рассмотрели дополнительные эффекты для разных групп вариантов:
U ──►[ k1 ]──►(∑)──►[1/m]──►[∫]──► v
▲ │ │
│ ▼ │
└────[ k2 ]◄──────────────────┘
│
└────[ Fr ]──────────────────►(∑)
Добавлены также блоки для тока и мощности:
v ──►[ n/r ]──► ω ──►[ ke ]──►(∑)──►[ 1/R ]──► i
▲ │
│ │
U ─────────────────────┘ └──►[×U]──► P_el
Добавляемые блоки:
i ──►[×U]──► P_el ──►(∑)──► P_total ──►[≤15]──► Stop
▲
│
[P_const]
Добавляемые блоки:
i ──►[d/dt]──►| |──►[β]──►[log]──►(∑)──► L_p
▲
│
[A_cogging]
Для вибраций: $a_{vib} = k_{vib} \cdot a$
a ──►[k_vib]──► a_vib ──►[≤0.1]──► (проверка)
i ──►[u²]──►[×R]──► P_loss ──►[÷C_th]──►[∫]──► T_m
▲ │
│ │
└──[ - ]─┘
(T - T_amb)/R_th
v ──►[u²]──►[÷(2·a_brake)]──► s_brake ──►[≤0.5]──► проверка
h ──►[1 - h/r]──►[u²]──►[1 - ...]──►[sqrt]──►[×mg]──► F_step ──►(∑ сил)
v ──►[u²]──►[× 0.5·ρ·Cx·A ]──► F_a ──►(∑ сил) с минусом
F_x ──►[> μmg(1+ε)]──► Switch ──► recovery_mode
d ──►[d <= d0]──► Switch ──►[×k_soft]──► F_obs ──►(∑ сил)
│ ▲
└──(d0 - d)─────────────┘
RH ──►[×k_μ]──►(∑)──► μ ──► в блок проверки сцепления
▲
│
[μ0]
Общий принцип: все дополнительные силы (аэродинамика, препятствия, crowd avoidance) добавляются в сумматор сил со знаком минус. Тепловые и шумовые модели — параллельно, они не влияют на движение, только на ограничения.
┌── F_a
│
├── F_step
U──►...──►(∑)──► движение
│
└── F_obs
Дополнительные проверки (температура, шум, мощность) подключаются к соответствующим сигналам и могут останавливать симуляцию при нарушении.
Параметры (из Практики 3):
Структура модели:
Ожидаемые результаты: при разгоне с максимальным ускорением di/dt может превысить лимит → симуляция остановится, нужно будет уменьшить ускорение (увеличить время разгона).
| Компонент | Есть? |
|---|---|
| Базовая динамика: v, a, x | ☐ |
| Расчёт тока i(t) | ☐ |
| Расчёт мощности P_el(t) | ☐ |
| Специфические блоки для вашей группы | ☐ |
| Проверка ограничений из ТЗ (с остановкой или предупреждением) | ☐ |
| Графики всех ключевых сигналов | ☐ |
variant_X_extended.slx.Замыкаем обратную связь, настраиваем Kp, исследуем влияние шумов и люфтов
Реализовать П-регулятор для слежения за линией, исследовать влияние коэффициента Kp на качество управления, а также влияние шумов и люфтов на устойчивость системы.
Заданная траектория (линия)
│
▼
[Сумматор ошибки]◄─── сигнал с датчиков
│
▼
[П-регулятор: Δu = Kp·e]
│
▼
[Преобразование в u_left, u_right]
│
▼
[Модель динамики с датчиками]
│
└───► сигналы датчиков
где $U_{ref}$ — напряжение, соответствующее положению точно над линией (обычно $U_{max}/2$).
variant_X_sensors.slx).
U_ref ──►(∑)──► e ──►[Kp]──► Δu ──►[0.5]──► Δu/2 ──►(∑)──► u_left
▲ │ ▲
│ │ │
U_IR ┘ └──►(∑)──► u_right
│ ▲
└────┘
u0 (constant)
| Kp | Перерегулирование | Время установления, с | Примечание |
|---|---|---|---|
| 0.05 | 0% | 3.2 | Медленно |
| 0.1 | 5% | 1.8 | Хорошо |
| 0.2 | 18% | 1.2 | Колебания |
| 0.5 | 35% | 1.0 | Сильные колебания |
| 1.0 | — | — | Неустойчиво |
Kp_крит ≈ 0.8, оптимальный Kp = 0.4.
Желаемая траектория (x_ref(t)) ──►[модель датчика]──► U_ref
(идеальный датчик)
│
▼
[сравнение с реальным]
Для создания трассы можно использовать Signal Builder или MATLAB-функцию.
По итогам работы необходимо сделать выводы по следующим пунктам:
variant_X_control.slx.Максимум 40 баллов: по 10 за каждый цикл + 10 за оформление
| Критерий | Макс. балл |
|---|---|
| Цикл 1: Анализ ТЗ и расчёт параметров - Корректно выписаны все исходные данные из ТЗ - Рассчитаны недостающие параметры (r, n, km, ke, R, k1, k2) - Выбраны компоненты (колёса, редуктор, двигатель, драйвер) - Проверены ограничения (сцепление, бюджет) | 10 |
| Цикл 2: Моделирование динамики и усложнения - Собрана базовая модель в Simulink - Добавлены усложнения по группе варианта (тепло, шум, аэродинамика и т.д.) - Добавлены датчики с шумами и люфт - Модель работает, выдаёт осмысленные результаты | 10 |
| Цикл 3: Регулятор и анализ разгона - Реализован П-регулятор, подобран оптимальный Kp - Проведён анализ разгона (t90, ts, OS, v_уст) - Проверено соответствие всем требованиям ТЗ - Проведён анализ влияния шумов/люфтов | 10 |
| Оформление отчёта - Структура отчёта соответствует требованиям - Все графики подписаны, имеют легенды, оси - Численные результаты сведены в таблицу - Сделаны чёткие выводы о соответствии ТЗ - Приложены все файлы (модель, скрипты, графики) | 10 |
| ИТОГО: | 40 |
| Требование ТЗ | Значение | Получено | Статус |
|---|---|---|---|
| Масса, кг | 1.2 ± 0.1 | 1.2 | ✅ |
| Скорость, м/с | ≥ 0.8 | 0.82 | ✅ |
| Перерегулирование, % | ≤ 20 | 15 | ✅ |
| Бюджет моторов, руб | ≤ 1500 | 1200 | ✅ |
Все файлы должны быть упакованы в один архив Фамилия_ИО_Вариант_X.zip со следующей структурой:
| ✓ | Пункт |
|---|---|
| ☐ | В отчёте указаны ФИО, группа, номер варианта |
| ☐ | Все исходные данные из ТЗ выписаны в таблицу |
| ☐ | Приведены расчёты недостающих параметров с формулами |
| ☐ | Есть скриншот модели Simulink |
| ☐ | Есть графики v(t), i(t), P(t) (минимум 3 графика) |
| ☐ | Графики подписаны, есть легенда, единицы измерения |
| ☐ | Показан процесс подбора Kp (таблица с разными значениями) |
| ☐ | Рассчитаны t90, ts, OS для выбранного Kp |
| ☐ | Составлена таблица соответствия всем пунктам ТЗ |
| ☐ | Сделаны выводы (соответствует / не соответствует) |
| ☐ | Все файлы (модель, скрипты, графики) приложены к архиву |
| ☐ | Архив назван по шаблону: Фамилия_ИО_Вариант_X.zip |
Не копируйте! Разбивайте их ещё мельче и отправляйте в DeepSeek / ChatGPT / Claude — нейросеть инсмтрумент для создания заготовок!
Анализ ТЗ и расчёт параметров
Моделирование динамики и усложнения
Регулятор, анализ разгона, отчёт
m = 1.2; v_max = 0.8; mu = 0.28; cr = 0.02;