Variable gating block in simulation

Zain ur Rehman
Zain ur Rehman Altair Community Member
edited November 19 in Community Q&A

Is there a way to write a variable i.e. increasing gating block in a simulation time to see the behavior of system in soft start or something like that. I have been trying to implement it but failed to do so. As i want to digitally write a certain value for gating block and then change it or keep changing during simulation.

Tagged:

Answers

  • Michael Herve_21439
    Michael Herve_21439
    Altair Employee
    edited November 14

    hello @Zain ur Rehman , in order to answer your request, may I ask you which Altair software you are working with?

    Best Regards,

    Michael

  • Zain ur Rehman
    Zain ur Rehman Altair Community Member

    @Michael Herve_21439 PSIM Professional 2023.0.0.371

  • Zain ur Rehman
    Zain ur Rehman Altair Community Member

    PSIM Professional 2023.0.0.371

  • Albert_Dunford
    Albert_Dunford
    Altair Employee

    Hi Zain,

    Sorry for the delay, my team keeps a close eye on the forum for questions. Ramps for any purpose need the use of some sort of integrator. Here I am using a integration block but you could use a capacitor and feed it a constant current. There are many options, lets cover the basic setup and expand as needed.

    Below, I've implemented a ramp that will hit 0.75 in 2 ms, you can see the technique. I have a constant, which has "desired value"/"time to hit value". We then integrate, the properties of the integrator are visible. this forms the ramp. The integrator saturates at "1", but I want to keep the final value of 0.75 so I use a comparator to switch the input on the MUX, when 0.75 is hit.

    Does this help? We can do similar things with analog components only, or with digital control, or c code. I attach the sim

  • Zain ur Rehman
    Zain ur Rehman Altair Community Member
    edited November 20

    @Albert_Dunford Thanks for your response as i was waiting for it.
    Just a quick background and picture of my playground. I am design team lead and doing R&D on high power PMSM drive.
    For that i am developing a current fed dc dc converter. Now in my hardware i am implementing a digital control loop using a uC. I use a certain soft start technique in software to get the desired result but of course i want to know certain dynamics and for that i am doing simulation. Now tell me is there a way in PSIM to derive a gate signal with programming? That would give me a lot flexibility in driving my mosfet.
    And i have simulated the desing in steady state open loop response, there isn't any issue in that. Just want to jump to next step and trying to use PSIM in a way that it can help me understand the dynamics at certain points in my current fed boost converter.
    Using mux seems a good way of switching from one waveform to another but just consider my current fed boost with active clamps and sync fets and gate complexities. So if i can get this programming/timer thing in PSIM that would be a dream come true.

  • Albert_Dunford
    Albert_Dunford
    Altair Employee

    Can I be sure I understand the question? You would like to run at one operating point, and then switch to another operating point? In one single simulation? or would you like to have your system running at a nominal condition and then see what happens from nominal when you change operating point?

    There are lots of possibilities. A simple answer would be to stack a string of series step sources which would change a set point at a given time.

    More complete methods would be to use hyperstudy to set up a complete set of simulations and stimulus in an organized and deterministic way.

    here is a list of PSIM and hyperstudy resources so you can see what I mean.

  • Zain ur Rehman
    Zain ur Rehman Altair Community Member

    Yes indeed that was the question. But i am saying that would just solve one thing a jump, which i will do and see what i get, But i am implementing a soft start technique so constantly changing my gate drives until I achieve a certain point. So i am asking how do i do that? is there a way to write a program that would just run the gate, because that would be best approach for me.