ПОИСК Статьи Рисунки Таблицы Язык программного моделирования MID AS. Примеры составления программ решения задач на MIDAS. Язык программного моделирования MIMI, DSL90. PATOLUS Задачи из "Математическое моделирование в химической технологии" В этих уравнениях неизвестными переменными являются Ха, Хв, Хс, Хв, V, R ж Q . [c.51] Величину R находят так, как показано на рис. III-13 ввод цеза-висимых переменных осуществляется по схеме, изображенной на рис. 111-14, а полная схема модели представлена на рис. ПТ-15. [c.51] Блок-схема решения всей системы уравнений полезна как для программирования, так и для отыскания ошибок, которые легче увидеть при такой записи. Она также часто помогает понять поведение реальной физической системы, представленной уравнениями данной математической модели. Каждый элемент блок-схемы обозначен буквой и цифрой. Необходимо лишь соблюдать правило два элемента одного типа не должны одинаково обозначаться в схеме. [c.51] Удобная для ввода запись программы, осуществляемая путем набивки на перфокарты, дана на рис. И1-16. После того как перфокарты заполнены (одна перфокарта на строчку), они вместе с несколькими контрольными перфокартами закладываются в цифровую машину. [c.51] III-13. Блок-схема модели определения величины скорости реакции, составленная на MIDAS. [c.51] Когда выход сумматора 510 станет больше нуля, на выходе С появится величина QA Для лучшего понимания процедуры ввода в программу этой дополнительной величины, полученной из уравнений (1) и (6), дается табл. 111-2, в которой перечислены все входы и выходы участвующих в этой операции блоков. Величина QA, если она постоянна, будет вводиться как дополнительная константа. [c.53] Первое уравнение используется для определения X, а второе — для определения Y. Сначала применим некорректную программу MIDAS, которая показана на рис. III-18. В этом случае известны лишь Z тл Q и машина не может выполнить операцию 51 до тех пор, пока не определена величина Y. С другой стороны, не может быть выполнена операция S2, пока неизвестна величина X- Если такая программа будет задана машине, произойдет переполнение и машина отпечатает ошибочный результат. [c.54] Преодолеть эту трудность помогает подпрограмма IMP, которая начинает считать одну из переменных X или Y от некоторой произвольной величины, выбранной программистом, и расчет производится итерационным методом до достижения сходимости. [c.54] НОЙ подпрограмме. Эта величина У затем используется в контуре для расчета X- После прохождения через блок IMP рассчитанное значение X заменяется новой величиной и вычисления повторяются до достижения заданного критерия точности сходимости. Ясно, что такой контур счета может быть расходящимся (см. гл. II). Проверку можно произвести до начала вычислений, оценивая так называемый коэффициент усиления контура, который определяет, как будет изменяться расчетная величина X при единичном изменении выхода с 1МР-блока. Если это изменение по величине меньше единицы, контур является сходящимся, если больше — расходящимся. Возможность расходимости делает программирование на MIDAS неприемлемым в настоящее время для больших систем, состоящих только из алгебраических уравнений. Однако типичным случаем является такой, когда несколько алгебраических уравнений входят в систему дифференциальных уравнений. Сходимость при этом может быть быстро достигнута при правильном выборе уравнений для получения каждой переменной. Этот вопрос разъясняется в последующих главах, в которых на него обращено внимание в примерах. В литературе описываются методы получения решения для особо трудных случаев (см., например, работу ). [c.55] Кроме того, введен оператор поддержание нулевой команды, который представляет собой стандартную программу, предназначенную для поддержания значения переменной в течение заданного про-мен5утка времени (отметим, что слово время здесь используется не совсем точно, его надо понимать в смысле независимая переменная . MIMI позволяет широко изменять логические команды, имеет блоки задержки во времени и готовые передаточные функции уравнений первого порядка, что дает возможность использовать одни и те же системы команд для различных переменных . [c.57] Связь между символической записью п уравнениями настолько очевидна, что никаких объяснений не требуется. Вычислительная машина, получившая закодированные подобным образом команды, будет автоматически подразделять программу на серии операционных шагов, а затем перейдет к решению уравнений для заданных начальных условий. Фактически ликвидирована необходимость кодировать части отдельных операций, хотя при желании это может быть сделано, Перечень стандартных подпрограмм, применяемых при программировании па MTMI , дан в табл. П1-3. Однако лишь тщательное изучение описания MIMI [3] даст читателю возможность оценить его по достоинству. [c.58] Пример полностью запрограммированной в коде MIMI задачи приведен в Приложении там же даны числовые результаты, полученные при решении этой задачи. [c.58] Рунге — Кутта метода трапеций, или метода парабол Симпсона. [c.59] Емкость программы ограничена тремястами интеграторами. Это значит, что максимально может быть решена математическая задача, которая включает не более 300 дифференциальных уравнений первого порядка. [c.59] Когда DSL/90 используется как подпрограмма обш ей программы, составленной на ФОРТРАНе, программист может провести контрольный счет и проанализировать входную и выходную информацию отдельно для подпрограммы DSL. Другим важным преимуществом такого совместного применения языков DSL/90 и Фортран является возможность использовать любую из многих имеющихся в наличии программ, которые записаны на языке Фортран в соответствии с требованиями языка DSL/90 (недавно то же самое было осуществлено для программ на MIMI ). [c.59] Алгоритмы и алгоритмические языки. Изд. АН СССР, Вычислительный центр, вып. 1, 1967. [c.61] Ефимова М. H., Алгоритмические языки (Обзор зарубежных работ), под ред. А. И. Китова, Изд. Советское радио , 1965. [c.61] Вернуться к основной статье