The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

Скорость потока

Скорость потока

Предыдущая  Содержание  Следующая  V*D*V

Описывается следующим разностным уравнением:

 

Так как вид формул параметров, входящих в данное уравнение, в разных публикациях описан по-разному (однако при элементарной проверке оказывается неверным), приводится решение основанное на здравом смысле, которое не претендует на верное, однако дает результат очень похожий на приводимый в тех же публикациях.

где:

Cx - коэффициент динамического сопротивления, ~1.4

r - плотность воздуха, 0.00114 г/см3

m - коэффициент вязкости воздуха, 0.000186 г/(см*сек)

W(t) - скорость потока в предыдущем периоде времени дискретизации

Dp(t + Dt) - перепад давления над голосовой щелью, ~1500 Pa

S(t + Dt) - площадь голосовой щели, обычно, 0 ... 0,4 см2

a = 1 - e^( -12 * μ / S(t + Δt) / ρ * dT ), требуется устранить неопределенность деления на ноль

dT - период времени дискретизации, сек

 

Замечание

Разные авторы указывают на необходимость учета влияния сужения щели. Корректировать предлагается увеличением эффективной длины голосовой щели. В работе Сорокина "Синтез речи" приводятся 2 формулы:

и

где для 2-ой формулы,

S - площадь трахеи, 3 см2

Sg - площадь сужения, в пределах < 0,16 * S

 

Однако, если приглядеться к формулам, то можно заметить в 1-ой формуле неадекватность - при увеличении площади растёт длина, хотя должно быть наоборот. Вторая формула смущает тем, что при любом Sg происходит удлинение.

Формула 1 приведена в "Ф. Морз. Колебания и звук", стр. 261, однако вывод её, чтобы проверить откуда она берётся, я не нашел.

Комментарий И. Макарова

На аэродинамику это очень мало влияет.

Код

 private int m_dP;// = 1500;//Pa

 private double m_k1;

 private double m_H;// = 12 * 0.000186 * 1.5;//12*u*h

 private double m_Wt = 0;//объемная скорость на предыдущем шаге

 private double m_W = 0;//объемная скорость в текущем шаге

 /**

  * h - см, глубина голосовой щели

  * dP - Pa, перепад давления ~1500 Pa

  */

 public VoicingSource(int sampleRate, double h, int dP) {

         m_k1 = -12 * 0.000186 / 0.00114 / sampleRate;

         m_dP = dP;

         m_H = 12 * 0.000186 * h;

 }

 /**

  * расчет скорость воздушного потока по площади голосовой щели

  * вызывать только один раз за период!

  * @param S - площадь голосовой щели, 0-0.2 см^2

  * @return объемная скорость воздушного потока, 0...200 sm^3/s

  */

  public double calculateSpeed(double S)

   {// S = 0 ... 0,2 sm^2, площадь голосовой щели

         /*

          * Ro = 0.00114 g/sm^3 плотность воздуха

          * u = 0.000186 g/(sm*s) коэффициент вязкости воздуха

          * h = 1.5 sm глубина голосовой щели

          * dP = 1500.0 Pa перепад давления над голосовой щелью

          * Cx = 1.4 коэффициент динамического сопротивления

          *

          * alpha = 1 - Math.pow(Math.E, -12*u/Ro/sampleRate/(S<0.0001?0.0001:S));

          * k1 = 12 * u * h;

          * k2 = alpha / k1 * Cx * Ro;

          * W = 0...180 скорость воздушного потока sm^3

          * W = (Math.sqrt(1.0-2*k2*(alpha*(Wt-dP*S*S/k1)-Wt))-1.0)/k2;

          */

         double alpha = 1.0 - Math.exp( m_k1 / (S<0.0001?0.0001:S) );

         double k1 = m_H;//здесь можно учесть удлинение щели при уменьшении площади

         double k2 = alpha / k1 * 0.001596;

         m_Wt = m_W;

         m_W = (Math.sqrt(1.0-2.0*k2*(alpha*(m_Wt-m_dP*S*S/k1)-m_Wt))-1.0)/k2;

 

         return m_W;

   }

  /**

    * левая производная от скорости, +10...-50 sm^3/s

    */

  public double getPulse() {

         return m_W - m_Wt;

   }

 

Предыдущая  Содержание  Следующая