#matlab #plot
#matlab #график
Вопрос:
Я использую pzmap для построения системных полюсов и нулей для разных значений L. Но на графике справа есть дополнительные метки YTick, которые я не вижу в свойствах осей. Кроме того, у меня нет дескриптора, соответствующего линиям сетки с постоянным демпфированием, цвет и свойства которых я хотел бы изменить.
MWE
clear;clc
cb=parula(10);
s=tf('s');
L_array=5:5:50;
figure; hold on;
for i=1:length(L_array)
L=L_array(i);
G=((58.2 11.7*L)*s^2*25^2 (3996.8 815.7*L)*s*25 815.7*25^2)/(s^2*(s^2*25^2 126.9*s*25 (3996.8 1.9*25^2)));
CL=feedback(G,1);
pzmap(CL);
end
h = findobj(gca,'type','line');
for jj=2:length(h)
set(h(jj),'MarkerSize',12,'Color',cb(floor(jj/2),:));
end
grid;
colormap(parula);
c=colorbar;
Также цветовая панель инвертирована, т.е. Синий соответствует большему L и наоборот. Я бы хотел, чтобы он был перевернут! Заранее спасибо!
Комментарии:
1. Кстати, цветовая карта не инвертируется. Добавьте pause (0.2);drawnow; после pzmap в цикле, и вы увидите, что первые нарисованные точки — это те, которые позже будут синими.
2. Да, вы правы, но когда цветовая панель устанавливается в конце, цвета меняются местами…
3. Я разработал обратный порядок, просто используя flipud () в jet для операции назначения… но все еще не могу найти дескриптор для YTick. Также я не могу найти дескриптор для линий постоянного демпфирования
4. измените
cb(floor(jj/2),:)
значение дляcb(end-floor(jj/2) 1,:)
в коде, чтобы изменить цвета5. Дополнительные галочки вставляются «сеткой». Все еще не знаю, как их удалить
Ответ №1:
Я не смог найти какой-либо дескриптор для нужных объектов на графике. Тем не менее, у меня есть некоторые дополнительные идеи. Сетка, соответствующая pzmap, по сути, имеет sgrid. Дескрипторы этой сетки не отображаются в свойствах gca. Так что вы ничего не можете с этим поделать. Даже pzoptions не позволяет изменять эти настройки. Кроме того, дополнительные Y-метки соответствуют строкам с постоянными собственными частотами.
В качестве альтернативы, лучше использовать команду sgrid напрямую. Чтобы выбрать линии постоянного затухания,
z = [0, 0.25, 0.5, 0.75, 1];
Чтобы удалить дополнительные Y-метки,
wn = [];
Теперь используйте sgrid и команду grid, чтобы получить все, что вы хотите.
sgrid(z,wn);
grid;
Я все еще не могу изменить какие-либо свойства линий сетки, связанных с sgrid, но это все равно улучшает внешний вид графика. Вопрос все еще открыт для расследования.