TunahanC
SbX
- Katılım
- 31 Mayıs 2024
- Mesajlar
- 159
Çinlilerin geliştirdiği yapay zeka, Deep Seek, yeni bir model olmasa bile yeni hype oldu. Şu anda ilgilendiğim konu olan FOC hakkında kendisine şöyle bir soru yönelttim
Bana stm32 için bir FOC algoritması yaz. Idref ve Iqref değerlerini parametre olarak alsın ve akımlar IA, IB ve IC olsun bunları da parametre olarak alsın.
Promptu bilerek biraz kötü yazdım sonrasında ise gelen kod.
PI istemediğim halde saçma bir PI kodu yazdı. Fakat sonrasındaki kısım olan FOC'ta istenilen verileri parametre olarak aldı ve mantıklı bir kod yazdı.
Özetleyecek olursam; DeepSeek ücretsiz bir şekilde GPT-o1 seviyesine yakın hizmet verdiğini iddia eden bir Çinli yapay zeka. Söz konusu Çinli ve ücretsiz denildiği zaman akla nelerin geldiği az çok belli. Fakat kritik olmayan projelerde kullanılabilecek seviyede olduğu düşünüyorum.
Kendi websitelerinde benchmark sonuçlarını da eklemişler. Kendi adıma söylemem gerekirse Claude ve ChatGPT'ten sonra 3. bir alternatif olarak duruyor.
Bana stm32 için bir FOC algoritması yaz. Idref ve Iqref değerlerini parametre olarak alsın ve akımlar IA, IB ve IC olsun bunları da parametre olarak alsın.
Promptu bilerek biraz kötü yazdım sonrasında ise gelen kod.
C:
#include <math.h>
// PI kontrolör yapısı
typedef struct {
float Kp;
float Ki;
float integral;
float limit;
} PI_Controller;
// PI kontrolör güncelleme fonksiyonu
float PI_Update(PI_Controller *pi, float error) {
pi->integral += error;
if (pi->integral > pi->limit) pi->integral = pi->limit;
if (pi->integral < -pi->limit) pi->integral = -pi->limit;
return pi->Kp * error + pi->Ki * pi->integral;
}
// FOC fonksiyonu
void FOC(float Idref, float Iqref, float IA, float IB, float IC, float theta) {
// Clarke Dönüşümü
float I_alpha = IA;
float I_beta = (1.0f / sqrt(3)) * (IB - IC);
// Park Dönüşümü
float I_d = I_alpha * cos(theta) + I_beta * sin(theta);
float I_q = -I_alpha * sin(theta) + I_beta * cos(theta);
// PI Kontrolörleri
static PI_Controller PI_Id = {1.0, 0.1, 0.0, 100.0}; // Örnek PI parametreleri
static PI_Controller PI_Iq = {1.0, 0.1, 0.0, 100.0}; // Örnek PI parametreleri
float V_d = PI_Update(&PI_Id, Idref - I_d);
float V_q = PI_Update(&PI_Iq, Iqref - I_q);
// Inverse Park Dönüşümü
float V_alpha = V_d * cos(theta) - V_q * sin(theta);
float V_beta = V_d * sin(theta) + V_q * cos(theta);
// SVPWM (Bu kısım donanıma özgü olabilir, burada sadece örnek bir fonksiyon çağrısı yapılmıştır)
SVPWM_Generate(V_alpha, V_beta);
}
// SVPWM fonksiyonu (Örnek, gerçek uygulama donanıma bağlıdır)
void SVPWM_Generate(float V_alpha, float V_beta) {
// Burada SVPWM sinyalleri üretilir ve PWM çıkışları ayarlanır.
// Bu fonksiyon donanıma özgüdür ve STM32'nin PWM modülleri kullanılır.
}
int main() {
// Örnek değerler
float Idref = 0.5; // Referans Id akımı
float Iqref = 1.0; // Referans Iq akımı
float IA = 0.3; // Faz A akımı
float IB = 0.4; // Faz B akımı
float IC = 0.5; // Faz C akımı
float theta = 0.0; // Rotor pozisyon açısı (radyan cinsinden)
// FOC algoritmasını çağır
FOC(Idref, Iqref, IA, IB, IC, theta);
return 0;
}
PI istemediğim halde saçma bir PI kodu yazdı. Fakat sonrasındaki kısım olan FOC'ta istenilen verileri parametre olarak aldı ve mantıklı bir kod yazdı.
Özetleyecek olursam; DeepSeek ücretsiz bir şekilde GPT-o1 seviyesine yakın hizmet verdiğini iddia eden bir Çinli yapay zeka. Söz konusu Çinli ve ücretsiz denildiği zaman akla nelerin geldiği az çok belli. Fakat kritik olmayan projelerde kullanılabilecek seviyede olduğu düşünüyorum.
Kendi websitelerinde benchmark sonuçlarını da eklemişler. Kendi adıma söylemem gerekirse Claude ve ChatGPT'ten sonra 3. bir alternatif olarak duruyor.