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, Супермодераторы



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

Сейчас этот форум просматривают: reterty


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

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