Учебно-методический сайт
Василия Щербакова
 

Нестационарные коэффициенты усиления

Подход к описанию нестационарных элементов рассмотрен в главе "Нестационарные и нелинейные функции".

Пусть коэффициент усиления K1(t) имеет зависимость, представленную на рисунке.

 
Тогда математически зависимость K1(t) может быть представлена следующим образом:

Реализация зависимости K1(t) в программных продуктах моделирования систем может быть выполнена следующим образом.

Реализация нестационарного коэффициента усиления в Acsocad

На лист модели системы устанавливается усилительное звено, начальная величина коэффициента усиления "1" убирается и вместо неё записывается символьное название функции, например, "K1". В появившейся панели программирования "K1" необходимо запрограммировать на языке Си функцию согласно (7), для этого в переменную R необходимо записать выражение с использованием переменной t и с учётом интервалов изменения функции. Имеется несколько вариантов записи кода:

а). Условная запись:
if(t<1) R=3;
if((t>=1)&&(t<3)) R=1;
if(t>=3) R=5;

б). Логическая запись:
R=(3)*(t<1) + (1)*((t>=1)*(t<3)) + (5)*(t>=3);

Реализация нестационарного коэффициента усиления в MATLAB Simulink

На лист модели помещается генератор линейного нарастающего сигнала, соответствующий времени моделирования t, который представлен в виде блока "Clock". Этот блок присоединяется к блоку программирования пользовательских функций "Embedded MATLAB function" или "MATLAB Function", в котором и следует записать программный код функции, который следует умножить на входное воздействие U усилительного звена. Имеется несколько вариантов записи кода:
Реализация при помощи блока Fcn
((3)*(u<1) + (1)*((u>=1)*(u<3)) + (5)*(u>=3))*u(2)
На вход блока подается объединенный сигнал: первый сигнал u - время, второй сигнал u(2) - реальный вход усилительного звена.

Реализация при помощи блока (Embedded) MATLAB Function
а). Условная запись:
function R = fcn(t,U)
R=3;
if((t>=1)&&(t<3)) R=1; end;
if(t>=3) R=5; end;
R = R*U;

б). Логическая запись:
function R = fcn(t,U)
R=((3)*(t<1) + (1)*((t>=1)*(t<3)) + (5)*(t>=3))*U;

Отличие записи в MATLAB Simulink от записи в Acsocad состоит в том, что следует умножить величину нестационарный коэффициент K1 на входное воздействие звена U.

Реализация нестационарного коэффициента усиления в VisSim

На лист модели помещается генератор линейного нарастающего сигнала, соответствующий времени моделирования t, который представлен в виде блока "Ramp". Этот блок присоединяется к блоку программирования пользовательских функций "expression", который расширяется на два входных сигнала и в котором следует записать программный код функции в логической форме записи. Все входные параметры последовательно обозначаются через $1, $2, $3 и так далее. Тогда код в VisSim путем замены t на $1, а U на $2 будет иметь вид:
((3)*($1<1) + (1)*(($1>=1)*($1<3)) + (5)*($1>=3))*$2

 
Рейтинг@Mail.ru
Все материалы сайта принадлежат лично Василию Щербакову.
Допускается использование материалов в некоммерческих или учебных целях с указанием ссылки на этот сайт.