Как использовать любой класс из SpiceSharp в c #? Я не умею, как использовать класс diode в моем коде, но я знаю, как использовать класс resistor и voltage

#c# #class #diode

#c# #класс #диод #diode

Вопрос:

Строка diode не работает, я не знаю, как ее запустить, пожалуйста, помогите, я действительно хочу знать, как инициализировать часть diode, все работает нормально, только эта часть, когда я добавляю ее, говорит, что модель моделирования не найдена

 using System;
using SpiceSharp;
using SpiceSharp.Components;
using SpiceSharp.Simulations;
using System.Threading;


namespace SpiceSimulation
{
    class Program
    {
        static void Main(string[] args)
        { 
    var ckt = new Circuit(
         new VoltageSource("V0", "in1", "0", 0.0),//ground
         new VoltageSource("V1", "in", "in1", 12.0),//voltage source 12 volt
         new Resistor("R1", "out", "in", 1.0e3),//resistor 1k
         new Diode("M1", "out", "d", "ISimulation"),//here is my problem
         new Resistor("R2", "0", "d", 2.0e3)//resistor 2k
    
         );
    
    // Create a DC sweep and register to the event for exporting simulation data
    var dc = new DC("dc", "V0", 0.0, 0.0, 0.001);//ground voltage
        dc.ExportSimulationData  = (sender, exportDataEventArgs) =>
        {
        Console.WriteLine(exportDataEventArgs.GetVoltage("out"));//get the voltage at this point
        };
    // Run the simulation
    dc.Run(ckt);//it will run the circuit

}
}
}
  

Комментарии:

1. Я понятия не имею, что все это значит, но проверьте тесты, предоставленные в git, так что вы можете найти там дополнительную помощь. Например. страница htis с тестами Diode

Ответ №1:

Сообщение об ошибке: «Модель ISimulation не найдена» означает, что вы ссылаетесь на модель «ISimulation», которая не принадлежит circuit. Вы можете создать DiodeModel для себя диод и добавить его в схему. Например:

 var model = new DiodeModel("ISimulation");
model.SetParameter("is", 2.52e-9);
model.SetParameter("rs", 0.568);
model.SetParameter("n", 1.752);
model.SetParameter("cjo", 4e-12);
model.SetParameter("m", 0.4);
model.SetParameter("tt", 20e-9);

var ckt = new Circuit(
     new VoltageSource("V0", "in1", "0", 0.0),
     new VoltageSource("V1", "in", "in1", 12.0),
     new Resistor("R1", "out", "in", 1.0e3),
     model, // <-- Here goes model
     new Diode("M1", "out", "d", model.Name),// <-- The name is taken directly from model
     new Resistor("R2", "0", "d", 2.0e3)

     );
  

Итак, если я правильно понимаю, DiodeModel — это точный тип вашего диода, который вы собираетесь поместить в схему. Это позволяет вычислять схему. И модель можно использовать повторно, если у вас есть несколько похожих элементов (например, диодный мост)

Комментарии:

1. да, это правда, но проблема здесь, я не знаю, что поставить вместо «ISimulation», я сделал так много вариантов, таких как «diode», «0», «Diode», «DiodeModel» …. ничего не сработало

2. На самом деле это не имеет значения, если оно не соответствует названию предоставленной модели, проверьте образец, важные части отмечены <-- знаком. Я предоставил. Я бы предложил поместить туда настоящие имена, такие как 1N914 .

3. Боже! Как вы это получили? Это сработало!, большое спасибо вам за вашу помощь, спасибо.. Мне действительно нужно знать, как вы это получили, чтобы я мог понять остальные компоненты

4. Проверьте репозиторий git поставщика. У меня есть пример отсюда , и я бы предложил заглянуть в папку