Найти время до перегрева ДВС

Найти примерное время от старта работы ДВС до перегрева
Автор
Сообщение
Vladlena
#37941 2020-05-19 12:05 GMT

Доброго времени суток!
Подскажите, пожалуйста, как можно вычислить примерное время от старта работы двигателя внутреннего сгорания до перегрева?
Дано:
— Момент инерции двигателя I (кг∙м2) = 10
— Крутящий момент, вырабатываемого двигателем M = { 20, 75, 100, 105, 75, 0 }
— Скорость вращения ДВС V = { 0, 75, 150, 200, 250, 300 }
— Tперегрева = 110
— Коэффициент зависимости скорости нагрева от крутящего момента HM = 0.01
— Коэффициент зависимости скорости нагрева от скорости вращения коленвала HV = 0.0001
— Коэффициент зависимости скорости охлаждения от температуры двигателя и окружающей
среды C = 0.1
Так как двигатель работает без нагрузки, то весь вырабатываемый момент идет на раскрутку
коленвала, и его ускорение вычисляется просто: a = M / I
Скорость нагрева двигателя рассчитывать как VH = M × HM + V2 × HV (С0/сек)
Скорость охлаждения двигателя рассчитывать как VC = C × (Tсреды — Тдвигателя) (С0/сек)
Температура двигателя до момента старта должна равняться температуре окружающей среды.
Нагрев и охлаждение, рассчитанные по формулам выше, действуют на двигатель постоянно,
одновременно и независимо друг от друга.

Мои мысли:
Хотела сперва вычислять температуру двигателя в каждый момент времени по формуле Tдвигателя = Тнагрева + Тохлаждения, но не знаю, правильно ли это и как вычислить Тнагрева и Тохлаждения?

zam
#37943 2020-05-19 13:21 GMT
#37941 Vladlena :

Мои мысли:
Хотела сперва вычислять температуру двигателя в каждый момент времени по формуле Tдвигателя = Тнагрева + Тохлаждения, но не знаю, правильно ли это и как вычислить Тнагрева и Тохлаждения?

Хотелось бы сначала понять, что такое  Тнагрева и Тохлаждения. Вроде бы, температуры. Но температуры чего? Нагрев и охлаждения — это процессы. У процесса температуры не бывает. Температура — это характеристика тела (например, нагревателя, охладителя).

И ещё? Где вы встречали хоть что-то с суммированием температур?

И вдобавок. Откуда задача? Вам что, задали работу по программированию на тему «моделирование температурного режима двигателя»? Или что-то другое? Ведь не сами же вы эту задачу выдумали...

Vladlena
#37944 2020-05-19 13:56 GMT

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

zam
#37945 2020-05-19 14:21 GMT
#37944 Vladlena :

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

Замечательно. Как я смог понять — задача по программированию.

«Симулировать изменение...» — это значит записать дифференциальные уравнения, связывающие управляющие и контролируемые величины и написать программу, решающую эту систему уравнений. Правильно?

Если правильно, то давайте пока отложим ДВС в сторону, а рассмотрим более наглядный пример. Ставим чайник на плиту. Что должна сделать ваша программа? Вычислить время до закипания? Или нарисовать график изменения температуры воды в чайнике?

 

Vladlena
#37947 2020-05-19 14:37 GMT
#37945 zam :
#37944 Vladlena :

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

Замечательно. Как я смог понять — задача по программированию.

«Симулировать изменение...» — это значит записать дифференциальные уравнения, связывающие управляющие и контролируемые величины и написать программу, решающую эту систему уравнений. Правильно?

Если правильно, то давайте пока отложим ДВС в сторону, а рассмотрим более наглядный пример. Ставим чайник на плиту. Что должна сделать ваша программа? Вычислить время до закипания? Или нарисовать график изменения температуры воды в чайнике?

 

Вычислить время до закипания, не аналитически, а через симуляцию (конечно, с погрешностью получится)

zam
#37948 2020-05-19 15:02 GMT
#37947 Vladlena :

Вычислить время до закипания, не аналитически, а через симуляцию (конечно, с погрешностью получится)

Прекрасно. Значит вам нужно написать дифференциальное уравнение процесса разогрева чайника (аналогично, процесса разогрева ДВС). Сможете?

Для чайника я попытаюсь. Вот так это будет выглядеть (в очень упрощённом виде):

\(C\frac{\mathrm{d} T}{\mathrm{d} t}=K_1\left ( T_{нагр} -T \right)-K_1\left ( T-T_{окр} \right )\) .

Здесь \(T\)  — температура воды в чайнике,  \(C\)  — теплоёмкость чайника с водой, \(T_{нагр}\) — температура нагревателя (пламени плиты), \(T_{окр}\) — температура окружающей среды, \(K_1\) — коэффициент теплопередачи от нагревателя к чайнику, \(K_2\) — коэффициент теплопередачи от чайника в окружающую среду.

Сможете составить программу для численного решения такого уравнения? Каким методом будете решать? (Впрочем, можно найти и готовый исходный код для решения дифф.уравнений).

Vladlena
#37949 2020-05-19 15:10 GMT
#37948 zam :
#37947 Vladlena :

Вычислить время до закипания, не аналитически, а через симуляцию (конечно, с погрешностью получится)

Прекрасно. Значит вам нужно написать дифференциальное уравнение процесса разогрева чайника (аналогично, процесса разогрева ДВС). Сможете?

Для чайника я попытаюсь. Вот так это будет выглядеть (в очень упрощённом виде):

\(C\frac{\mathrm{d} T}{\mathrm{d} t}=K_1\left ( T_{нагр} -T \right)-K_1\left ( T-T_{окр} \right )\) .

Здесь \(T\)  — температура воды в чайнике,  \(C\)  — теплоёмкость чайника с водой, \(T_{нагр}\) — температура нагревателя (пламени плиты), \(T_{окр}\) — температура окружающей среды, \(K_1\) — коэффициент теплопередачи от нагревателя к чайнику, \(K_2\) — коэффициент теплопередачи от чайника в окружающую среду.

Сможете составить программу для численного решения такого уравнения? Каким методом будете решать? (Впрочем, можно найти и готовый исходный код для решения дифф.уравнений).

Так, не понимаю какой это вид ДУ? и какие параметры известны?

Vladlena
#37950 2020-05-19 15:21 GMT

Вообще, про ДВС я себе так представляла (псевдокод):

изначально Т1 = Тсреды
пока Тдвиг < Тперегрева
  считаем по формуле Vот T1

  считаем по формуле VC от T1

  Vобщ = V+ VC

  Т1 = Vобщ * tдиф + Tсреды

  t = t + tдиф

конец

Расшифровка: Я каждые сколько то секунд измеряю температуру, пока она не дойдет до максимума
tдиф  — это время, при котором измеряем параметры у ДВС, t — искомое время
Полна фигня, полагаю?

 

zam
#37951 2020-05-19 15:34 GMT
#37949 Vladlena :

Так, не понимаю какой это вид ДУ? и какие параметры известны?

Это обыкновенное дифференциальное уравнение первой степени с постоянными коэффициентами.

Известно всё (все буковки), кроме T (температура чайника, которую вычисляем) и t (текущее время, которое бежит от нуля до пока не надоест).

 

Vladlena
#37952 2020-05-19 15:41 GMT
#37951 zam :
#37949 Vladlena :

Так, не понимаю какой это вид ДУ? и какие параметры известны?

Это обыкновенное дифференциальное уравнение первой степени с постоянными коэффициентами.

Известно всё (все буковки), кроме T (температура чайника, которую вычисляем) и t (текущее время, которое бежит от нуля до пока не надоест).

 

Получается интеграл от K1(Tнагр−T)−K1(T−Tокр) + C

zam
#37953 2020-05-19 15:49 GMT
#37950 Vladlena :

Вообще, про ДВС я себе так представляла (псевдокод):

изначально Т1 = Тсреды
пока Тдвиг < Тперегрева
  считаем по формуле Vот T1

  считаем по формуле VC от T1

  Vобщ = V+ VC

  Т1 = Vобщ * tдиф + Tсреды

  t = t + tдиф

конец

Расшифровка: Я каждые сколько то секунд измеряю температуру, пока она не дойдет до максимума
tдиф  — это время, при котором измеряем параметры у ДВС, t — искомое время
Полна фигня, полагаю?

Нет. Я так не считаю. Это численный метод Эйлера для решения обыкновенных дифференциальных уравнений с постоянным шагом интегрирования tдиф.

Только вот тут нужно поправить:

Вместо Т1 =  Vобщ * tдиф  + Tсреды надо написать Т1 = T1 + Vобщ * tдиф. И никаких Tсреды (уже учтено при вычислении скорости охлаждения двигателя).

А как вы считаете скорость вращения коленвала? Что-то у вас про это ничего не написано.

zam
#37954 2020-05-19 15:54 GMT
#37952 Vladlena :

Получается интеграл от K1(Tнагр−T)−K1(T−Tокр) + C

Это кто же вас так учил решать дифференциальные уравнения?

Как вы будете считать интеграл, когда там неизвестная функция температуры от времени T(t), которую и нужно найти?

Vladlena
#37955 2020-05-19 15:54 GMT
#37953 zam :
#37950 Vladlena :

Вообще, про ДВС я себе так представляла (псевдокод):

изначально Т1 = Тсреды
пока Тдвиг < Тперегрева
  считаем по формуле Vот T1

  считаем по формуле VC от T1

  Vобщ = V+ VC

  Т1 = Vобщ * tдиф + Tсреды

  t = t + tдиф

конец

Расшифровка: Я каждые сколько то секунд измеряю температуру, пока она не дойдет до максимума
tдиф  — это время, при котором измеряем параметры у ДВС, t — искомое время
Полна фигня, полагаю?

Нет. Я так не считаю. Это численный метод Эйлера для решения обыкновенных дифференциальных уравнений с постоянным шагом интегрирования tдиф.

Только вот тут нужно поправить:

Вместо Т1 =  Vобщ * tдиф  + Tсреды надо написать Т1 = T1 + Vобщ * tдиф. И никаких Tсреды (уже учтено при вычислении скорости охлаждения двигателя).

А как вы считаете скорость вращения коленвала? Что-то у вас про это ничего не написано.

Скорость вращения задана во входных параметрах  V = { 0, 75, 150, 200, 250, 300 }, зависит от крутящего момента М  = { 20, 75, 100, 105, 75, 0 }
Только для меня загадка, для чего по условиям могу вычислить ускорение a = M / I (I тоже известно)

zam
#37956 2020-05-19 16:05 GMT
#37955 Vladlena :

Скорость вращения задана во входных параметрах  V = { 0, 75, 150, 200, 250, 300 }, зависит от крутящего момента М  = { 20, 75, 100, 105, 75, 0 }
Только для меня загадка, для чего по условиям могу вычислить ускорение a = M / I (I тоже известно)

Не так. Не задана вам скорость вращения. На старте она равна нулю. А потом она возрастает по закону \(\frac{dV}{dt}=a\). (Вот для этого и нужно вычислять a).

А два набора по шесть чисел — это как зависит крутящий момент от скорости вращения (странно он зависит; видимо, ваш преподаватель решил использовать автоматическую коробку переключения передач). Похоже, вам тут ещё придётся интерполировать табличные данные для промежуточных значений скорости.

Vladlena
#37957 2020-05-19 16:09 GMT
#37956 zam :
#37955 Vladlena :

Скорость вращения задана во входных параметрах  V = { 0, 75, 150, 200, 250, 300 }, зависит от крутящего момента М  = { 20, 75, 100, 105, 75, 0 }
Только для меня загадка, для чего по условиям могу вычислить ускорение a = M / I (I тоже известно)

Не так. Не задана вам скорость вращения. На старте она равна нулю. А потом она возрастает по закону \(\frac{dV}{dt}=a\). (Вот для этого и нужно вычислять a).

А два набора по шесть чисел — это как зависит крутящий момент от скорости вращения (странно он зависит; видимо, ваш преподаватель решил использовать автоматическую коробку переключения передач). Похоже, вам тут ещё придётся интерполировать табличные данные для промежуточных значений скорости.

Почему? Мне же не постоянно нужно узнавать скорость, а с каким то интервалом, например, 5 секунд

zam
#37958 2020-05-19 16:28 GMT
#37957 Vladlena :

Почему? Мне же не постоянно нужно узнавать скорость, а с каким то интервалом, например, 5 секунд

Вам её нужно узнавать с интервалом tдиф. Каким уж вы его зададите — вопрос другой (чем меньше — тем точнее результат). Промежуточные скорости (не табличные) получатся неизбежно.

 

Vladlena
#37959 2020-05-19 16:37 GMT

Поняла, в этом убедили. Интерполировать отдельно М и V, верно?

zam
#37960 2020-05-19 16:48 GMT
#37959 Vladlena :

Поняла, в этом убедили. Интерполировать отдельно М и V, верно?

По известному (вычисленному на предыдущем шаге) значению V находите путём интерполяции табличных данных значение M.

 

Vladlena
#37962 2020-05-19 17:16 GMT
#37960 zam :
#37959 Vladlena :

Поняла, в этом убедили. Интерполировать отдельно М и V, верно?

По известному (вычисленному на предыдущем шаге) значению V находите путём интерполяции табличных данных значение M.

 

Большое спасибо за помощь и объяснения.