запущен проект motor identification c терминалкой
This commit is contained in:
81
motor_id_inverter/docs/experiment_protocol.md
Normal file
81
motor_id_inverter/docs/experiment_protocol.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# Протокол экспериментов
|
||||
|
||||
## 0. Общие условия безопасности
|
||||
|
||||
Перед подачей тестовых воздействий должны быть заданы пределы:
|
||||
|
||||
- максимальный фазный ток;
|
||||
- максимальное и минимальное напряжение DC-звена;
|
||||
- максимальная скорость;
|
||||
- максимальная температура;
|
||||
- таймаут каждого теста.
|
||||
|
||||
Если нагрузка на валу может создавать опасное движение при малом моменте, тест выполняется только с механически безопасной схемой: тормоз, ограничение перемещения или разомкнутая нагрузка.
|
||||
|
||||
## 1. Калибровка инвертора
|
||||
|
||||
До идентификации нужно измерить:
|
||||
|
||||
- нули датчиков фазных токов;
|
||||
- масштаб `Udc`;
|
||||
- реальное dead-time;
|
||||
- эффективное падение напряжения на ключах и диодах.
|
||||
|
||||
Для малых токов ошибка модели инвертора легко становится больше полезного напряжения на двигателе. Поэтому все оценки `Rs` и низкочастотных индуктивностей должны использовать не просто команду ШИМ, а восстановленное фазное напряжение.
|
||||
|
||||
## 2. Определение Rs
|
||||
|
||||
Рекомендуемый тест:
|
||||
|
||||
1. Подать постоянный ток `+I1`, дождаться установления, усреднить `U` и `I`.
|
||||
2. Подать `-I1`, повторить.
|
||||
3. Подать `+I2` и `-I2`, повторить.
|
||||
4. Выполнить линейную аппроксимацию `U = Rs * I + Uerr`.
|
||||
|
||||
Использование обеих полярностей позволяет частично отделить сопротивление обмотки от смещения напряжения инвертора.
|
||||
|
||||
## 3. AC sweep без фиксации ротора
|
||||
|
||||
Вместо опыта короткого замыкания с зафиксированным ротором используется пульсирующее поле:
|
||||
|
||||
- ток задается по одной неподвижной оси;
|
||||
- средний электромагнитный момент близок к нулю;
|
||||
- вал не требуется фиксировать;
|
||||
- частоты выбираются низкими: например 1, 2, 3, 5, 10 Гц.
|
||||
|
||||
Для каждой частоты записываются:
|
||||
|
||||
- `freq_hz`;
|
||||
- действующие значения `v_rms`, `i_rms`;
|
||||
- активная мощность `p_w`;
|
||||
- при возможности синфазная и квадратурная компоненты напряжения относительно тока.
|
||||
|
||||
Дальше строится комплексное входное сопротивление:
|
||||
|
||||
```text
|
||||
R = P / I_rms^2
|
||||
|Z| = V_rms / I_rms
|
||||
X = sqrt(|Z|^2 - R^2)
|
||||
Z = R + jX
|
||||
```
|
||||
|
||||
## 4. Намагничивание Lm
|
||||
|
||||
Подаются несколько ступеней тока намагничивания. Для каждой ступени:
|
||||
|
||||
```text
|
||||
psi = integral((V - Rs * I) dt)
|
||||
Lm = psi / I - Lls
|
||||
```
|
||||
|
||||
Лучше сохранять не одно значение `Lm`, а таблицу `Lm(I)`, потому что насыщение магнитной цепи заметно влияет на векторное управление.
|
||||
|
||||
## 5. Работа с нагрузкой
|
||||
|
||||
С подключенной нагрузкой возможны два режима:
|
||||
|
||||
- при неподвижном валу: использовать маломоментные DC/AC тесты, если нагрузка не создает опасного движения;
|
||||
- на ходу: доуточнять `Rs` и `Rr/Tr` адаптивным наблюдателем или RLS при малых тестовых добавках.
|
||||
|
||||
Все параметры одновременно на ходу без специальных возмущений надежно не наблюдаются.
|
||||
|
||||
53
motor_id_inverter/docs/model.md
Normal file
53
motor_id_inverter/docs/model.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# Модель идентификации
|
||||
|
||||
## T-образная схема замещения
|
||||
|
||||
На неподвижном роторе входное фазное сопротивление асинхронного двигателя описываем так:
|
||||
|
||||
```text
|
||||
Z(jw) = Rs + jw*Lls + (jw*Lm || (Rr + jw*Llr))
|
||||
```
|
||||
|
||||
где:
|
||||
|
||||
- `Rs` - сопротивление статора;
|
||||
- `Rr` - приведенное сопротивление ротора;
|
||||
- `Lls` - рассеяние статора;
|
||||
- `Llr` - рассеяние ротора;
|
||||
- `Lm` - взаимная индуктивность.
|
||||
|
||||
Если данных мало, допускается ограничение:
|
||||
|
||||
```text
|
||||
Lls = Llr = Ll / 2
|
||||
```
|
||||
|
||||
Это не физический закон, а инженерное допущение для запуска регуляторов.
|
||||
|
||||
## Что нельзя получить надежно
|
||||
|
||||
Без фиксации ротора и без возбуждения нельзя надежно разделить все параметры:
|
||||
|
||||
- `Rr` и `Lm` сильно связаны в низкочастотных данных;
|
||||
- ошибка восстановленного напряжения искажает `Rs`;
|
||||
- насыщение делает `Lm` функцией тока;
|
||||
- под нагрузкой момент нагрузки смешивается с параметрами ротора.
|
||||
|
||||
Поэтому проект использует двухэтапный подход:
|
||||
|
||||
1. offline self-commissioning на неподвижной машине;
|
||||
2. online-доуточнение ограниченного набора параметров во время работы.
|
||||
|
||||
## Производные параметры
|
||||
|
||||
После оценки базовых параметров считаются:
|
||||
|
||||
```text
|
||||
Ls = Lm + Lls
|
||||
Lr = Lm + Llr
|
||||
sigma = 1 - Lm^2 / (Ls * Lr)
|
||||
Tr = Lr / Rr
|
||||
```
|
||||
|
||||
Эти величины напрямую нужны для косвенного векторного управления.
|
||||
|
||||
Reference in New Issue
Block a user