2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1 ... 6, 7, 8, 9, 10  След.
 
 Re: Угловая скорость рамки в магнитном поле и магнитная индукция
Сообщение26.06.2019, 17:02 


30/01/18
639
amon в сообщении #1401635 писал(а):
rascas в сообщении #1401633 писал(а):
Обнуляем индуктивность, $L=0$.
А Вы, в силу врожденных особенностей организма, индуктивность от ЭДС самоиндукции совсем не отличаете?
$L$ - это коэффициент самоиндукции, который связывает величину ЭДС самоиндукции и скорость изменения тока. $\mathcal{E}_{is}=-L\dot{I}$
Вы попросили "выкинуть самоиндукцию". То есть установить $L\dot{I}=0$. Я установил $L=0$, тем самым и $L\dot{I}=0$.
Я пока не понимаю Ваших намёков? Что же всё таки означала Ваша просьба: "выкинуть самоиндукцию" ?

 Профиль  
                  
 
 Re: Угловая скорость рамки в магнитном поле и магнитная индукция
Сообщение26.06.2019, 18:00 
Заслуженный участник
Аватара пользователя


04/09/14
5255
ФТИ им. Иоффе СПб
rascas в сообщении #1401646 писал(а):
$L$ - это коэффициент самоиндукции
Виноват, сам заврался. Предлагалось выкинуть ЭДС индукции, последний член во втором уравнении (от этого, казалось бы, только лучше станет):
$$ \begin{align*} J\dot{\omega}&=IBl\cos\alpha\\ L\dot{I}&=\mathcal{E}_0 \cos\alpha \end{align*}.$$

 Профиль  
                  
 
 Re: Угловая скорость рамки в магнитном поле и магнитная индукция
Сообщение26.06.2019, 22:53 


30/01/18
639
amon в сообщении #1401650 писал(а):
Предлагалось выкинуть ЭДС индукции, последний член во втором уравнении (от этого, казалось бы, только лучше станет):
$$ \begin{align*} J\dot{\omega}&=IBl\cos\alpha\\ L\dot{I}&=\mathcal{E}_0 \cos\alpha \end{align*}.$$

amon в сообщении #1401631 писал(а):
Тогда эта система точно решается, точнее, имеет первый интеграл, из которого все становится ясно.
Получилась такая зависимость частоты от тока в рамке: $\omega = \frac{BlL}{2J\mathcal{E}_0} I^2$
Но мне не ясно какая всё таки зависимость частоты вращения от времени :-(


Хочу заметить, что во всех источниках, где объясняется работа коллекторного двигателя постоянного тока на примере рамки с током. Коллектор рамки перекоммутирует питающее наряжение в положении, когда плоскость рамки с током перпендикулярна вектору магнитной индукции.
Изображение
И никогда мне не попадалась рамка с током где перекоммутация в коллекторе осуществлялась в положении рамки параллельно вектору магнитной индукции.

Поэтому отвечая на недоумение некоторых участников форума: "почему двигатели постоянного тока с постоянными магнитами не уходят в разнос, а рамка может набирать скорость неограниченно?".
Это объясняется тем, что здесь в рамке был развернут коллектор на 90°. Если у обычного двигателя с постоянными магнитами вывернуть коллектор относительно ротора, (либо что тоже самое повернуть щёточный узел) он также вполне может неограниченно набирать скорость.

 Профиль  
                  
 
 Re: Угловая скорость рамки в магнитном поле и магнитная индукция
Сообщение27.06.2019, 00:57 
Заслуженный участник
Аватара пользователя


04/09/14
5255
ФТИ им. Иоффе СПб
rascas в сообщении #1401694 писал(а):
Но мне не ясно какая всё таки зависимость частоты вращения от времени
Ну, качественно теперь это можно сообразить. Во-первых, рамка будет крутится - $I^2$ положительно. Во-вторых, делать она это будет жутко неравномерно - ток периодическая функция времени, он меняет направление, значит периодически рамка будет останавливаться. Картинку сейчас не могу привести, на компьютере, с которого я сейчас пишу стоит win XP, и никакой Математики на нем, естественно, нет. Качественно это похоже на $\cos^2.$
rascas в сообщении #1401694 писал(а):
Коллектор рамки перекоммутирует питающее наряжение в положении, когда плоскость рамки с током перпендикулярна вектору магнитной индукции.
Так из-за этого весь сыр-бор и разгорелся. Если считать, что рамка - активное сопротивление, то так и надо делать. Если считать, что сопротивление чисто индуктивное, то ток сдвинется относительно напряжения на $\pi/2,$ и, для гипотетического двигателя без активного сопротивления, для того, что бы он равномерно крутился, надо повернуть щетки на 90 градусов и еще и проследить за знаком подаваемого напряжения. На это обратил внимание Alex-Yu еще на первой странице, и дальше тема вертелась вокруг этого. Поэтому его можно понять, когда на девятой странице возник уже рассмотренный вдоль и поперек вопрос.

 Профиль  
                  
 
 Re: Угловая скорость рамки в магнитном поле и магнитная индукция
Сообщение27.06.2019, 06:39 


30/01/18
639
amon в сообщении #1401714 писал(а):
делать она это будет жутко неравномерно
Не совсем согласен.
Система уравнений
rascas в сообщении #1401622 писал(а):
$$ \begin{align*} J\dot{\omega}&=IBl\cos\alpha\\ L\dot{I}&=(\mathcal{E}_0 -SB\omega)\cos\alpha \end{align*} $$
имеет асимптотическое решение $ \omega = \frac{\mathcal{E}_0}{SB} $
В начальном этапе разгон будет неравномерным, но по мере набора скорости будет расти слагаемое $SB\omega$ и скорость придёт к асимптотической.
И никаких чудес с неограниченным разгоном.

В реальных двигателях, для повышения равномерности вращения, делают большое кол-во полюсов на роторе и соответственно ламелей на коллекторе. И при вращении, коммутируется правильно установленная "рамка".

 Профиль  
                  
 
 Re: Угловая скорость рамки в магнитном поле и магнитная индукция
Сообщение27.06.2019, 08:02 
Заслуженный участник


21/08/10
2462
rascas в сообщении #1401739 писал(а):
имеет асимптотическое решение $ \omega = \frac{\mathcal{E}_0}{SB} $



Между прочем, косинус -- это приближение. Реально коллектор даст меандр. И при меандре решения с нулевым током все равно не будет. Ну и вращение по инерции (плюс небольшие, при большом моменте инерции, пульсации скорости), конечно, может быть, причем с любой скоростью. А не только с такой. Потерь же нет.

Более существенный факт заключается в том, что средний момент силы при таком положении щеток ВСЕГДА нулевой. Просто потому, что ток в индуктивности сдвинут на 90 градусов относительно напряжения. Если же в основном работает активное сопротивление, а не индуктивность, то тогда этого сдвига фаз нет, и положение щеток должно быть как на обычных картинках. И вот тогда, и только тогда, будет компенсация ЭДС индукции и напряжения с коллектора (первой гармоники) и переход в асимптотический режим, о которых вы говорите.

В общем все это уже обсуждалось. И прежде чем лезть в дискуссию, надо бы ее прочитать сначала. А не высказывать с налету свои, абсолютно неуместные соображения. Про много полюсов еще... Вы, наверное, думаете, что тут собрались совсем идиоты, которые даже этого не знают.... Так вот сообщаю вам: это совсем даже не так!

 Профиль  
                  
 
 Re: Угловая скорость рамки в магнитном поле и магнитная индукция
Сообщение27.06.2019, 10:45 


05/09/16
12058
Alex-Yu в сообщении #1401741 писал(а):
Просто потому, что ток в индуктивности сдвинут на 90 градусов относительно напряжения.

Вы не могли бы в двух словах пояснить смысл этого утверждения? Учитывая что напряжение на рамке у нас не синус, ток по форме не повторяет напряжение, скорость вращения (частота) не постоянна и т.п., то есть мы имеем дело с перманентным переходным процессом, а не с устоявшимся режимом гармонических колебаний.
Что это за 90 градусов?

 Профиль  
                  
 
 Re: Угловая скорость рамки в магнитном поле и магнитная индукция
Сообщение27.06.2019, 12:02 
Заслуженный участник


21/08/10
2462
wrest в сообщении #1401765 писал(а):
Учитывая что напряжение на рамке у нас не синус,



Ну да, при учете несинусоидальности корректнее говорить о четверти периода. Впрочем, прямоугольник можно разложить в ряд Фурье, тогда для каждой гармоники будет 90 градусов вполне корректно.

Как бы то ни было, та часть тока, что возникает из-за меандра (прямоугольного колебания) сдвинута на четверть периода в том смысле, что максимум "пилы" тока приходится на момент переключения напряжения. См. картинки выше, были такие благодаря oleg_2. Вот в смысле этих картинок и надо понимать. А градусы там не градусы... Это слова, а не существо дела.

-- Чт июн 27, 2019 16:07:36 --

wrest в сообщении #1401765 писал(а):
мы имеем дело с перманентным переходным процессом, а не с устоявшимся режимом



Если момент инерции большой, то на не очень большом числе колебаний приближенно можно ток и напряжение считать периодическими процессами.

А первоначально я рассматривал двигатель вообще под нагрузкой. Когда частота вращения постоянная.

 Профиль  
                  
 
 Re: Угловая скорость рамки в магнитном поле и магнитная индукция
Сообщение27.06.2019, 12:15 


30/01/18
639
Провёл расчёты как и amon в Wolfram.
Только для системы дифференциальных уравнений
rascas в сообщении #1401622 писал(а):
$$ \begin{align*} J\dot{\omega}&=IBl\cos\alpha\\ L\dot{I}&=(\mathcal{E}_0 -SB\omega)\cos\alpha \end{align*} $$

Код:
s = NDSolve[{a''[t] == 0.1 i[t] Cos[a[t]],    i'[t] == Cos[a[t]] - a'[t] Cos[a[t]], a[0] == 0, a'[0] == 0,   i[0] == 0}, {a, i}, {t, 0, 2000}]
Plot[Evaluate[{a'[t]} /. s], {t, 0, 200}, PlotStyle -> Automatic]

Изображение
Частота вращения нестабильна но и неограниченного роста частоты вращения рамки не наблюдается.

Добавил небольшое активное сопротивление, колебания затухают и частота вращения рамки стремится к асимптотической.
Код:
s = NDSolve[{a''[t] == 0.1 i[t] Cos[a[t]],    i'[t] +  0.1 i[t] == Cos[a[t]] - a'[t] Cos[a[t]], a[0] == 0,  a'[0] == 0, i[0] == 0}, {a, i}, {t, 0, 2000}]
Plot[Evaluate[{a'[t]} /. s], {t, 0, 200}, PlotStyle -> Automatic]

Изображение

Изменение ЭДС входного источника с (ко)синусоиды на меандр, практически не влияет.

Возможно в систему уравнений также надо добавить условие обнуление тока рамки при перекоммутации: $I\rvert_{\alpha=k\frac{\pi}{2}} = 0$

 Профиль  
                  
 
 Re: Угловая скорость рамки в магнитном поле и магнитная индукция
Сообщение27.06.2019, 12:34 


05/09/16
12058
Alex-Yu в сообщении #1401775 писал(а):
Ну да, при учете несинусоидальности корректнее говорить о четверти периода. Впрочем, прямоугольник можно разложить в ряд Фурье, тогда для каждой гармоники будет 90 градусов вполне корректно.

Послушайте, но у нас нет никаких периодов. Мы, приступая к задаче, ведь не знаем будет ли крутиться и куда. И меандра (в смысле периодического) нет. Напряжение у нас или $+U$ или $-U$ в зависимости от знака синуса (или косинуса) угла поворота рамки плюс сколько-то градусов - смещение контактов коллектора.
Alex-Yu в сообщении #1401775 писал(а):
Как бы то ни было, та часть тока, что возникает из-за меандра (прямоугольного колебания) сдвинута на четверть периода в том смысле, что максимум "пилы" тока приходится на момент переключения напряжения.
Ну не знаю, если рамку застопорить и напряжение переключать, так и будет (т.е. имеем просто катушку индуктивности и источник напряжения). Подали напряжение -- ток увеличивается, переполюсовали напряжение -- уменьшается.

 Профиль  
                  
 
 Re: Угловая скорость рамки в магнитном поле и магнитная индукция
Сообщение27.06.2019, 13:02 
Заслуженный участник


21/08/10
2462
wrest в сообщении #1401784 писал(а):
Послушайте,


Нет, не буду слушать. Бессмысленные писания я комментировать не собираюсь.

-- Чт июн 27, 2019 17:15:37 --

rascas в сообщении #1401780 писал(а):
Возможно в систему уравнений также надо добавить условие обнуление тока рамки при перекоммутации: $I\rvert_{\alpha=k\frac{\pi}{2}} = 0$



А вот это не получится. Прерывание тока будет означать бесконечное напряжение. Да и вообще в реальной конструкции скорее закоротка источника получается. А в реальной многополюсной системе там вообще обмотки замкнуты. Там обрыв в принципе невозможен.

-- Чт июн 27, 2019 17:53:05 --

rascas в сообщении #1401780 писал(а):
Частота вращения нестабильна но и неограниченного роста частоты вращения рамки не наблюдается.



А если начальный угол сделать равным $\pi$? Подозреваю, что будет та же синусоида, но смещенная не вверх, а вниз.

А еще интересно и полезно "поиграть" не электрическим затуханием, а механическим. Заменить a''[t] == 0.1 i[t] Cos[a[t]] на, к примеру,
a''[t] + 0.01 a'[t] == 0.1 i[t] Cos[a[t]] . И еще поиграть коэффициентом при первой производной.

 Профиль  
                  
 
 Re: Угловая скорость рамки в магнитном поле и магнитная индукция
Сообщение27.06.2019, 14:07 


30/01/18
639
Alex-Yu в сообщении #1401793 писал(а):
А вот это не получится. Прерывание тока будет означать бесконечное напряжение.
Установим не бесконечно большое, но достаточное сопротивление, это сделает напряжение не бесконечным, а интервал времени "разрядки" индуктивности рамки коротким. При работе реального коллекторного двигателя между щётками и коллектором всегда наблюдал искрение, возможно сопротивление образованное небольшим воздушным промежутком при перекоммутации в коллекторе и достаточно.

Alex-Yu в сообщении #1401793 писал(а):
А в реальной многополюсной системе там вообще обмотки замкнуты. Там обрыв в принципе невозможен.
Они там не замкнуты, а соединены последовательно. И соответственно, активное сопротивление соединённых последовательно большого числа обмоток велико.


Alex-Yu в сообщении #1401793 писал(а):
А если начальный угол сделать равным $\pi$? Подозреваю, что будет та же синусоида, но смещенная не вверх, а вниз.
При подстановке в начальные условия
Код:
a[0] == Pi
В обоих моих графиках ничего не изменилось. Рамка не стала крутится в обратную сторону.

 Профиль  
                  
 
 Re: Угловая скорость рамки в магнитном поле и магнитная индукция
Сообщение27.06.2019, 14:17 
Заслуженный участник


21/08/10
2462
rascas в сообщении #1401811 писал(а):
Они там не замкнуты, а соединены последовательно.



Бегом на свалку искать моторчик и ломать его! Впрочем, если много обмоток соединить последовательно, то как раз замкнутая цепь и получится. Что, что бы ни сказать, лишь бы покрасоваться? Осмысленность сказанного не имеет значения?

-- Чт июн 27, 2019 18:19:18 --

rascas в сообщении #1401811 писал(а):
Установим не бесконечно большое, но достаточное сопротивление, это сделает напряжение не бесконечным, а интервал времени "разрядки" индуктивности рамки коротким. При работе реального коллекторного двигателя между щётками и коллектором всегда наблюдал искрение, возможно сопротивление образованное небольшим воздушным промежутком при перекоммутации в коллекторе и достаточно.



Вот вот, еще образчик стиля лишь бы поболтать, покрасоваться. Будто про искры на коллекторе никто "не знает"...

Еще один персонаж такого же рода -- это wrest .

 Профиль  
                  
 
 Re: Угловая скорость рамки в магнитном поле и магнитная индукция
Сообщение27.06.2019, 14:56 
Заслуженный участник


09/05/12
25179
 !  Alex-Yu, по-видимому, пора неделю отдохнуть.

 Профиль  
                  
 
 Re: Угловая скорость рамки в магнитном поле и магнитная индукция
Сообщение04.07.2019, 16:02 


02/10/12
308
У меня нет "Математики", но я написал численный интегратор и получил неожиданные эффекты. Самый яркий из них - ненулевая постоянная составляющая тока рамки.

Интегратор:
код: [ скачать ] [ спрятать ]
Используется синтаксис C
//   gcc da_float.c -o da_float.cgi -Wall -Werror -O3 -lm
//   ./da_float.cgi


#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <math.h>


struct s_tab{ // значения для одного момента времени
    double i; // ток
    double a; // угол
    double v; // скорость
    double m; // момент
};

struct s_scale{ // структура автоматического масштабирования
    double k1; // ток
    double k2; // угол
    double k3; // скорость
    double k4; // момент
};

int wr_bmp_24_RGB(FILE *fp, const char *pic, int w, int h);


//----------- sign_cos -----------

int sign_cos(double a)
{
    double cos_a = cos(a*3.14/180);
    if(cos_a > 0) return(1);
    return(-1);
}

// масштаб времени (целые положительные числа)
#define T1  8    // T1>=1. Растяжка времени. На T1 делятся приращения.
#define T2 10    // сжатие времени на рисунке, на точность не влияет

// Начальные значения
#define I0    0 // Ток
#define A0    0 // Угол
#define V0    0 // Скорость
#define FI    0 // угол установки шеток. (0 или +90)

// Параметры
#define  E0    2  // напряжение батарейки
#define  E1   20  // ЭДС-индукции
#define  R0   10  // сопротивление потерь
#define  M1    0  // момент вязкого трения M=M1*v;
#define  M2    0  // момент сухого трения
#define  J  9000  // момент инерции, J>0, он в знаменателе

// Размеры рисунка. Можно менять, пошире сделать - больше видно
#define W  600   // ширина
#define H  200   // высота

// Масштабные коэффициенты для графиков
#define AVT   1  // 0 ручная; 1 автоматическая установка кроме T1 и T2
#define K1  0.2  // ток
#define K2  0.9  // угол
#define K3  2    // скорость
#define K4  3    // момент



//----------- avit ---------------
// Один шаг интегрирования
int avit(struct s_tab *s, int t)
{
    double di, dv, cos_a, m, m1, m2, v1, z;
    double i = s[t].i; // ток
    double a = s[t].a; // угол
    double v = s[t].v; // скорость вращения

    cos_a = cos(a*3.14/180);
    z = sign_cos(a+FI); // FI -угол установки щеток. Знак коммутатора.
                        // +1 батарейка согласно направлению  обхода рамки;
                        // -1 встречно.

    // приращение тока. E=L(di/dt); i=интеграл((E/L)dt); di=E/L;
    // dt здесь всегда равно 1.
    di = E0 * z - E1 * v * cos_a * (3.14/180) - R0*i/1000;

    // T1 -растяжка времени, уменьшение дифференциалов
    i = i + di/T1; // ток
    m = i * cos_a; // момент электромагнитный
    m1 = M1 * v;   // момент вязкого трения
    if(v<0) m2 = -M2; else m2=M2; // m2 -момент сухого трения
    dv = (m - m1 - m2)/J; // приращение скорости
    v1 = v;        // запомнил скорость предыдущего шага
    v = v + dv/T1; // скорость
    if(M2>0 && abs(m)<=M2){ // сухое трение
        if((v1<=0 && v>0) || (v1>=0 && v<0)) v=0;
    }
    a = a + v/T1;  // угол
    if(a >  360) a=a-360; // Это для ненакопления ошибки Pi, и чтобы
    if(a < -360) a=a+360; // график угла не уходил за край рисунка.

    t = t + 1;
    s[t].i = i;
    s[t].a = a;
    s[t].v = v;
    s[t].m = m;
    return(0);
}

//------------ tab -------------------
// Интегратор, заполняет таблицу
int tab(struct s_tab *s, int w)
{
    int t=0, k=w*T2;
    s[t].i = I0;
    s[t].a = A0;
    s[t].v = V0;
    s[t].m =  0;

    for(t=0; t<k; t++){
        avit(s, t);
    }
    return(0);
}

//---------- avt_scale -------------
// автоматическое масштабирование
int avt_scale(struct s_tab *s, struct s_scale *s1, int h1, int h2, int w)
{
    double imin, imax, amin, amax, vmin, vmax, mmin, mmax, k1, k2, k3, k4;
    int t, n;

    imin=imax=amin=amax=vmin=vmax=mmin=mmax=0;
    n = w*T2; h1 += 5; h2 -= 5;
    for(t=0; t<n; t++){
        if(s[t].i < imin) imin = s[t].i;
        if(s[t].i > imax) imax = s[t].i;
        if(s[t].a < amin) amin = s[t].a;
        if(s[t].a > amax) amax = s[t].a;
        if(s[t].v < vmin) vmin = s[t].v;
        if(s[t].v > vmax) vmax = s[t].v;
        if(s[t].m < mmin) mmin = s[t].m;
        if(s[t].m > mmax) mmax = s[t].m;
    }
    if((-imin) > imax && (-imin) > 0.1) k1 = -h2/imin;
    else if(imax > 0.1) k1 = -h1/imax; else k1 = 1;
    if((-amin) > amax && (-amin) > 0.1) k2 = -h2/amin;
    else if(amax > 0.1) k2 = -h1/amax; else k2 = 1;
    if((-vmin) > vmax && (-vmin) > 0.1) k3 = -h2/vmin;
    else if(vmax > 0.1) k3 = -h1/vmax; else k3 = 1;
    if((-mmin) > mmax && (-mmin) > 0.1) k4 = -h2/mmin;
    else if(mmax > 0.1) k4 = -h1/mmax; else k4 = 1;
    k4 = k4*0.7; // дизайн рисунка
    if(AVT==1) s1->k1 = k1; else s1->k1 = K1;
    if(AVT==1) s1->k2 = k2; else s1->k2 = K2;
    if(AVT==1) s1->k3 = k3; else s1->k3 = K3;
    if(AVT==1) s1->k4 = k4; else s1->k4 = K4;

    printf("t=%d\n", w*T2/T1);
    printf("Imax=%0.3f; Imin=%0.3f\n", imax, imin);
    printf("Vmax=%0.3f; Vmin=%0.3f\n", vmax, vmin);
    printf("Mmax=%0.3f; Mmin=%0.3f\n", mmax, mmin);
    return(0);
}

//--------- set_pixel -------------------

void set_pixel(char *p, int r, int g, int b)
{
    *p++ = r; *p++ = g; *p++ = b;
    return;
}

//------------ set_img ----------------
// Преобразование таблицы в рисунок
int set_img(struct s_tab *s, char *pic, int w, int h, FILE *fp)
{
    int w3, h1, h2, t, t1, val1, val2, val3, val4;
    double k1, k2, k3, k4;
    char *p1, *p2;
    struct s_scale  s1[1];

    w3 = w*3;
    h2 = (h-2)/2;
    h1 = -h2;
    p1 = pic + (-h1*w3);

    avt_scale(s, s1, h1, h2, w);
    k1 = s1->k1;
    k2 = s1->k2;
    k3 = s1->k3;
    k4 = s1->k4;

    printf("k1=%0.3f; k2=%0.3f; k3=%0.3f; k4=%0.3f\n", k1, k2, k3, k4);


    memset(pic, 255, w3*h);
    for(p2=p1, t=0; t<w; t++){
        *p2++ = 0; *p2++ = 0; *p2++ = 0;
    }

    for(t=0; t<w; t++){
        for(t1=0; t1<T2; t1++){ // сжатие по t; все в один столбик пикселей.
            val1 = (int)(s[t*T2+t1].i * k1);
            val2 = (int)(s[t*T2+t1].a * k2);
            val3 = (int)(s[t*T2+t1].v * k3);
            val4 = (int)(s[t*T2+t1].m * k4);
            if(1 && val1 > h1 && val1 < h2){
                p2 = p1 - val1*w3;
                set_pixel(p2, 255, 0, 0);
            }
            if(1 && val2 > h1 && val2 < h2){
                p2 = p1 - val2*w3;
                set_pixel(p2, 0, 255, 0);
            }
            if(1 && val3 > h1 && val3 < h2){
                p2 = p1 - val3*w3;
                set_pixel(p2, 0, 0, 255);
            }
            if(1 && val4 > h1 && val4 < h2){
                p2 = p1 - val4*w3;
                set_pixel(p2, 180, 100, 0);
            }
        }
        p1 += 3;
    }
    k1 = wr_bmp_24_RGB(fp, pic, w, h);
    return(k1);
}

//------------ set -------------------

int set(FILE *fp)
{
    int w=W, h=H;
    struct s_tab  *s=NULL;
    char *pic=NULL;

    s = (struct s_tab*)malloc(w * T2 * sizeof(struct s_tab));
    if(s==NULL){ printf("s = (struct s_tab*)malloc()=NULL\n"); exit(0);}

    pic = (char*)malloc(w*h*3);
    if(pic==NULL){ printf("pic = (char*)malloc()=NULL\n"); exit(0);}

    tab(s, w);
    set_img(s, pic, w, h, fp);
    exit(0);
}

//--------- main --------------------

int main()
{
    const char *f="out.bmp";
    FILE *fp=NULL;

    fp=fopen(f, "w");
    if(fp==NULL){ printf("fp=fopen(%s)=NULL\n", f); exit(0);}

    set(fp);
    exit(0);
}

//------------------- wr_bmp_24_RGB ------------------
// записать RGB-буфер в BMP-файл
int wr_bmp_24_RGB(FILE *fp, const char *pic, int w, int h)
{
    char hdr[54];
    int i, j, dl, pad, w1;
    const char *p1;

    w1=3*w;
    if(w1%4) pad = 4 - w1%4;
    else pad=0;
    dl = (w1 + pad)*h + 54;

    memset(hdr, 0, sizeof(hdr));
    hdr[0]='B'; hdr[1]='M';
    hdr[2]=dl; hdr[3]=(dl>>8); hdr[4]=(dl>>16); hdr[5]=(dl>>24);
    hdr[10]=54; hdr[14]=40;
    hdr[18]=w; hdr[19]=(w>>8); hdr[20]=(w>>16); hdr[21]=(w>>24);
    hdr[22]=h; hdr[23]=(h>>8); hdr[24]=(h>>16); hdr[25]=(h>>24);
    hdr[26]=1; hdr[28]=24;
    if(fwrite(hdr, 54, 1, fp) != 1) return(-1);

    p1=pic + w1*h;
    for(i=0; i<h; i++){
        p1 -= w1;
        for(j=0; j<w; j++){
            if(fputc(*(p1+2), fp) < 0) return(-1);
            if(fputc(*(p1+1), fp) < 0) return(-1);
            if(fputc(*(p1), fp) < 0) return(-1);
            p1 += 3;
        }
        p1 -= w1;
        if(pad>0) if(fwrite("\0\0\0", pad, 1, fp) != 1) return(-1);
    }
    return(0);
}
 


Привожу некоторые графики. Вот настройки, они относятся к первому рисунку. Т. к. настроек много, то эти настройки я назвал исходными, а к остальным рисункам я буду приводить лишь те настройки, которые отличаются от исходных или облегчают смотрение графиков, для удобства. Снизу через пунктирную черту привожу выдачу программы, это для сравнения рисунков.

Рис. 1.
Рамка с сопротивлением потерь, с не повернутыми щетками, с ЭДС индукции, без начальной скорости, без нагрузки.
Код:
// масштаб времени (целые положительные числа)
#define T1  8    // T1>=1. Растяжка времени. На T1 делятся приращения.
#define T2 10    // сжатие времени на рисунке, на точность не влияет

// Начальные значения
#define I0    0 // Ток
#define A0    0 // Угол
#define V0    0 // Скорость
#define FI    0 // угол установки шеток. (0 или +90)

// Параметры
#define  E0    2  // напряжение батарейки
#define  E1   20  // ЭДС-индукции
#define  R0   10  // сопротивление потерь
#define  M1    0  // момент вязкого трения M=M1*v;
#define  M2    0  // момент сухого трения
#define  J  9000  // момент инерции, J>0, он в знаменателе

// Размеры рисунка. Можно менять, пошире сделать - больше видно
#define W  600   // ширина
#define H  200   // высота

// Масштабные коэффициенты для графиков
#define AVT   1  // 0 ручная; 1 автоматическая установка кроме T1 и T2
#define K1  0.2  // ток
#define K2  0.9  // угол
#define K3  2    // скорость
#define K4  3    // момент
--------------
t=750
Imax=147.619; Imin=-103.816
Vmax=1.896; Vmin=0.000
Mmax=105.349; Mmin=-35.976
k1=0.637; k2=0.261; k3=49.586; k4=0.625

Изображение
В выдаче время всего графика, значения тока, скорости и момента, максимальные на рисунке, а также масштабные коэффициенты в порядке: ток, угол, скорость, момент.
На рисунке:
Красный - ток рамки.
Зеленый - угол рамки, когда 360 градусов - скачок вниз.
Синий - скорость рамки.
Оранжевый - электромагнитный вращательный момент.

Рис. 2.
Тоже, что на рис. 1, но сильно сжатое по времени.
Код:
#define T2 10000    // сжатие времени на рисунке, на точность не влияет
-------------
t=750000
Imax=147.619; Imin=-103.816
Vmax=7.302; Vmin=0.000
Mmax=105.349; Mmin=-35.976
k1=0.637; k2=0.261; k3=12.873; k4=0.625

Видно установившуюся скорость, она максимальная на рисунке. Из выдачи: Vmax=7.302, запомню её, это скорость холостого хода.
Изображение

Рис. 3.
Тоже, что на рис. 1, но с другим масштабом времени и с начальной скоростью, превышающей скорость холостого хода
Код:
#define T2      1 // сжатие времени на рисунке, на точность не влияет
#define V0      8 // Скорость
-------
t=75
Imax=3.224; Imin=-2.849
Vmax=8.000; Vmin=0.000
Mmax=2.204; Mmin=-2.547
k1=29.153; k2=0.261; k3=11.750; k4=25.830

Изображение

Рис. 4.
То же, что на предыдущем рисунке, но сильно сжатое по времени
Код:
#define T2  10000 // сжатие времени на рисунке, на точность не влияет
#define V0      8 // Скорость
--------
t=750000
Imax=5.193; Imin=-5.503
Vmax=8.000; Vmin=0.000
Mmax=2.679; Mmin=-2.810
k1=17.082; k2=0.261; k3=11.750; k4=23.419

Изображение
Видно, что скорость снижается примерно до скорости холостого хода и такой и остается. Когда она снижается, наверно батарейка подзаряжается макроскопически, т. е. в среднем за много оборотов.

Рис. 5.
То же, что на рис. 1, но с другим масштабом времени и с нагрузкой
Код:
#define  T2  100  // сжатие времени на рисунке, на точность не влияет
#define  M1    2  // момент вязкого трения M=M1*v;
-----------
t=7500
Imax=147.914; Imin=-106.218
Vmax=2.407; Vmin=0.000
Mmax=105.485; Mmin=-35.573
k1=0.636; k2=0.261; k3=39.058; k4=0.624

Изображение
Видно, что скорость установилась Vmax=2.407, и она сильно меньше скорости холостого хода.

Рис. 6.
Сильно отличается от всех прежних, теперь рамка без потерь, и щетки сдвинуты. Здесь самое важное, что ток всё время нарастает макроскопически, т. е. появляется постоянная составляющая.
Код:
// Начальные значения
#define I0    0 // Ток
#define A0  -45 // Угол
#define V0    0 // Скорость
#define FI   90 // угол установки щеток. (0 или +90)

#define T2   16 // сжатие времени на рисунке, на точность не влияет

#define  R0    0  // сопротивление потерь
#define  M1    0  // момент вязкого трения M=M1*v;
---------
t=1200
Imax=326.616; Imin=0.000
Vmax=4.752; Vmin=0.000
Mmax=326.615; Mmin=-241.398
k1=0.288; k2=0.261; k3=19.782; k4=0.201

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

Рис. 7.
Код:
#define T2  200 // сжатие времени на рисунке, на точность не влияет
#define A0  -45 // Угол
#define FI   90 // угол установки щеток. (0 или +90)
#define R0    0 // сопротивление потерь
-----------
t=15000
Imax=1117.377; Imin=0.000
Vmax=15.451; Vmin=0.000
Mmax=1106.786; Mmin=-1084.272
k1=0.084; k2=0.261; k3=6.084; k4=0.059

Изображение

Рис. 8.
Код:
#define T2  20000  // сжатие времени на рисунке, на точность не влияет
#define A0    -45  // Угол
#define FI     90  // угол установки щеток. (0 или +90)
#define R0      0  // сопротивление потерь
---------
t=1500000
Imax=30673.043; Imin=-48121.550
Vmax=610.793; Vmin=-559.168
Mmax=48093.708; Mmin=-48108.711
k1=0.002; k2=0.261; k3=0.154; k4=0.001

Изображение
Последние два рисунка выглядят нехорошо. Предполагаю, что или рамка без потерь на самом деле макроскопически неустойчива, или это из-за накопления погрешностей. Рисунки сомнительны, и их можно отбраковать. Но рис. 6, там вроде бы всё в порядке. Мне удавалось получить подобный эффект - постоянную составляющую - и в рамке с потерями, но там всплеск был значительно меньше и плавно сходил на нет. Я поначалу не вёл записи, тыкал наугад, и сейчас мне не воспроизвести.

Предположим, что моё предположение о постоянной составляющей верно. Тогда вот что получается. В рамке течет большой постоянный ток, значительно превышающий размах пилы. Рамка крутится. Когда она повернётся своей положительной стороной к северному полюсу магнита, она сильно тормозит, а когда повернётся к южному полюсу - сильно ускоряется. Возможно, это причина сильных микроскопических колебаний скорости.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 145 ]  На страницу Пред.  1 ... 6, 7, 8, 9, 10  След.

Модераторы: photon, whiterussian, profrotter, Jnrty, Aer, Парджеттер, Eule_A, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group