#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 поставщика. У меня есть пример отсюда , и я бы предложил заглянуть в папку