В данной работе показаны различные способы моделирования двигателя постоянного тока независимого возбуждения (ДПТ НВ) различными способами: Matlab-Simulink, Matlab-Script и Си. В каждом из этих способов есть свои плюсы и минусы. Одинаковыми, как будет показано ниже, будут характеристики, соответствующие одним и тем же параметрам двигателя в системе относительных единиц.
Математическая модель двигателя состоит из электрической и механической частей, описываемых системой уравнений [1]:
|
(1) |
Первое уравнение системы (1) - баланс напряжений в электрической части двигателя. Второе - уравнение движения для механической части. Третье и четвертое - уравнения связи электрической и механической частей двигателя.
ua - напряжение источника питания, подаваемое на электрическую часть якоря двигателя (1 – подано номинальное напряжение, 0 – отключено);
ea - ЭДС, наводимая в обмотке якоря при пересечении проводников потока φ, создаваемого неподвижными полюсами;
ia - электрический ток в якорной цепи;
ra - полное электрическое сопротивление якорной цепи, включая сопротивление дополнительных полюсов и щеток;
- постоянная времени якорной цепи;
m, mс - электромагнитный и статический моменты;
ω - скорость вращения якоря;
φ - поток полюсов;
Tj - инерционная постоянная времени двигателя.
Параметры двигателя:
1. Модель ДПТ НВ в Matlab-Simulink.
В системе уравнений (1) произведем замену операторов операторами s . В этом случае перейдем к алгебраическим уравнениям:
|
(2) |
Из первого уравнения слагаемые с токами ia перенесем в левую часть, а ЭДС ea и напряжение ua - в правую:
Далее вынесем за скобки и определим ток :
Этому равенству соответствует структурная схема, приведенная на рис. 1.
Рис. 1. Структурная схема для определения тока ia
Аналогично, из второго уравнения выразим скорость ω:
Структурная схема для определения ω приведена на рис. 2.
Рис. 2. Структурная схема для определения скорости ω
Математическая модель ДПТ НВ в Matlab-Simulink представлена на рис. 3.
Рис. 3. Математическая модель ДПТ НВ в Matlab-Simulink
Результаты моделирования даны на рис. 4.
Рис. 4. Графики скорости ω и тока ia в Matlab-Simulink
Matlab-Simulink:
Достоинства:
− наглядность, высокая скорость и простота сборки структурной схемы из готовых блоков библиотеки с многочисленными элементами;
− простота подключений различных видов осциллографов к любой точке и вывод на экран множества переменных от времени.
Недостатки:
− сложно проследить за преобразованиями, производимыми внутри передаточной функции с оператором s;
− при увеличении числа элементов структурной схемы возможны сбои, вызванные либо делением на нуль, либо таким явлением как «алгебраические контуры».
2. Моделирование ДПТ НВ в Matlab-Script.
Из системы уравнений (1) выразим производные через конечные разности:
Тогда ток в якоре в момент времени определится:
Аналогично, для скорости ω:
Тогда математическая модель ДПТ НВ в Matlab-Script будет иметь вид (листинг 1):
Листинг 1
ra=0.107;Ta=0.034;phi=1;Tj=0.72;
ia(1)=0;w(1)=0;ea(1)=0;
dt=0.001;t=0;t1=5;
cnt=t1/dt;
for i=1:cnt
if(t>=1)
uy=1;
else
uy=0;
end;
if(t>=3)
mc=0.5;
else
mc=0;
end;
ia(i+1)=ia(i)+(uy-ea(i)-ia(i)*ra)*dt/(Ta*ra);
m(i+1)=phi*ia(i+1);
w(i+1)=w(i)+(m(i+1)-mc)*dt/Tj;
ea(i+1)=phi*w(i+1);
t=t+dt;
mass_t(i)=i*dt;
mass_w(i)=w(i+1);
mass_ia(i)=ia(i+1);
end;
figure(1);
plot(mass_t,mass_w,'b');
grid on;
figure(2);
plot(mass_t,mass_ia,'r');
grid on;
Результаты моделирования ДПТ НВ в Matlab-Script приведены на рис. 5.
Рис. 5. Графики скорости ω и тока ia в Matlab-Script
Matlab-Script:
Достоинство:
− дифференцирование заменяется численными методами с конечными разностями и появляется возможность самому произвести простейшие операции на каждом шаге и определить переменные к концу времени задаваемого шага dt – шага интегрирования. Появляется возможность проверки компьютерного расчета ручным на небольшом интервале времени, соответствующем нескольким шагам dt.
Недостатки:
− нет той наглядности, которая присутствует при сборке структурной схемы в Matlab-Simulink;
− требуется много времени для прописывания программы по выводу на появляющийся экран характера изменения во времени нескольких переменных и тем более во многих точках системы.
3. Моделирование ДПТ НВ на языке программирования Си.
Математическая модель ДПТ НВ на языке программирования Си дана в листинге 2.
Листинг 2
#include
#undef __STRICT_ANSI__
#include
#include "gnuplot_i.h"
#define FILENAME "tmp.txt"
int main(void) {
// параметры двигателя постояного тока
const double ra = 0.107, // сопротивление обмотки якоря, о.е.
Ta = 0.034, // электромагнитная постоянная времени цепи якоря двигателя, с
phi = 1, // номинальный магнитный поток
Tj = 0.72; // инерционная постоянная времени
// переменные математической модели двигателя постоянного тока
double ua = 0, // управляющее воздействие
ea = 0, // эдс двигателя
m = 0, // электромагнитный момент двигателя
mc = 0, // момент статического сопротивления
ia = 0, // ток якоря
w = 0; // скорость вращения
//double func = 0; // переменная под значение функции, которую будем интегрировать
//double y0 = 0, // старое значение
// y1 = 0; // новое значение
double dt = 1e-3; // шаг интегрирования
double t = 0; // текущее значение времени
double t1 = 5; // конечное значение времени расчета
unsigned int cnt = t1/dt; // количество точек
// Создаем временный файл, в который будем записывать текущие значения
FILE *fp = fopen(FILENAME, "w");
// цикл расчета
for (unsigned int i = 0; i < cnt; i++) {
// подача управляющего воздействия
if (t >= 1.0f)
ua = 1.0f;
else
ua = 0.0f;
// подача возмущающего воздействия
mc = (t >= 3.0f)? 1.0f: 0.0f;
// расчет мат модели двигателя пост тока
ia = ia + dt * (ua - ea - ra * ia)/(ra*Ta);
m = ia * phi;
ea = w * phi;
w = w + dt * (m - mc)/Tj;
// записываем точки во временный файл
fprintf(fp,"%f\t%f\t%f\n", t, ia, w);
// увеличиваем переменную время
t = t + dt;
}
// Закрываем текстовый файл с текущими значениями
fclose(fp);
// Рисуем графики
gnuplot_ctrl *h;
h = gnuplot_init();
gnuplot_cmd(h, "set grid xtics ytics"); // вкл сетка
gnuplot_cmd(h, "plot '%s' u 1:2 w li lt rgb 'red' ti 'ia',\
'%s' u 1:3 w li lt rgb 'blue' ti 'w'", FILENAME, FILENAME);
getchar();
gnuplot_close(h);
// Удаляем временный файл с точками
if (!remove(FILENAME))
printf("Deleting file is complete\n");
else
printf("Temp file does not delete\n");
return 0;
}
Результаты моделирования ДПТ НВ на языке программирования Си даны на рис. 6.
Рис. 6. Графики скорости ω и тока ia на языке программирования Си
Язык Си:
Достоинство:
− программу, написанную на языке Си, можно загрузить в микроконтроллер, но для этого необходимо прописать адреса цифрового ввода.
Недостатки:
− с целью увеличения быстродействия необходимо в программе прописать только необходимые файлы из конкретных библиотек;
− вводится сокращенная форма записи, например, инкремент (быстрое увеличение на единицу) i++, означающий i = i+1.
Литература:
- Шрейнер Р.Т. Системы подчиненного регулирования электроприводов: учеб. пособие / Р.Т. Шрейнер. - Екатеринбург: Изд-во ГОУ ВПО «Рос. гос. проф.-пед. ун-т», 2008. – 279 с.
- Васильев А.Н. Matlab. Самоучитель. Практический подход. – СПб.: Наука и Техника, 2012. – 448 с.
- Васильев А.Н. Программирование на C++ в примерах и задачах. – М.: Издательство «Э», 2017. – 368 с.