интеграция функции в модель

Я хотел бы выполнить интеграцию функции переменной, отличной от времени, в Modelica, но я не знаю, как это сделать. Например, как я могу оценить интеграл x dx с верхним пределом 5 и нижним пределом 2?

∫x dx=x^2/2

person Tymo    schedule 09.05.2013    source источник


Ответы (1)


Modelica не проектировалась как CAS (система компьютерной алгебры), как Maple, Mathematica или Matlab, но с небольшим кодом вы все равно можете это сделать. Дело в том, что ваша проблема не может быть решена автоматически символически с помощью инструментов Modelica, а численно - да. Чтобы решить это численно, вам нужно проделать трюк, чтобы заменить x на временную переменную, поскольку в Modelica вы можете выполнять производные и, следовательно, интегралы только по времени. Поэтому вы можете создать источник сигнала с функцией, которую хотите интегрировать, а затем использовать его в качестве входных данных для блока Modelica.Blocks.Continuous.Integrator, который реализует это простое уравнение:

model Integrator
  input Real u;
  output Real y;
equation
  der(y) = u;
end Integrator;

Наконец, если вы отправляете в качестве входных данных в этот блок ноль для t<2 и t<5, тогда вы должны получить на выходе правильное значение вашего интеграла между 2 и 5:

введите описание изображения здесь

Надеюсь, это поможет, Марко

person Marco Romanoni    schedule 09.05.2013