Как сделать так, чтобы функция угла обтекания была дифференцирована в Modelica? - PullRequest
1 голос
/ 10 марта 2020

Я сделал код угла обтекания в Modelica, как показано ниже.

thetta_eq=mod(thetta, 720);

thetta продолжает увеличивать 0 до бесконечного угла, а thetta_eq - угол обтекания от 0 до 720 градусов.

Однако проблема возникает, когда я различаю угол обтекания.

enter image description here

Кроме того, я не могу использовать блок обтекания в стандартной библиотеке Modelica 3.2. 3 потому что я должен использовать версию 3.2.2.

У кого-нибудь есть решение этой проблемы? Код, лог c или опции?

======================= enter image description here

Я уже знаю, что невозможно различить, когда угол падает с 720 до 0 градусов, потому что он прерывистый.

Итак, я хотел бы попросить сделать его непрерывным даже в падающей области.

enter image description here

На самом деле, вышеупомянутая картинка - сигмовидная функция, и я подумал, что могу использовать эту функцию, когда угол намотки падает с 720 до 0 градусов.

Если я сделаю наклон сигмовидной функции действительно высоким, я подумаю, что это может работать как оригинальный угол обтекания. И производная не бесконечна и не бесконечна, поэтому ее можно дифференцировать.

Как вы думаете? и как я могу сделать логи c для этой идеи?

пс) Я очень ценю ваш ответ!

1 Ответ

5 голосов
/ 10 марта 2020

Как и в случае с математическим комментарием, вы не можете дифференцировать переменную с разрывами. Что вы ожидаете от производной, когда тета скачет с 720 до 0?

Вместо использования обернутого угла, вы можете использовать производную от исходного угла.

model Demo

  Modelica.SIunits.Angle theta = 100*sin(time);
  Modelica.SIunits.Angle theta_wrap;
  Modelica.SIunits.AngularVelocity w;

equation 

  w = der(theta);
  theta_wrap=mod(theta, 2*Modelica.Constants.pi);

end Demo;

Примечание: I Я использовал правильный тип SIunit для тэты, поэтому я должен обернуть его до 2 * пи радиан вместо 720 градусов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...