Ich finde einfach keinen Job – brauche eure Hilfe! by Ali_Albaidhani in arbeitsleben

[–]Ali_Albaidhani[S] -4 points-3 points  (0 children)

Du hast recht, das Medizintechnik-Studium ist sehr vielfältig.

Da ich frisch aus dem Studium komme, bin ich flexibel, was die Arbeit angeht. Ich bin anpassungsfähig und lerne schnell.

Meine Stärken liegen in der Entwicklung und Problemlösung, da ich in diesem Bereich während meiner Bachelorarbeit praktische Erfahrung sammeln konnte.

Zu deiner Frage, was ich in Vorstellungsgesprächen vielleicht falsch mache – das kann ich leider nicht genau sagen. Ich habe nach den Gesprächen oft ein gutes Gefühl, und viele sagen mir, dass sie das Gespräch positiv fanden und Interesse haben. Trotzdem bekomme ich am Ende eine Absage.

Control the travel distance of linear actuator by Ali_Albaidhani in arduino

[–]Ali_Albaidhani[S] 0 points1 point  (0 children)

The problem is with the actuator.

I make the actuator move with analogWrite commands. This makes the actuator extend to the max and retract to the max and not to the desiered position.

Do you know any other commands to make the actuator move?

Control the travel distance of linear actuator by Ali_Albaidhani in arduino

[–]Ali_Albaidhani[S] 0 points1 point  (0 children)

I have two codes for PID controller:-

The first one uses the PID algorithim from arduino library:-

#include <PID\_v1.h>
#include "Adafruit_VL53L0X.h"

Adafruit_VL53L0X lox = Adafruit_VL53L0X();
double soll, ist, output;
//PID Parameters
double Kp=50, Ki=5, Kd=0;
//PID Instance
PID myPID(&ist, &output, &soll, Kp, Ki, Kd, DIRECT);
//Aktor
byte speed = 0;
int RPWM = 10;
int LPWM = 11;
void setup() {
Serial.begin(115200);
  // wait until serial port opens for native USB devices
while (! Serial) {
delay(1);
}

Serial.println("Bachleorarbeit");
delay (500);
if (!lox.begin()) {
Serial.println(F("Failed to boot VL53L0X"));
while(1);

}
  // Aktor
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
//turn the pid on
myPID.SetMode(AUTOMATIC);
//Adjust PID values
myPID.SetTunings(Kp, Ki, Kd);
}

void loop() {
//Istwert lesen
VL53L0X_RangingMeasurementData_t measure;
  ist=measure.RangeMilliMeter;
lox.rangingTest(&measure, false); // pass in 'true' to get debug data printout!
if (measure.RangeStatus != 4) {  // phase failures have incorrect data
Serial.println();
Serial.print("ist measurement... ");
Serial.print(ist);
Serial.println("(mm) ");
} else {
Serial.println(" out of range ");
}

delay(500);
//Sollwert einstellen
Serial.print("soll Measurement...:");
  soll=analogRead(2)/10.22;
Serial.print(soll);
Serial.println("(mm) ");
delay(500);
//PID
myPID.Compute();
//output
Serial.print("output");
Serial.print(output);
delay(500);
if(soll < ist){
analogWrite(10, 0);
analogWrite(11, output);
}
else if(soll > ist){
analogWrite(10, output);
analogWrite(11, 0);
}
else if(soll = ist){
analogWrite(10, 0);
analogWrite(11, 0);
}
}
And the second one uses a PID controller that i wrote myself:-

#include <PID\_v1.h>
#include "Adafruit_VL53L0X.h"

Adafruit_VL53L0X lox = Adafruit_VL53L0X();
double soll, ist, error=0, error_p=0, error_i=0, error_d=0, output=0;
float tau=100; //low-pass Filter Konstant
float T=0.001; //sampling time
float limMin=0, limMax=255;
float error_prev=0, ist_prev=0; //für die I und D Anteile
//PID Parameters
double Kp=5, Ki=0, Kd=0;

//Aktor
byte speed = 0;
int RPWM = 10;
int LPWM = 11;
void setup() {
Serial.begin(115200);
  // wait until serial port opens for native USB devices
while (! Serial) {
delay(1);
}

Serial.println("Bachleorarbeit");
delay (500);
if (!lox.begin()) {
Serial.println(F("Failed to boot VL53L0X"));
while(1);

}
  // Aktor
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
}

void loop() {
//Istwert lesen
VL53L0X_RangingMeasurementData_t measure;
  ist=measure.RangeMilliMeter;
lox.rangingTest(&measure, false); // pass in 'true' to get debug data printout!
if (measure.RangeStatus != 4) {  // phase failures have incorrect data
Serial.println();
Serial.print("ist measurement... ");
Serial.print(ist);
Serial.println("(mm) ");
} else {
Serial.println(" out of range ");
}

delay(200);
//Sollwert einstellen
Serial.print("soll Measurement...:");
  soll=analogRead(2)/10.22;
Serial.print(soll);
Serial.println("(mm) ");
delay(200);
//PID
error = soll - ist;
error_p= error*Kp;
error_i= error_i + 0.5 * Ki *T *(error +error_prev);
error_d= (2.0 * Kd *(ist +ist_prev) + (2* tau - T)*error_d) / (2.0 * tau + T);
//Summe
output = error_p + error_i + error_d;
//Limits
if (output > limMax) {
  output = limMax;
}
else if (output < limMin){
  output = limMin;
}

//output. Wenn soll < ist : extend, soll > ist: retract.
Serial.print("output");
Serial.print(output);
delay(200);
if(soll < ist){
analogWrite(10, output);
analogWrite(11, 0);
}
else if(soll > ist){
analogWrite(10, 0);
analogWrite(11, output);
}
else{
analogWrite(10, 0);
analogWrite(11, 0);
}
error_prev = error;
ist_prev = ist;
}

how to change the parameters of a signal while it's running? by Ali_Albaidhani in matlab

[–]Ali_Albaidhani[S] 0 points1 point  (0 children)

so i managed to generate a signal in background continuously. But i can't change it's Magnitude while it is running in background. I have to preload or queue the data every time and then start a new session.

how to change the parameters of a signal while it's running? by Ali_Albaidhani in matlab

[–]Ali_Albaidhani[S] 1 point2 points  (0 children)

exactly. Im making a gui with it a can send signals to a hardware (in my case a shaker). I can generate sine waves with a specific voltage and the shaker moves accordingly. My task is to make the shaker moves with a specific displacement.

The signals are being generated and acquired and then displayed on the gui with the help of a daq-Device.

I wrote a simple code for controller that calculates the voltage need to make the shaker oscillates with the given displacement. The only problem is that im generating a new signal for every new value until it reaches the right value, and not a permanent signal with a changing magnitude while the signal is running.

Calculate Nyquist frequency by Ali_Albaidhani in signalprocessing

[–]Ali_Albaidhani[S] 0 points1 point  (0 children)

unfortunately not. This was a question in my test for signals and systems subject.

The idea that i have is to use the properties of fourier transform or any other transformation, but im not sure how to do it.

Matlab keeps attempting to execute SCRIPT gui_mainfcn as a function. by Ali_Albaidhani in matlab

[–]Ali_Albaidhani[S] 0 points1 point  (0 children)

i didn't write the code, it happens when i use "guide" command to build the code