Skip to content
Alex Ponomariov edited this page Mar 22, 2017 · 4 revisions

Welcome to the Physics-Simulations-and-Animations-Alex-Ponomariov- wiki! Physics-Simulations-and-Animations

Physics Simulations and Animations ( The example of Physics modeling and simulations on c#)

These projects have appeared as part of the test items for the corporation http://www.transas.com/, particularly for modeling department. Painfully, they needed a person with an engineering degree, with C # knowledge with experience and is not demanding to the level of the RFP.

Tests covered a broad front hydraulics problem, automation, programming, systems design. It has been a desire to have projects that have been carried out for a period not exceeding 2 weeks. The high-level languages ​​like c # or C ++

The formed solution was to contain:

Description of the problem, source code, mathematical models in Exel format Additionally the customer wanted a solution that would be (program) working in real mode RealTime time. It could change the parameters of the physical system at any time. in particular: to enable or disable the valves, enable and disable users to display on-screen fluid levels and other working environments. Update settings should occur at intervals of 1 s.

In problem solving was given less than two weeks time. It just seems that the problems are simple, but really the biggest time of writing takes a physical model.

As an introduction to the information was obtained that the previous 8 fluid mechanics failed to solve the data conditionally "simple" tasks, and who decided could not be programmed. More needed to show a "concise" code, I was scared that the decision will be evaluated by experienced programmers.

I decided to challenge my unfortunate colleagues. And get a job with a minimum of introductory started modeling mat, and then programming.

A total of 4 projects were created, while it was necessary to solve the problem is not 4, and much more:

it was necessary to solve the problem just on paper in accordance with the subject area (update on hydrostatics knowledge of hydraulics, pneumatics, automation) to build a physical model in Exel build an object model test the facilities to assemble programming interfaces to come up as soon as the use of standard libraries and tools to collect the solution completely and test the adequacy of its physical model was used to project the product: Visual Studio Community 2017 (beta) to reduce programming interface used time windows form. To display charts used standard class Graph, an important achievement was to teach him to display graphics in RealTime mode, emulating the work equipment or an oscilloscope.

This problem had to be solved in two stages:

Static solution of the problem - a solution for static testing facilities when fiskirovannym physical parameters is performed recalculation. Dynamic analysis when all the parameters are changed and the system will come to a dynamic equilibrium and displays all possible parameters of calculations, such as inlet pressure, suction pressure or discharge, temperature, oil cooler, the temperature of the incoming seawater, triggering emergency valve air compressor, etc. . After a day of work on the project, it became clear why the guys who came to get a job suffered a fiasco, the work of programmer definitely not for Junior level, it is necessary to build a model of mat, which are able to not all. In fact it was necessary to address not the tasks that I had been taught, and related. instead of hydraulics and fluid mechanics required equipment, etc.

But it was decided to model correctly written and programmed to write the code ...

The work of the company, I did not get, but that's a lot of things :) repeated or learned useful things.

Purpose of the project will share the accumulated experience on the modeling of the physical processes that will benefit young scientists and programmers working in the field of automation, hydraulics, hydrostatics and all those who want to display parameters in the Realtime mode.

Данные проекты появились в рамках выполнения тестовых заданий для корпорации http://www.transas.com/ , конкретно для отдела моделирования. Уж больно им требовался специалист с инженерным образованием , со знанием C# , с опытом работы и не требовательный к уровню ЗП.

Тестовые задания широким фронтом охватывали задачи гидравлики, автоматики, программирования, проектирования систем. Высказывалось желание что бы проекты были выполнены за срок не превышающий 2 недели. На языке высокого уровня типа c# или С++

Сформированное решение должно было содержать в себе:

Описание решаемой задачи, Исходные коды, Математическую модель в формате Exel Дополнительно заказчик хотел что бы решение ( программа) работала в реальном режиме времени RealTime. Можно было менять параметры работы физической системы в любой момент времени. в частности: включать и выключать клапаны, включать и выключать потребителей, отображать на экране уровни жидкостей или других рабочих сред. Обновление параметров должно было происходить с интервалом в 1 с.

На решение задач отводилось не более двух недель времени. Это только кажется , что задачи простые, но реально самое большое время занимает написание физической модели.

В качестве вводной было получена информация , что предыдущие 8 гидромехаников не смогли решить данные условно "простые" задачи, а кто решил не смог запрограммировать. Еще требовалось показать "лаконичный" код, меня пугали, что решение будут оценивать опытные программисты.

Я решил бросить вызов моим неудачливым коллегам. И получив задания с минимальными вводными приступил к мат моделированию, а потом к программированию.

В общей сложности было создано 4 проекта , при этом пришлось решить не 4 задачи, а гораздо больше:

необходимо было решить задачи просто на бумаге в соответствии с предметной областью ( обновить знания по гидростатике, гидравлике, пневматике, автоматике) построить физическую модель в Exel построить объектную модель оттестировать объекты собрать интерфейсы программ придумать как использовать только стандартные библиотеки и инструменты собрать решение полностью и протестировать его на адекватность физической модели Для реализации проекта использовался продукт: Visual Studio Community 2017 (бета) Для уменьшения времени программирования интерфейса использовались windows form. Для отображения графиков использовался стандартный класс Graph, важным достижением было научить его отображать графики в RealTime режиме эмулируя работу приборов или осциллоскопа.

При этом пришлось задачу решать в два этапа:

Статическое решение задачи - решение для статического тестирования объектов, когда по фискированным параметрам производится физический перерасчет. Динамический расчет , когда все параметры меняются и система сама приходит к динамическому равновесию и отображает все возможные параметры расчетов, такие как Давления на входе, давления всасывания или нагнетания, температуру масла холодильника , температуру поступающей забортной воды, срабатывание аварийного клапана воздушного компрессора и т.д. После дня работы над проектом стало понятно почему ребята которые приходили устраиваться на работу терпели фиаско, работа программистская явно не для уровня Junior , надо строить мат модель , а это умеют не все. По факту надо было решать не те задачи которым меня учили, а родственные. вместо гидромеханики требовалась гидравлика и автоматика и т.д.

Но все было решено правильно модели написаны и запрограммированы, написан код...

Работу от компании я не получил, но вот много чего повторил или узнал :) полезного для себя.

Цель проекта поделится наработанным опытом по моделированию физических процессов который будет полезен молодым ученым и программистам работающим в области автоматики, гидравлики, гидростатики и всем тем кому требуется отображать параметры в режиме Realtime