• Регистрация
1zz
1zz0.00
н/д
  • Написать
  • Подписаться

новый вопрос

Здравствуйте.
Помогите пожалуйста найти ошибку при выполнении задания:

Провести моделирование взлета ракеты при значениях параметров m0 = 2 * 10^7 кг, mкон = 2 *10^5 кг, a = 2 * 10^5 кг/c, Fтяги = 4*10^8 н. Ответить на вопрос: достигнет ли ракета при этих значениях параметров первой космической скорости 7,8 км/с?

не получается исправить

Файлы

  • raketa1.mdl
  • Новый точечный рисунок (2).bmp
  • Новый точечный рисунок.bmp

Теги

    14.12.2019

    Ответы

    • Павел Рословец
      Павел Рословец +239.28
      23.12.2019 20:28

      Ошибка симуляции возникает из-за того, что выход блока If напрямую замыкается на его же вход, и Simulink не может это решить, что вполне нормально. Невозможно рассчитать выход блока, когда мы не знаем, что у него на входе, потому что мы вход еще не рассчитали, потому что он и есть выход, который мы не можем рассчитать, потому что не знаем, что на входе... и так до бесконечности. Это называется алгебраическая петля.

      Ошибка же модели в том, что для решения задачи не нужен блок If. Честно говоря, не до конца понял, какую логику вы хотели заложить, но если нужно ограничить минимальную массу и остановить симуляцию, когда топливо кончилось, можно сделать модель, как на приложенной картинке.

      Блок Saturation Dynamic ограничивает массу снизу, а блок Relational Operator сравнивает массу с нижним пределом, чтобы остановить симуляцию.