- Диаграммы Солодовникова
-
Диаграммы (номограммы, кривые) Солодовникова — устанавливают связь между величиной перерегулирования σ%, временем переходного процесса 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. Для других версий, возможно, потребуется незначительная переработка.
См. также
Категории:- Теория управления
- Кибернетика
Wikimedia Foundation. 2010.