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

Доброго времени суток!
Подскажите, пожалуйста, как можно вычислить примерное время от старта работы двигателя внутреннего сгорания до перегрева?
Дано:
— Момент инерции двигателя 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двигателя = Тнагрева + Тохлаждения, но не знаю, правильно ли это и как вычислить Тнагрева и Тохлаждения?

#37941 Vladlena :Мои мысли:
Хотела сперва вычислять температуру двигателя в каждый момент времени по формуле Tдвигателя = Тнагрева + Тохлаждения, но не знаю, правильно ли это и как вычислить Тнагрева и Тохлаждения?
Хотелось бы сначала понять, что такое Тнагрева и Тохлаждения. Вроде бы, температуры. Но температуры чего? Нагрев и охлаждения — это процессы. У процесса температуры не бывает. Температура — это характеристика тела (например, нагревателя, охладителя).
И ещё? Где вы встречали хоть что-то с суммированием температур?
И вдобавок. Откуда задача? Вам что, задали работу по программированию на тему «моделирование температурного режима двигателя»? Или что-то другое? Ведь не сами же вы эту задачу выдумали...

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

#37944 Vladlena :Да, это задача на моделирование процесса от старта работы ДВС до его перегрева, с целью узнать затраченное время.
Требуется упрощенно симулировать изменение скорости вращения коленвала и температуры
охлаждающей жидкости двигателя, работающего без нагрузки, с течением времени.
Замечательно. Как я смог понять — задача по программированию.
«Симулировать изменение...» — это значит записать дифференциальные уравнения, связывающие управляющие и контролируемые величины и написать программу, решающую эту систему уравнений. Правильно?
Если правильно, то давайте пока отложим ДВС в сторону, а рассмотрим более наглядный пример. Ставим чайник на плиту. Что должна сделать ваша программа? Вычислить время до закипания? Или нарисовать график изменения температуры воды в чайнике?

#37945 zam :#37944 Vladlena :Да, это задача на моделирование процесса от старта работы ДВС до его перегрева, с целью узнать затраченное время.
Требуется упрощенно симулировать изменение скорости вращения коленвала и температуры
охлаждающей жидкости двигателя, работающего без нагрузки, с течением времени.Замечательно. Как я смог понять — задача по программированию.
«Симулировать изменение...» — это значит записать дифференциальные уравнения, связывающие управляющие и контролируемые величины и написать программу, решающую эту систему уравнений. Правильно?
Если правильно, то давайте пока отложим ДВС в сторону, а рассмотрим более наглядный пример. Ставим чайник на плиту. Что должна сделать ваша программа? Вычислить время до закипания? Или нарисовать график изменения температуры воды в чайнике?
Вычислить время до закипания, не аналитически, а через симуляцию (конечно, с погрешностью получится)

#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\) — коэффициент теплопередачи от чайника в окружающую среду.
Сможете составить программу для численного решения такого уравнения? Каким методом будете решать? (Впрочем, можно найти и готовый исходный код для решения дифф.уравнений).

#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\) — коэффициент теплопередачи от чайника в окружающую среду.
Сможете составить программу для численного решения такого уравнения? Каким методом будете решать? (Впрочем, можно найти и готовый исходный код для решения дифф.уравнений).
Так, не понимаю какой это вид ДУ? и какие параметры известны?

Вообще, про ДВС я себе так представляла (псевдокод):
изначально Т1 = Тсреды
пока Тдвиг < Тперегрева
считаем по формуле VH от T1
считаем по формуле VC от T1
Vобщ = VH + VC
Т1 = Vобщ * tдиф + Tсреды
t = t + tдиф
конец
Расшифровка: Я каждые сколько то секунд измеряю температуру, пока она не дойдет до максимума
tдиф — это время, при котором измеряем параметры у ДВС, t — искомое время
Полна фигня, полагаю?

#37949 Vladlena :Так, не понимаю какой это вид ДУ? и какие параметры известны?
Это обыкновенное дифференциальное уравнение первой степени с постоянными коэффициентами.
Известно всё (все буковки), кроме T (температура чайника, которую вычисляем) и t (текущее время, которое бежит от нуля до пока не надоест).

#37951 zam :#37949 Vladlena :Так, не понимаю какой это вид ДУ? и какие параметры известны?
Это обыкновенное дифференциальное уравнение первой степени с постоянными коэффициентами.
Известно всё (все буковки), кроме T (температура чайника, которую вычисляем) и t (текущее время, которое бежит от нуля до пока не надоест).
Получается интеграл от K1(Tнагр−T)−K1(T−Tокр) + C

#37950 Vladlena :Вообще, про ДВС я себе так представляла (псевдокод):
изначально Т1 = Тсреды
пока Тдвиг < Тперегрева
считаем по формуле VH от T1считаем по формуле VC от T1
Vобщ = VH + VC
Т1 = Vобщ * tдиф + Tсреды
t = t + tдиф
конец
Расшифровка: Я каждые сколько то секунд измеряю температуру, пока она не дойдет до максимума
tдиф — это время, при котором измеряем параметры у ДВС, t — искомое время
Полна фигня, полагаю?
Нет. Я так не считаю. Это численный метод Эйлера для решения обыкновенных дифференциальных уравнений с постоянным шагом интегрирования tдиф.
Только вот тут нужно поправить:
Вместо Т1 = Vобщ * tдиф + Tсреды надо написать Т1 = T1 + Vобщ * tдиф. И никаких Tсреды (уже учтено при вычислении скорости охлаждения двигателя).
А как вы считаете скорость вращения коленвала? Что-то у вас про это ничего не написано.

#37952 Vladlena :Получается интеграл от K1(Tнагр−T)−K1(T−Tокр) + C
Это кто же вас так учил решать дифференциальные уравнения?
Как вы будете считать интеграл, когда там неизвестная функция температуры от времени T(t), которую и нужно найти?

#37953 zam :#37950 Vladlena :Вообще, про ДВС я себе так представляла (псевдокод):
изначально Т1 = Тсреды
пока Тдвиг < Тперегрева
считаем по формуле VH от T1считаем по формуле VC от T1
Vобщ = VH + 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 тоже известно)

#37955 Vladlena :Скорость вращения задана во входных параметрах V = { 0, 75, 150, 200, 250, 300 }, зависит от крутящего момента М = { 20, 75, 100, 105, 75, 0 }
Только для меня загадка, для чего по условиям могу вычислить ускорение a = M / I (I тоже известно)
Не так. Не задана вам скорость вращения. На старте она равна нулю. А потом она возрастает по закону \(\frac{dV}{dt}=a\). (Вот для этого и нужно вычислять a).
А два набора по шесть чисел — это как зависит крутящий момент от скорости вращения (странно он зависит; видимо, ваш преподаватель решил использовать автоматическую коробку переключения передач). Похоже, вам тут ещё придётся интерполировать табличные данные для промежуточных значений скорости.

#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 секунд

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

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

#37959 Vladlena :Поняла, в этом убедили. Интерполировать отдельно М и V, верно?
По известному (вычисленному на предыдущем шаге) значению V находите путём интерполяции табличных данных значение M.
