Files
eumirts5-dds/README.md
T
mss 7f8b52aa2c ai: lab5 — скетч без зависимости от pico-sdk в mbed-ядре (mbed::PwmOut + mbed::Ticker) + альтернатива на CircuitPython (01-dds-generator-rp2040-circuitpython.py)
- mbed-ядро: только mbed API, hardware/pwm.h и hardware/timer.h не нужны
- CircuitPython: один цикл DDS + опрос USB-консоли (без threading), f_s меряется на старте
- прямоугольник < 20 Гц — программный (тот же ШИМ)
2026-10-26 15:43:35 +04:00

117 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Лабораторная: интегратор и дифференциатор на ОУ (АЧХ/ФЧХ + Monte Carlo + автосвип)
Комплект к теме `topics/lab5-peredatochnaya-funkciya-na-ou.md`
(«Электронные устройства мехатронных и робототехнических систем»,
Б1.В.06, 5 семестр, 4 ч).
> AI-сгенерировано (2026-10-26), требует проверки преподавателем
> перед использованием на стенде.
## Контракт
Оформлено по контракту `labs/`:
```
labs/lab5-peredatochnaya-funkciya-na-ou/
├── meta.yaml ← контракт
├── task.md ← задание студенту
├── method.md ← методичка преподавателю
├── README.md ← этот файл
├── print/ ← брошюры DOCX (rpd methodical)
└── stub/
├── 01-dds-generator-rp2040.ino ← генератор-свип (Arduino RP2040;
│ оба ядра: earlephilhower и mbed)
├── 01-dds-generator-rp2040-circuitpython.py
│ ← то же на CircuitPython (code.py)
├── 02-izmerenie-achh.py ← автоснятие АЧХ по Serial
└── 03-blank-otchyota.md ← бланк отчёта студента
```
## Новое относительно `topics/lab5-peredatochnaya-funkciya-na-ou.md`
1. **Monte Carlo по допускам** (`.step param`) — новый для курса анализ
в симуляторе: разброс K и f_c при ±5 % на компонентах, доля годных.
2. **Генератор-свип на RP2040** — автономный генератор для натурной
части: прямоугольник (ШИМ) и синус (DDS), логарифмический свип,
синхроимпульс для осциллографа, измерение амплитуды на ADC0.
3. **Хост-скрипт автоснятия АЧХ** — управление генератором по Serial,
сбор точек, экспорт CSV, построение графика.
4. **Явное разделение практики и лаборатории:** симуляция — на практическом
занятии (2 ч), железо — на лабораторном (4 ч), отчёт — СРС.
## Предупреждения по стенду
- **ADC0 RP2040: 0…3,3 В.** Сигнал с выхода исследуемой цепи ≥ 3,3 В
подавать **только через делитель** или пиковый детектор.
- **Питание ОУ:** LM358 работает при однополярном +5…+12 В, TL081 —
при ±12 В. Уточнить по фактическому стенду.
- **Синус DDS:** качество зависит от внешнего ФНЧ после ШИМ (см. схему
ниже). Без фильтра на выходе будет меандр переменной скважности,
а не синус.
## Схема DDS-генератора (внешняя обвязка)
ШИМ сам по себе даёт **меандр переменной скважности**, а не синус.
Синус получается выделением огибающей фильтром. Поэтому на выходе
GP15 нужен внешний **ФНЧ**:
```
GP15 (ШИМ 62,5 кГц) ──[R1 1к]──┬──[R2 1к]──┬──────► OUT (вход DUT)
│ │
[C1 47н] [C2 47н]
│ │
GND GND
```
Пассивный ФНЧ 2-го порядка, **f_c ≈ 3,4 кГц**:
- подавление несущей: `(62,5 / 3,4)² ≈ 338 ≈ 50 дБ` → пульсации ≈ 10 мВ;
- рабочий диапазон генератора: **≈ 1 Гц … 1 кГц** (для звена
с f_c = 16…34 Гц — с запасом).
### Две оговорки
1. **Согласование сопротивлений.** Выход фильтра ≈ 1 кОм, вход
интегратора — R1 = 10 кОм → делитель 10/11, просадка ≈ 9 %.
Если нужна точность — поставить буфер-повторитель на ОУ
(**Sallen–Key**: тот же 2-й порядок + низкое выходное).
2. **Постоянная составляющая.** При скважности 50 % среднее = `Uпит/2`
= 1,65 В, синус смещён. Где смещение недопустимо — разделительный
`C = 1 мкФ` последовательно + `R = 47 кОм` на землю (ФВЧ ≈ 3,4 Гц),
либо уменьшить амплитуду командой `M`.
### Варианты фильтра под другую несущую
| SAMPLE_HZ | R | C | f_c |
|---|---|---|---|
| 62,5 кГц | 1 кОм | 47 нФ | 3,4 кГц |
| 62,5 кГц | 2,2 кОм | 22 нФ | 3,3 кГц |
| 31,25 кГц | 2,2 кОм | 47 нФ | 1,5 кГц |
## Как использовать
1. `task.md` + `stub/03-blank-otchyota.md` — студенту.
2. `stub/01-dds-generator-rp2040.ino` — прошить в RP2040 заранее
(или дать студенту в задании 4); альтернатива — `...-circuitpython.py`
на Pico с прошивкой CircuitPython (как `code.py`).
3. `stub/02-izmerenie-achh.py` — запускается на ПК студента (нужен pyserial).
4. `method.md` — только преподавателю.
5. Брошюры: `uv run rpd methodical lab5-peredatochnaya-funkciya-na-ou`.
## Связи
- **Практика** `pr5-raschet-analogovyh-ustrojstv` — расчётная часть
(K, R1, R2, фильтры) выполняется там.
- **Лекция** `le5-metody-modelirovaniya` — типы анализа; Monte Carlo
и `.step` — прямое применение.
- **Лекция** `le5-proektirovanie-analogovyh-ustrojstv` — топология ОУ.
- **ТАУ** (`b1-o-23`) — передаточные функции и типовые звенья идут
параллельно в 5 семестре; эта работа даёт им физическую реализацию.
## Статус
Черновик (draft). Тема `lab5-peredatochnaya-funkciya-na-ou` существует
в `topics/`; комплект в `labs/` — подготовлен для интеграции после
проверки преподавателем и согласования сквозной работы по мехатронике.