Диаграммы (номограммы, кривые) Солодовникова — устанавливают связь между величиной перерегулирования σ%, временем переходного процесса tрег, максимальным значением вещественной части АФЧХ Pmax и частотой среза ωср.

Диаграммы Солодовникова для построения среднечастотной асимптоты

Например, σ% = 25% и tрег = 2 с.
Значению σ% = 25% на графике σ(Pmax) соответствует значение tрег = на графике tрег(Pmax).
Отсюда можно найти ωп = = 5,34 рад/c.
Частота среза находится из условия: ωср = (0,6÷0,9)ωп.

По диаграммам для определения запасов устойчивости определяют запас устойчивости по фазе Δφ и амплитуде ΔL в зависимости от перерегулирования σ%.

Диаграммы Солодовникова для определения запасов устойчивости

Зная запас устойчивости по амплитуде можно определить протяжённость среднечастотной асимптоты при синтезе САУ.
Например, для систем с астатизмом первого порядка запас устойчивости по амплитуде в отрицательной области ΔL2 будет по модулю равен запасу устойчивости ΔL1 в положительной области.
ΔL1 = |ΔL2|

Подобные диаграммы используются для синтеза желаемой ЛАЧХ системы.

К вопросу об автоматизации работы с номограммами

править

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

function [omega_sr, Lm, gamma] = nomosol(sigma, t_pp)
% Номограмма Солодовникова, используемая для синтеза корректирующих звеньев 
% методом построения желаемой ЛАЧХ.
% 
% Вызов функции:%   [omega_sr, Lm, gamma] = NOMOSOL(sigma);
%         или
%   [omega_sr, Lm, gamma] = NOMOSOL(sigma, t_pp);
% 
% Входные данные:%   sigma - желаемая величина перерегулирования, в процентах;
%   t_pp  - желаемое время переходного процесса, в секундах.
% 
% Выходные данные:%   omega_sr - минимальная частота среза, рад/сек.
%     
%   Lm - предельное значение логарифмической амплитуды, dB 
% 
%   gamma - избыток фазы, градусы
%
%   ПРИМЕЧАНИЕ:%   Если обращение к функции выполнено согласно первому способу,
%   когда t_pp не вводится, выходная переменная omega_sr является 
%   функцией от t_pp: omega_sr = f(t_pp) = @(t_pp) c*pi/t_pp
%   где t_pp - время переходного процесса, сек
%       с - константа, определяемая по номограмме.
%   Во втором случае частота среза omega_sr принимает численное значение. 
% 
%   Одновременно в функцию вводится только одно значение или одна пара 
%   значений входных элементов 
% 
% Данная функция основана на номограмме Солодовникова, опубликованной 
% в книге:% 
% Теория автоматического управления: Учеб. для вузов по спец. «Автоматика и 
% телемеханика». В 2-х ч. Ч. 1. Теория линейных систем автоматического
% управления / Н.А. Бабаков, А.А. Воронов, А.А. Воронова и др.; Под ред.
% А.А.Воронова. - 2-е изд., перераб. и доп. - М.: Высш. шк., 1986. - 367с., ил.
% 
% В приведенной книге номограммы опубликованы на страницах 272 и 273.
% 
% Автор функции: асс. кафедры Гидрогазодинамика, СНУ им. В. Даля.
% Мушкаев Ярослав Владимирович, E-Mail:ysms@ukr.net
% 20-ноя-2011

switch nargin
    case 1        
        fun_out = true;
    case 2
        fun_out = false;      
    otherwise
        disp('Неверный ввод!');
        omega_sr = NaN; Lm = NaN; gamma = NaN;
        return            
end
if length(sigma(:)) ~= 1
    disp('Переменная sigma не может быть вектором или матрицей!');
    omega_sr = NaN; Lm = NaN; gamma = NaN;
    return
end
if ~and(sigma >= 17.55, sigma <= 38.3)
    disp('Значения искомых параметров не могут быть определены');
    disp('для заданного sigma: 17.55% <= sigma <= 38.3%');
    omega_sr = NaN; Lm = NaN; gamma = NaN;
    return            
end

C_sigma      = [  508.321058427288, -3060.22544945687,  7415.40549715130, -8983.52110625671,  5457.12316398637, -1319.55483588478;];
C_tpp        = [  55.6639314226042, -311.896064410782,  680.562835356507, -709.420175449177,  347.438353856472, -60.0893038609672;];
C_Lm         = [  3395.09767299379, -28707.9450565944,  100993.514061531, -189260.381855314,  199355.799306957, -112003.345584484,  26268.4759050036;];
C_gamma_grad = [ -62.2007064137489,  1785.51295903594, -10389.4884037248,  26305.9467171758, -33647.4713334065,  21241.5288609184, -5161.27087502216;];

P_max = roots([C_sigma(1:end-1), C_sigma(end)-sigma]);
P_max(or(logical(imag(P_max)), P_max < 0)) = [];
c = polyval(C_tpp, P_max);
omega_sr = eval(['@(t_pp) ' num2str(c, '%.2f') '*pi/t_pp']);
if ~fun_out
    omega_sr = omega_sr(t_pp);
end
Lm = polyval(C_Lm, P_max);
gamma = polyval(C_gamma_grad, P_max);

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

Следует заметить, что эту функцию вполне можно использовать в математических пакетах, имеющих схожий с MATLAB синтаксис или после небольшой переделки.

Работа функции гарантирована для версий Матлаб не ниже 7.x. Для других версий, возможно, потребуется незначительная переработка.

См. также

править