Метеор-М №2-1 с попутчиками – Союз-2.1Б/Фрегат – Восточный 1С – 28.11.2017 08:41 ДМВ - авария

Автор zandr, 02.09.2017 20:54:00

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Serge3leo

Цитироватьvadimr пишет:
 с Алгола-60 на PL/I, но, за исключением этого, осталась практически в первозданном виде. Кто догадается о назначении этой программы, может с полным правом взять с полки пирожок.
Господи?! Бином Ньютона?! Налицо некоторая из модификаций метода секущих, но все подробности только после пирожка ;)

Штуцер

Цитироватьvadimr пишет:
Кто догадается о назначении этой программы, может с полным правом взять с полки пирожок.
Это программа расчета  зарплаты программиста.
Но в виде обломков различных ракет
Останутся наши следы!

vadimr

ЦитироватьKotofan пишет:
Цитироватьvadimr пишет:
Практика показывает, что подобные программы невозможно понять.
Точно. Их сами программеры не понимают, поэтому даже не пытаются менять что-то в старых кусках, а просто добавляют свои новые куски, которые как либо компенсируют работу старых кусков, которые писал кто-то другой.
Я видел одну используемую функцию из примерно 50 строк, которая дважды переводилась – с фортрана на си и с си на паскаль – и успешно работает лет 40 в круглосуточном режиме повсеместно. Если в ней включить контроль выхода за границы массива, она падает. Если контроль выключить, она работает всегда корректно. Моих двух программистских образований не хватило не то чтобы на её полное понимание, но даже хотя бы на то, чтобы понять, что там происходит с этим индексом массива, при том, что я точно знал назначение этой функции, её вход и выход. Это требование к режиму компиляции просто было задокументировано.

vadimr

ЦитироватьYojan пишет:
ЦитироватьКорни ищет? Методом ловли льва в пустыне?
Вы честно заработали свой пирожок!

Serge3leo

Цитироватьvadimr пишет:
... не хватило не то чтобы на её полное понимание, но даже хотя бы на то, чтобы понять, ...
Не растраивайтесь, дискретная математика не хрен собачий, дано не каждому.

Но какое это всё отношение имеет к РБ Фрегат? Все эти сферические кони, симуляторы и программизмы?

nsn

Цитироватьvadimr пишет:
Если кто хочет потренироваться в оценке старого кода
Вы недооцениваете возможности Интернета. Никакой оценки кода не требуется. Несколько минут вялого поиска, и: http://fortran-90.narod.ru/kor.html#ZR30
Пошёл за пирожком.  ;)

vadimr

ЦитироватьSerge3leo пишет:
Цитироватьvadimr пишет:
... не хватило не то чтобы на её полное понимание, но даже хотя бы на то, чтобы понять, ...
Не растраивайтесь, дискретная математика не хрен собачий, дано не каждому.
Там была не дискретная математика, а простое логическое преобразование входного битового массива в выходной. С десятком go to.

kost3

ЦитироватьLiss пишет:
Цитироватьkost3 пишет:
1. Нахрена запускали лучи чтобы опять при косяке за горизонтом ничего не знать и гадать на кофейной гуще?
2. Ну и мне совершенно непонятно какой такой программист писал код, где пофиг на вектор - ГДУ врубается по таймеру. Это пипец товарищи. Системный пипец. Это код разряда - писано на коленке.
Коллега,
(1) "Лучи" за полярным кругом неэффективны. Объяснить, почему?
(2) Вы находитесь на суборбитальной траектории. Не выдадите импульс быстро -- упадете точно. Выдадите строго по времени -- как повезет. Что выберете?
1 собсно ответ понятен, нахрена запускали чтобы там где надо их не было. Но проблема телеметрии просто смешная, на момент когда она нужна еще ступени не упали вроде.
2. Ерунда. Не так жестко там. Да и на разворот секунды возможно нужны, десятки секунд. Я выберу не выдавать импульс, который вне нужного конуса векторов. Повезет - это не к программистам.

vadimr

Цитироватьnsn пишет:
Цитироватьvadimr пишет:
Если кто хочет потренироваться в оценке старого кода
Вы недооцениваете возможности Интернета. Никакой оценки кода не требуется. Несколько минут вялого поиска, и: http://fortran-90.narod.ru/kor.html#ZR30
Пошёл за пирожком.  ;)
Вам – только фотографию пирожка из google :)

SGS_67

ЦитироватьYanus пишет:
Поверьте, разработчик алгоритма наведения РБ вполне квалифицирован и не на коленке всё это соорудил, и занимался он этим ещё до Вашего проектирования. Но надо уяснить, что полётное задание для РН и РБ существует раздельно.
Не вижу здесь связи.
Жёсткая привязка запуска МДУ по времени накладывает кучу ограничений на работу СУ Фрегата. И понижает способность системы противостоять возмущениям на порядок.
В то время, как при гибком управлении задаётся только вектор выходного состояния, а входной вектор есть решение нав. задачи.
То есть, мы знаем, где, как и в какое время находимся, и куда нам нужно идти. А уже как идти - должна решать система.
Здесь же налицо стремление упростить решение задачи управления, ценой надёжности системы в целом.
Такое решение, вероятно, можно было бы считать оправданным, пока на Фрегате не было нормальной БЦВМ. Но теперь-то вполне приличная стоит, и функционал её работы следовало бы расширить, хотя б для того, чтоб не позориться в очередной раз перед всем миром.

ЗЫ. Посмотрел - там всё ещё Бисер-6... Однако...  :(  
Может, не туда смотрел?

Цитировать А ещё их неплохо бы и проверять, на что существовала соответствующая служба в 50ЦНИИ МО до её угасания и фактической ликвидации к 2006-2010-м годам.
Мды... Но это уже другой, не технический вопрос.

LRV_75

Цитироватьvadimr пишет: простое логическое преобразование входного битового массива в выходной. С десятком go to.
Использование оператора безусловного перехода  как то не красит код. Особенно выход из цикла по go to
Главное не наличие проблем, главное способность их решать.
У каждой ошибки есть Имя и Фамилия

kost3

ЦитироватьYanus пишет:
ЦитироватьLiss пишет:
Цитироватьkost3 пишет:

2. Ну и мне совершенно непонятно какой такой программист писал код, где пофиг на вектор - ГДУ врубается по таймеру. Это пипец товарищи. Системный пипец. Это код разряда - писано на коленке.
Поверьте, разработчик алгоритма наведения РБ вполне квалифицирован и не на коленке всё это соорудил, и занимался он этим ещё до Вашего проектирования. Но надо уяснить, что полётное задание для РН и РБ существует раздельно. А ещё их неплохо бы и проверять, на что существовала соответствующая служба в 50ЦНИИ МО до её угасания и фактической ликвидации к 2006-2010-м годам.
Поверьте, я здесь вижу нагромождение решений, древних как говно мамонта. Это следствие очень дорогой процедуры испытаний каждого нового болта в РК. Поэтому и громоздят заплатки на заплатке. Запуск ГДУ по таймеру без добра от ориентации - это артиллерия. Авось снаряд и так летит куда надо. Когда не компьютеры были, а программно-временные устройства.  Или еще раньше, замедлительные трубки. 
Про квалификацию не буду ничего говорить. Но проспать ТАКОЙ косяк с градусами - это не признак квалификации. Если это конечно правда. Не хочется верить. 
Я просто не могу себе представить такую СУ с такой шизофренией. Просто чувство системности мое вопиет.
Не удержался, простите. Критиковать легко.

vadimr

ЦитироватьLRV_75 пишет:
Цитироватьvadimr пишет: простое логическое преобразование входного битового массива в выходной. С десятком go to.
Использование оператора безусловного перехода как то не красит код. Особенно выход из цикла по go to
Так а я о чём. И если б там был только выход :) Там были спагетти в классическом виде.

SGS_67

ЦитироватьDenis Voronin пишет:
ЦитироватьSGS_67 пишет:
Попробуйте решить хотя бы мою, это же элементарно.  :)  
Мона я не буду формулами?  :)  Если нет закрутки, то это два минимальновозможных импульса, которые может выдать ДУ. Если крутит - тогда интереснее. Для начала хорошо бы погасить вращение в продольной оси, не то что бы это необходимо, но более эстетично. Потом первый импульс, который скорректирует плоскость вращения так, чтобы нужный вектор лежал на ней, второй импульс соответственно на торможение.

Вся эта задача имеет общее решение через параметрические уравнения и может быть без проблем реализована хардварно на уровне простенького чипа.
Мать честная... Нужно просто подождать, пока аппарат дойдёт до нужного положения. А потом выдать тормозящий момент, занулив угловую скорость.
Это оптимальный алгоритм решения задачи.
Поэтому, по одному параметру не оптимизируют почти никогда. Можно получить парадоксальное решение.
Если, кроме расхода топлива, ввести ещё какой-либо параметр, напр., время разворота, и присвоить им "веса", получим задачу оптимизации (минимизации) функции двух переменных.
Кому интересно, как подобные задачи нужно ставить и решать - стучитесь в личку.

LRV_75

Цитироватьkost3 пишет:
Запуск ГДУ по таймеру без добра от ориентации - это артиллерия
Красиво )
Главное не наличие проблем, главное способность их решать.
У каждой ошибки есть Имя и Фамилия

SGS_67

ЦитироватьШтуцер пишет:

И вопрос SGS67: как будет компенсироваться перемещение топлива в баках, если разворот производится с максимальной скоростью и как быстро можно в этом случае застабилизировать изделие перед выдачей очередного импульса С5.92?
Ну, во-первых, баки почти полные. А во-вторых, после погашения угловой скорости останется ещё время на успокоение, что достигается переводом работы СООС в импульсный режим управления ЖРДМТ, и быстрым парированием возмущающих моментов.


ЦитироватьИ еще, после того как изделие застабилизировано. Осаждение топлива нужно проводить и сколько это займет времени?
Почему его нужно проводить именно после того, как изделие стабилизировано?

ЦитироватьПроще говоря: одно дело удержать на пальце карандаш, а другое - блюдце с водой.
Это легко может сделать даже человек, при известном уровне подготовки.
Автоматика здесь обладает гораждо более обширными возможностями.

Serge3leo

ЦитироватьSGS_67 пишет: 
Жёсткая привязка запуска МДУ по времени накладывает кучу ограничений на работу СУ Фрегата. И понижает способность системы противостоять возмущениям на порядок.
В то время, как при гибком управлении задаётся только вектор выходного состояния, а входной вектор есть решение нав. задачи...
Что-то я потерял суть Ваших мыслей, с одной стороны Вы утверждаете, что развернутся он мог по-любому, одна минута - вагон времени. Но слишком умная система решила экономить гидразин и вместо быстрого поворота через левое плечо решила подождать пока он сам повернётся через правое. А сейчас ратуете за «гибкое управление»?! Ну даже если его сделать, то всё равно можно будет легко нарваться, что шибко умная система с огромной свободой придумает, скажем, устроить гравитационный маневр вокруг точки Лагранжа, на который банально не хватит заряда аккумуляторов. 

Чем умнее система, тем сложнее её тестировать на Земле. А нам ведь нужна не умная система, а надёжная. Поэтому следует стремиться к упрощению тестирования, и разработчиком, и приёмкой. Если сейчас, разработчики и приёмка, предположительно не проверили все варианты различий ориентации и скоростей вращения, то после Ваших предложений по увеличению интеллекта и свободы, потребуется ещё тестировать все варианты скоростей и высот.

Denis Voronin

Цитироватьsychbird пишет:
А кто нибудь летал по этим программам в реальном космосе на реальных аппаратах.?  ;)
Нет конечно, потому что:
ЦитироватьШтуцер пишет:
Учитывается в игре влияние на динамику изделия свободной поверхности жидкости в баках и увеличение свободной поверхности по мере выработки одновременно с уменьшением массы топлива? А с какой степенью точности там учитывается плотность амила и гептила и неравномерность выработки, определяющееся тем, что объемный коэффициент соотношения компонентов С5.92 не равен единице, а также смещение центра тяжести связки в связи с этим?
Учитывается ли влияние перемещения гидразина в полузаневоленном состоянии при наличии мембранного разделителя?
Какие процессы происходят при этом в баках метеора и влияют ли они на динамику изделия?
Такого уровня детализации там нет.

Но сам по себе задача имеет общее решение.

Что касается конкретного аппарата и того как там плещется топливо в зависимости от его количества - это тоже МОЖНО обсчитать для произвольной конфигурации, но задача будет слишком ресурсоёмкой, гораздо проще смоделировать (и проверить результат на железе!), после чего заложить поправки.

Кстати реальный центр масс после отделения произвольной нагрузки можно вычислить по реакции на управляющие воздействия.
Цитироватьvadimr пишет:
Отчасти просто программистская культура изменилась. Археопрограммирование. Грубо говоря, языковое представление паттернов проектирования 30 лет назад было совсем другим.
Фрегат изделие не из семидесятых всё таки, когда изворачивались на ассемблере на калькуляторах.
ЦитироватьKotofan пишет:
Точно. Их сами программеры не понимают, поэтому даже не пытаются менять что-то в старых кусках, а просто добавляют свои новые куски, которые как либо компенсируют работу старых кусков, которые писал кто-то другой.
В таких случаях делают рефакторинг кода.
Кривыми должны быть извилины, а не руки.

nsn

ЦитироватьШтуцер пишет:
ЦитироватьSerge3leo пишет:
Цитироватьnsn пишет:
ЦитироватьШтуцер пишет:
И вопрос SGS67: как будет компенсироваться перемещение топлива в баках
Они при запуске полупустые, что ли?
Наверняка не полные ж, к гадалке не ходи. Это ж не симулятор.
:)  Допустим, Вы считаете их при запуске полными.Допустим.

А при втором запуске они тоже полные?
Допустим, что баки полупустые. Нет, лучше даже допустим, что они пустые на 3/4, и топливо болтается в них как сумка у гусара. Допустим также, что при предыдущем запуске они были полные, и допустим, что разработчики допускают, что они и в этот раз будут полные. Бинго! Наиболее вероятная причина аварии найдена. Непонятно даже, что остаётся комиссии по расследованию.

Олег

Вот тут - ссыла 1  - ошибки в РКО, нашей и не нашей. Не только программные. Например - Гриссом, мерзнущий в океане от того, что кто-то перепутал звездные сутки и простые среднесолнечные.

Вот тут - ссыла 2 - программные ошибки. Но не только в космосе.