MATLAB Answers

How can I integrate a simple slider?

4 ビュー (過去 30 日間)
Alexander Nitzke
Alexander Nitzke 2020 年 6 月 14 日
回答済み: Ananya Tewari 2020 年 6 月 19 日
I would like to integrate a simple slider in the Plot which controls the variable t_w2w0, but I don't know how I could realise it.
It would be nice, if someone could give me an hint.
sorry for the german comments.
%% Allgemeine Einstellungen
clc % Command Window löschen
clear all % Variablen im Workspace löschen
clf % Löscht alte Diagramme
%% Titel
%disp('Phasenverschiebung der Kraftfunktionen') % Titel
%% Variablen
%n = input('Eingabe Verlustfaktor: '); % Verlustfakor
n = 0.1;
%m = input('Masse: '); % Masse
m = 500;
%s = input('Steifigkeit: '); % Federsteifigkeit
s = 20;
w0 = sqrt(s/m); % Resonanzfrequenz
%t_tf = input('Auflösung (zw. 1-50 Hz): '); % Auflösung
t_tf = 101;
f = logspace(-3,1,t_tf); % Anreg.Frequenz
t_w = 2*pi*f; % Angeregte Kreisfrquenz
l_w = length(t_w); % Länge des Vektors
%t_w2w0 = t_w./w0; % Wertebereich für die erzeugten Frequenzen der Maschine (0-100 Hz);
l_w2w0 = 101; % Frequenz Auflösung
t_w2w0 = logspace(-1,1,t_tf); % Wert der Frequenzverhältnisse
%% Funktionen
t_vu1 = (1-(t_w2w0).^2)+(1i*n.*t_w2w0); % Zähler der Vergrößerung
t_vd1 = 1+1i*n.*t_w2w0; % Nenner der Vergrößerung
t_V = t_vu1./t_vd1; % Vergrößerung
L_V = 20*log10(abs(t_V)); % Einfügedämmmaß
phi_V = angle(t_V); % Phasenwinkel der Vergrößerung in Rad
%%if (phi_V > 3/4*pi) phi_V = phi_V + pi; % Phi im Bereich zwischen 0 und Pi
%%end
%% Plot
n_fig = 1; % neuen Plot erstellen
figure(n_fig); %
% Schleife um einzenle Schritte auszuführen
for n_w = 1:l_w % IF Schleife für die einzelnen Schritte
w2w0 = t_w2w0(n_w); % Schrittweiten Definition
subplot(2,2,1) % Plot Einfügedämmmaß R_E
semilogx(t_w2w0,L_V) % Logarithmisches Ploten von x. w/w0 u. y.
title('Einfügedämmmaß') % Title des Plots
grid on % Gitterlinien einschalten
xticks([0.01 0.1 1 sqrt(2) 10 100]) % x-Achsen skala
xticklabels({'0.01','0.1','1','\surd 2','10','100'}) % x-Achsen skala beschrift
ylim = [min(L_V)*1.2 max(L_V)*1.2]; % Linien größe auf der y - Achse
line(w2w0*[1 1],ylim,'color','r') % Schritt Anzeige
xlabel('\omega / \omega_0') % x - Achsenbeschriftung
ylabel('Einfügedämmmaß R_E [dB]') % y - Achsenbeschriftung
axis([min(t_w2w0) max(t_w2w0) min(L_V)*1.2 max(L_V)*1.2]); % Achsengröße definieren
subplot(2,2,3) % Plot Phasenverschiebung
semilogx(t_w2w0,phi_V) % Logarithmisches Ploten von x. w/w0 u. y. Phase der Vergrößerung
grid on % Gitterlinien einschalten
yticks([0 pi/4 pi/2 3/4*pi pi]) % y-Achsen Skala definieren
yticklabels({'0','\pi/4','\pi/2','3/4 \pi','\pi'}) % Beschriftung des y-Achsen skala
xticks([0.01 0.1 1 sqrt(2) 10 100]) % x-Achsen skala
xticklabels({'0.01','0.1','1','\surd 2','10','100'}) % x-Achsen skala beschrift
title('Phasenverschiebung') % Title des Plots
ylabel('Phasenwinkel in [Rad]') % y - Achsenbeschriftung
xlabel('\omega / \omega_0') % x - Achsenbeschriftung
ylim = [min(phi_V)-0.5 max(phi_V)+0.5]; % Linien größe auf der y - Achse
line(w2w0*[1 1],ylim,'color','r') % Schritt Anzeige
axis([min(t_w2w0) max(t_w2w0) min(phi_V)-0.5 max(phi_V)+0.5]); % Achsengröße definieren
subplot(1,2,2) % Plot der eingeleiteten Fundamentkraft
%pF = L_V(n_w).*exp(1i*phi_V(n_w)); % Kraftzeiger Fundament
pF = abs(1/(t_V(n_w))).*exp(1i*phi_V(n_w));
%pF = abs((t_V(n_w))).*exp(1i*phi_V(n_w));
plot([0,real(pF)],[0,imag(pF)],'r','linewidth',1.5); % Zeiger darstellung eingeleitete Kraft ins Fundament / Rot / Linien dicke 1.5
axis equal % Achsen gleich skalieren
%axis(max(L_V)*[-1 1 -1 1]) % Achsengrenzen definieren
axis ([-5 5 -5 5])
grid on % Gitterlinien einschalten
title('Eingeleitete Kraft in das Fundament') % Title des Plots
xlabel('') % x - Achsenbeschriftung
ylabel('Kraft') % y - Achsenbeschriftung[
%hb = uicontrol('style','slider');
%set(hb,'poition',[1 1,120,20]) %positon 1 pixel von Rechtss weg 1 pixel von unten 120 lang und 20 pixel hoch
M(n_w) = getframe(gcf); % Frames erzeugen
end % Ende der IF-Schleife
%% Movie
N = 2; % Anzahl der Wiederholungen des Videos
FPS = 6; % frames per second
movie(gcf,M,N,FPS) % Film erzeugen

  0 件のコメント

サインインしてコメントする。

採用された回答

Ananya Tewari
Ananya Tewari 2020 年 6 月 19 日
Hi Alexander,
I understand that you want to add a slider in the given code.
Slider can be added using uicontrol in MATLAB.
%Here is an example to add Slider
s = uicontrol('Style','Slider','Min',0,'Max',1,'SliderStep',[0.01 0.10]);
Please refer to the below link for more information

  0 件のコメント

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by