WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Kurve "basteln"

 

detect
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 07.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2013, 21:40     Titel: Kurve "basteln"
  Antworten mit Zitat      
Hallo hallo,

ich habe ein Problem:
Ich würde mir gerne eine Kurve selbst programmieren.
Diese soll qualitativ so hier aussehen:
http://650.laverdaclub.ch/laverda/nockenwellen.htm
Ja, es geht um eine Ventilhubkurve.

Der Verlauf des Öffnens bzw. Schließens entspricht ja qualitativ dem einer Sinus-Funktion (min bis max).
Das Maximum der Ventilerhebungskurve soll für kurze Zeit stagnieren.

D.h., dass der Verlauf aus 5 Teilen besteht, wenn man ihn über eine "Zeit" von 720° darstellen will.

1: 0° bis 340° (Funktionswerte sind 0)
2: 340° bis 440° (Ventil öffnet -> soll dem Sinus von 270° bis 450° entsprechen)
3: 440° bis 460° (maximum -> soll später 10[mm] sein)
4: 460° bis 560° (Ventil schließt -> soll dem Sinus von 90° bis 270° entsprechen)
5: 560° bis 720° (soll 0 sein)

Das was ich bisher programmiert habe führte zu keinerlei erfolg.

Weiß dort jemand eine Lösung?

MfG
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 02.11.2013, 00:05     Titel:
  Antworten mit Zitat      
Hallo,

poste doch mal, was du bisher versucht hast und welche Probleme dabei aufgetreten sind.

Was bedeutet "soll dem Sinus von [...] entsprechen"?

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
detect
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 07.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.11.2013, 13:51     Titel:
  Antworten mit Zitat      
hallo,
danke erstmal für die Antwort! Smile

"soll dem Sinus von [...] entsprechen", dazu mal dieser Quellcode:
Code:

clear;

x_r = 0:540;
x = x_r * pi/180;
y = sin(x);
plot(x_r,y)

red = x >= pi/2 & x <= 1.5*pi;
hold on
plot(x_r(red), y(red), 'r', 'LineWidth', 2)
hold off

green = x >= 1.5*pi & x <= 2.5*pi;
hold on;
plot(x_r(green), y(green), 'g', 'LineWidth', 2);
xlabel('Winkel [°]');
grid on;
box on;
xlim([0 , 540]);


Den rot dargestellten Verlauf will ich für das Schließen des Ventils nehmen. Dieser Verlauf gilt ja für y = sin(x) mit x = 90° bis 270°. Dieser Verlauf soll dann von 460° bis 560° Kurbelwinkel dargestellt werden. Aber hier ist genau mein Problem! Der Sinus-Verlauf hat in diesem Fall 180 Elemente, während der Bereich, in dem dieser Sinus-Verlauf gelten soll nur 100 Elemente hat. Das passt ja von der Länge der Elemente nicht.

Ich will also gerne den 180 Elemente Verlauf der Sinus-Funktion in den 100 Elemente großen Bereich der Sollfunktion packen.

Bis jetzt habe ich es so gelöst:
Code:

clear;

x = 0:0.1:720;
x_r = x * pi/180;

SIN = 0:0.18:720;
SIN_r = SIN * pi/180;


y = 5*sin(SIN_r)+5;

hV = 0*x;
hV(3401:4400) = y(1501:2500);
hV(4401:4600) = 10;
hV(4601:5600) = y(501:1500);

plot(x, hV);


Aber ich weiß nicht, ob das nicht vielleicht zu ungeschickt gelöst ist.
Das geht doch bestimmt noch besser warscheinlich.

Gruß!
Private Nachricht senden Benutzer-Profile anzeigen
 
detect
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 07.08.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.11.2013, 15:48     Titel:
  Antworten mit Zitat      
Hat niemand eine Idee wie man das so programmieren kann, dass ich die Zeitpunkte des Öffnens bzw. Schließens einfacher anpassen kann?
Weil bis jetzt habe ich ja nur die "Auflösung" der Sinus-Funktion vergrößert,
Code:
SIN = 0:0.18:720;

nämlich mit einer Schrittweite von 0.18 im Gegensatz zur Auflösung von 0.1 für die tatsächliche Ventilerhebungskurve.
Möchte ich jetzt aber die Zeit (in °KW ausgedrückt), die das Ein- bzw. Auslassventil geöffnet ist verkürzen, müsste ich anschlißend wieder die Auflösung der Sinus-Funktion anpassen.
Mir scheint das ziemlich kompliziert und umständlich zu sein und da ich was Programmierung angeht eher ein Laie bin, dachte ich hier wüsste jemand eine elegantere Lösung.

MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.